@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,1550 @@
1
+ package no.nordicsemi.android.mesh;
2
+
3
+ import android.text.TextUtils;
4
+ import android.util.SparseIntArray;
5
+
6
+ import com.google.gson.annotations.Expose;
7
+ import com.google.gson.annotations.SerializedName;
8
+
9
+ import java.lang.annotation.Retention;
10
+ import java.lang.annotation.RetentionPolicy;
11
+ import java.util.ArrayList;
12
+ import java.util.Arrays;
13
+ import java.util.Collections;
14
+ import java.util.Comparator;
15
+ import java.util.HashMap;
16
+ import java.util.List;
17
+ import java.util.Map;
18
+ import java.util.UUID;
19
+
20
+ import androidx.annotation.IntDef;
21
+ import androidx.annotation.NonNull;
22
+ import androidx.annotation.Nullable;
23
+ import androidx.annotation.RestrictTo;
24
+ import androidx.room.ColumnInfo;
25
+ import androidx.room.Ignore;
26
+ import androidx.room.PrimaryKey;
27
+ import androidx.room.TypeConverters;
28
+ import no.nordicsemi.android.mesh.logger.MeshLogger;
29
+ import no.nordicsemi.android.mesh.transport.ConfigAppKeyUpdate;
30
+ import no.nordicsemi.android.mesh.transport.ConfigKeyRefreshPhaseSet;
31
+ import no.nordicsemi.android.mesh.transport.ConfigNetKeyUpdate;
32
+ import no.nordicsemi.android.mesh.transport.Element;
33
+ import no.nordicsemi.android.mesh.transport.ProvisionedMeshNode;
34
+ import no.nordicsemi.android.mesh.utils.MeshAddress;
35
+ import no.nordicsemi.android.mesh.utils.MeshParserUtils;
36
+ import no.nordicsemi.android.mesh.utils.ProxyFilter;
37
+ import no.nordicsemi.android.mesh.utils.SecureUtils;
38
+
39
+ import static no.nordicsemi.android.mesh.NetworkKey.KeyRefreshPhase;
40
+ import static no.nordicsemi.android.mesh.NetworkKey.KeyRefreshPhaseTransition;
41
+
42
+ @SuppressWarnings({"WeakerAccess", "UnusedReturnValue", "ComparatorCombinators", "unused"})
43
+ abstract class BaseMeshNetwork {
44
+ private static final String TAG = "BaseMeshNetwork";
45
+ // Key refresh phases
46
+ public static final int NORMAL_OPERATION = 0; //Normal operation
47
+ public static final int IV_UPDATE_ACTIVE = 1; //IV Update active
48
+ @PrimaryKey
49
+ @NonNull
50
+ @ColumnInfo(name = "mesh_uuid")
51
+ @SerializedName("meshUUID")
52
+ @Expose
53
+ final String meshUUID;
54
+ @Ignore
55
+ protected final Comparator<ApplicationKey> appKeyComparator = (key1, key2) -> Integer.compare(key1.getKeyIndex(), key2.getKeyIndex());
56
+ @Ignore
57
+ protected final Comparator<NetworkKey> netKeyComparator = (key1, key2) -> Integer.compare(key1.getKeyIndex(), key2.getKeyIndex());
58
+ @Ignore
59
+ protected MeshNetworkCallbacks mCallbacks;
60
+ @Ignore
61
+ @SerializedName("$schema")
62
+ @Expose
63
+ String schema = "http://json-schema.org/draft-04/schema#";
64
+ @Ignore
65
+ @SerializedName("id")
66
+ @Expose
67
+ String id = "https://www.bluetooth.com/specifications/specs/mesh-cdb-1-0-1-schema.json#";
68
+ @Ignore
69
+ @SerializedName("version")
70
+ @Expose
71
+ String version = "1.0.1";
72
+ @ColumnInfo(name = "mesh_name")
73
+ @SerializedName("meshName")
74
+ @Expose
75
+ String meshName = "nRF Mesh Network";
76
+ @ColumnInfo(name = "timestamp", defaultValue = "0")
77
+ @SerializedName("timestamp")
78
+ @Expose
79
+ long timestamp = System.currentTimeMillis();
80
+ @ColumnInfo(name = "partial", defaultValue = "0")
81
+ @SerializedName("partial")
82
+ @Expose
83
+ boolean partial = false;
84
+ @ColumnInfo(name = "iv_index")
85
+ @TypeConverters(MeshTypeConverters.class)
86
+ @Expose
87
+ @NonNull
88
+ IvIndex ivIndex = new IvIndex(0, false, null);
89
+ //Properties with Ignore are stored in their own table with the network's UUID as the foreign key
90
+ @Ignore
91
+ @SerializedName("netKeys")
92
+ @Expose
93
+ List<NetworkKey> netKeys = new ArrayList<>();
94
+ @Ignore
95
+ @SerializedName("appKeys")
96
+ @Expose
97
+ List<ApplicationKey> appKeys = new ArrayList<>();
98
+ @Ignore
99
+ @SerializedName("provisioners")
100
+ @Expose
101
+ List<Provisioner> provisioners = new ArrayList<>();
102
+ @Ignore
103
+ @SerializedName("nodes")
104
+ @Expose
105
+ List<ProvisionedMeshNode> nodes = new ArrayList<>();
106
+ @Ignore
107
+ @SerializedName("groups")
108
+ @Expose
109
+ List<Group> groups = new ArrayList<>();
110
+ @Ignore
111
+ @SerializedName("scenes")
112
+ @Expose
113
+ List<Scene> scenes = new ArrayList<>();
114
+ @SerializedName("networkExclusions")
115
+ @TypeConverters(MeshTypeConverters.class)
116
+ @NonNull
117
+ @ColumnInfo(name = "network_exclusions", defaultValue = "{}")
118
+ @Expose
119
+ protected Map<Integer, List<Integer>> networkExclusions = new HashMap<>();
120
+ //Library related attributes
121
+ @Ignore
122
+ @ColumnInfo(name = "unicast_address")
123
+ @Expose
124
+ int unicastAddress = 0x0001;
125
+ @ColumnInfo(name = "last_selected")
126
+ @Expose
127
+ boolean lastSelected;
128
+ @Ignore
129
+ @Expose(serialize = false, deserialize = false)
130
+ protected SparseIntArray sequenceNumbers = new SparseIntArray();
131
+ @Ignore
132
+ @Expose(serialize = false, deserialize = false)
133
+ private ProxyFilter proxyFilter;
134
+ @Ignore
135
+ protected final Comparator<ProvisionedMeshNode> nodeComparator = (node1, node2) ->
136
+ Integer.compare(node1.getUnicastAddress(), node2.getUnicastAddress());
137
+ @Ignore
138
+ protected final Comparator<Group> groupComparator = (group1, group2) ->
139
+ Integer.compare(group1.getAddress(), group2.getAddress());
140
+ @Ignore
141
+ protected final Comparator<Scene> sceneComparator = (scene1, scene2) ->
142
+ Integer.compare(scene1.getNumber(), scene2.getNumber());
143
+ @Ignore
144
+ protected final Comparator<AllocatedUnicastRange> unicastRangeComparator = (range1, range2) ->
145
+ Integer.compare(range1.getLowAddress(), range2.getLowAddress());
146
+ @Ignore
147
+ protected final Comparator<AllocatedGroupRange> groupRangeComparator = (range1, range2) ->
148
+ Integer.compare(range1.getLowAddress(), range2.getLowAddress());
149
+ @Ignore
150
+ protected final Comparator<AllocatedSceneRange> sceneRangeComparator = (range1, range2) ->
151
+ Integer.compare(range1.getFirstScene(), range2.getFirstScene());
152
+
153
+ BaseMeshNetwork(@NonNull final String meshUUID) {
154
+ this.meshUUID = meshUUID;
155
+ }
156
+
157
+ private boolean isNetKeyExists(@NonNull final byte[] key) {
158
+ for (int i = 0; i < netKeys.size(); i++) {
159
+ if (Arrays.equals(key, netKeys.get(i).getKey())) {
160
+ return true;
161
+ }
162
+ }
163
+ return false;
164
+ }
165
+
166
+ /**
167
+ * Creates an Network key
168
+ *
169
+ * @return {@link NetworkKey}
170
+ * @throws IllegalArgumentException in case the generated application key already exists
171
+ */
172
+ public NetworkKey createNetworkKey() throws IllegalArgumentException {
173
+ final NetworkKey key = new NetworkKey(getAvailableNetKeyIndex(), MeshParserUtils.toByteArray(SecureUtils.generateRandomNetworkKey()));
174
+ key.setMeshUuid(meshUUID);
175
+ return key;
176
+ }
177
+
178
+ /**
179
+ * Adds a Net key to the list of net keys with the given key index
180
+ *
181
+ * @param newNetKey Network key
182
+ * @throws IllegalArgumentException if the key already exists.
183
+ */
184
+ public boolean addNetKey(@NonNull final NetworkKey newNetKey) {
185
+ if (isNetKeyExists(newNetKey.getKey())) {
186
+ throw new IllegalArgumentException("Net key already exists, check the contents of the key!");
187
+ } else {
188
+ newNetKey.setMeshUuid(meshUUID);
189
+ netKeys.add(newNetKey);
190
+ notifyNetKeyAdded(newNetKey);
191
+ }
192
+ return true;
193
+ }
194
+
195
+ private int getAvailableNetKeyIndex() {
196
+ if (netKeys.isEmpty()) {
197
+ return 0;
198
+ } else {
199
+ Collections.sort(netKeys, netKeyComparator);
200
+ final int index = netKeys.size() - 1;
201
+ return netKeys.get(index).getKeyIndex() + 1;
202
+ }
203
+ }
204
+
205
+ /**
206
+ * Update a network key with the given 16-byte hexadecimal string in the mesh network.
207
+ *
208
+ * <p>
209
+ * Updating a NetworkKey's key value requires initiating a Key Refresh Procedure. A NetworkKey that's in use
210
+ * would require a Key Refresh Procedure to update it's key contents. However a NetworkKey that's not in could
211
+ * be updated without this procedure. If the key is in use, call {@link #distributeNetKey(NetworkKey, byte[])}
212
+ * to initiate the Key Refresh Procedure.
213
+ * </p>
214
+ *
215
+ * @param networkKey Network key
216
+ * @param newNetKey 16-byte hexadecimal string
217
+ * @throws IllegalArgumentException if the key is already in use
218
+ */
219
+ public boolean updateNetKey(@NonNull final NetworkKey networkKey, @NonNull final String newNetKey) throws IllegalArgumentException {
220
+ if (MeshParserUtils.validateKeyInput(newNetKey)) {
221
+ final byte[] key = MeshParserUtils.toByteArray(newNetKey);
222
+ if (isNetKeyExists(key)) {
223
+ throw new IllegalArgumentException("Net key value is already in use.");
224
+ }
225
+
226
+ final int keyIndex = networkKey.getKeyIndex();
227
+ final NetworkKey netKey = getNetKey(keyIndex);
228
+ if (!isKeyInUse(netKey)) {
229
+ //We check if the contents of the key are the same
230
+ //This will return true only if the key index and the key are the same
231
+ if (netKey.equals(networkKey)) {
232
+ netKey.setKey(key);
233
+ return updateMeshKey(netKey);
234
+ } else {
235
+ return false;
236
+ }
237
+ } else {
238
+ throw new IllegalArgumentException("Unable to update a network key that's already in use. ");
239
+ }
240
+ }
241
+ return false;
242
+ }
243
+
244
+ /**
245
+ * Update a network key in the mesh network.
246
+ *
247
+ * <p>
248
+ * Updating a NetworkKey's key value requires initiating a Key Refresh Procedure. A NetworkKey that's in use
249
+ * would require a Key Refresh Procedure to update it's key contents. However a NetworkKey that's not in could
250
+ * be updated without this procedure. If the key is in use, call {@link #distributeNetKey(NetworkKey, byte[])}
251
+ * to initiate the Key Refresh Procedure.
252
+ * </p>
253
+ *
254
+ * @param networkKey Network key
255
+ * @throws IllegalArgumentException if the key is already in use
256
+ */
257
+ public boolean updateNetKey(@NonNull final NetworkKey networkKey) throws IllegalArgumentException {
258
+ final int keyIndex = networkKey.getKeyIndex();
259
+ final NetworkKey key = getNetKey(keyIndex);
260
+ //We check if the contents of the key are the same
261
+ //This will return true only if the key index and the key are the same
262
+ if (key.equals(networkKey)) {
263
+ // The name might be updated so we must update the key.
264
+ return updateMeshKey(networkKey);
265
+ } else {
266
+ //If the keys are not the same we check if its in use before updating the key
267
+ if (!isKeyInUse(key)) {
268
+ //We check if the contents of the key are the same
269
+ //This will return true only if the key index and the key are the same
270
+ return updateMeshKey(networkKey);
271
+ } else {
272
+ throw new IllegalArgumentException("Unable to update a network key that's already in use.");
273
+ }
274
+ }
275
+ }
276
+
277
+ /**
278
+ * Distribute Net Key will start the key refresh procedure and return the newly updated key.
279
+ *
280
+ * <p>
281
+ * This process contains three phases.
282
+ * {@link KeyRefreshPhase#KEY_DISTRIBUTION} - Distribution of the new Keys {@link #distributeNetKey(NetworkKey, byte[])}.
283
+ * {@link KeyRefreshPhase#USING_NEW_KEYS} - Switching to the new keys {@link #switchToNewKey(NetworkKey)}.
284
+ * {@link KeyRefreshPhase#REVOKE_OLD_KEYS} - Revoking old keys {@link #revokeOldKey(NetworkKey)}.
285
+ * The new key is distributed to the provisioner node by setting the currently used key as the old key and setting the
286
+ * currently used key to the new key value. This will change the phase of the network key to{@link KeyRefreshPhase#KEY_DISTRIBUTION}.
287
+ * During this phase a node will transmit using the old key but may receive using both old and the new key. After a successful
288
+ * distribution to the provisioner, the user may start sending {@link ConfigNetKeyUpdate} messages to the respective nodes in the
289
+ * network that requires updating. In addition if the user wishes to update the AppKey call {@link #distributeAppKey(ApplicationKey, byte[])}
290
+ * to update the Application Key on the provisioner and then distribute it to other nodes by sending {@link ConfigAppKeyUpdate} to
291
+ * update an AppKey. However it shall be only successfully processed if the NetworkKey bound to the Application Key is in
292
+ * {@link KeyRefreshPhase#KEY_DISTRIBUTION} and the received app key value is different or when the received AppKey value is the same as
293
+ * previously received value. Also note that sending a ConfigNetKeyUpdate during {@link KeyRefreshPhase#NORMAL_OPERATION} will switch the
294
+ * phase to {@link KeyRefreshPhase#KEY_DISTRIBUTION}. Once distribution is completed, call {@link #switchToNewKey(NetworkKey)} and
295
+ * send {@link ConfigKeyRefreshPhaseSet} to other nodes.
296
+ * </p>
297
+ *
298
+ * @param networkKey Network key
299
+ * @param newNetKey 16-byte key
300
+ * @throws IllegalArgumentException the key value is already in use.
301
+ */
302
+ public NetworkKey distributeNetKey(@NonNull final NetworkKey networkKey, @NonNull final byte[] newNetKey) throws IllegalArgumentException {
303
+ if (validateKey(newNetKey)) {
304
+ if (isNetKeyExists(newNetKey)) {
305
+ throw new IllegalArgumentException("Net key value is already in use.");
306
+ }
307
+
308
+ final int keyIndex = networkKey.getKeyIndex();
309
+ final NetworkKey netKey = getNetKey(keyIndex);
310
+ if (netKey.equals(networkKey)) {
311
+ if (netKey.distributeKey(newNetKey)) {
312
+ updateNodeKeyStatus(netKey);
313
+ if (updateMeshKey(netKey)) {
314
+ return netKey;
315
+ }
316
+ }
317
+ }
318
+ }
319
+ return null;
320
+ }
321
+
322
+ /**
323
+ * Updates the NodeKey object for Network or Application Keys
324
+ *
325
+ * @param meshKey Updated Key
326
+ */
327
+ private void updateNodeKeyStatus(@NonNull final MeshKey meshKey) {
328
+ for (Provisioner provisioner : provisioners) {
329
+ for (ProvisionedMeshNode node : nodes) {
330
+ if (node.getUuid().equalsIgnoreCase(provisioner.getProvisionerUuid())) {
331
+ if (meshKey instanceof NetworkKey) {
332
+ for (NodeKey key : node.getAddedNetKeys()) {
333
+ if (key.getIndex() == meshKey.getKeyIndex()) {
334
+ key.setUpdated(true);
335
+ }
336
+ }
337
+ } else {
338
+ for (NodeKey key : node.getAddedAppKeys()) {
339
+ if (key.getIndex() == meshKey.getKeyIndex()) {
340
+ key.setUpdated(true);
341
+ }
342
+ }
343
+ }
344
+ }
345
+ }
346
+ }
347
+ }
348
+
349
+ /**
350
+ * Switches the new key, this will initiate the provisioner node transmitting messages using the new keys but will
351
+ * support receiving messages using both old and the new key.
352
+ *
353
+ * <p>
354
+ * This must be called after {@link #distributeNetKey(NetworkKey, byte[])}
355
+ * </p>
356
+ *
357
+ * @param networkKey Network key to switch too
358
+ * @return true if success or false otherwise
359
+ * @throws IllegalArgumentException if the provided key is not the same as the distributed key.
360
+ */
361
+ public boolean switchToNewKey(@NonNull final NetworkKey networkKey) throws IllegalArgumentException {
362
+ if (!netKeys.contains(networkKey)) {
363
+ throw new IllegalArgumentException("Network Key not distributed");
364
+ }
365
+ return networkKey.switchToNewKey();
366
+ }
367
+
368
+ /**
369
+ * Revokes the old key.
370
+ * <p>
371
+ * This initiates {@link KeyRefreshPhase#REVOKE_OLD_KEYS} of the Key Refresh Procedure in which user must send {@link ConfigKeyRefreshPhaseSet}
372
+ * message with transition set to {@link KeyRefreshPhaseTransition#REVOKE_OLD_KEYS} to the other nodes going through the Key Refresh Procedure.
373
+ * The library at this point will set the given Network Key's Phase to {@link KeyRefreshPhase#NORMAL_OPERATION}.
374
+ * </p>
375
+ *
376
+ * @param networkKey Network key that was distributed
377
+ * @return true if success or false otherwise
378
+ */
379
+ public boolean revokeOldKey(@NonNull final NetworkKey networkKey) {
380
+ if (netKeys.contains(networkKey)) {
381
+ return networkKey.revokeOldKey();
382
+ }
383
+ return false;
384
+ }
385
+
386
+
387
+ /**
388
+ * Removes a network key from the network key list
389
+ *
390
+ * @param networkKey key to be removed
391
+ * @throws IllegalArgumentException if the key is in use or if it does not exist in the list of keys
392
+ */
393
+ public boolean removeNetKey(@NonNull final NetworkKey networkKey) throws IllegalArgumentException {
394
+ if (!isKeyInUse(networkKey)) {
395
+ if (netKeys.remove(networkKey)) {
396
+ notifyNetKeyDeleted(networkKey);
397
+ return true;
398
+ } else {
399
+ throw new IllegalArgumentException("Key does not exist.");
400
+ }
401
+ }
402
+ throw new IllegalArgumentException("Unable to delete a network key that's already in use.");
403
+ }
404
+
405
+ /**
406
+ * Returns a network key with a given key index.
407
+ *
408
+ * @param keyIndex index
409
+ */
410
+ public NetworkKey getNetKey(final int keyIndex) {
411
+ for (NetworkKey key : netKeys) {
412
+ if (keyIndex == key.getKeyIndex()) {
413
+ try {
414
+ return key.clone();
415
+ } catch (CloneNotSupportedException e) {
416
+ MeshLogger.error(TAG, "Error while cloning key: " + e.getMessage());
417
+ }
418
+ }
419
+ }
420
+ return null;
421
+ }
422
+
423
+ /**
424
+ * Creates an application key
425
+ *
426
+ * @return {@link ApplicationKey}
427
+ * @throws IllegalArgumentException in case the generated application key already exists
428
+ */
429
+ public ApplicationKey createAppKey() throws IllegalArgumentException {
430
+ if (netKeys.isEmpty()) {
431
+ throw new IllegalStateException("Cannot create an App Key without a Network key. Consider creating a network key first");
432
+ }
433
+
434
+ final ApplicationKey key = new ApplicationKey(getAvailableAppKeyIndex(), MeshParserUtils.toByteArray(SecureUtils.generateRandomApplicationKey()));
435
+ key.setMeshUuid(meshUUID);
436
+ return key;
437
+ }
438
+
439
+ /**
440
+ * Adds an app key to the list of keys with the given key index. If there is an existing key with the same index,
441
+ * an illegal argument exception is thrown.
442
+ *
443
+ * @param newAppKey application key
444
+ * @throws IllegalArgumentException if app key already exists
445
+ */
446
+ public boolean addAppKey(@NonNull final ApplicationKey newAppKey) {
447
+ if (netKeys.isEmpty()) {
448
+ throw new IllegalStateException("Cannot create an App Key without a Network key. Consider creating a network key first");
449
+ }
450
+
451
+ if (isAppKeyExists(newAppKey.getKey())) {
452
+ throw new IllegalArgumentException("App key already exists, check the contents of the key!");
453
+ } else {
454
+ newAppKey.setMeshUuid(meshUUID);
455
+ appKeys.add(newAppKey);
456
+ notifyAppKeyAdded(newAppKey);
457
+ }
458
+ return true;
459
+ }
460
+
461
+ private int getAvailableAppKeyIndex() {
462
+ if (appKeys.isEmpty()) {
463
+ return 0;
464
+ } else {
465
+ Collections.sort(appKeys, appKeyComparator);
466
+ final int index = appKeys.size() - 1;
467
+ return appKeys.get(index).getKeyIndex() + 1;
468
+ }
469
+ }
470
+
471
+ /**
472
+ * Returns an application key with a given key index
473
+ *
474
+ * @param keyIndex index
475
+ */
476
+ public ApplicationKey getAppKey(final int keyIndex) {
477
+ for (ApplicationKey key : appKeys) {
478
+ if (keyIndex == key.getKeyIndex()) {
479
+ try {
480
+ return key.clone();
481
+ } catch (CloneNotSupportedException e) {
482
+ MeshLogger.error(TAG, "Error while cloning key: " + e.getMessage());
483
+ }
484
+ }
485
+ }
486
+ return null;
487
+ }
488
+
489
+ /**
490
+ * Returns a list of application keys bound to a Network key
491
+ *
492
+ * @param boundNetKeyIndex Network Key index
493
+ */
494
+ protected List<ApplicationKey> getAppKeys(final int boundNetKeyIndex) {
495
+ final List<ApplicationKey> applicationKeys = new ArrayList<>();
496
+ for (ApplicationKey applicationKey : appKeys) {
497
+ if (applicationKey.getBoundNetKeyIndex() == boundNetKeyIndex) {
498
+ applicationKeys.add(applicationKey);
499
+ }
500
+ }
501
+ return applicationKeys;
502
+ }
503
+
504
+ private boolean isAppKeyExists(@NonNull final byte[] appKey) {
505
+ for (int i = 0; i < appKeys.size(); i++) {
506
+ final ApplicationKey applicationKey = appKeys.get(i);
507
+ if (Arrays.equals(applicationKey.getKey(), appKey)) {
508
+ return true;
509
+ }
510
+ }
511
+ return false;
512
+ }
513
+
514
+ /**
515
+ * Updates an app key with a given key in the mesh network.
516
+ *
517
+ * <p>
518
+ * Updates the Key if it is not use, if not Updating a Key's key value requires initiating a Key Refresh Procedure.
519
+ * This requires the bound NetworkKey of the AppKey to be updated. A NetworkKey that's in use would require a
520
+ * Key Refresh Procedure to update it's key contents. However a NetworkKey that's not in could be updated without this
521
+ * procedure. If the key is in use, call {@link #distributeNetKey(NetworkKey, byte[])} to initiate the Key Refresh Procedure.
522
+ * </p>
523
+ *
524
+ * @param applicationKey {@link ApplicationKey}
525
+ * @param newAppKey Application key
526
+ * @throws IllegalArgumentException if the key is in use.
527
+ */
528
+ public boolean updateAppKey(@NonNull final ApplicationKey applicationKey, @NonNull final String newAppKey) throws IllegalArgumentException {
529
+ if (MeshParserUtils.validateKeyInput(newAppKey)) {
530
+ final byte[] key = MeshParserUtils.toByteArray(newAppKey);
531
+ if (isNetKeyExists(key)) {
532
+ throw new IllegalArgumentException("Net key already in use");
533
+ }
534
+
535
+ final int keyIndex = applicationKey.getKeyIndex();
536
+ final ApplicationKey appKey = getAppKey(keyIndex);
537
+ if (!isKeyInUse(appKey)) {
538
+ //We check if the contents of the key are the same
539
+ //This will return true only if the key index and the key are the same
540
+ if (appKey.equals(applicationKey)) {
541
+ appKey.setKey(key);
542
+ return updateMeshKey(appKey);
543
+ } else {
544
+ return false;
545
+ }
546
+ } else {
547
+ throw new IllegalArgumentException("Unable to update a application key that's already in use.");
548
+ }
549
+ }
550
+ return false;
551
+ }
552
+
553
+ /**
554
+ * Updates an app key in the mesh network.
555
+ *
556
+ * <p>
557
+ * Updates the Key if it is not use, if not Updating a Key's key value requires initiating a Key Refresh Procedure. This requires
558
+ * the bound NetworkKey of the AppKey to be updated. A NetworkKey that's in use would require aKey Refresh Procedure to update
559
+ * it's key contents. However a NetworkKey that's not in could be updated without this procedure. If the key is in use, call
560
+ * {@link #distributeNetKey(NetworkKey, byte[])} to initiate the Key Refresh Procedure. After distributing the NetworkKey bound to
561
+ * the Application Key, user may call {@link #distributeAppKey(ApplicationKey, byte[])} to update the corresponding ApplicationKey.
562
+ * </p>
563
+ *
564
+ * @param applicationKey {@link ApplicationKey}
565
+ * @throws IllegalArgumentException if the key is already in use
566
+ */
567
+ public boolean updateAppKey(@NonNull final ApplicationKey applicationKey) throws IllegalArgumentException {
568
+ final int keyIndex = applicationKey.getKeyIndex();
569
+ final ApplicationKey key = getAppKey(keyIndex);
570
+ //If the keys are not the same we check if its in use before updating the key
571
+ if (!isKeyInUse(key)) {
572
+ //We check if the contents of the key are the same
573
+ //This will return true only if the key index and the key are the same
574
+ return updateMeshKey(applicationKey);
575
+ } else {
576
+ throw new IllegalArgumentException("Unable to update a application key that's already in use.");
577
+ }
578
+ }
579
+
580
+ /**
581
+ * Distributes/updates the provisioner node's the application key and returns the updated Application Key.
582
+ *
583
+ * <p>
584
+ * This will only work if the NetworkKey bound to this ApplicationKey is in Phase 1 of the Key Refresh Procedure. Therefore the NetworkKey
585
+ * must be updated first before updating it's bound application key. Call {@link #distributeNetKey(NetworkKey, byte[])} to initiate the
586
+ * Key Refresh Procedure to update a Network Key that's in use by the provisioner or the nodes, if it has not been started already.
587
+ * To update a key that's not in use call {@link #updateAppKey(ApplicationKey, String)}
588
+ * <p>
589
+ * Once the provisioner nodes' AppKey is updated user must distribute the updated AppKey to the nodes. This can be done by sending
590
+ * {@link ConfigAppKeyUpdate} message with the new key.
591
+ * </p>
592
+ *
593
+ * @param applicationKey Network key
594
+ * @param newAppKey 16-byte key
595
+ * @throws IllegalArgumentException the key value is already in use.
596
+ */
597
+ public ApplicationKey distributeAppKey(@NonNull final ApplicationKey applicationKey, @NonNull final byte[] newAppKey) throws IllegalArgumentException {
598
+ if (validateKey(newAppKey)) {
599
+ if (isAppKeyExists(newAppKey)) {
600
+ throw new IllegalArgumentException("App key value is already in use.");
601
+ }
602
+
603
+ final int keyIndex = applicationKey.getKeyIndex();
604
+ final ApplicationKey appKey = getAppKey(keyIndex);
605
+ if (appKey.equals(applicationKey)) {
606
+ if (appKey.distributeKey(newAppKey)) {
607
+ updateNodeKeyStatus(appKey);
608
+ if (updateMeshKey(appKey)) {
609
+ return appKey;
610
+ }
611
+ }
612
+ }
613
+ }
614
+ return null;
615
+ }
616
+
617
+ private boolean updateMeshKey(@NonNull final MeshKey key) {
618
+ if (key instanceof ApplicationKey) {
619
+ ApplicationKey appKey = null;
620
+ for (int i = 0; i < appKeys.size(); i++) {
621
+ final ApplicationKey tempKey = appKeys.get(i);
622
+ if (tempKey.getKeyIndex() == key.getKeyIndex()) {
623
+ appKey = (ApplicationKey) key;
624
+ appKeys.set(i, appKey);
625
+ break;
626
+ }
627
+ }
628
+ if (appKey != null) {
629
+ notifyAppKeyUpdated(appKey);
630
+ return true;
631
+ }
632
+ } else {
633
+ NetworkKey netKey = null;
634
+ for (int i = 0; i < netKeys.size(); i++) {
635
+ final NetworkKey tempKey = netKeys.get(i);
636
+ if (tempKey.getKeyIndex() == key.getKeyIndex()) {
637
+ netKey = (NetworkKey) key;
638
+ netKeys.set(i, netKey);
639
+ break;
640
+ }
641
+ }
642
+ if (netKey != null) {
643
+ netKey.setTimestamp(System.currentTimeMillis());
644
+ notifyNetKeyUpdated(netKey);
645
+ return true;
646
+ }
647
+ }
648
+ return false;
649
+ }
650
+
651
+ /**
652
+ * Removes an app key from the app key list
653
+ *
654
+ * @param appKey app key to be removed
655
+ * @throws IllegalArgumentException if the key is in use or if it does not exist in the list of keys
656
+ */
657
+ public boolean removeAppKey(@NonNull final ApplicationKey appKey) throws IllegalArgumentException {
658
+ if (isKeyInUse(appKey)) {
659
+ throw new IllegalArgumentException("Unable to delete an app key that's in use.");
660
+ } else {
661
+ if (appKeys.remove(appKey)) {
662
+ notifyAppKeyDeleted(appKey);
663
+ return true;
664
+ } else {
665
+ throw new IllegalArgumentException("Key does not exist.");
666
+ }
667
+ }
668
+ }
669
+
670
+ /**
671
+ * Checks if the app key is in use.
672
+ *
673
+ * <p>
674
+ * This will check if the specified app key is added to a node other than the selected provisioner node
675
+ * </p>
676
+ *
677
+ * @param meshKey {@link MeshKey}
678
+ */
679
+ public boolean isKeyInUse(@NonNull final MeshKey meshKey) {
680
+ // We should not allow deleting a network key that is bound to an application key.
681
+ // This would require deleting the application key that's bound to this network key before deleting network key.
682
+ if (meshKey instanceof NetworkKey) {
683
+ for (ApplicationKey applicationKey : appKeys) {
684
+ if (meshKey.getKeyIndex() == applicationKey.getBoundNetKeyIndex()) {
685
+ throw new IllegalArgumentException("Please unbind " + meshKey.name + " from the " + applicationKey.name + " or delete the bound " + applicationKey.name + " first.");
686
+ }
687
+ }
688
+ }
689
+
690
+ for (ProvisionedMeshNode node : nodes) {
691
+ if (!node.getUuid().equalsIgnoreCase(getSelectedProvisioner().getProvisionerUuid())) {
692
+ final int index = meshKey.getKeyIndex();
693
+ //We need to check if a key index is in use by checking in the added net/app key indexes
694
+ if (meshKey instanceof ApplicationKey) {
695
+ return MeshParserUtils.isNodeKeyExists(node.getAddedAppKeys(), index);
696
+ } else {
697
+ return MeshParserUtils.isNodeKeyExists(node.getAddedNetKeys(), index);
698
+ }
699
+ }
700
+ }
701
+ return false;
702
+ }
703
+
704
+ @Nullable
705
+ public Integer getProvisionerAddress() {
706
+ return getSelectedProvisioner().getProvisionerAddress();
707
+ }
708
+
709
+ /**
710
+ * Returns the next available unicast address
711
+ *
712
+ * @return unicast address
713
+ */
714
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
715
+ public int getUnicastAddress() {
716
+ return unicastAddress;
717
+ }
718
+
719
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
720
+ public void setUnicastAddress(final int address) {
721
+ this.unicastAddress = address;
722
+ }
723
+
724
+ /**
725
+ * Assigns a unicast address, to be used by a node
726
+ *
727
+ * @param unicastAddress Unicast address
728
+ * @return true if success, false if the address is in use by another device
729
+ */
730
+ public boolean assignUnicastAddress(final int unicastAddress) throws IllegalArgumentException {
731
+ if (getNode(unicastAddress) != null)
732
+ throw new IllegalArgumentException("Unicast address is already in use.");
733
+
734
+ this.unicastAddress = unicastAddress;
735
+ notifyNetworkUpdated();
736
+ return true;
737
+ }
738
+
739
+ private boolean isAddressInUse(@Nullable final Integer address) {
740
+ if (address == null)
741
+ return false;
742
+
743
+ for (ProvisionedMeshNode node : nodes) {
744
+ if (address == node.getUnicastAddress()) {
745
+ return true;
746
+ }
747
+ }
748
+ return false;
749
+ }
750
+
751
+ public int getGlobalTtl() {
752
+ return getSelectedProvisioner().getGlobalTtl();
753
+ }
754
+
755
+ /**
756
+ * Sets the global ttl of the messages sent by the provisioner
757
+ *
758
+ * @param globalTtl ttl
759
+ */
760
+ public void setGlobalTtl(final int globalTtl) {
761
+ final Provisioner provisioner = provisioners.get(0);
762
+ provisioner.setGlobalTtl(globalTtl);
763
+ notifyProvisionerUpdated(provisioner);
764
+ }
765
+
766
+ /**
767
+ * Returns the list of {@link Provisioner}
768
+ */
769
+ public List<Provisioner> getProvisioners() {
770
+ return Collections.unmodifiableList(provisioners);
771
+ }
772
+
773
+ void setProvisioners(List<Provisioner> provisioners) {
774
+ this.provisioners = provisioners;
775
+ }
776
+
777
+ /**
778
+ * Creates a provisioner with a given name
779
+ *
780
+ * @param name Provisioner name
781
+ * @return {@link Provisioner}
782
+ * @throws IllegalArgumentException if the name is empty
783
+ */
784
+ public Provisioner createProvisioner(@NonNull final String name) throws IllegalArgumentException {
785
+ return createProvisioner(name,
786
+ new AllocatedUnicastRange(0x0001, 0x199A),
787
+ new AllocatedGroupRange(0xC000, 0xCC9A),
788
+ new AllocatedSceneRange(0x0001, 0x3333));
789
+ }
790
+
791
+ /**
792
+ * Creates a provisioner
793
+ *
794
+ * @param name Provisioner name
795
+ * @param unicastRange {@link AllocatedUnicastRange} for the provisioner
796
+ * @param groupRange {@link AllocatedGroupRange} for the provisioner
797
+ * @param sceneRange {@link AllocatedSceneRange} for the provisioner
798
+ * @return {@link Provisioner}
799
+ * @throws IllegalArgumentException if the name is empty
800
+ */
801
+ public Provisioner createProvisioner(@NonNull final String name,
802
+ @NonNull final AllocatedUnicastRange unicastRange,
803
+ @NonNull final AllocatedGroupRange groupRange,
804
+ @NonNull final AllocatedSceneRange sceneRange) throws IllegalArgumentException {
805
+ if (TextUtils.isEmpty(name)) {
806
+ throw new IllegalArgumentException("Name cannot be empty.");
807
+ }
808
+ final List<AllocatedUnicastRange> unicastRanges = new ArrayList<>();
809
+ final List<AllocatedGroupRange> groupRanges = new ArrayList<>();
810
+ final List<AllocatedSceneRange> sceneRanges = new ArrayList<>();
811
+ unicastRanges.add(unicastRange);
812
+ groupRanges.add(groupRange);
813
+ sceneRanges.add(sceneRange);
814
+ final Provisioner provisioner = new Provisioner(UUID.randomUUID().toString(), unicastRanges, groupRanges, sceneRanges, meshUUID);
815
+ provisioner.setProvisionerName(name);
816
+ return provisioner;
817
+ }
818
+
819
+ /**
820
+ * Adds a provisioner to the network
821
+ *
822
+ * @param provisioner {@link Provisioner}
823
+ * @throws IllegalArgumentException if unicast address is invalid, in use by a node
824
+ */
825
+ public boolean addProvisioner(@NonNull final Provisioner provisioner) throws IllegalArgumentException {
826
+
827
+ if (provisioner.allocatedUnicastRanges.isEmpty()) {
828
+ if (provisioner.getProvisionerAddress() != null) {
829
+ throw new IllegalArgumentException("Provisioner has no allocated unicast range assigned.");
830
+ }
831
+ }
832
+
833
+ for (Provisioner other : provisioners) {
834
+ if (provisioner.hasOverlappingUnicastRanges(other.getAllocatedUnicastRanges())
835
+ || provisioner.hasOverlappingGroupRanges(other.getAllocatedGroupRanges())
836
+ || provisioner.hasOverlappingSceneRanges(other.getAllocatedSceneRanges())) {
837
+ throw new IllegalArgumentException("Provisioner ranges overlap.");
838
+ }
839
+ }
840
+
841
+ if (!provisioner.isAddressWithinAllocatedRange(provisioner.getProvisionerAddress())) {
842
+ throw new IllegalArgumentException("Unicast address assigned to a provisioner must be within an allocated unicast address range.");
843
+ }
844
+
845
+ if (isAddressInUse(provisioner.getProvisionerAddress())) {
846
+ throw new IllegalArgumentException("Unicast address is in use by another node.");
847
+ }
848
+
849
+ if (provisioner.isNodeAddressInUse(nodes)) {
850
+ throw new IllegalArgumentException("Unicast address is already in use.");
851
+ }
852
+
853
+ if (isProvisionerUuidInUse(provisioner.getProvisionerUuid())) {
854
+ throw new IllegalArgumentException("Provisioner uuid already in use.");
855
+ }
856
+
857
+ provisioner.assignProvisionerAddress(provisioner.getProvisionerAddress());
858
+ provisioners.add(provisioner);
859
+ notifyProvisionerAdded(provisioner);
860
+ if (provisioner.isLastSelected()) {
861
+ selectProvisioner(provisioner);
862
+ }
863
+ if (provisioner.getProvisionerAddress() != null) {
864
+ final ProvisionedMeshNode node = new ProvisionedMeshNode(provisioner, netKeys, appKeys);
865
+ nodes.add(node);
866
+ notifyNodeAdded(node);
867
+ }
868
+ return true;
869
+ }
870
+
871
+ /**
872
+ * Update provisioner
873
+ *
874
+ * @param provisioner {@link Provisioner}
875
+ * @return returns true if updated and false otherwise
876
+ */
877
+ public boolean updateProvisioner(@NonNull final Provisioner provisioner) {
878
+ if (!isProvisionerUuidInUse(provisioner.getProvisionerUuid())) {
879
+ throw new IllegalArgumentException("Provisioner does not exist, consider adding a provisioner first.");
880
+ }
881
+
882
+ if (provisioner.allocatedUnicastRanges.isEmpty()) {
883
+ if (provisioner.getProvisionerAddress() != null) {
884
+ throw new IllegalArgumentException("Provisioner has no allocated unicast range assigned.");
885
+ }
886
+ }
887
+
888
+ for (Provisioner other : provisioners) {
889
+ if (!other.getProvisionerUuid().equalsIgnoreCase(provisioner.getProvisionerUuid())) {
890
+ if (provisioner.hasOverlappingUnicastRanges(other.getAllocatedUnicastRanges())
891
+ || provisioner.hasOverlappingGroupRanges(other.getAllocatedGroupRanges())
892
+ || provisioner.hasOverlappingSceneRanges(other.getAllocatedSceneRanges())) {
893
+ throw new IllegalArgumentException("Provisioner ranges overlap.");
894
+ }
895
+ }
896
+ }
897
+
898
+ if (!provisioner.isAddressWithinAllocatedRange(provisioner.getProvisionerAddress())) {
899
+ throw new IllegalArgumentException("Unicast address assigned to a provisioner must be within an allocated unicast address range.");
900
+ }
901
+
902
+ for (ProvisionedMeshNode node : nodes) {
903
+ if (!node.getUuid().equalsIgnoreCase(provisioner.getProvisionerUuid())) {
904
+ if (provisioner.getProvisionerAddress() != null) {
905
+ if (node.getUnicastAddress() == provisioner.getProvisionerAddress()) {
906
+ throw new IllegalArgumentException("Unicast address is in use by another node.");
907
+ }
908
+ }
909
+ }
910
+ }
911
+
912
+ if (provisioner.isNodeAddressInUse(nodes)) {
913
+ throw new IllegalArgumentException("Unicast address is already in use by another provisioner.");
914
+ }
915
+
916
+ boolean provisionerExists = false;
917
+ for (int i = 0; i < provisioners.size(); i++) {
918
+ final Provisioner p = provisioners.get(i);
919
+ if (p.getProvisionerUuid().equalsIgnoreCase(provisioner.getProvisionerUuid())) {
920
+ provisioners.set(i, provisioner);
921
+ provisionerExists = true;
922
+ }
923
+ }
924
+ boolean nodeExists = false;
925
+ if (provisionerExists) {
926
+ if (provisioner.getProvisionerAddress() != null) {
927
+ ProvisionedMeshNode node = getNode(provisioner.getProvisionerUuid());
928
+ if (node == null) {
929
+ node = new ProvisionedMeshNode(provisioner, netKeys, appKeys);
930
+ nodes.add(node);
931
+ notifyNodeAdded(node);
932
+ } else {
933
+ for (int i = 0; i < nodes.size(); i++) {
934
+ final ProvisionedMeshNode meshNode = nodes.get(i);
935
+ if (meshNode.getUuid().equalsIgnoreCase(provisioner.getProvisionerUuid())) {
936
+ final int sequenceNumber;
937
+ if (meshNode.getUnicastAddress() != provisioner.getProvisionerAddress()) {
938
+ sequenceNumber = sequenceNumbers.get(provisioner.getProvisionerAddress());
939
+ } else {
940
+ sequenceNumber = sequenceNumbers.get(node.getUnicastAddress(), node.getSequenceNumber());
941
+ }
942
+ node = new ProvisionedMeshNode(provisioner, netKeys, appKeys);
943
+ node.setSequenceNumber(sequenceNumber);
944
+ nodes.set(i, node);
945
+ notifyNodeUpdated(node);
946
+ break;
947
+ }
948
+ }
949
+ }
950
+ }
951
+ if (provisioner.isLastSelected()) {
952
+ selectProvisioner(provisioner);
953
+ } else {
954
+ notifyProvisionerUpdated(provisioner);
955
+ }
956
+ return true;
957
+ }
958
+ return false;
959
+ }
960
+
961
+ /**
962
+ * Update provisioner
963
+ *
964
+ * @param provisioner {@link Provisioner}
965
+ * @return returns true if updated and false otherwise
966
+ */
967
+ public boolean disableConfigurationCapabilities(@NonNull final Provisioner provisioner) {
968
+ final ProvisionedMeshNode node = getNode(provisioner.getProvisionerUuid());
969
+ if (node == null)
970
+ return true;
971
+ else if (nodes.remove(node)) {
972
+ provisioner.assignProvisionerAddress(null);
973
+ notifyNodeDeleted(node);
974
+ return true;
975
+ }
976
+ return false;
977
+ }
978
+
979
+ /**
980
+ * Removes a provisioner from the mesh network
981
+ *
982
+ * @param provisioner {@link Provisioner}
983
+ * @return true if the provisioner was deleted or false otherwise
984
+ */
985
+ public boolean removeProvisioner(@NonNull final Provisioner provisioner) {
986
+ return removeProvisionerAndNode(getNode(provisioner.getProvisionerAddress()), provisioner);
987
+ /*if (provisioners.remove(provisioner)) {
988
+ notifyProvisionerDeleted(provisioner);
989
+ if (provisioner.getProvisionerAddress() != null) {
990
+ final ProvisionedMeshNode node = getNode(provisioner.getProvisionerAddress());
991
+ if (node != null) {
992
+ deleteNode(node);
993
+ notifyNodeDeleted(node);
994
+ }
995
+ }
996
+ return true;
997
+ }
998
+ return false;*/
999
+ }
1000
+
1001
+ /**
1002
+ * Selects a provisioner if there are multiple provisioners.
1003
+ *
1004
+ * @param provisioner {@link Provisioner}
1005
+ */
1006
+ public final void selectProvisioner(final Provisioner provisioner) {
1007
+ provisioner.setLastSelected(true);
1008
+ for (Provisioner prov : provisioners) {
1009
+ if (!prov.getProvisionerUuid().equalsIgnoreCase(provisioner.getProvisionerUuid())) {
1010
+ prov.setLastSelected(false);
1011
+ }
1012
+ }
1013
+ notifyProvisionersUpdated(getProvisioners());
1014
+ }
1015
+
1016
+ /**
1017
+ * Checks if the provisioner is selected
1018
+ * <p> There could be networks that may contain more than one provisioner</p>
1019
+ *
1020
+ * @return true if a provisioner was selected or false otherwise
1021
+ */
1022
+ public final boolean isProvisionerSelected() {
1023
+ if (provisioners.size() == 1) {
1024
+ if (!provisioners.get(0).isLastSelected())
1025
+ selectProvisioner(provisioners.get(0));
1026
+ return true;
1027
+ }
1028
+
1029
+ for (Provisioner provisioner : provisioners) {
1030
+ if (provisioner.isLastSelected()) {
1031
+ return true;
1032
+ }
1033
+ }
1034
+ return false;
1035
+ }
1036
+
1037
+ /**
1038
+ * Returns the selected provisioner in the network
1039
+ */
1040
+ public Provisioner getSelectedProvisioner() {
1041
+ for (Provisioner provisioner : provisioners) {
1042
+ if (provisioner.isLastSelected()) {
1043
+ return provisioner;
1044
+ }
1045
+ }
1046
+ return null;
1047
+ }
1048
+
1049
+ protected boolean isProvisionerUuidInUse(@NonNull final String uuid) {
1050
+ for (Provisioner provisioner : provisioners) {
1051
+ if (provisioner.getProvisionerUuid().equalsIgnoreCase(uuid)) {
1052
+ return true;
1053
+ }
1054
+ }
1055
+ return false;
1056
+ }
1057
+
1058
+ /**
1059
+ * Returns the list of {@link ProvisionedMeshNode}
1060
+ */
1061
+ public List<ProvisionedMeshNode> getNodes() {
1062
+ return Collections.unmodifiableList(nodes);
1063
+ }
1064
+
1065
+ /**
1066
+ * Sets the list of {@link ProvisionedMeshNode}
1067
+ *
1068
+ * @param nodes list of {@link ProvisionedMeshNode}
1069
+ */
1070
+ void setNodes(@NonNull List<ProvisionedMeshNode> nodes) {
1071
+ this.nodes = nodes;
1072
+ }
1073
+
1074
+ /**
1075
+ * Returns the list of {@link ProvisionedMeshNode} containing the given network key
1076
+ *
1077
+ * @param networkKey Network Key
1078
+ */
1079
+ public List<ProvisionedMeshNode> getNodes(final NetworkKey networkKey) {
1080
+ final List<ProvisionedMeshNode> nodes = new ArrayList<>();
1081
+ for (ProvisionedMeshNode node : this.nodes) {
1082
+ for (NodeKey nodeKey : node.getAddedNetKeys()) {
1083
+ if (nodeKey.getIndex() == networkKey.getKeyIndex()) {
1084
+ nodes.add(node);
1085
+ }
1086
+ }
1087
+ }
1088
+ return nodes;
1089
+ }
1090
+
1091
+ /**
1092
+ * Returns the mesh node with the corresponding unicast address
1093
+ *
1094
+ * @param unicastAddress unicast address of the node
1095
+ */
1096
+ public ProvisionedMeshNode getNode(@NonNull final byte[] unicastAddress) {
1097
+ for (ProvisionedMeshNode node : nodes) {
1098
+ if (node.hasUnicastAddress(MeshAddress.addressBytesToInt(unicastAddress))) {
1099
+ return node;
1100
+ }
1101
+ }
1102
+ return null;
1103
+ }
1104
+
1105
+ /**
1106
+ * Returns the mesh node with the corresponding unicast address
1107
+ *
1108
+ * @param unicastAddress unicast address of the node
1109
+ */
1110
+ public ProvisionedMeshNode getNode(final Integer unicastAddress) {
1111
+ if(unicastAddress == null)
1112
+ return null;
1113
+ for (ProvisionedMeshNode node : nodes) {
1114
+ if (node.hasUnicastAddress(unicastAddress)) {
1115
+ return node;
1116
+ }
1117
+ }
1118
+ return null;
1119
+ }
1120
+
1121
+ /**
1122
+ * Returns the mesh node with the corresponding unicast address
1123
+ *
1124
+ * @param uuid unicast address of the node
1125
+ */
1126
+ public ProvisionedMeshNode getNode(final String uuid) {
1127
+ for (ProvisionedMeshNode node : nodes) {
1128
+ if (node.getUuid().equalsIgnoreCase(uuid)) {
1129
+ return node;
1130
+ }
1131
+ }
1132
+ return null;
1133
+ }
1134
+
1135
+ /**
1136
+ * Update node name
1137
+ *
1138
+ * @param node {@link ProvisionedMeshNode}
1139
+ * @param name Name
1140
+ * @return true if successful and false otherwise
1141
+ */
1142
+ public boolean updateNodeName(@NonNull ProvisionedMeshNode node, @NonNull final String name) {
1143
+ if (TextUtils.isEmpty(name))
1144
+ return false;
1145
+ final ProvisionedMeshNode meshNode = getNode(node.getUuid());
1146
+ if (meshNode == null)
1147
+ return false;
1148
+ meshNode.setNodeName(name);
1149
+ notifyNodeUpdated(meshNode);
1150
+ return true;
1151
+ }
1152
+
1153
+ /**
1154
+ * Adds a mesh node to the list of provisioned nodes
1155
+ *
1156
+ * <p>
1157
+ * Note that This method should only be used to add debug Nodes, or Nodes
1158
+ * that have already been provisioned.
1159
+ * </p>
1160
+ *
1161
+ * @param meshNode node to be added
1162
+ * @return true if added and false otherwise
1163
+ */
1164
+ public boolean addNode(@NonNull final ProvisionedMeshNode meshNode) {
1165
+ ProvisionedMeshNode sameAddressNode = getNode(meshNode.getUnicastAddress());
1166
+ if (sameAddressNode != null) {
1167
+ throw new IllegalStateException("cant add node with conflicting unicast address");
1168
+ }
1169
+ boolean hasMatchingNetKey = false;
1170
+ for (NodeKey nodeKey : meshNode.getAddedNetKeys()) {
1171
+ for (NetworkKey networkKey : netKeys) {
1172
+ hasMatchingNetKey = nodeKey.getIndex() == networkKey.getKeyIndex();
1173
+ if (hasMatchingNetKey) break;
1174
+ }
1175
+ if (hasMatchingNetKey) break;
1176
+ }
1177
+ if (!hasMatchingNetKey) {
1178
+ throw new IllegalStateException("Network key added to the node is not a part of the mesh network");
1179
+ }
1180
+
1181
+ boolean hasMatchingAppKey = false;
1182
+ for (NodeKey nodeKey : meshNode.getAddedAppKeys()) {
1183
+ for (ApplicationKey appKey : appKeys) {
1184
+ hasMatchingAppKey = nodeKey.getIndex() == appKey.getKeyIndex();
1185
+ if (hasMatchingAppKey) break;
1186
+ }
1187
+ if (hasMatchingAppKey) break;
1188
+ }
1189
+ if (!hasMatchingAppKey) {
1190
+ throw new IllegalStateException("Application key added to the node is not a part of the mesh network");
1191
+ }
1192
+
1193
+ int index = 0;
1194
+ for (ProvisionedMeshNode node : nodes) {
1195
+ if (node.getUuid().equalsIgnoreCase(meshNode.getUuid())) {
1196
+ nodes.set(index, meshNode); //replace a node if uuid matches
1197
+ notifyNodeUpdated(meshNode);
1198
+ return true;
1199
+ }
1200
+ index++;
1201
+ }
1202
+ if (nodes.add(meshNode)) {
1203
+ notifyNodeAdded(meshNode);
1204
+ return true;
1205
+ }
1206
+ return false;
1207
+ }
1208
+
1209
+ /**
1210
+ * Deletes a mesh node from the list of provisioned nodes
1211
+ *
1212
+ * <p>
1213
+ * Note that deleting a node manually will not reset the node, but only be deleted from the stored list of provisioned nodes.
1214
+ * However you may still be able to connect to the same node, if it was not reset since the network may still exist. This
1215
+ * would be useful to in case if a node was physically reset and needs to be removed from the mesh network/db
1216
+ * </p>
1217
+ *
1218
+ * @param meshNode node to be deleted
1219
+ * @return true if deleted and false otherwise
1220
+ */
1221
+ public boolean deleteNode(@NonNull final ProvisionedMeshNode meshNode) {
1222
+ //Let's look if there is a provisioner for a given node.
1223
+ Provisioner provisioner = null;
1224
+ for (Provisioner prov : provisioners) {
1225
+ if (prov.getProvisionerUuid().equalsIgnoreCase(meshNode.getUuid())) {
1226
+ provisioner = prov;
1227
+ break;
1228
+ }
1229
+ }
1230
+ return removeProvisionerAndNode(meshNode, provisioner);
1231
+ }
1232
+
1233
+ private boolean removeProvisionerAndNode(@Nullable final ProvisionedMeshNode node, @Nullable final Provisioner provisioner){
1234
+ if (provisioner != null && provisioners.remove(provisioner)) {
1235
+ if(node != null){
1236
+ excludeNode(node);
1237
+ if(nodes.remove(node)){
1238
+ notifyNodeDeleted(node);
1239
+ }
1240
+ } else {
1241
+ notifyProvisionerDeleted(provisioner);
1242
+ }
1243
+ notifyNetworkUpdated();
1244
+ return true;
1245
+ }
1246
+ if(node != null && nodes.remove(node)) {
1247
+ excludeNode(node);
1248
+ if(provisioner != null){
1249
+ if(provisioners.remove(provisioner)){
1250
+ notifyProvisionerDeleted(provisioner);
1251
+ }
1252
+ } else {
1253
+ notifyNodeDeleted(node);
1254
+ }
1255
+ notifyNetworkUpdated();
1256
+ return true;
1257
+ }
1258
+ return false;
1259
+ }
1260
+
1261
+ /**
1262
+ * Returns true if the given node is a provisioner node
1263
+ *
1264
+ * @param node {@link ProvisionedMeshNode}
1265
+ * @return True if the node is a provisioner or false otherwise
1266
+ */
1267
+ public boolean isProvisioner(@NonNull final ProvisionedMeshNode node) {
1268
+ for (Provisioner provisioner : provisioners) {
1269
+ if (provisioner.getProvisionerUuid().equalsIgnoreCase(node.getUuid())) {
1270
+ return true;
1271
+ }
1272
+ }
1273
+ return false;
1274
+ }
1275
+
1276
+ /**
1277
+ * @param element {@link Element}
1278
+ * @param name Name
1279
+ * @return true if successful and false otherwise
1280
+ * @throws IllegalArgumentException if name is empty
1281
+ */
1282
+ public boolean updateElementName(@NonNull final Element element, @NonNull final String name) throws IllegalArgumentException {
1283
+ if (TextUtils.isEmpty(name))
1284
+ throw new IllegalArgumentException("Element name cannot be empty.");
1285
+
1286
+ final ProvisionedMeshNode node = getNode(element.getElementAddress());
1287
+ if (node != null) {
1288
+ if (node.getElements().containsKey(element.getElementAddress())) {
1289
+ element.setName(name);
1290
+ node.getElements().put(element.getElementAddress(), element);
1291
+ notifyNodeUpdated(node);
1292
+ return true;
1293
+ }
1294
+ }
1295
+ return false;
1296
+ }
1297
+
1298
+ /**
1299
+ * @param address {@link Element} address
1300
+ * @param name Name
1301
+ * @return true if successful and false otherwise
1302
+ * @throws IllegalArgumentException if name is empty
1303
+ */
1304
+ public boolean updateElementName(final int address, @NonNull final String name) throws IllegalArgumentException {
1305
+ if (TextUtils.isEmpty(name))
1306
+ throw new IllegalArgumentException("Element name cannot be empty.");
1307
+
1308
+ final ProvisionedMeshNode node = getNode(address);
1309
+ if (node != null) {
1310
+ final Element element = node.getElements().get(address);
1311
+ if (element != null) {
1312
+ element.setName(name);
1313
+ notifyNodeUpdated(node);
1314
+ return true;
1315
+ }
1316
+ }
1317
+ return false;
1318
+ }
1319
+
1320
+ /**
1321
+ * Returns the sequence numbers used by the network where key is the address and the value being the sequence number.
1322
+ */
1323
+ public SparseIntArray getSequenceNumbers() {
1324
+ return sequenceNumbers.clone();
1325
+ }
1326
+
1327
+ /**
1328
+ * Sets the sequence number. This method is used for internal use only, changing will result messages to fail
1329
+ *
1330
+ * @param sequenceNumbers Sequence numbers used in the network
1331
+ */
1332
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
1333
+ public void setSequenceNumbers(@NonNull final SparseIntArray sequenceNumbers) {
1334
+ this.sequenceNumbers = sequenceNumbers;
1335
+ }
1336
+
1337
+ /**
1338
+ * Returns the sequence number for a given address
1339
+ *
1340
+ * @param address Address
1341
+ * @return sequence number or zero if address not found
1342
+ */
1343
+ protected Integer getSequenceNumber(final int address) {
1344
+ return sequenceNumbers.get(address, 0);
1345
+ }
1346
+
1347
+ /**
1348
+ * Loads the sequence numbers known to the network
1349
+ */
1350
+ protected void loadSequenceNumbers() {
1351
+ for (ProvisionedMeshNode node : nodes) {
1352
+ sequenceNumbers.put(node.getUnicastAddress(), node.getSequenceNumber());
1353
+ }
1354
+ }
1355
+
1356
+ /**
1357
+ * Returns the map of network exclusions
1358
+ */
1359
+ public Map<Integer, List<Integer>> getNetworkExclusions() {
1360
+ return Collections.unmodifiableMap(networkExclusions);
1361
+ }
1362
+
1363
+ /**
1364
+ * Setter required by room db and is restricted for internal use.
1365
+ */
1366
+ @RestrictTo(RestrictTo.Scope.LIBRARY)
1367
+ public void setNetworkExclusions(@NonNull final Map<Integer, List<Integer>> networkExclusions) {
1368
+ this.networkExclusions = networkExclusions;
1369
+ }
1370
+
1371
+
1372
+ /**
1373
+ * Returns the {@link ProxyFilter} set on the proxy
1374
+ */
1375
+ @Nullable
1376
+ public ProxyFilter getProxyFilter() {
1377
+ return proxyFilter;
1378
+ }
1379
+
1380
+ /**
1381
+ * Sets the {@link ProxyFilter} settings on the proxy
1382
+ * <p>
1383
+ * Please note that this is not persisted within the node since the filter is reinitialized to a whitelist filter upon connecting to a proxy node.
1384
+ * Therefore after setting a proxy filter and disconnecting users will have to manually
1385
+ * <p/>
1386
+ */
1387
+ public void setProxyFilter(@Nullable final ProxyFilter proxyFilter) {
1388
+ this.proxyFilter = proxyFilter;
1389
+ }
1390
+
1391
+ /**
1392
+ * Excludes a node from the mesh network.
1393
+ * The given node will marked as excluded and added to the exclusion list and the node will be removed once
1394
+ * the Key Refresh Procedure is completed. After the IV update procedure, when the network transitions to an
1395
+ * IV Normal Operation state with a higher IV index, the exclusionList object that has the ivIndex property
1396
+ * value that is lower by a count of two (or more) than the current IV index of the network is removed from
1397
+ * the networkExclusions property array.
1398
+ *
1399
+ * @param node Provisioned mesh node.
1400
+ */
1401
+ private void excludeNode(@NonNull final ProvisionedMeshNode node) {
1402
+ //Exclude node
1403
+ // node.setExcluded(true);
1404
+ // notifyNodeUpdated(node);
1405
+ List<Integer> addresses = networkExclusions.get(ivIndex.getIvIndex());
1406
+ if (addresses == null) {
1407
+ addresses = new ArrayList<>();
1408
+ }
1409
+
1410
+ for (Integer address : node.getElements().keySet()) {
1411
+ if (!addresses.contains(address)) {
1412
+ addresses.add(address);
1413
+ }
1414
+ }
1415
+
1416
+ networkExclusions.put(ivIndex.getIvIndex(), addresses);
1417
+ //notifyNetworkUpdated();
1418
+ }
1419
+
1420
+ private boolean validateKey(@NonNull final byte[] key) {
1421
+ if (key.length != 16)
1422
+ throw new IllegalArgumentException("Key must be 16 bytes");
1423
+ return true;
1424
+ }
1425
+
1426
+ final void notifyNetworkUpdated() {
1427
+ if (mCallbacks != null) {
1428
+ mCallbacks.onMeshNetworkUpdated();
1429
+ }
1430
+ }
1431
+
1432
+ final void notifyNetKeyAdded(@NonNull final NetworkKey networkKey) {
1433
+ if (mCallbacks != null) {
1434
+ mCallbacks.onNetworkKeyAdded(networkKey);
1435
+ }
1436
+ }
1437
+
1438
+ final void notifyNetKeyUpdated(@NonNull final NetworkKey networkKey) {
1439
+ if (mCallbacks != null) {
1440
+ mCallbacks.onNetworkKeyUpdated(networkKey);
1441
+ }
1442
+ }
1443
+
1444
+ final void notifyNetKeyDeleted(@NonNull final NetworkKey networkKey) {
1445
+ if (mCallbacks != null) {
1446
+ mCallbacks.onNetworkKeyDeleted(networkKey);
1447
+ }
1448
+ }
1449
+
1450
+ final void notifyAppKeyAdded(@NonNull final ApplicationKey appKey) {
1451
+ if (mCallbacks != null) {
1452
+ mCallbacks.onApplicationKeyAdded(appKey);
1453
+ }
1454
+ }
1455
+
1456
+ final void notifyAppKeyUpdated(@NonNull final ApplicationKey appKey) {
1457
+ if (mCallbacks != null) {
1458
+ mCallbacks.onApplicationKeyUpdated(appKey);
1459
+ }
1460
+ }
1461
+
1462
+ final void notifyAppKeyDeleted(@NonNull final ApplicationKey appKey) {
1463
+ if (mCallbacks != null) {
1464
+ mCallbacks.onApplicationKeyDeleted(appKey);
1465
+ }
1466
+ }
1467
+
1468
+ final void notifyProvisionerAdded(@NonNull final Provisioner provisioner) {
1469
+ if (mCallbacks != null) {
1470
+ mCallbacks.onProvisionerAdded(provisioner);
1471
+ }
1472
+ }
1473
+
1474
+ final void notifyProvisionerUpdated(@NonNull final Provisioner provisioner) {
1475
+ if (mCallbacks != null) {
1476
+ mCallbacks.onProvisionerUpdated(provisioner);
1477
+ }
1478
+ }
1479
+
1480
+ final void notifyProvisionersUpdated(@NonNull final List<Provisioner> provisioner) {
1481
+ if (mCallbacks != null) {
1482
+ mCallbacks.onProvisionersUpdated(provisioner);
1483
+ }
1484
+ }
1485
+
1486
+ final void notifyProvisionerDeleted(@NonNull final Provisioner provisioner) {
1487
+ if (mCallbacks != null) {
1488
+ mCallbacks.onProvisionerDeleted(provisioner);
1489
+ }
1490
+ }
1491
+
1492
+ final void notifyNodeAdded(@NonNull final ProvisionedMeshNode node) {
1493
+ if (mCallbacks != null) {
1494
+ mCallbacks.onNodeAdded(node);
1495
+ }
1496
+ }
1497
+
1498
+ final void notifyNodeUpdated(@NonNull final ProvisionedMeshNode node) {
1499
+ if (mCallbacks != null) {
1500
+ mCallbacks.onNodeUpdated(node);
1501
+ }
1502
+ }
1503
+
1504
+ final void notifyNodeDeleted(@NonNull final ProvisionedMeshNode meshNode) {
1505
+ if (mCallbacks != null) {
1506
+ mCallbacks.onNodeDeleted(meshNode);
1507
+ }
1508
+ }
1509
+
1510
+ final void notifySceneAdded(@NonNull final Scene scene) {
1511
+ if (mCallbacks != null) {
1512
+ mCallbacks.onSceneAdded(scene);
1513
+ }
1514
+ }
1515
+
1516
+ final void notifySceneUpdated(@NonNull final Scene scene) {
1517
+ if (mCallbacks != null) {
1518
+ mCallbacks.onSceneUpdated(scene);
1519
+ }
1520
+ }
1521
+
1522
+ final void notifySceneDeleted(@NonNull final Scene scene) {
1523
+ if (mCallbacks != null) {
1524
+ mCallbacks.onSceneDeleted(scene);
1525
+ }
1526
+ }
1527
+
1528
+ final void notifyGroupAdded(@NonNull final Group group) {
1529
+ if (mCallbacks != null) {
1530
+ mCallbacks.onGroupAdded(group);
1531
+ }
1532
+ }
1533
+
1534
+ final void notifyGroupUpdated(@NonNull final Group group) {
1535
+ if (mCallbacks != null) {
1536
+ mCallbacks.onGroupUpdated(group);
1537
+ }
1538
+ }
1539
+
1540
+ final void notifyGroupDeleted(@NonNull final Group group) {
1541
+ if (mCallbacks != null) {
1542
+ mCallbacks.onGroupDeleted(group);
1543
+ }
1544
+ }
1545
+
1546
+ @Retention(RetentionPolicy.SOURCE)
1547
+ @IntDef({NORMAL_OPERATION, IV_UPDATE_ACTIVE})
1548
+ public @interface IvUpdateStates {
1549
+ }
1550
+ }