@autorunify/capacitor-nrfmesh 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1099) hide show
  1. package/Android-nRF-Mesh-Library/.github/ISSUE_TEMPLATE/bug_report.md +28 -0
  2. package/Android-nRF-Mesh-Library/.github/ISSUE_TEMPLATE/feature_request.md +17 -0
  3. package/Android-nRF-Mesh-Library/.github/workflows/deploy-all.yml +79 -0
  4. package/Android-nRF-Mesh-Library/.github/workflows/deploy-to-nexus.yml +29 -0
  5. package/Android-nRF-Mesh-Library/.github/workflows/deploy-to-play-store.yml +28 -0
  6. package/Android-nRF-Mesh-Library/.github/workflows/generate-readme.yml +22 -0
  7. package/Android-nRF-Mesh-Library/ExampleFirmwares/Dimming/light_switch_dimming_client_nrf52832_xxAA_s132_6.1.1_merged.hex +15907 -0
  8. package/Android-nRF-Mesh-Library/ExampleFirmwares/Dimming/light_switch_dimming_client_nrf52840_xxAA_s140_6.1.1_merged.hex +16091 -0
  9. package/Android-nRF-Mesh-Library/ExampleFirmwares/Dimming/light_switch_dimming_server_nrf52832_xxAA_s132_6.1.1_merged.hex +16187 -0
  10. package/Android-nRF-Mesh-Library/ExampleFirmwares/Dimming/light_switch_dimming_server_nrf52840_xxAA_s140_6.1.1_merged.hex +16380 -0
  11. package/Android-nRF-Mesh-Library/ExampleFirmwares/Light/light_switch_client_nrf52832_xxAA_s132_6.1.1_merged.hex +15852 -0
  12. package/Android-nRF-Mesh-Library/ExampleFirmwares/Light/light_switch_client_nrf52840_xxAA_s140_6.1.1_merged.hex +16036 -0
  13. package/Android-nRF-Mesh-Library/ExampleFirmwares/Light/light_switch_server_nrf52832_xxAA_s132_6.1.1_merged.hex +16459 -0
  14. package/Android-nRF-Mesh-Library/ExampleFirmwares/Light/light_switch_server_nrf52840_xxAA_s140_6.1.1_merged.hex +16643 -0
  15. package/Android-nRF-Mesh-Library/ExampleFirmwares/Simple OnOff/simple_onoff_client_nrf52832_xxAA_s132_6.1.1_merged.hex +17165 -0
  16. package/Android-nRF-Mesh-Library/ExampleFirmwares/Simple OnOff/simple_onoff_server_nrf52832_xxAA_s132_6.1.1_merged.hex +17837 -0
  17. package/Android-nRF-Mesh-Library/Gemfile +3 -0
  18. package/Android-nRF-Mesh-Library/LICENSE +27 -0
  19. package/Android-nRF-Mesh-Library/README.md +182 -0
  20. package/Android-nRF-Mesh-Library/app/build.gradle +99 -0
  21. package/Android-nRF-Mesh-Library/app/proguard-rules.pro +21 -0
  22. package/Android-nRF-Mesh-Library/app/src/main/AndroidManifest.xml +242 -0
  23. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/DialogFragmentOobPublicKey.java +108 -0
  24. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/GroupCallbacks.java +94 -0
  25. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/GroupControlsActivity.java +359 -0
  26. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/GroupsFragment.java +201 -0
  27. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/MainActivity.java +173 -0
  28. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/NetworkFragment.java +216 -0
  29. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/ProvisioningActivity.java +519 -0
  30. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/ProxyFilterFragment.java +279 -0
  31. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/SettingsFragment.java +248 -0
  32. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/AddressTypeAdapter.java +94 -0
  33. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/AuthenticationOOBMethodsAdapter.java +103 -0
  34. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/ExtendedBluetoothDevice.java +140 -0
  35. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/FilterAddressAdapter.java +115 -0
  36. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/FilterAddressAdapter1.java +98 -0
  37. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/GroupAdapter.java +125 -0
  38. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/GroupAdapterSpinner.java +103 -0
  39. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/GroupAddressAdapter.java +129 -0
  40. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/GroupAddressDiffCallback.java +17 -0
  41. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/GroupDiffCallback.java +18 -0
  42. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/GroupItemUIState.java +48 -0
  43. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/GroupItemUiStateDiffCallback.java +17 -0
  44. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/GroupModelAdapter.java +162 -0
  45. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/ProvisioningProgressAdapter.java +87 -0
  46. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/adapter/SubGroupAdapter.java +222 -0
  47. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/ble/BleMeshManager.java +234 -0
  48. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/ble/BleMeshManagerCallbacks.java +46 -0
  49. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/ble/LoggableBleManager.java +48 -0
  50. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/ble/ReconnectActivity.java +109 -0
  51. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/ble/ScannerActivity.java +281 -0
  52. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/ble/adapter/DevicesAdapter.java +119 -0
  53. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/di/BleMeshManagerModule.java +46 -0
  54. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/di/MeshApplication.java +37 -0
  55. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmenPermissionDenied.java +62 -0
  56. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentAuthenticationInput.java +263 -0
  57. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentConfigStatus.java +57 -0
  58. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentConfigurationComplete.java +62 -0
  59. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentCreateGroup.java +246 -0
  60. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentDeleteNode.java +83 -0
  61. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentDisconnected.java +61 -0
  62. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentError.java +57 -0
  63. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentFilterAddAddress.java +172 -0
  64. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentGroupSubscription.java +349 -0
  65. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentMeshExportMsg.java +62 -0
  66. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentMeshImport.java +67 -0
  67. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentMeshImportMsg.java +63 -0
  68. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentMessage.java +61 -0
  69. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentNetworkName.java +133 -0
  70. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentPermissionRationale.java +79 -0
  71. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentProvisioningFailedError.java +56 -0
  72. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentProxySet.java +73 -0
  73. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentResetNetwork.java +65 -0
  74. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentSelectOOBType.java +217 -0
  75. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentTransactionStatus.java +57 -0
  76. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/DialogFragmentUnicastAddress.java +174 -0
  77. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/dialog/NetKeyListener.java +11 -0
  78. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/export/ExportNetworkActivity.java +227 -0
  79. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/export/adapters/SelectableNetworkKeyAdapter.java +117 -0
  80. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/export/adapters/SelectableProvisionerAdapter.java +133 -0
  81. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/AddAppKeyActivity.java +156 -0
  82. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/AddAppKeysActivity.java +112 -0
  83. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/AddKeysActivity.java +187 -0
  84. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/AddNetKeyActivity.java +136 -0
  85. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/AddNetKeysActivity.java +86 -0
  86. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/AppKeysActivity.java +229 -0
  87. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/EditAppKeyActivity.java +145 -0
  88. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/EditNetKeyActivity.java +152 -0
  89. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/MeshKeyListener.java +22 -0
  90. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/NetKeysActivity.java +242 -0
  91. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/adapter/AddedAppKeyAdapter.java +134 -0
  92. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/adapter/AddedNetKeyAdapter.java +135 -0
  93. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/adapter/ApplicationKeyDiffCallback.java +18 -0
  94. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/adapter/BoundAppKeysAdapter.java +129 -0
  95. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/adapter/ManageAppKeyAdapter.java +133 -0
  96. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/adapter/ManageBoundNetKeyAdapter.java +155 -0
  97. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/adapter/ManageNetKeyAdapter.java +145 -0
  98. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/adapter/NetworkKeyDiffCallback.java +18 -0
  99. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/dialogs/DialogFragmentAddKey.java +116 -0
  100. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/dialogs/DialogFragmentEditAppKey.java +125 -0
  101. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/dialogs/DialogFragmentEditNetKey.java +125 -0
  102. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/keys/dialogs/DialogFragmentKeyName.java +112 -0
  103. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/BaseModelConfigurationActivity.java +661 -0
  104. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/ConfigurationClientActivity.java +27 -0
  105. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/ConfigurationServerActivity.java +526 -0
  106. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/GenericBatteryServerActivity.java +196 -0
  107. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/GenericDefaultTransitionTimeServerActivity.java +292 -0
  108. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/GenericLevelServerActivity.java +250 -0
  109. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/GenericModelConfigurationActivity.java +29 -0
  110. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/GenericOnOffServerActivity.java +238 -0
  111. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/GenericPowerOnOffServerActivity.java +141 -0
  112. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/GenericPowerOnOffSetupServerActivity.java +151 -0
  113. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/HeartbeatPublicationActivity.java +446 -0
  114. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/HeartbeatSubscriptionActivity.java +288 -0
  115. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/ModelConfigurationActivity.java +67 -0
  116. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/NodeConfigurationActivity.java +412 -0
  117. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/NodeDetailsActivity.java +154 -0
  118. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/PowerLevelServerActivity.java +272 -0
  119. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/PowerLevelSetupServerActivity.java +294 -0
  120. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/PropertyServerActivity.java +195 -0
  121. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/PublicationSettingsActivity.java +363 -0
  122. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/SceneServerModelActivity.java +178 -0
  123. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/SceneSetupServerModelActivity.java +152 -0
  124. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/SensorServerActivity.java +129 -0
  125. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/TimeServerActivity.java +259 -0
  126. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/TimeSetupServerActivity.java +558 -0
  127. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/VendorModelActivity.java +240 -0
  128. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/adapter/ElementAdapter.java +184 -0
  129. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/adapter/ElementDiffCallback.java +24 -0
  130. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/adapter/NodeAdapter.java +151 -0
  131. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/adapter/NodeDiffCallback.java +21 -0
  132. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/BottomSheetDetailsDialogFragment.java +110 -0
  133. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/BottomSheetLevelDialogFragment.java +131 -0
  134. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/BottomSheetOnOffDialogFragment.java +124 -0
  135. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/BottomSheetVendorDialogFragment.java +193 -0
  136. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DestinationAddressCallbacks.java +24 -0
  137. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentElementName.java +114 -0
  138. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentHeartbeatDestination.java +370 -0
  139. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentHeartbeatPublishTtl.java +49 -0
  140. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentHeartbeatSource.java +148 -0
  141. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentNetworkTransmitSettings.java +101 -0
  142. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentNodeName.java +113 -0
  143. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentPubRetransmitIntervalSteps.java +143 -0
  144. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentPublicationResolution.java +74 -0
  145. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentPublicationSteps.java +141 -0
  146. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentPublishAddress.java +473 -0
  147. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentPublishTtl.java +45 -0
  148. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentResetNode.java +64 -0
  149. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentRetransmitCount.java +146 -0
  150. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogFragmentTtl.java +147 -0
  151. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/DialogRelayRetransmitSettings.java +112 -0
  152. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/node/dialog/PublicationDestinationCallbacks.java +24 -0
  153. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/AddProvisionerActivity.java +302 -0
  154. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/EditProvisionerActivity.java +300 -0
  155. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/ProvisionersActivity.java +192 -0
  156. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/RangeListener.java +11 -0
  157. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/RangesActivity.java +432 -0
  158. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/adapter/ProvisionerAdapter.java +129 -0
  159. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/adapter/RangeAdapter.java +181 -0
  160. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/adapter/RangeDiffCallback.java +46 -0
  161. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/dialogs/DialogFragmentGroupRange.java +201 -0
  162. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/dialogs/DialogFragmentProvisionerAddress.java +158 -0
  163. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/dialogs/DialogFragmentProvisionerName.java +119 -0
  164. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/dialogs/DialogFragmentSceneRange.java +191 -0
  165. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/dialogs/DialogFragmentTtl.java +131 -0
  166. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/dialogs/DialogFragmentUnassign.java +80 -0
  167. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/provisioners/dialogs/DialogFragmentUnicastRange.java +191 -0
  168. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/SceneCallbacks.java +54 -0
  169. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/ScenesActivity.java +234 -0
  170. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/adapter/ManageScenesAdapter.java +122 -0
  171. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/adapter/SceneDiffCallback.java +18 -0
  172. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/adapter/SceneItemDiffCallback.java +17 -0
  173. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/adapter/SceneUiState.java +83 -0
  174. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/adapter/StoredScenesAdapter.java +120 -0
  175. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/dialog/BottomSheetSceneRecallDialogFragment.java +119 -0
  176. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/dialog/DialogFragmentCreateScene.java +71 -0
  177. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/dialog/DialogFragmentEditScene.java +74 -0
  178. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/scenes/dialog/DialogFragmentScene.java +116 -0
  179. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/utils/AddressArrayDiffCallback.java +18 -0
  180. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/utils/HexKeyListener.java +41 -0
  181. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/utils/NetworkExportUtils.java +171 -0
  182. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/utils/ProvisionerDiffCallback.java +18 -0
  183. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/utils/ProvisionerStates.java +51 -0
  184. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/utils/Utils.java +292 -0
  185. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/AddAppKeyViewModel.java +63 -0
  186. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/AddKeysViewModel.java +51 -0
  187. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/AddNetKeyViewModel.java +60 -0
  188. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/AddProvisionerViewModel.java +30 -0
  189. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/AddedScenesViewModel.java +19 -0
  190. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/AppKeysViewModel.java +19 -0
  191. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/BaseActivity.java +117 -0
  192. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/BaseViewModel.java +358 -0
  193. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/EditAppKeyViewModel.java +85 -0
  194. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/EditNetKeyViewModel.java +67 -0
  195. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/EditProvisionerViewModel.java +29 -0
  196. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ExportNetworkViewModel.java +195 -0
  197. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ExtendedMeshNode.java +54 -0
  198. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/GroupControlsViewModel.java +60 -0
  199. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/HeartbeatViewModel.java +54 -0
  200. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/MeshMessageLiveData.java +22 -0
  201. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/MeshNetworkLiveData.java +154 -0
  202. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ModelConfigurationViewModel.java +106 -0
  203. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/NetKeysViewModel.java +19 -0
  204. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/NodeConfigurationViewModel.java +55 -0
  205. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/NodeDetailsViewModel.java +41 -0
  206. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/NrfMeshRepository.java +1085 -0
  207. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ProvisionerProgress.java +63 -0
  208. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ProvisionersViewModel.java +24 -0
  209. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ProvisioningStatusLiveData.java +156 -0
  210. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ProvisioningViewModel.java +162 -0
  211. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/PublicationViewModel.java +318 -0
  212. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/RangesViewModel.java +30 -0
  213. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ReconnectViewModel.java +41 -0
  214. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ScannerLiveData.java +150 -0
  215. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ScannerRepository.java +256 -0
  216. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ScannerStateLiveData.java +101 -0
  217. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ScannerViewModel.java +58 -0
  218. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/ScenesViewModel.java +19 -0
  219. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/SharedViewModel.java +99 -0
  220. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/SingleLiveEvent.java +84 -0
  221. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/viewmodels/TransactionStatus.java +27 -0
  222. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/widgets/DividerItemDecorator.java +34 -0
  223. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/widgets/ItemTouchHelperAdapter.java +49 -0
  224. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/widgets/RangeView.java +190 -0
  225. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/widgets/RemovableItemTouchHelperCallback.java +171 -0
  226. package/Android-nRF-Mesh-Library/app/src/main/java/no/nordicsemi/android/nrfmesh/widgets/RemovableViewHolder.java +54 -0
  227. package/Android-nRF-Mesh-Library/app/src/main/res/color/bottom_nav_color.xml +5 -0
  228. package/Android-nRF-Mesh-Library/app/src/main/res/color/filter_add_button_states.xml +5 -0
  229. package/Android-nRF-Mesh-Library/app/src/main/res/color/proxy_filter_button_states.xml +6 -0
  230. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/blue_button_states.xml +5 -0
  231. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_account_check.xml +11 -0
  232. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_account_key.xml +12 -0
  233. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_add_white.xml +31 -0
  234. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_alien.xml +12 -0
  235. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_arrow_back.xml +33 -0
  236. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_arrow_collapse_black.xml +11 -0
  237. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_arrow_downward.xml +11 -0
  238. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_arrow_forward.xml +33 -0
  239. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_arrow_upward.xml +11 -0
  240. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_auto_fix_black.xml +33 -0
  241. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_barcode_black.xml +33 -0
  242. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_baseline_folder_open_24.xml +11 -0
  243. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_baseline_not_interested_24.xml +11 -0
  244. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_baseline_palette_24dp.xml +11 -0
  245. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_baseline_palette_48dp.xml +11 -0
  246. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_baseline_save_alt_24.xml +9 -0
  247. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_baseline_sensors_24.xml +11 -0
  248. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_bluetooth_disabled.xml +33 -0
  249. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_bluetooth_searching.xml +33 -0
  250. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_capabilities.xml +11 -0
  251. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_certificate.xml +33 -0
  252. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_chart.xml +11 -0
  253. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_check.xml +5 -0
  254. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_close.xml +5 -0
  255. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_content_copy.xml +11 -0
  256. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_debug_step_over.xml +12 -0
  257. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_delete.xml +33 -0
  258. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_delete_white.xml +31 -0
  259. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_device_bg.xml +31 -0
  260. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_domain_48dp.xml +4 -0
  261. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_domain_black.xml +33 -0
  262. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_domain_nordic_medium_gray.xml +9 -0
  263. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_done_all_black.xml +11 -0
  264. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_done_all_nordic_lake.xml +9 -0
  265. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_done_all_white.xml +9 -0
  266. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_drawing.xml +11 -0
  267. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_edit_black.xml +33 -0
  268. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_edit_white.xml +31 -0
  269. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_error_outline_black.xml +33 -0
  270. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_filter_list_24dp.xml +11 -0
  271. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_folder_key_24dp.xml +11 -0
  272. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_folder_provisioner_24dp.xml +11 -0
  273. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_friend_outline.xml +11 -0
  274. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_heart_beat.xml +11 -0
  275. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_help_outline_24dp.xml +9 -0
  276. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_help_outline_48dp.xml +9 -0
  277. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_index.xml +33 -0
  278. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_info_24dp.xml +11 -0
  279. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_info_outline.xml +33 -0
  280. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_label.xml +11 -0
  281. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_label_outline.xml +11 -0
  282. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_lan_24dp.xml +33 -0
  283. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_lan_48dp.xml +33 -0
  284. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_light_switch_24dp.xml +8 -0
  285. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_light_switch_48dp.xml +8 -0
  286. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_lightbulb_level_24dp.xml +35 -0
  287. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_lightbulb_level_48dp.xml +39 -0
  288. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_lightbulb_level_black_24dp.xml +37 -0
  289. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_lightbulb_outline_24dp.xml +9 -0
  290. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_lightbulb_outline_48dp.xml +5 -0
  291. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_lightbulb_outline_black_24dp.xml +11 -0
  292. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_linear_scale.xml +11 -0
  293. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_location_off.xml +33 -0
  294. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_lock_open_24dp.xml +20 -0
  295. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_mesh_black.xml +9 -0
  296. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_mesh_black_48dp.xml +11 -0
  297. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_mesh_white.xml +9 -0
  298. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_node_circular_bg_primary.xml +28 -0
  299. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_node_identity.xml +11 -0
  300. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_numeric.xml +33 -0
  301. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_oob_lock_outline.xml +12 -0
  302. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_outline_group.xml +19 -0
  303. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_outline_group_24dp.xml +20 -0
  304. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_outline_group_48dp.xml +20 -0
  305. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_outline_group_white_48dp.xml +18 -0
  306. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_outline_palette_24dp.xml +23 -0
  307. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_perm_identity.xml +33 -0
  308. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_proxy.xml +9 -0
  309. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_proxy_black.xml +11 -0
  310. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_publish.xml +33 -0
  311. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_puzzle.xml +11 -0
  312. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_range_48dp.xml +11 -0
  313. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_range_nordic_lake.xml +31 -0
  314. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_range_nordic_light_gray.xml +31 -0
  315. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_range_nordic_medium_gray.xml +31 -0
  316. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_range_nordic_red.xml +31 -0
  317. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_repeat.xml +11 -0
  318. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_reset.xml +11 -0
  319. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_round_call_received_24.xml +11 -0
  320. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_round_expand_less.xml +33 -0
  321. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_round_expand_more.xml +33 -0
  322. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_rounded_corner.xml +33 -0
  323. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_scene.xml +11 -0
  324. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_security.xml +33 -0
  325. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_settings.xml +31 -0
  326. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_settings_power.xml +11 -0
  327. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_shield_key.xml +11 -0
  328. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_shield_provisioner.xml +11 -0
  329. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_signal_0_bar.xml +33 -0
  330. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_signal_1_bar.xml +36 -0
  331. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_signal_2_bar.xml +36 -0
  332. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_signal_3_bar.xml +36 -0
  333. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_signal_4_bar.xml +32 -0
  334. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_signal_bar.xml +39 -0
  335. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_space_bar.xml +11 -0
  336. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_sparkles.xml +12 -0
  337. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_splash_screen.9.png +0 -0
  338. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_subscribe.xml +33 -0
  339. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_time.xml +11 -0
  340. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_timer.xml +33 -0
  341. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_vpn_key_24dp.xml +11 -0
  342. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_vpn_key_48dp.xml +33 -0
  343. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/ic_widgets.xml +11 -0
  344. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/nordic_logo.xml +142 -0
  345. package/Android-nRF-Mesh-Library/app/src/main/res/drawable/red_button_states.xml +5 -0
  346. package/Android-nRF-Mesh-Library/app/src/main/res/drawable-anydpi-v23/ic_splash_screen.xml +110 -0
  347. package/Android-nRF-Mesh-Library/app/src/main/res/drawable-anydpi-v26/ic_launcher_foreground.xml +13 -0
  348. package/Android-nRF-Mesh-Library/app/src/main/res/drawable-anydpi-v31/ic_splash_screen.xml +684 -0
  349. package/Android-nRF-Mesh-Library/app/src/main/res/drawable-xxxhdpi/ic_mesh_feature.png +0 -0
  350. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_add_keys.xml +121 -0
  351. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_config_groups.xml +87 -0
  352. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_edit_key.xml +165 -0
  353. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_edit_provisioner.xml +199 -0
  354. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_export.xml +129 -0
  355. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_heartbeat_publication.xml +568 -0
  356. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_heartbeat_subscription.xml +249 -0
  357. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_keys.xml +103 -0
  358. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_main.xml +112 -0
  359. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_mesh_provisioner.xml +202 -0
  360. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_model_configuration.xml +408 -0
  361. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_net_keys.xml +177 -0
  362. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_node_configuration.xml +507 -0
  363. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_node_details.xml +208 -0
  364. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_provisioners.xml +176 -0
  365. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_publication_settings.xml +534 -0
  366. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_ranges.xml +119 -0
  367. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_reconnect.xml +88 -0
  368. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_scanner.xml +151 -0
  369. package/Android-nRF-Mesh-Library/app/src/main/res/layout/activity_scenes.xml +114 -0
  370. package/Android-nRF-Mesh-Library/app/src/main/res/layout/address_item.xml +88 -0
  371. package/Android-nRF-Mesh-Library/app/src/main/res/layout/address_type_item.xml +40 -0
  372. package/Android-nRF-Mesh-Library/app/src/main/res/layout/checkable_row_item.xml +92 -0
  373. package/Android-nRF-Mesh-Library/app/src/main/res/layout/container_heartbeat_publication.xml +210 -0
  374. package/Android-nRF-Mesh-Library/app/src/main/res/layout/container_heartbeat_subscription.xml +243 -0
  375. package/Android-nRF-Mesh-Library/app/src/main/res/layout/custom_chip.xml +69 -0
  376. package/Android-nRF-Mesh-Library/app/src/main/res/layout/device_item.xml +77 -0
  377. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_address_input.xml +73 -0
  378. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_auth_input.xml +66 -0
  379. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_create_group.xml +99 -0
  380. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_create_scene.xml +97 -0
  381. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_filter_address.xml +99 -0
  382. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_group_subscription.xml +167 -0
  383. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_key_input.xml +74 -0
  384. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_name.xml +59 -0
  385. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_network_transmit_settings.xml +141 -0
  386. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_public_key_input.xml +84 -0
  387. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_publication_parameters.xml +63 -0
  388. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_publish_address.xml +167 -0
  389. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_publish_ttl_input.xml +71 -0
  390. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_range.xml +105 -0
  391. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_relay_settings.xml +172 -0
  392. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_select_oob_type.xml +158 -0
  393. package/Android-nRF-Mesh-Library/app/src/main/res/layout/dialog_fragment_ttl.xml +61 -0
  394. package/Android-nRF-Mesh-Library/app/src/main/res/layout/element_item.xml +115 -0
  395. package/Android-nRF-Mesh-Library/app/src/main/res/layout/export_configuration_layout.xml +177 -0
  396. package/Android-nRF-Mesh-Library/app/src/main/res/layout/fragment_bottom_sheet_dialog.xml +64 -0
  397. package/Android-nRF-Mesh-Library/app/src/main/res/layout/fragment_groups.xml +68 -0
  398. package/Android-nRF-Mesh-Library/app/src/main/res/layout/fragment_network.xml +67 -0
  399. package/Android-nRF-Mesh-Library/app/src/main/res/layout/fragment_proxy_filter.xml +232 -0
  400. package/Android-nRF-Mesh-Library/app/src/main/res/layout/fragment_settings.xml +137 -0
  401. package/Android-nRF-Mesh-Library/app/src/main/res/layout/group_element_item.xml +68 -0
  402. package/Android-nRF-Mesh-Library/app/src/main/res/layout/group_item.xml +99 -0
  403. package/Android-nRF-Mesh-Library/app/src/main/res/layout/group_model_item.xml +61 -0
  404. package/Android-nRF-Mesh-Library/app/src/main/res/layout/group_subscription_item.xml +71 -0
  405. package/Android-nRF-Mesh-Library/app/src/main/res/layout/grouped_app_key_item.xml +65 -0
  406. package/Android-nRF-Mesh-Library/app/src/main/res/layout/grouped_item.xml +140 -0
  407. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_element_count.xml +61 -0
  408. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_input_oob_actions.xml +63 -0
  409. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_input_oob_size.xml +60 -0
  410. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_live_provisioning_status.xml +38 -0
  411. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_app_key_bound.xml +54 -0
  412. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_app_keys.xml +57 -0
  413. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_bluetooth.xml +62 -0
  414. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_bluetooth_permissions.xml +70 -0
  415. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_devices.xml +76 -0
  416. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_groups_configured.xml +56 -0
  417. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_location_permission.xml +70 -0
  418. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_models_configured.xml +56 -0
  419. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_nodes_provisioned.xml +54 -0
  420. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_ranges.xml +56 -0
  421. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_no_scenes.xml +57 -0
  422. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_company_identifier.xml +64 -0
  423. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_crpl.xml +64 -0
  424. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_device_key.xml +64 -0
  425. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_features.xml +64 -0
  426. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_identifier.xml +66 -0
  427. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_name.xml +63 -0
  428. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_product_identifier.xml +65 -0
  429. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_product_version.xml +65 -0
  430. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_prov_timestamp.xml +64 -0
  431. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_security.xml +62 -0
  432. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_node_unicast_address.xml +63 -0
  433. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_output_oob_actions.xml +61 -0
  434. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_output_oob_size.xml +61 -0
  435. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_public_key_type.xml +61 -0
  436. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_range_legend.xml +156 -0
  437. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_static_oob_type.xml +62 -0
  438. package/Android-nRF-Mesh-Library/app/src/main/res/layout/info_supported_algorithms.xml +61 -0
  439. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_capabilities.xml +101 -0
  440. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_config_server_model.xml +631 -0
  441. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_container.xml +82 -0
  442. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_divider.xml +27 -0
  443. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_generic_battery.xml +301 -0
  444. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_generic_default_transition_time.xml +160 -0
  445. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_generic_level.xml +233 -0
  446. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_generic_level_bottom_sheet.xml +182 -0
  447. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_generic_on_off.xml +234 -0
  448. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_generic_on_off_bottom_sheet.xml +178 -0
  449. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_generic_power_on_off.xml +97 -0
  450. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_generic_power_on_off_setup.xml +100 -0
  451. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_group_subscription.xml +52 -0
  452. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_power_level_server.xml +233 -0
  453. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_power_level_setup_server.xml +187 -0
  454. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_properties.xml +52 -0
  455. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_range_container.xml +62 -0
  456. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_recall_scene_bottom_sheet.xml +154 -0
  457. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_scene_server.xml +100 -0
  458. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_scene_setup_server.xml +106 -0
  459. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_sensors.xml +52 -0
  460. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_time_server.xml +457 -0
  461. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_time_setup_server.xml +539 -0
  462. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_vendor_model_bottom_sheet.xml +134 -0
  463. package/Android-nRF-Mesh-Library/app/src/main/res/layout/layout_vendor_model_controls.xml +153 -0
  464. package/Android-nRF-Mesh-Library/app/src/main/res/layout/model_item.xml +59 -0
  465. package/Android-nRF-Mesh-Library/app/src/main/res/layout/network_item.xml +184 -0
  466. package/Android-nRF-Mesh-Library/app/src/main/res/layout/no_groups_layout.xml +20 -0
  467. package/Android-nRF-Mesh-Library/app/src/main/res/layout/oob_type_item.xml +35 -0
  468. package/Android-nRF-Mesh-Library/app/src/main/res/layout/progress_item.xml +57 -0
  469. package/Android-nRF-Mesh-Library/app/src/main/res/layout/range_item.xml +70 -0
  470. package/Android-nRF-Mesh-Library/app/src/main/res/layout/removable_row_item.xml +101 -0
  471. package/Android-nRF-Mesh-Library/app/src/main/res/layout/removable_row_item2.xml +102 -0
  472. package/Android-nRF-Mesh-Library/app/src/main/res/layout/removable_row_item_provisioner.xml +90 -0
  473. package/Android-nRF-Mesh-Library/app/src/main/res/layout-land/activity_ranges.xml +117 -0
  474. package/Android-nRF-Mesh-Library/app/src/main/res/layout-land/info_range_legend.xml +187 -0
  475. package/Android-nRF-Mesh-Library/app/src/main/res/layout-sw600dp/fragment_network.xml +67 -0
  476. package/Android-nRF-Mesh-Library/app/src/main/res/layout-sw600dp/network_item.xml +183 -0
  477. package/Android-nRF-Mesh-Library/app/src/main/res/menu/connect.xml +31 -0
  478. package/Android-nRF-Mesh-Library/app/src/main/res/menu/disconnect.xml +30 -0
  479. package/Android-nRF-Mesh-Library/app/src/main/res/menu/info.xml +32 -0
  480. package/Android-nRF-Mesh-Library/app/src/main/res/menu/menu_apply.xml +31 -0
  481. package/Android-nRF-Mesh-Library/app/src/main/res/menu/menu_bottom_navigation.xml +58 -0
  482. package/Android-nRF-Mesh-Library/app/src/main/res/menu/menu_group_controls_connect.xml +39 -0
  483. package/Android-nRF-Mesh-Library/app/src/main/res/menu/menu_group_controls_disconnect.xml +39 -0
  484. package/Android-nRF-Mesh-Library/app/src/main/res/menu/menu_save.xml +31 -0
  485. package/Android-nRF-Mesh-Library/app/src/main/res/menu/network_settings.xml +38 -0
  486. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +6 -0
  487. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +6 -0
  488. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  489. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-hdpi/ic_launcher_round.png +0 -0
  490. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  491. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-mdpi/ic_launcher_round.png +0 -0
  492. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  493. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png +0 -0
  494. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  495. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png +0 -0
  496. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  497. package/Android-nRF-Mesh-Library/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png +0 -0
  498. package/Android-nRF-Mesh-Library/app/src/main/res/values/colors.xml +80 -0
  499. package/Android-nRF-Mesh-Library/app/src/main/res/values/dimens.xml +46 -0
  500. package/Android-nRF-Mesh-Library/app/src/main/res/values/ic_launcher_background.xml +4 -0
  501. package/Android-nRF-Mesh-Library/app/src/main/res/values/plurals.xml +48 -0
  502. package/Android-nRF-Mesh-Library/app/src/main/res/values/strings.xml +793 -0
  503. package/Android-nRF-Mesh-Library/app/src/main/res/values/styles.xml +109 -0
  504. package/Android-nRF-Mesh-Library/app/src/main/res/values/styles_splashscreen.xml +41 -0
  505. package/Android-nRF-Mesh-Library/app/src/main/res/values-land/dimens.xml +28 -0
  506. package/Android-nRF-Mesh-Library/app/src/main/res/values-night/colors.xml +79 -0
  507. package/Android-nRF-Mesh-Library/app/src/main/res/values-night/styles.xml +17 -0
  508. package/Android-nRF-Mesh-Library/app/src/main/res/values-night-v23/styles_splashscreen.xml +29 -0
  509. package/Android-nRF-Mesh-Library/app/src/main/res/values-v21/styles.xml +32 -0
  510. package/Android-nRF-Mesh-Library/app/src/main/res/values-v23/styles.xml +33 -0
  511. package/Android-nRF-Mesh-Library/app/src/main/res/values-v23/styles_splashscreen.xml +55 -0
  512. package/Android-nRF-Mesh-Library/app/src/test/java/no/nordicsemi/android/nrfmesh/ExampleUnitTest.java +35 -0
  513. package/Android-nRF-Mesh-Library/build.gradle +56 -0
  514. package/Android-nRF-Mesh-Library/fastlane/Appfile +2 -0
  515. package/Android-nRF-Mesh-Library/fastlane/Fastfile +34 -0
  516. package/Android-nRF-Mesh-Library/gradle/git-tag-version.gradle +29 -0
  517. package/Android-nRF-Mesh-Library/gradle/publish-module.gradle +62 -0
  518. package/Android-nRF-Mesh-Library/gradle/publish-root.gradle +22 -0
  519. package/Android-nRF-Mesh-Library/gradle/wrapper/gradle-wrapper.jar +0 -0
  520. package/Android-nRF-Mesh-Library/gradle/wrapper/gradle-wrapper.properties +6 -0
  521. package/Android-nRF-Mesh-Library/gradle.properties +49 -0
  522. package/Android-nRF-Mesh-Library/gradlew +160 -0
  523. package/Android-nRF-Mesh-Library/gradlew.bat +90 -0
  524. package/Android-nRF-Mesh-Library/mesh/build.gradle +89 -0
  525. package/Android-nRF-Mesh-Library/mesh/gradle/wrapper/gradle-wrapper.jar +0 -0
  526. package/Android-nRF-Mesh-Library/mesh/gradle/wrapper/gradle-wrapper.properties +6 -0
  527. package/Android-nRF-Mesh-Library/mesh/gradlew +172 -0
  528. package/Android-nRF-Mesh-Library/mesh/gradlew.bat +84 -0
  529. package/Android-nRF-Mesh-Library/mesh/mesh-proguard-rules.pro +25 -0
  530. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.mesh.MeshNetworkDb/10.json +658 -0
  531. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.mesh.MeshNetworkDb/11.json +666 -0
  532. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.mesh.MeshNetworkDb/12.json +667 -0
  533. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.mesh.MeshNetworkDb/9.json +658 -0
  534. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDatabase/1.json +724 -0
  535. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDb/1.json +645 -0
  536. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDb/2.json +651 -0
  537. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDb/3.json +646 -0
  538. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDb/4.json +664 -0
  539. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDb/5.json +664 -0
  540. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDb/6.json +664 -0
  541. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDb/7.json +658 -0
  542. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDb/8.json +658 -0
  543. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.MeshNetworkDb/9.json +652 -0
  544. package/Android-nRF-Mesh-Library/mesh/schemas/no.nordicsemi.android.meshprovisioner.data.MeshNetworkDatabase/1.json +598 -0
  545. package/Android-nRF-Mesh-Library/mesh/src/main/AndroidManifest.xml +29 -0
  546. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/AddressRange.java +182 -0
  547. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/AllocatedGroupRange.java +116 -0
  548. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/AllocatedGroupRangeDeserializer.java +51 -0
  549. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/AllocatedSceneRange.java +209 -0
  550. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/AllocatedSceneRangeDeserializer.java +50 -0
  551. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/AllocatedUnicastRange.java +113 -0
  552. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/AllocatedUnicastRangeDeserializer.java +51 -0
  553. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/AppKeyDeserializer.java +66 -0
  554. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/ApplicationKey.java +137 -0
  555. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/ApplicationKeysConfig.java +48 -0
  556. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/BaseMeshNetwork.java +1550 -0
  557. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/ExportConfig.java +41 -0
  558. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/Features.java +260 -0
  559. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/Group.java +391 -0
  560. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/GroupsConfig.java +63 -0
  561. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/ImmutableSparseIntArray.java +129 -0
  562. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/ImportExportUtils.java +412 -0
  563. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/InternalMeshManagerCallbacks.java +36 -0
  564. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/InternalProvisioningCallbacks.java +19 -0
  565. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/InternalTransportCallbacks.java +105 -0
  566. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/IvIndex.java +130 -0
  567. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/LoadNetworkCallbacks.java +21 -0
  568. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshBeacon.java +37 -0
  569. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshKey.java +195 -0
  570. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshManagerApi.java +1386 -0
  571. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshManagerCallbacks.java +95 -0
  572. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshMessageHandler.java +63 -0
  573. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshMngrApi.java +317 -0
  574. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshNetwork.java +945 -0
  575. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshNetworkCallbacks.java +49 -0
  576. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshNetworkDb.java +1039 -0
  577. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshNetworkDeserializer.java +593 -0
  578. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshProvisioningHandler.java +572 -0
  579. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshProvisioningStatusCallbacks.java +62 -0
  580. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshStatusCallbacks.java +112 -0
  581. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshTAITime.java +58 -0
  582. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/MeshTypeConverters.java +166 -0
  583. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/NetKeyDeserializer.java +83 -0
  584. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/NetworkKey.java +360 -0
  585. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/NetworkKeysConfig.java +54 -0
  586. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/NetworkSettings.java +43 -0
  587. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/NodeKey.java +96 -0
  588. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/NodesConfig.java +69 -0
  589. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/Provisioner.java +538 -0
  590. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/ProvisionersConfig.java +54 -0
  591. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/ProvisioningSettings.java +284 -0
  592. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/Range.java +205 -0
  593. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/Retransmit.java +32 -0
  594. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/Scene.java +196 -0
  595. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/ScenesConfig.java +59 -0
  596. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/SecureNetworkBeacon.java +212 -0
  597. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/UnprovisionedBeacon.java +94 -0
  598. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/control/BlockAcknowledgementMessage.java +130 -0
  599. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/control/HeartbeatMessage.java +52 -0
  600. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/control/TransportControlMessage.java +47 -0
  601. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ApplicationKeyDao.java +24 -0
  602. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ApplicationKeys.java +18 -0
  603. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ApplicationKeysDao.java +29 -0
  604. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/GenericTransitionTime.java +127 -0
  605. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/GlobalAltitude.java +146 -0
  606. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/GlobalLatitude.java +133 -0
  607. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/GlobalLongitude.java +133 -0
  608. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/GroupDao.java +23 -0
  609. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/Groups.java +18 -0
  610. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/GroupsDao.java +30 -0
  611. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/MeshNetworkDao.java +50 -0
  612. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/NetworkKeyDao.java +21 -0
  613. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/NetworkKeys.java +18 -0
  614. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/NetworkKeysDao.java +31 -0
  615. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/OnPowerUpState.java +33 -0
  616. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ProvisionedMeshNodeDao.java +25 -0
  617. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ProvisionedMeshNodes.java +18 -0
  618. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ProvisionedMeshNodesDao.java +33 -0
  619. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ProvisionerDao.java +42 -0
  620. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/Provisioners.java +18 -0
  621. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ProvisionersDao.java +29 -0
  622. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/SceneDao.java +23 -0
  623. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/Scenes.java +18 -0
  624. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ScenesDao.java +30 -0
  625. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/ScheduleEntry.java +444 -0
  626. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/data/TimeZoneOffset.java +64 -0
  627. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/logger/MeshLogger.java +70 -0
  628. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/BlobTransferClient.java +64 -0
  629. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/BlobTransferServer.java +64 -0
  630. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/ConfigurationClientModel.java +65 -0
  631. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/ConfigurationServerModel.java +111 -0
  632. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/FirmwareDistributionClient.java +64 -0
  633. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/FirmwareDistributionServer.java +64 -0
  634. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/FirmwareUpdateClient.java +64 -0
  635. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/FirmwareUpdateServer.java +64 -0
  636. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericAdminPropertyServer.java +64 -0
  637. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericBatteryClient.java +64 -0
  638. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericBatteryServer.java +64 -0
  639. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericClientPropertyServer.java +63 -0
  640. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericDefaultTransitionTimeClient.java +64 -0
  641. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericDefaultTransitionTimeServer.java +65 -0
  642. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericLevelClientModel.java +66 -0
  643. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericLevelServerModel.java +66 -0
  644. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericLocationClient.java +64 -0
  645. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericLocationServer.java +64 -0
  646. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericLocationSetupServer.java +64 -0
  647. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericManufacturerPropertyServer.java +64 -0
  648. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericOnOffClientModel.java +66 -0
  649. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericOnOffServerModel.java +66 -0
  650. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericPowerLevelClient.java +64 -0
  651. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericPowerLevelServer.java +64 -0
  652. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericPowerLevelSetupServer.java +64 -0
  653. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericPowerOnOffClient.java +64 -0
  654. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericPowerOnOffServer.java +64 -0
  655. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericPowerOnOffSetupServer.java +64 -0
  656. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericPropertyClient.java +64 -0
  657. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/GenericUserPropertyServer.java +64 -0
  658. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/HealthClientModel.java +66 -0
  659. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/HealthServerModel.java +66 -0
  660. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LargeCompositionDataClient.java +64 -0
  661. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LargeCompositionDataServer.java +64 -0
  662. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightCtlClient.java +64 -0
  663. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightCtlServer.java +65 -0
  664. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightCtlSetupServer.java +64 -0
  665. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightCtlTemperatureServer.java +64 -0
  666. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightHslClient.java +64 -0
  667. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightHslHueServer.java +64 -0
  668. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightHslSaturationServer.java +64 -0
  669. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightHslServer.java +64 -0
  670. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightHslSetupServer.java +64 -0
  671. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightLcClient.java +64 -0
  672. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightLcServer.java +64 -0
  673. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightLcSetupServer.java +64 -0
  674. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightLightnessClient.java +64 -0
  675. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightLightnessServer.java +64 -0
  676. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightLightnessSetupServer.java +65 -0
  677. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightXylClient.java +64 -0
  678. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightXylServer.java +64 -0
  679. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/LightXylSetupServer.java +64 -0
  680. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/MeshPrivateBeaconClient.java +64 -0
  681. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/MeshPrivateBeaconServer.java +64 -0
  682. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/OnDemandPrivateProxyClient.java +64 -0
  683. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/OnDemandPrivateProxyServer.java +64 -0
  684. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/OpcodesAggregatorClient.java +64 -0
  685. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/OpcodesAggregatorServer.java +64 -0
  686. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/RemoteProvisioningClient.java +64 -0
  687. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/RemoteProvisioningServer.java +64 -0
  688. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SarConfigurationClient.java +64 -0
  689. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SarConfigurationServer.java +64 -0
  690. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SceneClient.java +65 -0
  691. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SceneServer.java +77 -0
  692. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SceneSetupServer.java +64 -0
  693. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SchedulerClient.java +65 -0
  694. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SchedulerServer.java +64 -0
  695. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SchedulerSetupServer.java +64 -0
  696. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SensorClient.java +64 -0
  697. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SensorServer.java +64 -0
  698. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SensorSetupServer.java +64 -0
  699. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SigModel.java +45 -0
  700. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SigModelParser.java +282 -0
  701. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SolicitationPduRplConfigurationClient.java +64 -0
  702. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/SolicitationPduRplConfigurationServer.java +64 -0
  703. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/TimeClient.java +64 -0
  704. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/TimeServer.java +64 -0
  705. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/TimeSetupServer.java +64 -0
  706. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/UnknownModel.java +65 -0
  707. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/models/VendorModel.java +97 -0
  708. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/opcodes/ApplicationMessageOpCodes.java +627 -0
  709. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/opcodes/ConfigMessageOpCodes.java +382 -0
  710. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/opcodes/ProxyConfigMessageOpCodes.java +47 -0
  711. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/opcodes/TransportLayerOpCodes.java +35 -0
  712. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningCapabilities.java +289 -0
  713. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningCapabilitiesState.java +78 -0
  714. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningCompleteState.java +59 -0
  715. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningConfirmationState.java +166 -0
  716. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningDataState.java +182 -0
  717. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningFailedState.java +120 -0
  718. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningInputCompleteState.java +74 -0
  719. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningInviteState.java +90 -0
  720. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningPublicKeyState.java +198 -0
  721. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningRandomConfirmationState.java +94 -0
  722. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningStartState.java +148 -0
  723. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/ProvisioningState.java +115 -0
  724. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/RFU.java +27 -0
  725. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/UnprovisionedBaseMeshNode.java +256 -0
  726. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/provisionerstates/UnprovisionedMeshNode.java +214 -0
  727. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Bool.java +34 -0
  728. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Coefficient.java +46 -0
  729. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Count.java +71 -0
  730. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/DateUtc.java +49 -0
  731. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/DeviceProperty.java +1070 -0
  732. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/DevicePropertyCharacteristic.java +55 -0
  733. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/ElectricCurrent.java +52 -0
  734. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Energy32.java +54 -0
  735. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/FixedString.java +66 -0
  736. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Humidity.java +45 -0
  737. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Illuminance.java +43 -0
  738. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/MarshalledPropertyId.java +92 -0
  739. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/MarshalledSensorData.java +78 -0
  740. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/PerceivedLightness.java +51 -0
  741. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Percentage8.java +51 -0
  742. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Power.java +50 -0
  743. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Pressure.java +43 -0
  744. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/SensorDescriptor.java +96 -0
  745. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/SensorSamplingFunction.java +85 -0
  746. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/SensorSettingAccess.java +46 -0
  747. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/StatusTriggerDelta.java +70 -0
  748. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/StatusTriggerType.java +46 -0
  749. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Temperature.java +85 -0
  750. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/TimeHour24.java +44 -0
  751. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/TimeMillisecond24.java +49 -0
  752. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/TimeSecond.java +82 -0
  753. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/UnknownCharacteristic.java +42 -0
  754. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/sensorutils/Voltage.java +52 -0
  755. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/AccessLayer.java +141 -0
  756. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/AccessMessage.java +118 -0
  757. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ApplicationMessage.java +55 -0
  758. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ApplicationMessageState.java +95 -0
  759. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ApplicationStatusMessage.java +38 -0
  760. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/BaseMeshMessageHandler.java +344 -0
  761. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigAppKeyAdd.java +105 -0
  762. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigAppKeyDelete.java +103 -0
  763. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigAppKeyGet.java +63 -0
  764. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigAppKeyList.java +122 -0
  765. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigAppKeyStatus.java +127 -0
  766. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigAppKeyUpdate.java +88 -0
  767. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigBeaconGet.java +30 -0
  768. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigBeaconSet.java +34 -0
  769. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigBeaconStatus.java +48 -0
  770. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigCompositionDataGet.java +57 -0
  771. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigCompositionDataStatus.java +325 -0
  772. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigDefaultTtlGet.java +31 -0
  773. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigDefaultTtlSet.java +41 -0
  774. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigDefaultTtlStatus.java +46 -0
  775. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigFriendGet.java +30 -0
  776. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigFriendSet.java +35 -0
  777. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigFriendStatus.java +47 -0
  778. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigGattProxyGet.java +54 -0
  779. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigGattProxySet.java +48 -0
  780. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigGattProxyStatus.java +102 -0
  781. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigHeartbeatPublicationGet.java +50 -0
  782. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigHeartbeatPublicationSet.java +123 -0
  783. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigHeartbeatPublicationStatus.java +120 -0
  784. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigHeartbeatSubscriptionGet.java +50 -0
  785. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigHeartbeatSubscriptionSet.java +97 -0
  786. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigHeartbeatSubscriptionStatus.java +117 -0
  787. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigKeyRefreshPhaseGet.java +63 -0
  788. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigKeyRefreshPhaseSet.java +67 -0
  789. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigKeyRefreshPhaseStatus.java +129 -0
  790. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigLowPowerNodePollTimeoutGet.java +42 -0
  791. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigLowPowerNodePollTimeoutStatus.java +55 -0
  792. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigMessage.java +24 -0
  793. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigMessageState.java +80 -0
  794. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelAppBind.java +123 -0
  795. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelAppStatus.java +153 -0
  796. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelAppUnbind.java +124 -0
  797. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelPublicationGet.java +113 -0
  798. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelPublicationSet.java +261 -0
  799. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelPublicationStatus.java +234 -0
  800. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelPublicationVirtualAddressSet.java +242 -0
  801. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelSubscriptionAdd.java +103 -0
  802. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelSubscriptionDelete.java +109 -0
  803. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelSubscriptionDeleteAll.java +91 -0
  804. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelSubscriptionOverwrite.java +104 -0
  805. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelSubscriptionStatus.java +148 -0
  806. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelSubscriptionVirtualAddressAdd.java +110 -0
  807. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelSubscriptionVirtualAddressDelete.java +110 -0
  808. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigModelSubscriptionVirtualAddressOverwrite.java +111 -0
  809. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNetKeyAdd.java +77 -0
  810. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNetKeyDelete.java +76 -0
  811. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNetKeyGet.java +52 -0
  812. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNetKeyList.java +107 -0
  813. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNetKeyStatus.java +115 -0
  814. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNetKeyUpdate.java +77 -0
  815. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNetworkTransmitGet.java +53 -0
  816. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNetworkTransmitSet.java +88 -0
  817. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNetworkTransmitStatus.java +110 -0
  818. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNodeIdentityGet.java +36 -0
  819. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNodeIdentitySet.java +44 -0
  820. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNodeIdentityStatus.java +71 -0
  821. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNodeReset.java +33 -0
  822. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigNodeResetStatus.java +85 -0
  823. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigRelayGet.java +53 -0
  824. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigRelaySet.java +100 -0
  825. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigRelayStatus.java +131 -0
  826. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigSigModelAppGet.java +98 -0
  827. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigSigModelAppList.java +139 -0
  828. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigSigModelSubscriptionGet.java +75 -0
  829. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigSigModelSubscriptionList.java +147 -0
  830. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigStatusMessage.java +175 -0
  831. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigVendorModelAppGet.java +102 -0
  832. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigVendorModelAppList.java +142 -0
  833. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigVendorModelSubscriptionGet.java +80 -0
  834. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ConfigVendorModelSubscriptionList.java +147 -0
  835. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ControlMessage.java +101 -0
  836. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/DefaultNoOperationMessageState.java +718 -0
  837. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/Element.java +218 -0
  838. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ElementDbMigrator.java +58 -0
  839. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericAdminPropertySet.java +44 -0
  840. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericBatteryGet.java +33 -0
  841. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericBatteryStatus.java +238 -0
  842. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericDefaultTransitionTimeGet.java +36 -0
  843. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericDefaultTransitionTimeSet.java +45 -0
  844. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericDefaultTransitionTimeStatus.java +85 -0
  845. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericDeltaSet.java +98 -0
  846. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericLevelGet.java +38 -0
  847. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericLevelSet.java +100 -0
  848. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericLevelSetUnacknowledged.java +100 -0
  849. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericLevelStatus.java +144 -0
  850. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericLocationGlobalGet.java +41 -0
  851. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericLocationGlobalSet.java +97 -0
  852. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericLocationGlobalSetUnacknowledged.java +97 -0
  853. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericLocationGlobalStatus.java +113 -0
  854. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericManufacturerPropertiesGet.java +35 -0
  855. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericManufacturerPropertiesStatus.java +70 -0
  856. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericManufacturerPropertyGet.java +46 -0
  857. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericManufacturerPropertySet.java +41 -0
  858. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericOnOffGet.java +37 -0
  859. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericOnOffSet.java +98 -0
  860. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericOnOffSetUnacknowledged.java +98 -0
  861. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericOnOffStatus.java +146 -0
  862. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericOnPowerUpGet.java +27 -0
  863. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericOnPowerUpSet.java +37 -0
  864. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericOnPowerUpStatus.java +84 -0
  865. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerDefaultGet.java +37 -0
  866. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerDefaultSet.java +53 -0
  867. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerDefaultSetUnacknowledged.java +53 -0
  868. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerDefaultStatus.java +103 -0
  869. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerLastGet.java +37 -0
  870. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerLastStatus.java +103 -0
  871. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerLevelGet.java +37 -0
  872. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerLevelSet.java +98 -0
  873. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerLevelSetUnacknowledged.java +100 -0
  874. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerLevelStatus.java +162 -0
  875. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerRangeGet.java +37 -0
  876. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerRangeSet.java +62 -0
  877. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerRangeSetUnacknowledged.java +62 -0
  878. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPowerRangeStatus.java +126 -0
  879. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPropertyGet.java +46 -0
  880. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericPropertyStatus.java +78 -0
  881. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/GenericUserPropertySet.java +41 -0
  882. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/HealthCurrentStatus.java +75 -0
  883. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/HealthFaultClear.java +36 -0
  884. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/HealthFaultGet.java +36 -0
  885. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/HealthFaultStatus.java +75 -0
  886. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/InternalElementListDeserializer.java +111 -0
  887. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/InternalMeshModelDeserializer.java +312 -0
  888. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/InternalMeshMsgHandlerCallbacks.java +37 -0
  889. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightCtlGet.java +38 -0
  890. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightCtlSet.java +124 -0
  891. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightCtlSetUnacknowledged.java +124 -0
  892. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightCtlStatus.java +169 -0
  893. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightCtlTemperatureRangeGet.java +38 -0
  894. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightCtlTemperatureRangeSet.java +65 -0
  895. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightCtlTemperatureRangeSetUnacknowledged.java +65 -0
  896. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightCtlTemperatureRangeStatus.java +105 -0
  897. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightHslGet.java +38 -0
  898. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightHslSet.java +126 -0
  899. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightHslSetUnacknowledged.java +126 -0
  900. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightHslStatus.java +157 -0
  901. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCLightOnOffGet.java +38 -0
  902. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCLightOnOffSet.java +94 -0
  903. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCLightOnOffSetUnacknowledged.java +94 -0
  904. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCLightOnOffStatus.java +150 -0
  905. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCModeGet.java +38 -0
  906. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCModeSet.java +42 -0
  907. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCModeSetUnacknowledged.java +42 -0
  908. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCModeStatus.java +92 -0
  909. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCOccupancyModeGet.java +38 -0
  910. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCOccupancyModeSet.java +42 -0
  911. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCOccupancyModeSetUnacknowledged.java +42 -0
  912. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCOccupancyModeStatus.java +92 -0
  913. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCPropertyGet.java +44 -0
  914. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCPropertySet.java +47 -0
  915. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCPropertySetUnacknowledged.java +49 -0
  916. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLCPropertyStatus.java +112 -0
  917. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLightnessGet.java +38 -0
  918. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLightnessSet.java +103 -0
  919. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLightnessSetUnacknowledged.java +104 -0
  920. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LightLightnessStatus.java +145 -0
  921. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LowerTransportLayer.java +837 -0
  922. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/LowerTransportLayerCallbacks.java +40 -0
  923. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/MeshMessage.java +98 -0
  924. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/MeshMessageHandlerApi.java +21 -0
  925. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/MeshMessageState.java +159 -0
  926. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/MeshModel.java +311 -0
  927. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/MeshModelListDeserializer.java +265 -0
  928. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/MeshStatusMessage.java +38 -0
  929. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/MeshTransport.java +326 -0
  930. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/Message.java +276 -0
  931. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/NetworkLayer.java +649 -0
  932. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/NetworkLayerCallbacks.java +61 -0
  933. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/NodeDeserializer.java +453 -0
  934. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ProvisionedBaseMeshNode.java +362 -0
  935. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ProvisionedMeshNode.java +594 -0
  936. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ProxyConfigAddAddressToFilter.java +58 -0
  937. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ProxyConfigFilterStatus.java +59 -0
  938. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ProxyConfigMessage.java +31 -0
  939. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ProxyConfigMessageState.java +80 -0
  940. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ProxyConfigRemoveAddressFromFilter.java +57 -0
  941. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ProxyConfigSetFilterType.java +38 -0
  942. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/ProxyConfigStatusMessage.java +29 -0
  943. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/PublicationSettings.java +441 -0
  944. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneDelete.java +59 -0
  945. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneDeleteUnacknowledged.java +59 -0
  946. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneGet.java +36 -0
  947. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneRecall.java +98 -0
  948. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneRecallUnacknowledged.java +98 -0
  949. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneRegisterGet.java +37 -0
  950. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneRegisterStatus.java +138 -0
  951. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneStatus.java +166 -0
  952. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneStatuses.java +18 -0
  953. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneStore.java +55 -0
  954. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SceneStoreUnacknowledged.java +55 -0
  955. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SchedulerActionGet.java +50 -0
  956. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SchedulerActionSet.java +49 -0
  957. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SchedulerActionStatus.java +98 -0
  958. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SchedulerGet.java +34 -0
  959. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SchedulerStatus.java +78 -0
  960. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorCadenceGet.java +47 -0
  961. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorCadenceSet.java +43 -0
  962. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorCadenceSetUnacknowledged.java +43 -0
  963. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorCadenceStatus.java +94 -0
  964. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorColumnGet.java +52 -0
  965. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorColumnStatus.java +106 -0
  966. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorDescriptorGet.java +48 -0
  967. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorDescriptorStatus.java +149 -0
  968. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorGet.java +48 -0
  969. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorMessage.java +165 -0
  970. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorSeriesGet.java +77 -0
  971. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorSeriesStatus.java +106 -0
  972. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorSettingGet.java +67 -0
  973. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorSettingSet.java +74 -0
  974. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorSettingSetUnacknowledged.java +57 -0
  975. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorSettingStatus.java +127 -0
  976. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorSettingsGet.java +50 -0
  977. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorSettingsStatus.java +112 -0
  978. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/SensorStatus.java +127 -0
  979. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/TimeGet.java +25 -0
  980. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/TimeRoleGet.java +25 -0
  981. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/TimeRoleSet.java +43 -0
  982. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/TimeRoleStatus.java +93 -0
  983. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/TimeSet.java +64 -0
  984. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/TimeStatus.java +125 -0
  985. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/TimeZoneGet.java +40 -0
  986. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/TimeZoneSet.java +78 -0
  987. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/TimeZoneStatus.java +109 -0
  988. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/UpperTransportLayer.java +406 -0
  989. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/UpperTransportLayerCallbacks.java +68 -0
  990. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/VendorModelMessageAcked.java +66 -0
  991. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/VendorModelMessageAckedState.java +91 -0
  992. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/VendorModelMessageStatus.java +104 -0
  993. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/VendorModelMessageUnacked.java +66 -0
  994. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/transport/VendorModelMessageUnackedState.java +88 -0
  995. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/AddressArray.java +78 -0
  996. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/AddressType.java +88 -0
  997. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/AlgorithmInformationParser.java +39 -0
  998. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/AlgorithmType.java +93 -0
  999. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/AllocatedGroupRangeDbMigrator.java +42 -0
  1000. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/AllocatedUnicastRangeDbMigrator.java +42 -0
  1001. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/ArrayUtils.java +13 -0
  1002. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/AuthenticationOOBMethods.java +69 -0
  1003. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/BitReader.java +160 -0
  1004. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/BitWriter.java +103 -0
  1005. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/CompanyIdentifiers.java +3635 -0
  1006. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/CompositionDataParser.java +57 -0
  1007. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/ConfigModelPublicationSetParams.java +112 -0
  1008. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/DeviceFeatureUtils.java +102 -0
  1009. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/ExtendedInvalidCipherTextException.java +47 -0
  1010. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/Heartbeat.java +142 -0
  1011. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/HeartbeatPublication.java +162 -0
  1012. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/HeartbeatSubscription.java +153 -0
  1013. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/InputOOBAction.java +179 -0
  1014. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/InterfaceAdapter.java +76 -0
  1015. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/MeshAddress.java +396 -0
  1016. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/MeshParserUtils.java +821 -0
  1017. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/NetworkTransmitSettings.java +150 -0
  1018. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/OutputOOBAction.java +176 -0
  1019. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/ParseKeys.java +48 -0
  1020. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/ParsePublicKeyInformation.java +40 -0
  1021. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/ParseStaticOutputOOBInformation.java +40 -0
  1022. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/ProxyFilter.java +126 -0
  1023. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/ProxyFilterType.java +91 -0
  1024. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/PublicKeyOOB.java +57 -0
  1025. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/RelaySettings.java +136 -0
  1026. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/RemainingHeartbeatSubscriptionPeriod.java +5 -0
  1027. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/SecureUtils.java +533 -0
  1028. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/SensorFormat.java +46 -0
  1029. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/SparseIntArrayParcelable.java +57 -0
  1030. package/Android-nRF-Mesh-Library/mesh/src/main/java/no/nordicsemi/android/mesh/utils/StaticOOBType.java +36 -0
  1031. package/Android-nRF-Mesh-Library/mesh/src/main/res/values/strings.xml +49 -0
  1032. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/AddressRangeTest.java +43 -0
  1033. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/SecureNetworkBeaconTest.java +241 -0
  1034. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/data/GenericTransitionTimeTest.java +108 -0
  1035. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/sensorutils/DevicePropertyCharacteristicTest.java +311 -0
  1036. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/AccessLayerTests.java +130 -0
  1037. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/ConfigMessageTests.java +116 -0
  1038. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/EncryptionTests.java +177 -0
  1039. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/GenericLocationClientTests.java +214 -0
  1040. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/LowerTransportLayerTests.java +156 -0
  1041. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/NetworkLayerTests.java +252 -0
  1042. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/SchedulerActionGetTest.java +22 -0
  1043. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/SchedulerActionSetTest.java +26 -0
  1044. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/SchedulerActionStatusTest.java +48 -0
  1045. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/SchedulerGetTest.java +21 -0
  1046. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/SchedulerStatusTest.java +34 -0
  1047. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/TimeZoneTests.java +115 -0
  1048. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/UpperTransportLayerTests.java +83 -0
  1049. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/ActionSpecTest.java +18 -0
  1050. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/DayOfWeekSpecTest.java +31 -0
  1051. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/DaySpecTest.java +22 -0
  1052. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/EntrySpecTest.java +82 -0
  1053. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/HourSpecTest.java +23 -0
  1054. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/MinuteSpecTest.java +25 -0
  1055. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/MonthSpecTest.java +38 -0
  1056. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/SceneSpecTest.java +16 -0
  1057. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/SecondSpecTest.java +25 -0
  1058. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/transport/schedulerEntry/YearSpecTest.java +32 -0
  1059. package/Android-nRF-Mesh-Library/mesh/src/test/java/no/nordicsemi/android/mesh/utils/MeshParserUtilsTest.java +24 -0
  1060. package/Android-nRF-Mesh-Library/moustache/README.mo +179 -0
  1061. package/Android-nRF-Mesh-Library/moustache/mo +1106 -0
  1062. package/Android-nRF-Mesh-Library/moustache/split.sh +8 -0
  1063. package/Android-nRF-Mesh-Library/settings.gradle +24 -0
  1064. package/AutorunifyCapacitorNrfmesh.podspec +17 -0
  1065. package/Package.swift +28 -0
  1066. package/README.md +1593 -0
  1067. package/android/build.gradle +74 -0
  1068. package/android/settings.gradle +5 -0
  1069. package/android/src/main/AndroidManifest.xml +21 -0
  1070. package/android/src/main/java/com/autorunify/capacitor/nrfmesh/AsyncManager.kt +346 -0
  1071. package/android/src/main/java/com/autorunify/capacitor/nrfmesh/BleManager.kt +423 -0
  1072. package/android/src/main/java/com/autorunify/capacitor/nrfmesh/FormatManager.kt +446 -0
  1073. package/android/src/main/java/com/autorunify/capacitor/nrfmesh/MeshDevice.kt +49 -0
  1074. package/android/src/main/java/com/autorunify/capacitor/nrfmesh/MeshManager.kt +608 -0
  1075. package/android/src/main/java/com/autorunify/capacitor/nrfmesh/NrfMeshPlugin.kt +942 -0
  1076. package/android/src/main/java/com/autorunify/capacitor/nrfmesh/SensorWrapper.kt +173 -0
  1077. package/android/src/main/java/com/autorunify/capacitor/nrfmesh/Utils.kt +35 -0
  1078. package/android/src/main/res/.gitkeep +0 -0
  1079. package/dist/docs.json +5918 -0
  1080. package/dist/esm/definitions.d.ts +343 -0
  1081. package/dist/esm/definitions.js +2 -0
  1082. package/dist/esm/definitions.js.map +1 -0
  1083. package/dist/esm/index.d.ts +5 -0
  1084. package/dist/esm/index.js +8 -0
  1085. package/dist/esm/index.js.map +1 -0
  1086. package/dist/esm/sensor.d.ts +185 -0
  1087. package/dist/esm/sensor.js +859 -0
  1088. package/dist/esm/sensor.js.map +1 -0
  1089. package/dist/esm/web.d.ts +26 -0
  1090. package/dist/esm/web.js +27 -0
  1091. package/dist/esm/web.js.map +1 -0
  1092. package/dist/plugin.cjs.js +933 -0
  1093. package/dist/plugin.cjs.js.map +1 -0
  1094. package/dist/plugin.js +936 -0
  1095. package/dist/plugin.js.map +1 -0
  1096. package/ios/Sources/NrfMeshPlugin/NrfMesh.swift +8 -0
  1097. package/ios/Sources/NrfMeshPlugin/NrfMeshPlugin.swift +23 -0
  1098. package/ios/Tests/NrfMeshPluginTests/NrfMeshTests.swift +15 -0
  1099. package/package.json +82 -0
@@ -0,0 +1,1386 @@
1
+ /*
2
+ * Copyright (c) 2018, Nordic Semiconductor
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6
+ *
7
+ * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8
+ *
9
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
10
+ * documentation and/or other materials provided with the distribution.
11
+ *
12
+ * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this
13
+ * software without specific prior written permission.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
17
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
18
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
19
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
20
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21
+ */
22
+
23
+ package no.nordicsemi.android.mesh;
24
+
25
+ import android.content.Context;
26
+ import android.net.Uri;
27
+ import android.os.Handler;
28
+ import android.os.Looper;
29
+
30
+ import java.nio.ByteBuffer;
31
+ import java.nio.ByteOrder;
32
+ import java.security.Security;
33
+ import java.util.ArrayList;
34
+ import java.util.Arrays;
35
+ import java.util.Calendar;
36
+ import java.util.Iterator;
37
+ import java.util.List;
38
+ import java.util.Locale;
39
+ import java.util.Map.Entry;
40
+ import java.util.UUID;
41
+
42
+ import androidx.annotation.NonNull;
43
+ import androidx.annotation.Nullable;
44
+ import no.nordicsemi.android.mesh.data.ApplicationKeyDao;
45
+ import no.nordicsemi.android.mesh.data.ApplicationKeysDao;
46
+ import no.nordicsemi.android.mesh.data.GroupDao;
47
+ import no.nordicsemi.android.mesh.data.GroupsDao;
48
+ import no.nordicsemi.android.mesh.data.MeshNetworkDao;
49
+ import no.nordicsemi.android.mesh.data.NetworkKeyDao;
50
+ import no.nordicsemi.android.mesh.data.NetworkKeysDao;
51
+ import no.nordicsemi.android.mesh.data.ProvisionedMeshNodeDao;
52
+ import no.nordicsemi.android.mesh.data.ProvisionedMeshNodesDao;
53
+ import no.nordicsemi.android.mesh.data.ProvisionerDao;
54
+ import no.nordicsemi.android.mesh.data.ProvisionersDao;
55
+ import no.nordicsemi.android.mesh.data.SceneDao;
56
+ import no.nordicsemi.android.mesh.data.ScenesDao;
57
+ import no.nordicsemi.android.mesh.logger.MeshLogger;
58
+ import no.nordicsemi.android.mesh.provisionerstates.UnprovisionedMeshNode;
59
+ import no.nordicsemi.android.mesh.transport.MeshMessage;
60
+ import no.nordicsemi.android.mesh.transport.NetworkLayerCallbacks;
61
+ import no.nordicsemi.android.mesh.transport.ProvisionedMeshNode;
62
+ import no.nordicsemi.android.mesh.transport.UpperTransportLayerCallbacks;
63
+ import no.nordicsemi.android.mesh.utils.ExtendedInvalidCipherTextException;
64
+ import no.nordicsemi.android.mesh.utils.InputOOBAction;
65
+ import no.nordicsemi.android.mesh.utils.MeshAddress;
66
+ import no.nordicsemi.android.mesh.utils.MeshParserUtils;
67
+ import no.nordicsemi.android.mesh.utils.OutputOOBAction;
68
+ import no.nordicsemi.android.mesh.utils.ProxyFilter;
69
+ import no.nordicsemi.android.mesh.utils.SecureUtils;
70
+
71
+
72
+ @SuppressWarnings("WeakerAccess")
73
+ public class MeshManagerApi implements MeshMngrApi {
74
+
75
+ private static final String TAG = MeshManagerApi.class.getSimpleName();
76
+ public final static UUID MESH_PROVISIONING_UUID = UUID.fromString("00001827-0000-1000-8000-00805F9B34FB");
77
+ public final static UUID MESH_PROXY_UUID = UUID.fromString("00001828-0000-1000-8000-00805F9B34FB");
78
+ public static final byte PDU_TYPE_PROVISIONING = 0x03;
79
+
80
+ //PDU types
81
+ public static final byte PDU_TYPE_NETWORK = 0x00;
82
+ public static final byte PDU_TYPE_MESH_BEACON = 0x01;
83
+ public static final byte PDU_TYPE_PROXY_CONFIGURATION = 0x02;
84
+ //GATT level segmentation
85
+ private static final byte GATT_SAR_COMPLETE = 0b00;
86
+ private static final byte GATT_SAR_START = 0b01;
87
+ private static final byte GATT_SAR_CONTINUATION = 0b10;
88
+ private static final byte GATT_SAR_END = 0b11;
89
+ //GATT level segmentation mask
90
+ private static final int GATT_SAR_MASK = 0xC0;
91
+ private static final int GATT_SAR_UNMASK = 0x3F;
92
+ private static final int SAR_BIT_OFFSET = 6;
93
+
94
+ private static final long PROXY_SAR_TRANSFER_TIME_OUT = 20 * 1000; // According to the spec the proxy protocol must contain an SAR timeout of 20 seconds.
95
+ private final static int HASH_RANDOM_NUMBER_LENGTH = 64; // Length of the random number required to calculate the hash containing the node id in bits
96
+ private static final int ADVERTISEMENT_TYPE_NETWORK_ID = 0x00;
97
+ private static final int ADVERTISEMENT_TYPE_NODE_IDENTITY = 0x01;
98
+ private final static int ADVERTISED_HASH_OFFSET = 1; // Offset of the hash contained in the advertisement service data
99
+ private final static int ADVERTISED_HASH_LENGTH = 8; // Length of the hash contained in the advertisement service data
100
+ private final static int ADVERTISED_RANDOM_OFFSET = 9; // Offset of the hash contained in the advertisement service data
101
+ private final static int ADVERTISED_RANDOM_LENGTH = 8; //Length of the hash contained in the advertisement service data
102
+ private final static int ADVERTISED_NETWORK_ID_OFFSET = 1; //Offset of the network id contained in the advertisement service data
103
+ private final static int ADVERTISED_NETWORK_ID_LENGTH = 8; //Length of the network id contained in the advertisement service data
104
+
105
+ private final Context mContext;
106
+ private final Handler mHandler;
107
+ private MeshManagerCallbacks mMeshManagerCallbacks;
108
+ private final MeshProvisioningHandler mMeshProvisioningHandler;
109
+ private final MeshMessageHandler mMeshMessageHandler;
110
+ private final ImportExportUtils mImportExportUtils;
111
+ private byte[] mIncomingBuffer;
112
+ private int mIncomingBufferOffset;
113
+ private byte[] mOutgoingBuffer;
114
+ private int mOutgoingBufferOffset;
115
+ private MeshNetwork mMeshNetwork;
116
+ private boolean ivUpdateTestModeActive = false;
117
+ private boolean allowIvIndexRecoveryOver42 = false;
118
+
119
+ private MeshNetworkDb mMeshNetworkDb;
120
+ private MeshNetworkDao mMeshNetworkDao;
121
+ private NetworkKeyDao mNetworkKeyDao;
122
+ private NetworkKeysDao mNetworkKeysDao;
123
+ private ApplicationKeyDao mApplicationKeyDao;
124
+ private ApplicationKeysDao mApplicationKeysDao;
125
+ private ProvisionerDao mProvisionerDao;
126
+ private ProvisionersDao mProvisionersDao;
127
+ private ProvisionedMeshNodeDao mProvisionedNodeDao;
128
+ private ProvisionedMeshNodesDao mProvisionedNodesDao;
129
+ private GroupDao mGroupDao;
130
+ private GroupsDao mGroupsDao;
131
+ private SceneDao mSceneDao;
132
+ private ScenesDao mScenesDao;
133
+ private boolean isNetworkImportInProgress = false;
134
+
135
+ private final Runnable mProxyProtocolTimeoutRunnable = new Runnable() {
136
+ @Override
137
+ public void run() {
138
+ mMeshMessageHandler.onIncompleteTimerExpired(MeshAddress.UNASSIGNED_ADDRESS);
139
+ }
140
+ };
141
+
142
+ /**
143
+ * The mesh manager api constructor.
144
+ *
145
+ * @param context context
146
+ */
147
+ public MeshManagerApi(@NonNull final Context context) {
148
+ this.mContext = context;
149
+ mHandler = new Handler(Looper.getMainLooper());
150
+ mMeshProvisioningHandler = new MeshProvisioningHandler(context, internalTransportCallbacks, internalMeshMgrCallbacks);
151
+ mMeshMessageHandler = new MeshMessageHandler(context, internalTransportCallbacks, networkLayerCallbacks, upperTransportLayerCallbacks);
152
+ mImportExportUtils = new ImportExportUtils();
153
+ initBouncyCastle();
154
+ //Init database
155
+ initDb(context);
156
+ }
157
+
158
+ @Override
159
+ public void setMeshManagerCallbacks(@NonNull final MeshManagerCallbacks callbacks) {
160
+ mMeshManagerCallbacks = callbacks;
161
+ }
162
+
163
+ @Override
164
+ public void setProvisioningStatusCallbacks(@NonNull final MeshProvisioningStatusCallbacks callbacks) {
165
+ mMeshProvisioningHandler.setProvisioningCallbacks(callbacks);
166
+ }
167
+
168
+ @Override
169
+ public void setMeshStatusCallbacks(@NonNull final MeshStatusCallbacks callbacks) {
170
+ mMeshMessageHandler.setMeshStatusCallbacks(callbacks);
171
+ }
172
+
173
+ @Override
174
+ public void loadMeshNetwork() {
175
+ mMeshNetworkDb.loadNetwork(mMeshNetworkDao, mNetworkKeysDao, mApplicationKeysDao, mProvisionersDao, mProvisionedNodesDao,
176
+ mGroupsDao, mScenesDao, networkLoadCallbacks);
177
+ }
178
+
179
+ @Override
180
+ public MeshNetwork getMeshNetwork() {
181
+ return mMeshNetwork;
182
+ }
183
+
184
+ @Override
185
+ public boolean isIvUpdateTestModeActive() {
186
+ return ivUpdateTestModeActive;
187
+ }
188
+
189
+ @Override
190
+ public void setIvUpdateTestModeActive(final boolean ivUpdateTestMode) {
191
+ ivUpdateTestModeActive = ivUpdateTestMode;
192
+ }
193
+
194
+ @Override
195
+ public void allowIvIndexRecoveryOver42(final boolean allowIvIndexRecoveryOver42) {
196
+ this.allowIvIndexRecoveryOver42 = allowIvIndexRecoveryOver42;
197
+ }
198
+
199
+ private void initBouncyCastle() {
200
+ Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1);
201
+ }
202
+
203
+ private void initDb(final Context context) {
204
+ mMeshNetworkDb = MeshNetworkDb.getDatabase(context);
205
+ mMeshNetworkDao = mMeshNetworkDb.meshNetworkDao();
206
+ mNetworkKeyDao = mMeshNetworkDb.networkKeyDao();
207
+ mNetworkKeysDao = mMeshNetworkDb.networkKeysDao();
208
+ mApplicationKeyDao = mMeshNetworkDb.applicationKeyDao();
209
+ mApplicationKeysDao = mMeshNetworkDb.applicationKeysDao();
210
+ mProvisionerDao = mMeshNetworkDb.provisionerDao();
211
+ mProvisionersDao = mMeshNetworkDb.provisionersDao();
212
+ mProvisionedNodeDao = mMeshNetworkDb.provisionedMeshNodeDao();
213
+ mProvisionedNodesDao = mMeshNetworkDb.provisionedMeshNodesDao();
214
+ mGroupDao = mMeshNetworkDb.groupDao();
215
+ mGroupsDao = mMeshNetworkDb.groupsDao();
216
+ mSceneDao = mMeshNetworkDb.sceneDao();
217
+ mScenesDao = mMeshNetworkDb.scenesDao();
218
+ }
219
+
220
+ private void insertNetwork(final MeshNetwork meshNetwork) {
221
+ meshNetwork.setLastSelected(true);
222
+ //If there is only one provisioner we default to the zeroth
223
+ if (meshNetwork.getProvisioners().size() == 1) {
224
+ meshNetwork.getProvisioners().get(0).setLastSelected(true);
225
+ }
226
+ mMeshNetworkDb.insertNetwork(mMeshNetworkDao,
227
+ mNetworkKeysDao,
228
+ mApplicationKeysDao,
229
+ mProvisionersDao,
230
+ mProvisionedNodesDao,
231
+ mGroupsDao, mScenesDao,
232
+ meshNetwork);
233
+ }
234
+
235
+ @Override
236
+ public final void handleNotifications(final int mtuSize, @NonNull final byte[] data) {
237
+ byte[] unsegmentedPdu;
238
+ if (!isGattSegmented(data)) {
239
+ unsegmentedPdu = data;
240
+ } else {
241
+ final byte[] combinedPdu = appendPdu(mtuSize, data);
242
+ if (combinedPdu == null) {
243
+ //Start the timer
244
+ toggleProxyProtocolSarTimeOut(data);
245
+ return;
246
+ } else {
247
+ toggleProxyProtocolSarTimeOut(data);
248
+ unsegmentedPdu = removeSegmentation(mtuSize, combinedPdu);
249
+ }
250
+ }
251
+ parseNotifications(unsegmentedPdu);
252
+ }
253
+
254
+ /**
255
+ * Toggles the Segmentation and Reassembly timeout for proxy configuration messages received via proxy protocol
256
+ *
257
+ * @param data pdu
258
+ */
259
+ private void toggleProxyProtocolSarTimeOut(final byte[] data) {
260
+ final int pduType = MeshParserUtils.unsignedByteToInt(data[0]);
261
+ if (pduType == ((GATT_SAR_START << SAR_BIT_OFFSET) | MeshManagerApi.PDU_TYPE_PROXY_CONFIGURATION)) {
262
+ mHandler.postDelayed(mProxyProtocolTimeoutRunnable, PROXY_SAR_TRANSFER_TIME_OUT);
263
+ } else if (pduType == ((GATT_SAR_END << SAR_BIT_OFFSET) | MeshManagerApi.PDU_TYPE_PROXY_CONFIGURATION)) {
264
+ mHandler.removeCallbacks(mProxyProtocolTimeoutRunnable);
265
+ }
266
+ }
267
+
268
+ /**
269
+ * Parses notifications received by the client.
270
+ *
271
+ * @param unsegmentedPdu pdu received by the client.
272
+ */
273
+ private void parseNotifications(final byte[] unsegmentedPdu) {
274
+ try {
275
+ switch (unsegmentedPdu[0]) {
276
+ case PDU_TYPE_NETWORK:
277
+ //MeshNetwork PDU
278
+ MeshLogger.verbose(TAG, "Received network pdu: " + MeshParserUtils.bytesToHex(unsegmentedPdu, true));
279
+ mMeshMessageHandler.parseMeshPduNotifications(unsegmentedPdu, mMeshNetwork);
280
+ break;
281
+ case PDU_TYPE_MESH_BEACON:
282
+ //Validate SNBs against all network keys
283
+ NetworkKey networkKey;
284
+ for (int i = 0; i < mMeshNetwork.getNetKeys().size(); i++) {
285
+ networkKey = mMeshNetwork.getNetKeys().get(i);
286
+ final byte[] receivedBeaconData = new byte[unsegmentedPdu.length - 1];
287
+ System.arraycopy(unsegmentedPdu, 1, receivedBeaconData, 0, receivedBeaconData.length);
288
+ final SecureNetworkBeacon receivedBeacon = new SecureNetworkBeacon(receivedBeaconData);
289
+
290
+ final byte[] n = networkKey.getTxNetworkKey();
291
+ final int flags = receivedBeacon.getFlags();
292
+ final byte[] networkId = SecureUtils.calculateK3(n);
293
+ final int ivIndex = receivedBeacon.getIvIndex().getIvIndex();
294
+ MeshLogger.debug(TAG, "Received mesh beacon: " + receivedBeacon);
295
+
296
+ final SecureNetworkBeacon localSecureNetworkBeacon = SecureUtils.createSecureNetworkBeacon(n, flags, networkId, ivIndex);
297
+ //Check the the beacon received is a valid by matching the authentication values
298
+ if (Arrays.equals(receivedBeacon.getAuthenticationValue(), localSecureNetworkBeacon.getAuthenticationValue())) {
299
+ MeshLogger.debug(TAG, "Secure Network Beacon authenticated.");
300
+
301
+ // The library does not retransmit Secure Network Beacon.
302
+ // If this node is a member of a primary subnet and receives a Secure Network
303
+ // beacon on a secondary subnet, it will disregard it.
304
+ if (mMeshNetwork.getPrimaryNetworkKey() != null && networkKey.keyIndex != 0) {
305
+ MeshLogger.debug(TAG, "Discarding beacon for secondary subnet with network key index: " + networkKey.keyIndex);
306
+ return;
307
+ }
308
+
309
+ // Get the last IV Index.
310
+ /// The last used IV Index for this mesh network.
311
+ final IvIndex lastIvIndex = mMeshNetwork.getIvIndex();
312
+ MeshLogger.debug(TAG, "Last IV Index: " + lastIvIndex.getIvIndex());
313
+ /// The date of the last change of IV Index or IV Update Flag.
314
+ final Calendar lastTransitionDate = lastIvIndex.getTransitionDate();
315
+ /// A flag whether the IV has recently been updated using IV Recovery procedure.
316
+ /// The at-least-96h requirement for the duration of the current state will not apply.
317
+ /// The node shall not execute more than one IV Index Recovery within a period of 192 hours.
318
+ final boolean isIvRecoveryActive = lastIvIndex.getIvRecoveryFlag();
319
+ /// The test mode disables the 96h rule, leaving all other behavior unchanged.
320
+ final boolean isIvTestModeActive = ivUpdateTestModeActive;
321
+
322
+ final boolean flag = allowIvIndexRecoveryOver42;
323
+ if (!receivedBeacon.canOverwrite(lastIvIndex, lastTransitionDate, isIvRecoveryActive, isIvTestModeActive, flag)) {
324
+ String numberOfHoursSinceDate = ((Calendar.getInstance().getTimeInMillis() -
325
+ (lastTransitionDate != null ? lastTransitionDate.getTimeInMillis() : 0)) / (3600 * 1000)) + "h";
326
+ MeshLogger.warn(TAG, "Discarding beacon " + receivedBeacon.getIvIndex() +
327
+ ", last " + lastIvIndex.getIvIndex() + ", changed: "
328
+ + numberOfHoursSinceDate + " ago, test mode: " + ivUpdateTestModeActive);
329
+ return;
330
+ }
331
+
332
+ final IvIndex receivedIvIndex = receivedBeacon.getIvIndex();
333
+ if (receivedIvIndex.getIvIndex() > lastIvIndex.getIvIndex()) {
334
+ mMeshNetwork.ivIndex = receivedIvIndex;
335
+ MeshLogger.info(TAG, "Applying: " + mMeshNetwork.ivIndex.getIvIndex());
336
+ } else {
337
+ // This will leave the IV update active state intact or will switch from false to true.
338
+ // canOverwrite() ensures this by discarding the secureNetworkBeacon received.
339
+ mMeshNetwork.ivIndex.setIvUpdateActive(receivedIvIndex.isIvUpdateActive());
340
+ MeshLogger.info(TAG, "Setting IV Update Active to: " + receivedIvIndex.isIvUpdateActive());
341
+ }
342
+
343
+ // If the IV Index used for transmitting messages effectively increased,
344
+ // the Node shall reset the sequence number to 0x000000.
345
+ if (mMeshNetwork.ivIndex.getTransmitIvIndex() > lastIvIndex.getTransmitIvIndex()) {
346
+ MeshLogger.info(TAG, "Resetting local sequence numbers to 0");
347
+ final Provisioner provisioner = mMeshNetwork.getSelectedProvisioner();
348
+ final ProvisionedMeshNode node = mMeshNetwork.getNode(provisioner.getProvisionerUuid());
349
+ node.setSequenceNumber(0);
350
+ }
351
+
352
+ //Updating the iv recovery flag
353
+ if (lastIvIndex != mMeshNetwork.ivIndex) {
354
+ final boolean ivRecovery = mMeshNetwork.getIvIndex().getIvIndex() > lastIvIndex.getIvIndex() + 1
355
+ && !receivedBeacon.getIvIndex().isIvUpdateActive();
356
+ mMeshNetwork.getIvIndex().setIvRecoveryFlag(ivRecovery);
357
+ }
358
+
359
+ if (!mMeshNetwork.ivIndex.getIvRecoveryFlag()) {
360
+ final Iterator<Entry<Integer, List<Integer>>> iterator = mMeshNetwork.networkExclusions.entrySet().iterator();
361
+ while (iterator.hasNext()) {
362
+ final Entry<Integer, List<Integer>> exclusions = iterator.next();
363
+ final int expectedIncrement = exclusions.getKey() + 2;
364
+ if (mMeshNetwork.ivIndex.getIvIndex() >= expectedIncrement) {
365
+ // Clear the last known sequence number of addresses that are to be removed from the exclusion list.
366
+ // Decided to retain the last known sequence number as the IV Indexes increment the sequence number
367
+ // will be greater than the last known anyways
368
+ //for (Integer address : mMeshNetwork.networkExclusions.get(expectedIncrement)) {
369
+ // mMeshNetwork.sequenceNumbers.removeAt(address);
370
+ //}
371
+ iterator.remove();
372
+ }
373
+ }
374
+ }
375
+ }
376
+ }
377
+ break;
378
+ case PDU_TYPE_PROXY_CONFIGURATION:
379
+ //Proxy configuration
380
+ MeshLogger.verbose(TAG, "Received proxy configuration message: " + MeshParserUtils.bytesToHex(unsegmentedPdu, true));
381
+ mMeshMessageHandler.parseMeshPduNotifications(unsegmentedPdu, mMeshNetwork);
382
+ break;
383
+ case PDU_TYPE_PROVISIONING:
384
+ //Provisioning PDU
385
+ MeshLogger.verbose(TAG, "Received provisioning message: " + MeshParserUtils.bytesToHex(unsegmentedPdu, true));
386
+ mMeshProvisioningHandler.parseProvisioningNotifications(unsegmentedPdu);
387
+ break;
388
+ }
389
+ } catch (ExtendedInvalidCipherTextException ex) {
390
+ //TODO handle decryption failure
391
+ } catch (IllegalArgumentException ex) {
392
+ MeshLogger.error(TAG, "Parsing notification failed: " + MeshParserUtils.bytesToHex(unsegmentedPdu, true) + " - " + ex.getMessage());
393
+ }
394
+ }
395
+
396
+ @Override
397
+ public final void handleWriteCallbacks(final int mtuSize, @NonNull final byte[] data) {
398
+ byte[] unsegmentedPdu;
399
+ if (!isGattSegmented(data)) {
400
+ unsegmentedPdu = data;
401
+ } else {
402
+ final byte[] combinedPdu = appendWritePdu(mtuSize, data);
403
+ if (combinedPdu == null)
404
+ return;
405
+ else {
406
+ unsegmentedPdu = removeSegmentation(mtuSize, combinedPdu);
407
+ }
408
+ }
409
+ handleWriteCallbacks(unsegmentedPdu);
410
+ }
411
+
412
+ /**
413
+ * Handles callbacks after writing to characteristics to maintain/update the state machine
414
+ *
415
+ * @param data written to the peripheral
416
+ */
417
+ private void handleWriteCallbacks(final byte[] data) {
418
+ switch (data[0]) {
419
+ case PDU_TYPE_NETWORK: // MeshNetwork PDU
420
+ MeshLogger.verbose(TAG, "MeshNetwork pdu sent: " + MeshParserUtils.bytesToHex(data, true));
421
+ break;
422
+ case PDU_TYPE_MESH_BEACON: // MESH BEACON
423
+ MeshLogger.verbose(TAG, "Mesh beacon pdu sent: " + MeshParserUtils.bytesToHex(data, true));
424
+ break;
425
+ case PDU_TYPE_PROXY_CONFIGURATION: // Proxy configuration
426
+ MeshLogger.verbose(TAG, "Proxy configuration pdu sent: " + MeshParserUtils.bytesToHex(data, true));
427
+ break;
428
+ case PDU_TYPE_PROVISIONING: // Provisioning PDU
429
+ MeshLogger.verbose(TAG, "Provisioning pdu sent: " + MeshParserUtils.bytesToHex(data, true));
430
+ mMeshProvisioningHandler.handleProvisioningWriteCallbacks();
431
+ break;
432
+ }
433
+ }
434
+
435
+ @SuppressWarnings("BooleanMethodIsAlwaysInverted")
436
+ private boolean isGattSegmented(final byte[] pdu) {
437
+ final int gattSar = (pdu[0] & GATT_SAR_MASK) >> SAR_BIT_OFFSET;
438
+ switch (gattSar) {
439
+ case GATT_SAR_START:
440
+ case GATT_SAR_CONTINUATION:
441
+ case GATT_SAR_END:
442
+ return true;
443
+ default:
444
+ return false;
445
+ }
446
+ }
447
+
448
+ /**
449
+ * Appends the PDUs that are segmented at gatt layer.
450
+ *
451
+ * @param mtuSize mtu size supported by the device/node
452
+ * @param pdu pdu received by the provisioner
453
+ * @return the combine pdu or returns null if not complete.
454
+ */
455
+ private byte[] appendPdu(final int mtuSize, final byte[] pdu) {
456
+ final int length = Math.min(pdu.length, mtuSize);
457
+ if (mIncomingBuffer == null) {
458
+ mIncomingBufferOffset = 0;
459
+ mIncomingBufferOffset += length;
460
+ mIncomingBuffer = pdu;
461
+ } else {
462
+ final byte[] buffer = new byte[mIncomingBuffer.length + length];
463
+ System.arraycopy(mIncomingBuffer, 0, buffer, 0, mIncomingBufferOffset);
464
+ System.arraycopy(pdu, 0, buffer, mIncomingBufferOffset, length);
465
+ mIncomingBufferOffset += length;
466
+ mIncomingBuffer = buffer;
467
+ final int sar = MeshParserUtils.unsignedByteToInt(pdu[0]) >> SAR_BIT_OFFSET;
468
+ if (sar == GATT_SAR_END) {
469
+ final byte[] packet = mIncomingBuffer;
470
+ mIncomingBuffer = null;
471
+ return packet;
472
+ }
473
+ }
474
+ return null;
475
+ }
476
+
477
+ /**
478
+ * Appends the PDUs that are segmented at gatt layer.
479
+ *
480
+ * @param mtuSize mtu size supported by the device/node
481
+ * @param pdu pdu received by the provisioner
482
+ * @return the combine pdu or returns null if not complete.
483
+ */
484
+ private byte[] appendWritePdu(final int mtuSize, final byte[] pdu) {
485
+ if (mOutgoingBuffer == null) {
486
+ final int length = Math.min(pdu.length, mtuSize);
487
+ mOutgoingBufferOffset = 0;
488
+ mOutgoingBufferOffset += length;
489
+ mOutgoingBuffer = pdu;
490
+ } else {
491
+ final int length = Math.min(pdu.length, mtuSize);
492
+ final byte[] buffer = new byte[mOutgoingBuffer.length + length];
493
+ System.arraycopy(mOutgoingBuffer, 0, buffer, 0, mOutgoingBufferOffset);
494
+ System.arraycopy(pdu, 0, buffer, mOutgoingBufferOffset, length);
495
+ mOutgoingBufferOffset += length;
496
+ mOutgoingBuffer = buffer;
497
+ if (length < mtuSize) {
498
+ final byte[] packet = mOutgoingBuffer;
499
+ mOutgoingBuffer = null;
500
+ return packet;
501
+ }
502
+ }
503
+ return null;
504
+ }
505
+
506
+ private byte[] applySegmentation(final int mtuSize, final byte[] pdu) {
507
+ int srcOffset = 0;
508
+ int dstOffset = 0;
509
+ final int chunks = (pdu.length + (mtuSize - 1)) / mtuSize;
510
+
511
+ final int pduType = pdu[0];
512
+ if (chunks > 1) {
513
+ final byte[] segmentedBuffer = new byte[pdu.length + chunks - 1];
514
+ int length;
515
+ for (int i = 0; i < chunks; i++) {
516
+ if (i == 0) {
517
+ length = Math.min(pdu.length - srcOffset, mtuSize);
518
+ System.arraycopy(pdu, srcOffset, segmentedBuffer, dstOffset, length);
519
+ segmentedBuffer[0] = (byte) ((GATT_SAR_START << 6) | pduType);
520
+ } else if (i == chunks - 1) {
521
+ length = Math.min(pdu.length - srcOffset, mtuSize);
522
+ segmentedBuffer[dstOffset] = (byte) ((GATT_SAR_END << 6) | pduType);
523
+ System.arraycopy(pdu, srcOffset, segmentedBuffer, dstOffset + 1, length);
524
+ } else {
525
+ length = Math.min(pdu.length - srcOffset, mtuSize - 1);
526
+ segmentedBuffer[dstOffset] = (byte) ((GATT_SAR_CONTINUATION << 6) | pduType);
527
+ System.arraycopy(pdu, srcOffset, segmentedBuffer, dstOffset + 1, length);
528
+ }
529
+ srcOffset += length;
530
+ dstOffset += mtuSize;
531
+ }
532
+ return segmentedBuffer;
533
+ }
534
+ return pdu;
535
+ }
536
+
537
+ private byte[] removeSegmentation(final int mtuSize, final byte[] data) {
538
+ int srcOffset = 0;
539
+ int dstOffset = 0;
540
+ final int chunks = (data.length + (mtuSize - 1)) / mtuSize;
541
+ if (chunks > 1) {
542
+ final byte[] buffer = new byte[data.length - (chunks - 1)];
543
+ int length;
544
+ for (int i = 0; i < chunks; i++) {
545
+ // when removing segmentation bits we only remove the start because the pdu type would be the same for each segment.
546
+ // Therefore we can ignore this pdu type byte as they are already put together in the ble
547
+ length = Math.min(buffer.length - dstOffset, mtuSize);
548
+ if (i == 0) {
549
+ System.arraycopy(data, srcOffset, buffer, dstOffset, length);
550
+ buffer[0] = (byte) (buffer[0] & GATT_SAR_UNMASK);
551
+ } else if (i == chunks - 1) {
552
+ System.arraycopy(data, srcOffset + 1, buffer, dstOffset, length);
553
+ } else {
554
+ length = length - 1;
555
+ System.arraycopy(data, srcOffset + 1, buffer, dstOffset, length);
556
+ }
557
+ srcOffset += mtuSize;
558
+ dstOffset += length;
559
+ }
560
+ return buffer;
561
+ }
562
+ return data;
563
+ }
564
+
565
+ @Override
566
+ public void identifyNode(@NonNull final UUID deviceUUID) throws IllegalArgumentException {
567
+ identifyNode(deviceUUID, MeshProvisioningHandler.ATTENTION_TIMER);
568
+ }
569
+
570
+ @Override
571
+ public void identifyNode(@NonNull final UUID deviceUuid,
572
+ final int attentionTimer) throws IllegalArgumentException {
573
+ final NetworkKey networkKey = mMeshNetwork.getPrimaryNetworkKey();
574
+ if (networkKey != null) {
575
+ mMeshProvisioningHandler.identify(deviceUuid, networkKey, mMeshNetwork.getProvisioningFlags(),
576
+ mMeshNetwork.getIvIndex().getIvIndex(), mMeshNetwork.getGlobalTtl(), attentionTimer);
577
+ }
578
+ }
579
+
580
+ @Override
581
+ public void startProvisioning(@NonNull final UnprovisionedMeshNode unprovisionedMeshNode) throws IllegalArgumentException {
582
+ if (isAddressValid(unprovisionedMeshNode)) {
583
+ mMeshProvisioningHandler.startProvisioningNoOOB(unprovisionedMeshNode);
584
+ }
585
+ }
586
+
587
+ @Override
588
+ public void startProvisioningWithStaticOOB(@NonNull final UnprovisionedMeshNode unprovisionedMeshNode) throws IllegalArgumentException {
589
+ if (isAddressValid(unprovisionedMeshNode)) {
590
+ mMeshProvisioningHandler.startProvisioningWithStaticOOB(unprovisionedMeshNode);
591
+ }
592
+ }
593
+
594
+ @Override
595
+ public void startProvisioningWithOutputOOB(@NonNull final UnprovisionedMeshNode unprovisionedMeshNode,
596
+ @NonNull final OutputOOBAction oobAction) throws IllegalArgumentException {
597
+ if (isAddressValid(unprovisionedMeshNode)) {
598
+ mMeshProvisioningHandler.startProvisioningWithOutputOOB(unprovisionedMeshNode, oobAction);
599
+ }
600
+ }
601
+
602
+ @Override
603
+ public void startProvisioningWithInputOOB(@NonNull final UnprovisionedMeshNode unprovisionedMeshNode,
604
+ @NonNull final InputOOBAction oobAction) throws IllegalArgumentException {
605
+ if (isAddressValid(unprovisionedMeshNode)) {
606
+ mMeshProvisioningHandler.startProvisioningWithInputOOB(unprovisionedMeshNode, oobAction);
607
+ }
608
+ }
609
+
610
+ @Override
611
+ public void setProvisioningAuthentication(@NonNull final String authentication) {
612
+ mMeshProvisioningHandler.sendProvisioningConfirmation(authentication);
613
+ }
614
+
615
+ @NonNull
616
+ @Override
617
+ public UUID getDeviceUuid(@NonNull final byte[] serviceData) throws IllegalArgumentException {
618
+ if (serviceData.length < 18)
619
+ throw new IllegalArgumentException("Service data cannot be null");
620
+
621
+ final ByteBuffer buffer = ByteBuffer.wrap(serviceData);
622
+ final long msb = buffer.getLong();
623
+ final long lsb = buffer.getLong();
624
+
625
+ return new UUID(msb, lsb);
626
+ }
627
+
628
+ @Override
629
+ public boolean isMeshBeacon(@NonNull final byte[] advertisementData) {
630
+ for (int i = 0; i < advertisementData.length; i++) {
631
+ final int length = MeshParserUtils.unsignedByteToInt(advertisementData[i]);
632
+ if (length == 0)
633
+ break;
634
+ final int type = MeshParserUtils.unsignedByteToInt(advertisementData[i + 1]);
635
+ if (type == MeshBeacon.MESH_BEACON) {
636
+ return true;
637
+ }
638
+ i = i + length;
639
+ }
640
+ return false;
641
+ }
642
+
643
+ @Nullable
644
+ @Override
645
+ public byte[] getMeshBeaconData(@NonNull final byte[] advertisementData) {
646
+ if (isMeshBeacon(advertisementData)) {
647
+ for (int i = 0; i < advertisementData.length; i++) {
648
+ final int length = MeshParserUtils.unsignedByteToInt(advertisementData[i]);
649
+ final int type = MeshParserUtils.unsignedByteToInt(advertisementData[i + 1]);
650
+ if (type == MeshBeacon.MESH_BEACON) {
651
+ final byte[] beaconData = new byte[length];
652
+ final ByteBuffer buffer = ByteBuffer.wrap(advertisementData);
653
+ buffer.position(i + 2);
654
+ buffer.get(beaconData, 0, length);
655
+ return beaconData;
656
+ }
657
+ i = i + length;
658
+ }
659
+ }
660
+ return null;
661
+ }
662
+
663
+ @Nullable
664
+ @Override
665
+ public MeshBeacon getMeshBeacon(final byte[] beaconData) {
666
+ if (beaconData != null) {
667
+ final int beaconType = beaconData[0];
668
+ if (beaconType == 0x00) {
669
+ return new UnprovisionedBeacon(beaconData);
670
+ } else if (beaconType == 0x01) {
671
+ return new SecureNetworkBeacon(beaconData);
672
+ }
673
+ }
674
+ return null;
675
+ }
676
+
677
+ @Override
678
+ public String generateNetworkId(@NonNull final byte[] networkKey) {
679
+ return MeshParserUtils.bytesToHex(SecureUtils.calculateK3(networkKey), false);
680
+ }
681
+
682
+ @Override
683
+ public boolean nodeIdentityMatches(@NonNull final ProvisionedMeshNode meshNode, @NonNull final byte[] serviceData) {
684
+ final byte[] advertisedHash = getAdvertisedHash(serviceData);
685
+ //If there is no advertised hash return false as this is used to match against the generated hash
686
+ if (advertisedHash == null) {
687
+ return false;
688
+ }
689
+
690
+ //If there is no advertised random return false as this is used to generate the hash to match against the advertised
691
+ final byte[] random = getAdvertisedRandom(serviceData);
692
+ if (random == null) {
693
+ return false;
694
+ }
695
+
696
+ for (NetworkKey key : mMeshNetwork.netKeys) {
697
+ if (Arrays.equals(advertisedHash, SecureUtils.
698
+ calculateHash(key.getIdentityKey(), random, MeshAddress.addressIntToBytes(meshNode.getUnicastAddress()))) ||
699
+ (key.getOldIdentityKey() != null &&
700
+ Arrays.equals(advertisedHash, SecureUtils.
701
+ calculateHash(key.getOldIdentityKey(), random, MeshAddress.addressIntToBytes(meshNode.getUnicastAddress())))))
702
+ return true;
703
+ }
704
+ return false;
705
+ }
706
+
707
+
708
+ @Override
709
+ public boolean isAdvertisedWithNodeIdentity(@Nullable final byte[] serviceData) {
710
+ return serviceData != null && serviceData.length == 17
711
+ && serviceData[ADVERTISED_HASH_OFFSET - 1] == ADVERTISEMENT_TYPE_NODE_IDENTITY;
712
+ }
713
+
714
+ /**
715
+ * Returns the advertised hash
716
+ *
717
+ * @param serviceData advertised service data
718
+ * @return returns the advertised hash
719
+ */
720
+ private byte[] getAdvertisedHash(final byte[] serviceData) {
721
+ if (serviceData == null)
722
+ return null;
723
+ final ByteBuffer expectedBufferHash = ByteBuffer.allocate(ADVERTISED_HASH_LENGTH).order(ByteOrder.BIG_ENDIAN);
724
+ expectedBufferHash.put(serviceData, ADVERTISED_HASH_OFFSET, ADVERTISED_HASH_LENGTH);
725
+ return expectedBufferHash.array();
726
+ }
727
+
728
+ /**
729
+ * Returns the advertised random
730
+ *
731
+ * @param serviceData advertised service data
732
+ * @return returns the advertised random
733
+ */
734
+ private byte[] getAdvertisedRandom(final byte[] serviceData) {
735
+ if (serviceData == null || serviceData.length <= ADVERTISED_RANDOM_LENGTH)
736
+ return null;
737
+ final ByteBuffer expectedBufferHash = ByteBuffer.allocate(ADVERTISED_RANDOM_LENGTH).order(ByteOrder.BIG_ENDIAN);
738
+ expectedBufferHash.put(serviceData, ADVERTISED_RANDOM_OFFSET, ADVERTISED_RANDOM_LENGTH);
739
+ return expectedBufferHash.array();
740
+ }
741
+
742
+ @Override
743
+ public boolean networkIdMatches(@NonNull final String networkId, @Nullable final byte[] serviceData) {
744
+ final byte[] advertisedNetworkId = getAdvertisedNetworkId(serviceData);
745
+ if (advertisedNetworkId != null) {
746
+ final String advertisedNetworkIdString = MeshParserUtils.bytesToHex(advertisedNetworkId, false).toUpperCase(Locale.US);
747
+ return networkId.equals(advertisedNetworkIdString);
748
+ }
749
+ return false;
750
+ }
751
+
752
+ @Override
753
+ public boolean networkIdMatches(@Nullable final byte[] serviceData) {
754
+ final byte[] advertisedNetworkId = getAdvertisedNetworkId(serviceData);
755
+ if (advertisedNetworkId != null) {
756
+ for (NetworkKey key : mMeshNetwork.getNetKeys()) {
757
+ if (Arrays.equals(key.getNetworkId(), advertisedNetworkId) || Arrays.equals(key.getOldNetworkId(), advertisedNetworkId))
758
+ return true;
759
+ }
760
+ }
761
+ return false;
762
+ }
763
+
764
+ @Override
765
+ public boolean isAdvertisingWithNetworkIdentity(@Nullable final byte[] serviceData) {
766
+ return serviceData != null && serviceData.length == 9
767
+ && serviceData[ADVERTISED_NETWORK_ID_OFFSET - 1] == ADVERTISEMENT_TYPE_NETWORK_ID;
768
+ }
769
+
770
+ /**
771
+ * Returns the advertised network identity
772
+ *
773
+ * @param serviceData advertised service data
774
+ * @return returns the advertised network identity
775
+ */
776
+ private byte[] getAdvertisedNetworkId(final byte[] serviceData) {
777
+ if (serviceData == null)
778
+ return null;
779
+ final ByteBuffer advertisedNetworkID = ByteBuffer.allocate(ADVERTISED_NETWORK_ID_LENGTH).order(ByteOrder.BIG_ENDIAN);
780
+ advertisedNetworkID.put(serviceData, ADVERTISED_NETWORK_ID_OFFSET, ADVERTISED_HASH_LENGTH);
781
+ return advertisedNetworkID.array();
782
+ }
783
+
784
+ /**
785
+ * Resets the provisioned mesh network and will generate a new one
786
+ * <p>
787
+ * This method will clear the provisioned nodes, reset the sequence number and generate new network with new provisioning data.
788
+ * {@link MeshManagerCallbacks#onNetworkLoaded(MeshNetwork)} will return the newly generated network
789
+ * </p>
790
+ */
791
+ public final void resetMeshNetwork() {
792
+ //We delete the existing network as the user has already given the
793
+ ivUpdateTestModeActive = false;
794
+ allowIvIndexRecoveryOver42 = false;
795
+ final MeshNetwork meshNet = mMeshNetwork;
796
+ deleteMeshNetworkFromDb(meshNet);
797
+ final MeshNetwork newMeshNetwork = generateMeshNetwork();
798
+ newMeshNetwork.setCallbacks(callbacks);
799
+ insertNetwork(newMeshNetwork);
800
+ mMeshNetwork = newMeshNetwork;
801
+ mMeshManagerCallbacks.onNetworkLoaded(newMeshNetwork);
802
+ }
803
+
804
+ /**
805
+ * Creates a new mesh network and with new provisioning data.
806
+ * <p>
807
+ * {@link MeshManagerCallbacks#onNetworkLoaded(MeshNetwork)} will return the newly generated network
808
+ * </p>
809
+ */
810
+ public final void createMeshNetwork() {
811
+ ivUpdateTestModeActive = false;
812
+ allowIvIndexRecoveryOver42 = false;
813
+ final MeshNetwork newMeshNetwork = generateMeshNetwork();
814
+ newMeshNetwork.setCallbacks(callbacks);
815
+ insertNetwork(newMeshNetwork);
816
+ mMeshNetwork = newMeshNetwork;
817
+ mMeshManagerCallbacks.onNetworkLoaded(newMeshNetwork);
818
+ }
819
+
820
+ private MeshNetwork generateMeshNetwork() {
821
+ final String meshUuid = UUID.randomUUID().toString().toUpperCase(Locale.US);
822
+
823
+ final MeshNetwork network = new MeshNetwork(meshUuid);
824
+ network.netKeys = generateNetKeys(meshUuid);
825
+ // network.appKeys = generateAppKeys(meshUuid); Let's not generate app keys for now users can add them later
826
+ final AllocatedUnicastRange unicastRange = new AllocatedUnicastRange(0x0001, 0x199A);
827
+ final AllocatedGroupRange groupRange = new AllocatedGroupRange(0xC000, 0xCC9A);
828
+ final AllocatedSceneRange sceneRange = new AllocatedSceneRange(0x0001, 0x3333);
829
+ final Provisioner provisioner = network.createProvisioner("nRF Mesh Provisioner", unicastRange, groupRange, sceneRange);
830
+ final int unicast = provisioner.getAllocatedUnicastRanges().get(0).getLowAddress();
831
+ provisioner.assignProvisionerAddress(unicast);
832
+ network.selectProvisioner(provisioner);
833
+ network.addProvisioner(provisioner);
834
+ final ProvisionedMeshNode node = network.getNode(unicast);
835
+ if (node != null) {
836
+ network.unicastAddress = node.getUnicastAddress() + (node.getNumberOfElements() - 1);
837
+ } else {
838
+ network.unicastAddress = 1;
839
+ }
840
+ network.lastSelected = true;
841
+ network.sequenceNumbers.clear(); //Clear the sequence numbers first
842
+ network.loadSequenceNumbers();
843
+ ivUpdateTestModeActive = false;
844
+ allowIvIndexRecoveryOver42 = false;
845
+ return network;
846
+ }
847
+
848
+ private List<NetworkKey> generateNetKeys(final String meshUuid) {
849
+ final List<NetworkKey> networkKeys = new ArrayList<>();
850
+ final NetworkKey networkKey = new NetworkKey(0, SecureUtils.generateRandomNumber());
851
+ networkKey.setMeshUuid(meshUuid);
852
+ networkKeys.add(networkKey);
853
+ return networkKeys;
854
+ }
855
+
856
+ private List<ApplicationKey> generateAppKeys(final String meshUuid) {
857
+ final List<ApplicationKey> appKeys = new ArrayList<>();
858
+ for (int i = 0; i < 3; i++) {
859
+ final ApplicationKey appKey = new ApplicationKey(i, SecureUtils.generateRandomNumber());
860
+ appKey.setMeshUuid(meshUuid);
861
+ appKeys.add(appKey);
862
+ }
863
+ return appKeys;
864
+ }
865
+
866
+ /**
867
+ * Deletes an existing mesh network from the local database
868
+ *
869
+ * @param meshNetwork mesh network to be deleted
870
+ */
871
+ public final void deleteMeshNetworkFromDb(final MeshNetwork meshNetwork) {
872
+ mMeshNetworkDb.delete(mMeshNetworkDao, meshNetwork);
873
+ }
874
+
875
+ @Override
876
+ public void createMeshPdu(final int dst, @NonNull final MeshMessage meshMessage) {
877
+ if (!MeshAddress.isAddressInRange(dst)) {
878
+ throw new IllegalArgumentException("Invalid address, destination address must be a valid 16-bit value.");
879
+ }
880
+ final Provisioner provisioner = mMeshNetwork.getSelectedProvisioner();
881
+ if (provisioner != null && provisioner.getProvisionerAddress() != null) {
882
+ UUID label = null;
883
+ if (MeshAddress.isValidVirtualAddress(dst)) {
884
+ label = mMeshNetwork.getLabelUuid(dst);
885
+ if (label == null) {
886
+ throw new IllegalArgumentException("Label UUID unavailable for the virtual address provided");
887
+ }
888
+ }
889
+ mMeshMessageHandler.createMeshMessage(provisioner.getProvisionerAddress(), dst, label, meshMessage);
890
+ } else {
891
+ throw new IllegalArgumentException("Provisioner address not set, please assign an address to the provisioner.");
892
+ }
893
+ }
894
+
895
+ @Override
896
+ public String exportMeshNetwork() {
897
+ try {
898
+ final MeshNetwork meshNetwork = mMeshNetwork;
899
+ return mImportExportUtils.export(meshNetwork, false);
900
+ } catch (Exception ex) {
901
+ mMeshManagerCallbacks.onNetworkImportFailed(ex.getMessage());
902
+ }
903
+ return null;
904
+ }
905
+
906
+ @Override
907
+ public String exportMeshNetwork(@NonNull final NetworkKeysConfig networkKeysConfig,
908
+ @NonNull final ApplicationKeysConfig applicationKeysConfig,
909
+ @NonNull final NodesConfig nodesConfig,
910
+ @NonNull final ProvisionersConfig provisionersConfig,
911
+ @NonNull final GroupsConfig groupsConfig,
912
+ @NonNull final ScenesConfig scenesConfig) {
913
+ try {
914
+ final MeshNetwork network = mMeshNetwork;
915
+ return mImportExportUtils.export(network, networkKeysConfig, applicationKeysConfig,
916
+ nodesConfig, provisionersConfig, groupsConfig, scenesConfig);
917
+ } catch (Exception ex) {
918
+ mMeshManagerCallbacks.onNetworkImportFailed(ex.getMessage());
919
+ }
920
+ return null;
921
+ }
922
+
923
+ @Override
924
+ public void importMeshNetwork(@NonNull final Uri uri) {
925
+ try {
926
+ isNetworkImportInProgress = true;
927
+ importMeshNetworkJson(mImportExportUtils.readJsonStringFromUri(mContext.getContentResolver(), uri));
928
+ isNetworkImportInProgress = false;
929
+ } catch (Exception ex) {
930
+ isNetworkImportInProgress = false;
931
+ mMeshManagerCallbacks.onNetworkImportFailed(ex.getMessage());
932
+ }
933
+ }
934
+
935
+ @Override
936
+ public void importMeshNetworkJson(@NonNull String networkJson) {
937
+ try {
938
+ isNetworkImportInProgress = true;
939
+ final MeshNetwork importedNetwork = mImportExportUtils.importNetwork(networkJson);
940
+ importedNetwork.setCallbacks(callbacks);
941
+ final MeshNetwork network = mMeshNetworkDb.getMeshNetwork(mMeshNetworkDao, importedNetwork.getMeshUUID());
942
+ if (network != null) {
943
+ final List<ProvisionedMeshNode> nodes = mMeshNetworkDb.getNodes(mProvisionedNodesDao, importedNetwork.getMeshUUID());
944
+ importedNetwork.unicastAddress = network.unicastAddress;
945
+ for (ProvisionedMeshNode meshNode : importedNetwork.getNodes()) {
946
+ for (ProvisionedMeshNode node : nodes) {
947
+ if (node.getUuid().equalsIgnoreCase(meshNode.getUuid())) {
948
+ meshNode.setSequenceNumber(node.getSequenceNumber());
949
+ }
950
+ }
951
+ }
952
+ importedNetwork.loadSequenceNumbers();
953
+ // Load the last known ivIndex.
954
+ // Note: The iv index will be updated based on the secure network beacon after connecting to a proxy.
955
+ importedNetwork.ivIndex = network.ivIndex;
956
+ }
957
+ mMeshNetworkDb.update(mMeshNetworkDao, importedNetwork, false);
958
+ insertNetwork(importedNetwork);
959
+ mMeshNetwork = importedNetwork;
960
+ mMeshManagerCallbacks.onNetworkImported(importedNetwork);
961
+ isNetworkImportInProgress = false;
962
+ } catch (Exception ex) {
963
+ isNetworkImportInProgress = false;
964
+ mMeshManagerCallbacks.onNetworkImportFailed(ex.getMessage());
965
+ }
966
+ }
967
+
968
+ @SuppressWarnings("FieldCanBeLocal")
969
+ private final InternalTransportCallbacks internalTransportCallbacks = new InternalTransportCallbacks() {
970
+
971
+ @Override
972
+ public List<ApplicationKey> getApplicationKeys(final int boundNetKeyIndex) {
973
+ return mMeshNetwork.getAppKeys(boundNetKeyIndex);
974
+ }
975
+
976
+ @Override
977
+ public ProvisionedMeshNode getNode(final int unicast) {
978
+ return mMeshNetwork.getNode(unicast);
979
+ }
980
+
981
+ @Override
982
+ public Provisioner getProvisioner(final int unicast) {
983
+ return null;
984
+ }
985
+
986
+ @Override
987
+ public void sendProvisioningPdu(final UnprovisionedMeshNode meshNode, final byte[] pdu) {
988
+ final int mtu = mMeshManagerCallbacks.getMtu();
989
+ mMeshManagerCallbacks.sendProvisioningPdu(meshNode, applySegmentation(mtu, pdu));
990
+ }
991
+
992
+ @Override
993
+ public void onMeshPduCreated(final int dst, final byte[] pdu) {
994
+ //We must save the mesh network state for every message that is being sent out.
995
+ //This will specifically save the sequence number for every message sent.
996
+ final ProvisionedMeshNode meshNode = mMeshNetwork.getNode(dst);
997
+ updateNetwork(meshNode);
998
+ final int mtu = mMeshManagerCallbacks.getMtu();
999
+ mMeshManagerCallbacks.onMeshPduCreated(applySegmentation(mtu, pdu));
1000
+ }
1001
+
1002
+ @Override
1003
+ public ProxyFilter getProxyFilter() {
1004
+ return mMeshNetwork.getProxyFilter();
1005
+ }
1006
+
1007
+ @Override
1008
+ public void setProxyFilter(@NonNull final ProxyFilter filter) {
1009
+ mMeshNetwork.setProxyFilter(filter);
1010
+ }
1011
+
1012
+ @Override
1013
+ public void updateMeshNetwork(final MeshMessage message) {
1014
+ final ProvisionedMeshNode meshNode = mMeshNetwork.getNode(message.getSrc());
1015
+ updateNetwork(meshNode);
1016
+ }
1017
+
1018
+ @Override
1019
+ public void onMeshNodeReset(final ProvisionedMeshNode meshNode) {
1020
+ if (meshNode != null) {
1021
+ mMeshNetwork.deleteNode(meshNode);
1022
+ }
1023
+ }
1024
+
1025
+ @Override
1026
+ public MeshNetwork getMeshNetwork() {
1027
+ return mMeshNetwork;
1028
+ }
1029
+
1030
+ @Override
1031
+ public void addGroup(final Group group) {
1032
+ mMeshNetwork.addGroup(group);
1033
+ }
1034
+
1035
+ @Override
1036
+ public void storeScene(final int address, final int currentScene, final List<Integer> scenes) {
1037
+ final Scene scene = mMeshNetwork.getScene(currentScene);
1038
+ if (scene != null && !scene.getAddresses().contains(address)) {
1039
+ scene.addresses.add(address);
1040
+ }
1041
+ }
1042
+
1043
+ @Override
1044
+ public void deleteScene(final int address, final int currentScene, final List<Integer> scenes) {
1045
+ final Scene scene = mMeshNetwork.getScene(currentScene);
1046
+ if (scene != null && scene.getAddresses().contains(address)) {
1047
+ scene.addresses.remove((Integer) address);
1048
+ }
1049
+ }
1050
+
1051
+ private void updateNetwork(final ProvisionedMeshNode meshNode) {
1052
+ if (meshNode != null) {
1053
+ for (int i = 0; i < mMeshNetwork.nodes.size(); i++) {
1054
+ if (meshNode.getUnicastAddress() == mMeshNetwork.nodes.get(i).getUnicastAddress()) {
1055
+ mMeshNetwork.nodes.set(i, meshNode);
1056
+ break;
1057
+ }
1058
+ }
1059
+ }
1060
+ mMeshNetworkDb.update(mMeshNetwork, mMeshNetworkDao, mNetworkKeysDao, mApplicationKeysDao, mProvisionersDao, mProvisionedNodesDao,
1061
+ mGroupsDao, mScenesDao);
1062
+ mMeshManagerCallbacks.onNetworkUpdated(mMeshNetwork);
1063
+ }
1064
+ };
1065
+
1066
+ /**
1067
+ * Deletes an address from the scenes in the network. This is to be called when resetting or deleting a node from the network.
1068
+ *
1069
+ * @param address Address to be removed.
1070
+ */
1071
+ private void deleteSceneAddress(final int address) {
1072
+ for (Scene scene : mMeshNetwork.getScenes()) {
1073
+ if (scene.addresses.remove((Integer) address)) {
1074
+ MeshLogger.debug(TAG, "Node removed from " + scene.getName());
1075
+ }
1076
+ }
1077
+ }
1078
+
1079
+ @SuppressWarnings("FieldCanBeLocal")
1080
+ private final InternalMeshManagerCallbacks internalMeshMgrCallbacks = new InternalMeshManagerCallbacks() {
1081
+ @Override
1082
+ public void onNodeProvisioned(final ProvisionedMeshNode meshNode, final int numberOfElements) {
1083
+ updateProvisionedNodeList(meshNode);
1084
+ mMeshNetwork.sequenceNumbers.put(meshNode.getUnicastAddress(), meshNode.getSequenceNumber());
1085
+ mMeshNetwork.unicastAddress = mMeshNetwork.nextAvailableUnicastAddress(numberOfElements, mMeshNetwork.getSelectedProvisioner());
1086
+ //Set the mesh network uuid to the node so we can identify nodes belonging to a network
1087
+ meshNode.setMeshUuid(mMeshNetwork.getMeshUUID());
1088
+ mMeshNetworkDb.insert(mProvisionedNodeDao, meshNode);
1089
+ mMeshNetworkDb.update(mProvisionerDao,
1090
+ mMeshNetwork.getSelectedProvisioner());
1091
+ mMeshManagerCallbacks.onNetworkUpdated(mMeshNetwork);
1092
+ }
1093
+
1094
+ private void updateProvisionedNodeList(final ProvisionedMeshNode meshNode) {
1095
+ for (int i = 0; i < mMeshNetwork.nodes.size(); i++) {
1096
+ final ProvisionedMeshNode node = mMeshNetwork.nodes.get(i);
1097
+ if (meshNode.getUuid().equals(node.getUuid())) {
1098
+ mMeshNetwork.nodes.remove(i);
1099
+ break;
1100
+ }
1101
+ }
1102
+ mMeshNetwork.nodes.add(meshNode);
1103
+ updateNetworkKeySecurity(meshNode);
1104
+ }
1105
+ };
1106
+
1107
+ /**
1108
+ * Updates the minimum security property of a Network Key. If the node was provisioned
1109
+ * insecurely, all network keys added to the node are marked as insecure.
1110
+ *
1111
+ * @param node Provisioned mesh node.
1112
+ */
1113
+ private void updateNetworkKeySecurity(final ProvisionedMeshNode node) {
1114
+ if (!node.isSecurelyProvisioned()) {
1115
+ for (NodeKey nodeKey : node.getAddedNetKeys()) {
1116
+ for(NetworkKey key : mMeshNetwork.netKeys) {
1117
+ if(key.keyIndex == nodeKey.getIndex()) {
1118
+ key.markAsInsecure();
1119
+ }
1120
+ }
1121
+ }
1122
+ }
1123
+ }
1124
+
1125
+ @SuppressWarnings("FieldCanBeLocal")
1126
+ private final NetworkLayerCallbacks networkLayerCallbacks = new NetworkLayerCallbacks() {
1127
+
1128
+ @Override
1129
+ public Provisioner getProvisioner() {
1130
+ return mMeshNetwork.getSelectedProvisioner();
1131
+ }
1132
+
1133
+ @Override
1134
+ public Provisioner getProvisioner(final int unicastAddress) {
1135
+ for (Provisioner provisioner : mMeshNetwork.getProvisioners()) {
1136
+ if (provisioner.isLastSelected())
1137
+ return provisioner;
1138
+ }
1139
+ return null;
1140
+ }
1141
+
1142
+ @Override
1143
+ public NetworkKey getPrimaryNetworkKey() {
1144
+ return mMeshNetwork.getPrimaryNetworkKey();
1145
+ }
1146
+
1147
+ @Override
1148
+ public NetworkKey getNetworkKey(final int keyIndex) {
1149
+ return mMeshNetwork.getNetKey(keyIndex);
1150
+ }
1151
+
1152
+ @Override
1153
+ public List<NetworkKey> getNetworkKeys() {
1154
+ return mMeshNetwork.getNetKeys();
1155
+ }
1156
+ };
1157
+
1158
+ @SuppressWarnings("FieldCanBeLocal")
1159
+ private final UpperTransportLayerCallbacks upperTransportLayerCallbacks = new UpperTransportLayerCallbacks() {
1160
+
1161
+ @Override
1162
+ public ProvisionedMeshNode getNode(final int unicastAddress) {
1163
+ return mMeshNetwork.getNode(unicastAddress);
1164
+ }
1165
+
1166
+ @Override
1167
+ public byte[] getIvIndex() {
1168
+ int ivIndex = mMeshNetwork.getIvIndex().getTransmitIvIndex();
1169
+ return ByteBuffer.allocate(4).putInt(ivIndex).array();
1170
+ }
1171
+
1172
+ @Override
1173
+ public byte[] getApplicationKey(final int aid) {
1174
+ for (ApplicationKey key : mMeshNetwork.getAppKeys()) {
1175
+ final byte[] k = key.getKey();
1176
+ if (aid == SecureUtils.calculateK4(k)) {
1177
+ return key.getKey();
1178
+ }
1179
+ }
1180
+ return null;
1181
+ }
1182
+
1183
+ @Override
1184
+ public List<ApplicationKey> getApplicationKeys(final int boundNetKeyIndex) {
1185
+ final List<ApplicationKey> keys = new ArrayList<>();
1186
+ for (ApplicationKey key : mMeshNetwork.getAppKeys()) {
1187
+ if (key.getBoundNetKeyIndex() == boundNetKeyIndex) {
1188
+ keys.add(key);
1189
+ }
1190
+ }
1191
+ return keys;
1192
+ }
1193
+
1194
+ @Override
1195
+ public List<Group> gerVirtualGroups() {
1196
+ return mMeshNetwork.getGroups();
1197
+ }
1198
+ };
1199
+
1200
+ /**
1201
+ * Callbacks to notify when the database has been loaded
1202
+ */
1203
+ private final LoadNetworkCallbacks networkLoadCallbacks = new LoadNetworkCallbacks() {
1204
+ @Override
1205
+ public void onNetworkLoadedFromDb(final MeshNetwork meshNetwork) {
1206
+ final MeshNetwork network;
1207
+ //If there is no network we generate a new one
1208
+ if (meshNetwork == null) {
1209
+ network = generateMeshNetwork();
1210
+ insertNetwork(network);
1211
+ } else {
1212
+ network = meshNetwork;
1213
+ network.loadSequenceNumbers();
1214
+ }
1215
+ network.setCallbacks(callbacks);
1216
+ mMeshNetwork = network;
1217
+ mMeshManagerCallbacks.onNetworkLoaded(network);
1218
+ }
1219
+
1220
+ @Override
1221
+ public void onNetworkLoadFailed(final String error) {
1222
+ mMeshManagerCallbacks.onNetworkLoadFailed(error);
1223
+ }
1224
+ };
1225
+
1226
+ private void deleteNode(@NonNull final ProvisionedMeshNode meshNode) {
1227
+ deleteSceneAddress(meshNode.getUnicastAddress());
1228
+ // We should not remove the last known sequence number when resetting a node.
1229
+ // This should be kept until the current iv index has incremented by 2 and delete it when
1230
+ // clearing the exclusion lists
1231
+ // mMeshNetwork.sequenceNumbers.delete(meshNode.getUnicastAddress());
1232
+ mMeshMessageHandler.resetState(meshNode.getUnicastAddress());
1233
+ mMeshNetworkDb.deleteNode(mProvisionedNodeDao, meshNode);
1234
+ mMeshNetwork.setTimestamp(System.currentTimeMillis());
1235
+ mMeshNetworkDb.update(mMeshNetworkDao, mMeshNetwork);
1236
+ mMeshManagerCallbacks.onNetworkUpdated(mMeshNetwork);
1237
+ }
1238
+
1239
+ /**
1240
+ * Callbacks observing user updates on the mesh network object
1241
+ */
1242
+ private final MeshNetworkCallbacks callbacks = new MeshNetworkCallbacks() {
1243
+ @Override
1244
+ public void onMeshNetworkUpdated() {
1245
+ if (!isNetworkImportInProgress)
1246
+ mMeshNetwork.setTimestamp(System.currentTimeMillis());
1247
+ mMeshNetworkDb.update(mMeshNetworkDao, mMeshNetwork);
1248
+ mMeshManagerCallbacks.onNetworkUpdated(mMeshNetwork);
1249
+ }
1250
+
1251
+ @Override
1252
+ public void onNetworkKeyAdded(@NonNull final NetworkKey networkKey) {
1253
+ mMeshNetworkDb.insert(mNetworkKeyDao, networkKey);
1254
+ onMeshNetworkUpdated();
1255
+ }
1256
+
1257
+ @Override
1258
+ public void onNetworkKeyUpdated(@NonNull final NetworkKey networkKey) {
1259
+ mMeshNetworkDb.update(mNetworkKeyDao, networkKey);
1260
+ onMeshNetworkUpdated();
1261
+ }
1262
+
1263
+ @Override
1264
+ public void onNetworkKeyDeleted(@NonNull final NetworkKey networkKey) {
1265
+ mMeshNetworkDb.delete(mNetworkKeyDao, networkKey);
1266
+ onMeshNetworkUpdated();
1267
+ }
1268
+
1269
+ @Override
1270
+ public void onApplicationKeyAdded(@NonNull final ApplicationKey applicationKey) {
1271
+ mMeshNetworkDb.insert(mApplicationKeyDao, applicationKey);
1272
+ onMeshNetworkUpdated();
1273
+ }
1274
+
1275
+ @Override
1276
+ public void onApplicationKeyUpdated(@NonNull final ApplicationKey applicationKey) {
1277
+ mMeshNetworkDb.update(mApplicationKeyDao, applicationKey);
1278
+ onMeshNetworkUpdated();
1279
+ }
1280
+
1281
+ @Override
1282
+ public void onApplicationKeyDeleted(@NonNull final ApplicationKey applicationKey) {
1283
+ mMeshNetworkDb.delete(mApplicationKeyDao, applicationKey);
1284
+ onMeshNetworkUpdated();
1285
+ }
1286
+
1287
+ @Override
1288
+ public void onProvisionerAdded(@NonNull final Provisioner provisioner) {
1289
+ mMeshNetworkDb.insert(mProvisionerDao, provisioner);
1290
+ onMeshNetworkUpdated();
1291
+ }
1292
+
1293
+ @Override
1294
+ public void onProvisionerUpdated(@NonNull final Provisioner provisioner) {
1295
+ mMeshNetworkDb.update(mProvisionerDao, provisioner);
1296
+ onMeshNetworkUpdated();
1297
+ }
1298
+
1299
+ @Override
1300
+ public void onProvisionersUpdated(@NonNull final List<Provisioner> provisioners) {
1301
+ mMeshNetworkDb.update(mProvisionerDao, provisioners);
1302
+ onMeshNetworkUpdated();
1303
+ }
1304
+
1305
+ @Override
1306
+ public void onProvisionerDeleted(@NonNull Provisioner provisioner) {
1307
+ mMeshNetworkDb.delete(mProvisionerDao, provisioner);
1308
+ // Network update is invoked independent in the case of node deletion or provisioner deletion
1309
+ // onMeshNetworkUpdated();
1310
+ }
1311
+
1312
+ @Override
1313
+ public void onNodeDeleted(@NonNull final ProvisionedMeshNode meshNode) {
1314
+ //deleteNode(meshNode);
1315
+ deleteSceneAddress(meshNode.getUnicastAddress());
1316
+ // We should not remove the last known sequence number when resetting a node.
1317
+ // This should be kept until the current iv index has incremented by 2 and delete it when
1318
+ // clearing the exclusion lists
1319
+ // mMeshNetwork.sequenceNumbers.delete(meshNode.getUnicastAddress());
1320
+ mMeshNetworkDb.deleteNode(mProvisionedNodeDao, meshNode);
1321
+ mMeshMessageHandler.resetState(meshNode.getUnicastAddress());
1322
+ // Network update is invoked independent in the case of node deletion or provisioner deletion
1323
+ // mMeshNetworkDb.update(mMeshNetworkDao, mMeshNetwork);
1324
+ }
1325
+
1326
+ @Override
1327
+ public void onNodeAdded(@NonNull final ProvisionedMeshNode meshNode) {
1328
+ mMeshNetworkDb.insert(mProvisionedNodeDao, meshNode);
1329
+ onMeshNetworkUpdated();
1330
+ }
1331
+
1332
+ @Override
1333
+ public void onNodeUpdated(@NonNull final ProvisionedMeshNode meshNode) {
1334
+ mMeshNetworkDb.update(mProvisionedNodeDao, meshNode);
1335
+ onMeshNetworkUpdated();
1336
+ }
1337
+
1338
+ @Override
1339
+ public void onGroupAdded(@NonNull final Group group) {
1340
+ mMeshNetworkDb.insert(mGroupDao, group);
1341
+ onMeshNetworkUpdated();
1342
+ }
1343
+
1344
+ @Override
1345
+ public void onGroupUpdated(@NonNull final Group group) {
1346
+ mMeshNetworkDb.update(mGroupDao, group);
1347
+ onMeshNetworkUpdated();
1348
+ }
1349
+
1350
+ @Override
1351
+ public void onGroupDeleted(@NonNull final Group group) {
1352
+ mMeshNetworkDb.delete(mGroupDao, group);
1353
+ onMeshNetworkUpdated();
1354
+ }
1355
+
1356
+ @Override
1357
+ public void onSceneAdded(@NonNull final Scene scene) {
1358
+ mMeshNetworkDb.insert(mSceneDao, scene);
1359
+ onMeshNetworkUpdated();
1360
+ }
1361
+
1362
+ @Override
1363
+ public void onSceneUpdated(@NonNull final Scene scene) {
1364
+ mMeshNetworkDb.update(mSceneDao, scene);
1365
+ onMeshNetworkUpdated();
1366
+ }
1367
+
1368
+ @Override
1369
+ public void onSceneDeleted(@NonNull final Scene scene) {
1370
+ mMeshNetworkDb.delete(mSceneDao, scene);
1371
+ onMeshNetworkUpdated();
1372
+ }
1373
+ };
1374
+
1375
+ private boolean isAddressValid(@NonNull final UnprovisionedMeshNode node) {
1376
+ final int unicast = mMeshNetwork.nextAvailableUnicastAddress(node.getNumberOfElements(), mMeshNetwork.getSelectedProvisioner());
1377
+ if (!MeshAddress.isValidUnicastAddress(unicast)) {
1378
+ throw new IllegalArgumentException("Invalid address");
1379
+ }
1380
+ if (!mMeshNetwork.getSelectedProvisioner().isAddressWithinAllocatedRange(mMeshNetwork.getUnicastAddress())) {
1381
+ throw new IllegalArgumentException("Address assigned to node is outside of provisioner's allocated unicast range.");
1382
+ }
1383
+ node.setUnicastAddress(mMeshNetwork.getUnicastAddress());
1384
+ return true;
1385
+ }
1386
+ }