@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,837 @@
1
+ /*
2
+ * Copyright (c) 2018, Nordic Semiconductor
3
+ * All rights reserved.
4
+ *
5
+ * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
6
+ *
7
+ * 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
8
+ *
9
+ * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the
10
+ * documentation and/or other materials provided with the distribution.
11
+ *
12
+ * 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this
13
+ * software without specific prior written permission.
14
+ *
15
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
16
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
17
+ * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
18
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
19
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
20
+ * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
21
+ */
22
+
23
+ package no.nordicsemi.android.mesh.transport;
24
+
25
+ import android.util.SparseArray;
26
+
27
+ import androidx.annotation.NonNull;
28
+ import androidx.annotation.VisibleForTesting;
29
+
30
+ import java.nio.ByteBuffer;
31
+ import java.nio.ByteOrder;
32
+
33
+ import no.nordicsemi.android.mesh.MeshManagerApi;
34
+ import no.nordicsemi.android.mesh.control.BlockAcknowledgementMessage;
35
+ import no.nordicsemi.android.mesh.control.HeartbeatMessage;
36
+ import no.nordicsemi.android.mesh.logger.MeshLogger;
37
+ import no.nordicsemi.android.mesh.opcodes.TransportLayerOpCodes;
38
+ import no.nordicsemi.android.mesh.utils.ExtendedInvalidCipherTextException;
39
+ import no.nordicsemi.android.mesh.utils.MeshAddress;
40
+ import no.nordicsemi.android.mesh.utils.MeshParserUtils;
41
+
42
+ /**
43
+ * LowerTransportLayer implementation of the mesh network architecture as per the mesh profile specification.
44
+ * <p>
45
+ * This class generates the messages as per the lower transport layer requirements, segmentation and reassembly of mesh messages sent and received,
46
+ * retransmitting messages.
47
+ * </p>
48
+ */
49
+ abstract class LowerTransportLayer extends UpperTransportLayer {
50
+
51
+ private static final String TAG = LowerTransportLayer.class.getSimpleName();
52
+ private static final int BLOCK_ACK_TIMER = 150; //Increased from minimum value 150;
53
+ private static final int UNSEGMENTED_HEADER = 0;
54
+ private static final int SEGMENTED_HEADER = 1;
55
+ private static final int UNSEGMENTED_MESSAGE_HEADER_LENGTH = 1;
56
+ private static final int SEGMENTED_MESSAGE_HEADER_LENGTH = 4;
57
+ private static final int UNSEGMENTED_ACK_MESSAGE_HEADER_LENGTH = 3;
58
+ private static final long INCOMPLETE_TIMER_DELAY = 10 * 1000; // According to the spec the incomplete timer must be a minimum of 10 seconds.
59
+
60
+ private final SparseArray<byte[]> segmentedAccessMessageMap = new SparseArray<>();
61
+ private final SparseArray<byte[]> segmentedControlMessageMap = new SparseArray<>();
62
+ LowerTransportLayerCallbacks mLowerTransportLayerCallbacks;
63
+ private boolean mSegmentedAccessAcknowledgementTimerStarted;
64
+ private Integer mSegmentedAccessBlockAck;
65
+ private boolean mSegmentedControlAcknowledgementTimerStarted;
66
+ private Integer mSegmentedControlBlockAck;
67
+ private boolean mIncompleteTimerStarted;
68
+ /**
69
+ * Runnable for incomplete timer
70
+ */
71
+ private final Runnable mIncompleteTimerRunnable = new Runnable() {
72
+ @Override
73
+ public void run() {
74
+ mLowerTransportLayerCallbacks.onIncompleteTimerExpired();
75
+ //Reset the incomplete timer flag once it expires
76
+ mIncompleteTimerStarted = false;
77
+ }
78
+ };
79
+ private boolean mBlockAckSent;
80
+ private long mDuration;
81
+
82
+ /**
83
+ * Sets the lower transport layer callbacks
84
+ *
85
+ * @param callbacks {@link LowerTransportLayerCallbacks} callbacks
86
+ */
87
+ abstract void setLowerTransportLayerCallbacks(@NonNull final LowerTransportLayerCallbacks callbacks);
88
+
89
+ /**
90
+ * Creates the network layer pdu
91
+ *
92
+ * @param message message with underlying data
93
+ * @return Complete pdu message that is ready to be sent
94
+ */
95
+ protected abstract Message createNetworkLayerPDU(@NonNull final Message message);
96
+
97
+ @Override
98
+ void createMeshMessage(@NonNull final Message message) {
99
+ super.createMeshMessage(message);
100
+ if (message instanceof AccessMessage) {
101
+ createLowerTransportAccessPDU((AccessMessage) message);
102
+ } else {
103
+ createLowerTransportControlPDU((ControlMessage) message);
104
+ }
105
+ }
106
+
107
+ @Override
108
+ void createVendorMeshMessage(@NonNull final Message message) {
109
+ if (message instanceof AccessMessage) {
110
+ super.createVendorMeshMessage(message);
111
+ createLowerTransportAccessPDU((AccessMessage) message);
112
+ } else {
113
+ createLowerTransportControlPDU((ControlMessage) message);
114
+ }
115
+ }
116
+
117
+ @Override
118
+ @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
119
+ public final void createLowerTransportAccessPDU(@NonNull final AccessMessage message) {
120
+ final byte[] upperTransportPDU = message.getUpperTransportPdu();
121
+ final SparseArray<byte[]> lowerTransportAccessPduMap;
122
+ if (upperTransportPDU.length <= MAX_UNSEGMENTED_ACCESS_PAYLOAD_LENGTH) {
123
+ message.setSegmented(false);
124
+ final byte[] lowerTransportPDU = createUnsegmentedAccessMessage(message);
125
+ lowerTransportAccessPduMap = new SparseArray<>();
126
+ lowerTransportAccessPduMap.put(0, lowerTransportPDU);
127
+ } else {
128
+ message.setSegmented(true);
129
+ lowerTransportAccessPduMap = createSegmentedAccessMessage(message);
130
+ }
131
+
132
+ message.setLowerTransportAccessPdu(lowerTransportAccessPduMap);
133
+ }
134
+
135
+ @Override
136
+ @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
137
+ public final void createLowerTransportControlPDU(@NonNull final ControlMessage message) {
138
+ switch (message.getPduType()) {
139
+ case MeshManagerApi.PDU_TYPE_PROXY_CONFIGURATION:
140
+ final SparseArray<byte[]> lowerTransportControlPduArray = new SparseArray<>();
141
+ lowerTransportControlPduArray.put(0, message.getTransportControlPdu());
142
+ message.setLowerTransportControlPdu(lowerTransportControlPduArray);
143
+ break;
144
+ case MeshManagerApi.PDU_TYPE_NETWORK:
145
+ final byte[] transportControlPdu = message.getTransportControlPdu();
146
+ if (transportControlPdu.length <= MAX_UNSEGMENTED_CONTROL_PAYLOAD_LENGTH) {
147
+ MeshLogger.verbose(TAG, "Creating unsegmented transport control");
148
+ createUnsegmentedControlMessage(message);
149
+ } else {
150
+ MeshLogger.verbose(TAG, "Creating segmented transport control");
151
+ createSegmentedControlMessage(message);
152
+ }
153
+ }
154
+ }
155
+
156
+ @Override
157
+ final void reassembleLowerTransportAccessPDU(@NonNull final AccessMessage accessMessage) {
158
+ final SparseArray<byte[]> lowerTransportAccessPdu = removeLowerTransportAccessMessageHeader(accessMessage);
159
+ final byte[] upperTransportPdu = MeshParserUtils.concatenateSegmentedMessages(lowerTransportAccessPdu);
160
+ accessMessage.setUpperTransportPdu(upperTransportPdu);
161
+ }
162
+
163
+ @Override
164
+ final void reassembleLowerTransportControlPDU(@NonNull final ControlMessage controlMessage) {
165
+ final SparseArray<byte[]> lowerTransportPdu = removeLowerTransportControlMessageHeader(controlMessage);
166
+ final byte[] lowerTransportControlPdu = MeshParserUtils.concatenateSegmentedMessages(lowerTransportPdu);
167
+ controlMessage.setTransportControlPdu(lowerTransportControlPdu);
168
+ }
169
+
170
+ /**
171
+ * Removes the transport header of the access message.
172
+ *
173
+ * @param message access message received.
174
+ * @return map containing the messages.
175
+ */
176
+ private SparseArray<byte[]> removeLowerTransportAccessMessageHeader(@NonNull final AccessMessage message) {
177
+ final SparseArray<byte[]> messages = message.getLowerTransportAccessPdu();
178
+ if (message.isSegmented()) {
179
+ for (int i = 0; i < messages.size(); i++) {
180
+ final byte[] data = messages.get(i);
181
+ final int length = data.length - SEGMENTED_MESSAGE_HEADER_LENGTH; //header size of unsegmented messages is 4;
182
+ messages.put(i, removeHeader(data, 4, length));
183
+ }
184
+ } else {
185
+ final byte[] data = messages.get(0);
186
+ final int length = data.length - UNSEGMENTED_MESSAGE_HEADER_LENGTH; //header size of unsegmented messages is 1;
187
+ messages.put(0, removeHeader(data, 1, length));
188
+ }
189
+ return messages;
190
+ }
191
+
192
+ /**
193
+ * Removes the transport header of the control message.
194
+ *
195
+ * @param message control message.
196
+ * @return map containing the messages.
197
+ */
198
+ private SparseArray<byte[]> removeLowerTransportControlMessageHeader(@NonNull final ControlMessage message) {
199
+ final SparseArray<byte[]> messages = message.getLowerTransportControlPdu();
200
+ if (messages.size() > 1) {
201
+ for (int i = 0; i < messages.size(); i++) {
202
+ final byte[] data = messages.get(i);
203
+ final int length = data.length - SEGMENTED_MESSAGE_HEADER_LENGTH; //header size of unsegmented messages is 4;
204
+ messages.put(i, removeHeader(data, 4, length));
205
+ }
206
+ } else {
207
+ final int opCode = message.getOpCode();
208
+ final byte[] data;
209
+ final int length;
210
+ if (opCode == TransportLayerOpCodes.SAR_ACK_OPCODE) {
211
+ data = messages.get(0);
212
+ length = data.length - UNSEGMENTED_ACK_MESSAGE_HEADER_LENGTH; //header size of unsegmented acknowledgement messages is 3;
213
+ messages.put(0, removeHeader(data, UNSEGMENTED_ACK_MESSAGE_HEADER_LENGTH, length));
214
+ } else {
215
+ data = messages.get(0);
216
+ length = data.length - UNSEGMENTED_MESSAGE_HEADER_LENGTH; //header size of unsegmented messages is 1;
217
+ messages.put(0, removeHeader(data, UNSEGMENTED_MESSAGE_HEADER_LENGTH, length));
218
+ }
219
+ }
220
+ return messages;
221
+ }
222
+
223
+ /**
224
+ * Removes the header from a given array.
225
+ *
226
+ * @param data message.
227
+ * @param offset header offset.
228
+ * @param length header length.
229
+ * @return an array without the header.
230
+ */
231
+ private byte[] removeHeader(@NonNull final byte[] data, final int offset, final int length) {
232
+ final ByteBuffer buffer = ByteBuffer.allocate(length).order(ByteOrder.BIG_ENDIAN);
233
+ buffer.put(data, offset, length);
234
+ return buffer.array();
235
+ }
236
+
237
+ /**
238
+ * Creates an unsegmented access message.
239
+ *
240
+ * @param message access message.
241
+ * @return Unsegmented access message.
242
+ */
243
+ private byte[] createUnsegmentedAccessMessage(@NonNull final AccessMessage message) {
244
+ final byte[] encryptedUpperTransportPDU = message.getUpperTransportPdu();
245
+ final int seg = message.isSegmented() ? 1 : 0;
246
+ final int akfAid = ((message.getAkf() << 6) | message.getAid());
247
+ final byte header = (byte) (((seg << 7) | akfAid));
248
+ final ByteBuffer lowerTransportBuffer = ByteBuffer.allocate(1 + encryptedUpperTransportPDU.length).order(ByteOrder.BIG_ENDIAN);
249
+ lowerTransportBuffer.put(header);
250
+ lowerTransportBuffer.put(encryptedUpperTransportPDU);
251
+ final byte[] lowerTransportPDU = lowerTransportBuffer.array();
252
+ MeshLogger.verbose(TAG, "Unsegmented Lower transport access PDU " + MeshParserUtils.bytesToHex(lowerTransportPDU, false));
253
+ return lowerTransportPDU;
254
+ }
255
+
256
+ /**
257
+ * Creates a segmented access message.
258
+ *
259
+ * @param message access message.
260
+ * @return Segmented access message.
261
+ */
262
+ private SparseArray<byte[]> createSegmentedAccessMessage(@NonNull final AccessMessage message) {
263
+ final byte[] encryptedUpperTransportPDU = message.getUpperTransportPdu();
264
+ final int akfAid = ((message.getAkf() << 6) | message.getAid());
265
+ final int aszmic = message.getAszmic();
266
+ final byte[] sequenceNumber = message.getSequenceNumber();
267
+ int seqZero = MeshParserUtils.calculateSeqZero(sequenceNumber);
268
+
269
+ final int numberOfSegments = (encryptedUpperTransportPDU.length + (MAX_SEGMENTED_ACCESS_PAYLOAD_LENGTH - 1)) / MAX_SEGMENTED_ACCESS_PAYLOAD_LENGTH;
270
+ final int segN = numberOfSegments - 1; //Zero based segN
271
+ final SparseArray<byte[]> lowerTransportPduMap = new SparseArray<>();
272
+ int offset = 0;
273
+ int length;
274
+ for (int segO = 0; segO < numberOfSegments; segO++) {
275
+ //Here we calculate the size of the segments based on the offset and the maximum payload of a segment access message
276
+ length = Math.min(encryptedUpperTransportPDU.length - offset, MAX_SEGMENTED_ACCESS_PAYLOAD_LENGTH);
277
+ final ByteBuffer lowerTransportBuffer = ByteBuffer.allocate(SEGMENTED_MESSAGE_HEADER_LENGTH + length).order(ByteOrder.BIG_ENDIAN);
278
+ lowerTransportBuffer.put((byte) ((SEGMENTED_HEADER << 7) | akfAid));
279
+ lowerTransportBuffer.put((byte) ((aszmic << 7) | ((seqZero >> 6) & 0x7F)));
280
+ lowerTransportBuffer.put((byte) (((seqZero << 2) & 0xFC) | ((segO >> 3) & 0x03)));
281
+ lowerTransportBuffer.put((byte) (((segO << 5) & 0xE0) | ((segN) & 0x1F)));
282
+ lowerTransportBuffer.put(encryptedUpperTransportPDU, offset, length);
283
+ offset += length;
284
+
285
+ final byte[] lowerTransportPDU = lowerTransportBuffer.array();
286
+ MeshLogger.verbose(TAG, "Segmented Lower transport access PDU: " + MeshParserUtils.bytesToHex(lowerTransportPDU, false) + " " + segO + " of " + numberOfSegments);
287
+ lowerTransportPduMap.put(segO, lowerTransportPDU);
288
+ }
289
+ return lowerTransportPduMap;
290
+ }
291
+
292
+ /**
293
+ * Creates an unsegmented control.
294
+ *
295
+ * @param message control message.
296
+ */
297
+ @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED)
298
+ private void createUnsegmentedControlMessage(@NonNull final ControlMessage message) {
299
+ int pduLength;
300
+ final ByteBuffer lowerTransportBuffer;
301
+ message.setSegmented(false);
302
+ final int opCode = message.getOpCode();
303
+ final byte[] parameters = message.getParameters();
304
+ final byte[] upperTransportControlPDU = message.getTransportControlPdu();
305
+ final int header = (byte) ((UNSEGMENTED_HEADER << 7) | opCode);
306
+ if (parameters != null) {
307
+ pduLength = UNSEGMENTED_MESSAGE_HEADER_LENGTH + parameters.length + upperTransportControlPDU.length;
308
+ lowerTransportBuffer = ByteBuffer.allocate(pduLength).order(ByteOrder.BIG_ENDIAN);
309
+ lowerTransportBuffer.put((byte) header);
310
+ lowerTransportBuffer.put(parameters);
311
+ } else {
312
+ pduLength = UNSEGMENTED_MESSAGE_HEADER_LENGTH + upperTransportControlPDU.length;
313
+ lowerTransportBuffer = ByteBuffer.allocate(pduLength).order(ByteOrder.BIG_ENDIAN);
314
+ lowerTransportBuffer.put((byte) header);
315
+ }
316
+
317
+ lowerTransportBuffer.put(upperTransportControlPDU);
318
+ final byte[] lowerTransportPDU = lowerTransportBuffer.array();
319
+ MeshLogger.verbose(TAG, "Unsegmented Lower transport control PDU " + MeshParserUtils.bytesToHex(lowerTransportPDU, false));
320
+ final SparseArray<byte[]> lowerTransportControlPduMap = new SparseArray<>();
321
+ lowerTransportControlPduMap.put(0, lowerTransportPDU);
322
+ message.setLowerTransportControlPdu(lowerTransportControlPduMap);
323
+ }
324
+
325
+ /**
326
+ * Creates a segmented control message.
327
+ *
328
+ * @param controlMessage control message to be sent.
329
+ */
330
+ private void createSegmentedControlMessage(@NonNull final ControlMessage controlMessage) {
331
+ controlMessage.setSegmented(false);
332
+ final byte[] encryptedUpperTransportControlPDU = controlMessage.getTransportControlPdu();
333
+ final int opCode = controlMessage.getOpCode();
334
+ final int rfu = 0;
335
+ final byte[] sequenceNumber = controlMessage.getSequenceNumber();
336
+ final int seqZero = MeshParserUtils.calculateSeqZero(sequenceNumber);
337
+
338
+ final int numberOfSegments = (encryptedUpperTransportControlPDU.length + (MAX_SEGMENTED_CONTROL_PAYLOAD_LENGTH - 1)) / MAX_SEGMENTED_CONTROL_PAYLOAD_LENGTH;
339
+ final int segN = numberOfSegments - 1; //Zero based segN
340
+ final SparseArray<byte[]> lowerTransportControlPduMap = new SparseArray<>();
341
+ int offset = 0;
342
+ int length;
343
+ for (int segO = 0; segO < numberOfSegments; segO++) {
344
+ //Here we calculate the size of the segments based on the offset and the maximum payload of a segment access message
345
+ length = Math.min(encryptedUpperTransportControlPDU.length - offset, MAX_SEGMENTED_CONTROL_PAYLOAD_LENGTH);
346
+ final ByteBuffer lowerTransportBuffer = ByteBuffer.allocate(SEGMENTED_MESSAGE_HEADER_LENGTH + length).order(ByteOrder.BIG_ENDIAN);
347
+ lowerTransportBuffer.put((byte) ((SEGMENTED_HEADER << 7) | opCode));
348
+ lowerTransportBuffer.put((byte) ((rfu << 7) | ((seqZero >> 6) & 0x7F)));
349
+ lowerTransportBuffer.put((byte) (((seqZero << 2) & 0xFC) | ((segO >> 3) & 0x03)));
350
+ lowerTransportBuffer.put((byte) (((segO << 5) & 0xE0) | (segN & 0x1F)));
351
+ lowerTransportBuffer.put(encryptedUpperTransportControlPDU, offset, length);
352
+ offset += length;
353
+
354
+ final byte[] lowerTransportPDU = lowerTransportBuffer.array();
355
+ MeshLogger.verbose(TAG, "Segmented Lower transport access PDU: " + MeshParserUtils.bytesToHex(lowerTransportPDU, false) + " " + segO + " of " + numberOfSegments);
356
+ lowerTransportControlPduMap.put(segO, lowerTransportPDU);
357
+ }
358
+ controlMessage.setLowerTransportControlPdu(lowerTransportControlPduMap);
359
+ }
360
+
361
+ /**
362
+ * Checks if the received message is a segmented message
363
+ *
364
+ * @param lowerTransportHeader header for the lower transport pdu
365
+ * @return true if segmented and false if not
366
+ */
367
+ /*package*/
368
+ final boolean isSegmentedMessage(final byte lowerTransportHeader) {
369
+ return ((lowerTransportHeader >> 7) & 0x01) == 1;
370
+ }
371
+
372
+ /**
373
+ * Parses a unsegmented lower transport access pdu
374
+ *
375
+ * @param pdu The complete pdu was received from the node. This is already de-obfuscated
376
+ * and decrypted at network layer.
377
+ * @param ivIndex IV Index of the received pdu
378
+ * @param sequenceNumber Sequence number of the message.
379
+ */
380
+ /*package*/
381
+ final AccessMessage parseUnsegmentedAccessLowerTransportPDU(@NonNull final byte[] pdu,
382
+ final int ivIndex,
383
+ @NonNull final byte[] sequenceNumber) {
384
+ AccessMessage message = null;
385
+ final byte header = pdu[10]; //Lower transport pdu starts here
386
+ final int seg = (header >> 7) & 0x01;
387
+ final int akf = (header >> 6) & 0x01;
388
+ final int aid = header & 0x3F;
389
+ if (seg == 0) { //Unsegmented message
390
+ MeshLogger.debug(TAG, "IV Index of received message: " + ivIndex);
391
+ final int seqAuth = (ivIndex << 24) | MeshParserUtils.convert24BitsToInt(sequenceNumber);
392
+ final byte[] src = MeshParserUtils.getSrcAddress(pdu);
393
+ final int srcAdd = MeshParserUtils.unsignedBytesToInt(src[1], src[0]);
394
+ MeshLogger.debug(TAG, "SeqAuth: " + seqAuth);
395
+ if (!isValidSeqAuth(seqAuth, srcAdd)) {
396
+ return null;
397
+ }
398
+ mMeshNode.setSeqAuth(srcAdd, seqAuth);
399
+ // We do not need to rely on the sequence number here
400
+ // Setting hte sequence number here will reset the already incremented sequence number for a message sent to all nodes.
401
+ // mMeshNode.setSequenceNumber(MeshParserUtils.convert24BitsToInt(sequenceNumber));
402
+ message = new AccessMessage();
403
+ if (akf == 0) {// device key was used to encrypt
404
+ final int lowerTransportPduLength = pdu.length - 10;
405
+ final ByteBuffer lowerTransportBuffer = ByteBuffer.allocate(lowerTransportPduLength).order(ByteOrder.BIG_ENDIAN);
406
+ lowerTransportBuffer.put(pdu, 10, lowerTransportPduLength);
407
+ final byte[] lowerTransportPDU = lowerTransportBuffer.array();
408
+ final SparseArray<byte[]> messages = new SparseArray<>();
409
+ messages.put(0, lowerTransportPDU);
410
+ message.setSegmented(false);
411
+ message.setAszmic(0); //aszmic is always 0 for unsegmented access messages
412
+ message.setAkf(akf);
413
+ message.setAid(aid);
414
+ message.setLowerTransportAccessPdu(messages);
415
+ } else {
416
+ final int lowerTransportPduLength = pdu.length - 10;
417
+ final ByteBuffer lowerTransportBuffer = ByteBuffer.allocate(lowerTransportPduLength).order(ByteOrder.BIG_ENDIAN);
418
+ lowerTransportBuffer.put(pdu, 10, lowerTransportPduLength);
419
+ final byte[] lowerTransportPDU = lowerTransportBuffer.array();
420
+ final SparseArray<byte[]> messages = new SparseArray<>();
421
+ messages.put(0, lowerTransportPDU);
422
+ message.setSegmented(false);
423
+ message.setAszmic(0); //aszmic is always 0 for unsegmented access messages
424
+ message.setAkf(akf);
425
+ message.setAid(aid);
426
+ message.setLowerTransportAccessPdu(messages);
427
+ }
428
+ }
429
+ return message;
430
+ }
431
+
432
+ /**
433
+ * Parses a segmented lower transport access pdu.
434
+ *
435
+ * @param ttl TTL of the acknowledgement
436
+ * @param pdu The complete pdu was received from the node. This is already de-obfuscated and decrypted at network layer.
437
+ * @param ivIndex Current IV Index of the network
438
+ * @param sequenceNumber Sequence number
439
+ */
440
+ /*package*/
441
+ final AccessMessage parseSegmentedAccessLowerTransportPDU(final int ttl,
442
+ @NonNull final byte[] pdu,
443
+ final int ivIndex,
444
+ @NonNull final byte[] sequenceNumber) {
445
+ final byte header = pdu[10]; //Lower transport pdu starts here
446
+ final int akf = (header >> 6) & 0x01;
447
+ final int aid = header & 0x3F;
448
+
449
+ final int szmic = (pdu[11] >> 7) & 0x01;
450
+ final int seqZero = ((pdu[11] & 0x7F) << 6) | ((pdu[12] & 0xFC) >> 2);
451
+ final int segO = ((pdu[12] & 0x03) << 3) | ((pdu[13] & 0xE0) >> 5);
452
+ final int segN = ((pdu[13]) & 0x1F);
453
+
454
+ final byte[] src = MeshParserUtils.getSrcAddress(pdu);
455
+ final byte[] dst = MeshParserUtils.getDstAddress(pdu);
456
+
457
+ final int blockAckSrc = MeshParserUtils.unsignedBytesToInt(dst[1], dst[0]); //Destination of the received packet would be the source for the ack
458
+ final int blockAckDst = MeshParserUtils.unsignedBytesToInt(src[1], src[0]); //Source of the received packet would be the destination for the ack
459
+
460
+ MeshLogger.verbose(TAG, "SEG O: " + segO);
461
+ MeshLogger.verbose(TAG, "SEG N: " + segN);
462
+
463
+ final int seqNumber = getTransportLayerSequenceNumber(MeshParserUtils.convert24BitsToInt(sequenceNumber), seqZero);
464
+ final int seqAuth = ivIndex << 24 | seqNumber;
465
+ final Integer lastSeqAuth = mMeshNode.getSeqAuth(blockAckDst);
466
+ if (lastSeqAuth != null)
467
+ MeshLogger.verbose(TAG, "Last SeqAuth value " + lastSeqAuth);
468
+
469
+ MeshLogger.verbose(TAG, "Current SeqAuth value " + seqAuth);
470
+
471
+ final int payloadLength = pdu.length - 10;
472
+ final ByteBuffer payloadBuffer = ByteBuffer.allocate(payloadLength);
473
+ payloadBuffer.put(pdu, 10, payloadLength);
474
+
475
+ //Check if the current SeqAuth value is greater than the last and if the incomplete timer has not started, start it!
476
+ if ((lastSeqAuth == null || lastSeqAuth < seqAuth)) {
477
+ // We do not need to rely on the sequence number here
478
+ // Setting hte sequence number here will reset the already incremented sequence number for a message sent to all nodes.
479
+ // mMeshNode.setSequenceNumber(seqNumber);
480
+ segmentedAccessMessageMap.clear();
481
+ segmentedAccessMessageMap.put(segO, payloadBuffer.array());
482
+ mMeshNode.setSeqAuth(blockAckDst, seqAuth);
483
+
484
+ MeshLogger.verbose(TAG, "Starting incomplete timer for src: " + MeshAddress.formatAddress(blockAckDst, false));
485
+ initIncompleteTimer();
486
+
487
+ // Start acknowledgement calculation and timer only for messages directed to a unicast address.
488
+ if (MeshAddress.isValidUnicastAddress(dst)) {
489
+ // Calculate the initial block acknowledgement value
490
+ mSegmentedAccessBlockAck = BlockAcknowledgementMessage.calculateBlockAcknowledgement(null, segO);
491
+ //Start the block acknowledgement timer irrespective of which segment was received first
492
+ initSegmentedAccessAcknowledgementTimer(seqZero, ttl, blockAckSrc, blockAckDst, segN);
493
+ }
494
+
495
+ // We need to ensure there could be an unsegmented message that could be sent as a
496
+ // segmented message i.e. segO = 0 and segN = 0. This will ensure the multi-segmented
497
+ // messages that may not arrive in order will be reassembled correctly or rather ignored.
498
+ if (segO == 0 && segN == 0) {
499
+ if (MeshAddress.isValidUnicastAddress(dst)) {
500
+ mSegmentedAccessBlockAck = BlockAcknowledgementMessage.calculateBlockAcknowledgement(mSegmentedAccessBlockAck, segO);
501
+ handleImmediateBlockAcks(seqZero, ttl, blockAckSrc, blockAckDst, segN);
502
+ } else {
503
+ //We should cancel the incomplete timer since we have received all segments
504
+ cancelIncompleteTimer();
505
+ }
506
+
507
+ final AccessMessage accessMessage = new AccessMessage();
508
+ accessMessage.setAszmic(szmic);
509
+ accessMessage.setSequenceNumber(MeshParserUtils.getSequenceNumberBytes(seqNumber));
510
+ accessMessage.setAkf(akf);
511
+ accessMessage.setAid(aid);
512
+ accessMessage.setSegmented(true);
513
+ final SparseArray<byte[]> segmentedMessages = segmentedAccessMessageMap.clone();
514
+ accessMessage.setLowerTransportAccessPdu(segmentedMessages);
515
+ return accessMessage;
516
+ }
517
+
518
+ } else {
519
+ //if the seqauth values are the same and the init complete timer has already started for a received segmented message, we need to restart the incomplete timer
520
+ if (lastSeqAuth == seqAuth) {
521
+ if (mIncompleteTimerStarted) {
522
+ if (segmentedAccessMessageMap.get(segO) == null) {
523
+ segmentedAccessMessageMap.put(segO, payloadBuffer.array());
524
+ }
525
+ final int receivedSegmentedMessageCount = segmentedAccessMessageMap.size();
526
+ MeshLogger.verbose(TAG, "Received segment message count: " + receivedSegmentedMessageCount);
527
+ //Add +1 to segN since its zero based
528
+ if (receivedSegmentedMessageCount != (segN + 1)) {
529
+ restartIncompleteTimer();
530
+ mSegmentedAccessBlockAck = BlockAcknowledgementMessage.calculateBlockAcknowledgement(mSegmentedAccessBlockAck, segO);
531
+ MeshLogger.verbose(TAG, "Restarting incomplete timer for src: " + MeshAddress.formatAddress(blockAckDst, false));
532
+
533
+ //Start acknowledgement calculation and timer only for messages directed to a unicast address.
534
+ //We also have to make sure we restart the acknowledgement timer only if the acknowledgement timer is not active and the incomplete timer is active
535
+ if (MeshAddress.isValidUnicastAddress(dst) && !mSegmentedAccessAcknowledgementTimerStarted) {
536
+ MeshLogger.verbose(TAG, "Restarting block acknowledgement timer for src: " + MeshAddress.formatAddress(blockAckDst, false));
537
+ //Start the block acknowledgement timer irrespective of which segment was received first
538
+ initSegmentedAccessAcknowledgementTimer(seqZero, ttl, blockAckSrc, blockAckDst, segN);
539
+ }
540
+ } else {
541
+ if (MeshAddress.isValidUnicastAddress(dst)) {
542
+ mSegmentedAccessBlockAck = BlockAcknowledgementMessage.calculateBlockAcknowledgement(mSegmentedAccessBlockAck, segO);
543
+ handleImmediateBlockAcks(seqZero, ttl, blockAckSrc, blockAckDst, segN);
544
+ } else {
545
+ //We should cancel the incomplete timer since we have received all segments
546
+ cancelIncompleteTimer();
547
+ }
548
+
549
+ final AccessMessage accessMessage = new AccessMessage();
550
+ accessMessage.setAszmic(szmic);
551
+ accessMessage.setSequenceNumber(MeshParserUtils.getSequenceNumberBytes(seqNumber));
552
+ accessMessage.setAkf(akf);
553
+ accessMessage.setAid(aid);
554
+ accessMessage.setSegmented(true);
555
+ final SparseArray<byte[]> segmentedMessages = segmentedAccessMessageMap.clone();
556
+ accessMessage.setLowerTransportAccessPdu(segmentedMessages);
557
+ return accessMessage;
558
+ }
559
+ } else {
560
+ MeshLogger.verbose(TAG, "Ignoring message since the incomplete timer has expired and all messages have been received");
561
+ }
562
+ }
563
+ }
564
+ return null;
565
+ }
566
+
567
+ /**
568
+ * Send immediate block acknowledgement
569
+ *
570
+ * @param seqZero seqzero of the message
571
+ * @param ttl ttl of the message
572
+ * @param src source address of the message
573
+ * @param dst destination address of the message
574
+ * @param segN total segment count
575
+ */
576
+ private void handleImmediateBlockAcks(final int seqZero, final int ttl, final int src, final int dst, final int segN) {
577
+ cancelIncompleteTimer();
578
+ sendBlockAck(seqZero, ttl, src, dst, segN);
579
+ }
580
+
581
+ /**
582
+ * Parses a unsegmented lower transport control pdu.
583
+ *
584
+ * @param decryptedProxyPdu The complete pdu was received from the node. This is already de-obfuscated and decrypted at network layer.
585
+ */
586
+ /*package*/
587
+ final void parseUnsegmentedControlLowerTransportPDU(@NonNull final ControlMessage controlMessage,
588
+ @NonNull final byte[] decryptedProxyPdu) throws ExtendedInvalidCipherTextException {
589
+
590
+ final SparseArray<byte[]> unsegmentedMessages = new SparseArray<>();
591
+ final int lowerTransportPduLength = decryptedProxyPdu.length - 10;
592
+ final ByteBuffer lowerTransportBuffer = ByteBuffer.allocate(lowerTransportPduLength).order(ByteOrder.BIG_ENDIAN);
593
+ lowerTransportBuffer.put(decryptedProxyPdu, 10, lowerTransportPduLength);
594
+ final byte[] lowerTransportPDU = lowerTransportBuffer.array();
595
+ unsegmentedMessages.put(0, lowerTransportPDU);
596
+ final int opCode;
597
+ final int pduType = decryptedProxyPdu[0];
598
+ switch (pduType) {
599
+ case MeshManagerApi.PDU_TYPE_NETWORK:
600
+ final byte header = decryptedProxyPdu[10]; //Lower transport pdu starts here
601
+ opCode = header & 0x7F;
602
+ controlMessage.setPduType(MeshManagerApi.PDU_TYPE_NETWORK);//Set the pdu type here
603
+ controlMessage.setAszmic(0);
604
+ controlMessage.setOpCode(opCode);
605
+ controlMessage.setLowerTransportControlPdu(unsegmentedMessages);
606
+ parseLowerTransportLayerPDU(controlMessage);
607
+ break;
608
+ case MeshManagerApi.PDU_TYPE_PROXY_CONFIGURATION:
609
+ controlMessage.setPduType(MeshManagerApi.PDU_TYPE_PROXY_CONFIGURATION);
610
+ controlMessage.setLowerTransportControlPdu(unsegmentedMessages);
611
+ parseUpperTransportPDU(controlMessage);
612
+ break;
613
+ }
614
+ }
615
+
616
+ /**
617
+ * Parses a segmented lower transport control pdu.
618
+ *
619
+ * @param pdu The complete pdu was received from the node. This is already de-obfuscated and decrypted at network layer.
620
+ */
621
+ /*package*/
622
+ final ControlMessage parseSegmentedControlLowerTransportPDU(@NonNull final byte[] pdu) {
623
+
624
+ final byte header = pdu[10]; //Lower transport pdu starts here
625
+ final int akf = (header >> 6) & 0x01;
626
+ final int aid = header & 0x3F;
627
+
628
+ final int szmic = (pdu[11] >> 7) & 0x01;
629
+ final int seqZero = ((pdu[11] & 0x7F) << 6) | ((pdu[12] & 0xFC) >> 2);
630
+ final int segO = ((pdu[12] & 0x3) << 3) | ((pdu[13] & 0xe0) >> 5);
631
+ final int segN = ((pdu[13]) & 0x1F);
632
+
633
+ final int ttl = pdu[2] & 0x7F;
634
+ final byte[] src = MeshParserUtils.getSrcAddress(pdu);
635
+ final byte[] dst = MeshParserUtils.getDstAddress(pdu);
636
+
637
+ final int blockAckSrc = MeshParserUtils.unsignedBytesToInt(dst[1], dst[0]); //Destination of the received packet would be the source for the ack
638
+ final int blockAckDst = MeshParserUtils.unsignedBytesToInt(src[1], src[0]); //Source of the received packet would be the destination for the ack
639
+
640
+ MeshLogger.verbose(TAG, "SEG O: " + segO);
641
+ MeshLogger.verbose(TAG, "SEG N: " + segN);
642
+
643
+ //Start the timer irrespective of which segment was received first
644
+ initSegmentedControlAcknowledgementTimer(seqZero, ttl, blockAckDst, blockAckSrc, segN);
645
+ mSegmentedControlBlockAck = BlockAcknowledgementMessage.calculateBlockAcknowledgement(mSegmentedControlBlockAck, segO);
646
+ MeshLogger.verbose(TAG, "Block acknowledgement value for " + mSegmentedControlBlockAck + " Seg O " + segO);
647
+
648
+ final int payloadLength = pdu.length - 10;
649
+
650
+ final ByteBuffer payloadBuffer = ByteBuffer.allocate(payloadLength);
651
+ payloadBuffer.put(pdu, 10, payloadLength);
652
+ segmentedControlMessageMap.put(segO, payloadBuffer.array());
653
+
654
+ //Check the message count against the zero-based segN;
655
+ final int receivedSegmentedMessageCount = segmentedControlMessageMap.size() - 1;
656
+ if (segN == receivedSegmentedMessageCount) {
657
+ MeshLogger.verbose(TAG, "All segments received");
658
+ //Remove the incomplete timer if all segments were received
659
+ mHandler.removeCallbacks(mIncompleteTimerRunnable);
660
+ MeshLogger.verbose(TAG, "Block ack sent? " + mBlockAckSent);
661
+ if (mDuration > System.currentTimeMillis() && !mBlockAckSent) {
662
+ if (MeshAddress.isValidUnicastAddress(dst)) {
663
+ mHandler.removeCallbacksAndMessages(null);
664
+ MeshLogger.verbose(TAG, "Cancelling Scheduled block ack and incomplete timer, sending an immediate block ack");
665
+ sendBlockAck(seqZero, ttl, blockAckSrc, blockAckDst, segN);
666
+ //mBlockAckSent = false;
667
+ }
668
+ }
669
+ final int upperTransportSequenceNumber = getTransportLayerSequenceNumber(MeshParserUtils.getSequenceNumberFromPDU(pdu), seqZero);
670
+ final byte[] sequenceNumber = MeshParserUtils.getSequenceNumberBytes(upperTransportSequenceNumber);
671
+ final ControlMessage message = new ControlMessage();
672
+ message.setAszmic(szmic);
673
+ message.setSequenceNumber(sequenceNumber);
674
+ message.setAkf(akf);
675
+ message.setAid(aid);
676
+ message.setSegmented(true);
677
+ final SparseArray<byte[]> segmentedMessages = segmentedControlMessageMap.clone();
678
+ segmentedControlMessageMap.clear();
679
+ message.setLowerTransportControlPdu(segmentedMessages);
680
+ return message;
681
+ }
682
+
683
+ return null;
684
+ }
685
+
686
+ /**
687
+ * Start incomplete timer for segmented messages.
688
+ */
689
+ private void initIncompleteTimer() {
690
+ mHandler.postDelayed(mIncompleteTimerRunnable, INCOMPLETE_TIMER_DELAY);
691
+ mIncompleteTimerStarted = true;
692
+ }
693
+
694
+ /**
695
+ * Restarts the incomplete timer
696
+ */
697
+ private void restartIncompleteTimer() {
698
+ //Remove the existing incomplete timer
699
+ if (mIncompleteTimerStarted) {
700
+ mHandler.removeCallbacks(mIncompleteTimerRunnable);
701
+ }
702
+ //Call init to start the timer again
703
+ initIncompleteTimer();
704
+ }
705
+
706
+ /**
707
+ * Cancels an already started the incomplete timer
708
+ */
709
+ private void cancelIncompleteTimer() {
710
+ //Remove the existing incomplete timer
711
+ mIncompleteTimerStarted = false;
712
+ mHandler.removeCallbacks(mIncompleteTimerRunnable);
713
+ }
714
+
715
+ /**
716
+ * Start acknowledgement timer for segmented messages.
717
+ *
718
+ * @param seqZero Seqzero of the segmented messages.
719
+ * @param ttl TTL of the segmented messages.
720
+ * @param dst Destination address.
721
+ */
722
+ private void initSegmentedAccessAcknowledgementTimer(final int seqZero, final int ttl, final int src, final int dst, final int segN) {
723
+ if (!mSegmentedAccessAcknowledgementTimerStarted) {
724
+ mSegmentedAccessAcknowledgementTimerStarted = true;
725
+ MeshLogger.verbose(TAG, "TTL: " + ttl);
726
+ final int duration = (BLOCK_ACK_TIMER + (50 * ttl));
727
+ MeshLogger.verbose(TAG, "Duration: " + duration);
728
+ mDuration = System.currentTimeMillis() + duration;
729
+ mHandler.postDelayed(() -> {
730
+ MeshLogger.verbose(TAG, "Acknowledgement timer expiring");
731
+ sendBlockAck(seqZero, ttl, src, dst, segN);
732
+ }, duration);
733
+ }
734
+ }
735
+
736
+ /**
737
+ * Start acknowledgement timer for segmented messages.
738
+ *
739
+ * @param seqZero Seqzero of the segmented messages.
740
+ * @param ttl TTL of the segmented messages.
741
+ * @param src Source address which is the element address
742
+ * @param dst Destination address.
743
+ */
744
+ private void initSegmentedControlAcknowledgementTimer(final int seqZero, final int ttl, final int src, final int dst, final int segN) {
745
+ if (!mSegmentedControlAcknowledgementTimerStarted) {
746
+ mSegmentedControlAcknowledgementTimerStarted = true;
747
+ final int duration = BLOCK_ACK_TIMER + (50 * ttl);
748
+ mDuration = System.currentTimeMillis() + duration;
749
+ mHandler.postDelayed(() -> sendBlockAck(seqZero, ttl, src, dst, segN), duration);
750
+ }
751
+ }
752
+
753
+ /**
754
+ * Send block acknowledgement
755
+ *
756
+ * @param seqZero Seqzero of the segmented messages.
757
+ * @param ttl TTL of the segmented messages.
758
+ * @param src Source address which is the element address
759
+ * @param dst Destination address.
760
+ */
761
+ private void sendBlockAck(final int seqZero, final int ttl, final int src, final int dst, final int segN) {
762
+ final int blockAck = mSegmentedAccessBlockAck;
763
+ if (BlockAcknowledgementMessage.hasAllSegmentsBeenReceived(blockAck, segN)) {
764
+ MeshLogger.verbose(TAG, "All segments received cancelling incomplete timer");
765
+ cancelIncompleteTimer();
766
+ }
767
+
768
+ final byte[] upperTransportControlPdu = createAcknowledgementPayload(seqZero, blockAck);
769
+ MeshLogger.verbose(TAG, "Block acknowledgement payload: " + MeshParserUtils.bytesToHex(upperTransportControlPdu, false));
770
+ final ControlMessage controlMessage = new ControlMessage();
771
+ controlMessage.setOpCode(TransportLayerOpCodes.SAR_ACK_OPCODE);
772
+ controlMessage.setTransportControlPdu(upperTransportControlPdu);
773
+ controlMessage.setTtl(ttl);
774
+ controlMessage.setPduType(MeshManagerApi.PDU_TYPE_NETWORK);
775
+ controlMessage.setSrc(src);
776
+ controlMessage.setDst(dst);
777
+ controlMessage.setIvIndex(mUpperTransportLayerCallbacks.getIvIndex());
778
+ final int sequenceNumber = mUpperTransportLayerCallbacks.getNode(controlMessage.getSrc()).incrementSequenceNumber();
779
+ final byte[] sequenceNum = MeshParserUtils.getSequenceNumberBytes(sequenceNumber);
780
+ controlMessage.setSequenceNumber(sequenceNum);
781
+ mBlockAckSent = true;
782
+ mLowerTransportLayerCallbacks.sendSegmentAcknowledgementMessage(controlMessage);
783
+ mSegmentedAccessAcknowledgementTimerStarted = false;
784
+ }
785
+
786
+ /**
787
+ * Creates the acknowledgement parameters.
788
+ *
789
+ * @param seqZero Seqzero of the message.
790
+ * @param blockAcknowledgement Block acknowledgement
791
+ * @return acknowledgement parameters.
792
+ */
793
+ private byte[] createAcknowledgementPayload(final int seqZero, final int blockAcknowledgement) {
794
+ final int obo = 0;
795
+ final int rfu = 0;
796
+
797
+ final ByteBuffer buffer = ByteBuffer.allocate(6).order(ByteOrder.BIG_ENDIAN);
798
+ buffer.put((byte) ((obo << 7) | (seqZero >> 6) & 0x7F));
799
+ buffer.put((byte) (((seqZero << 2) & 0xFC) | rfu));
800
+ buffer.putInt(blockAcknowledgement);
801
+ return buffer.array();
802
+ }
803
+
804
+ /**
805
+ * Parse transport layer control pdu.
806
+ *
807
+ * @param controlMessage underlying message containing the access pdu.
808
+ */
809
+ private void parseLowerTransportLayerPDU(@NonNull final ControlMessage controlMessage) {
810
+ //First we reassemble the transport layer message if its a segmented message
811
+ reassembleLowerTransportControlPDU(controlMessage);
812
+ final byte[] transportControlPdu = controlMessage.getTransportControlPdu();
813
+ final int opCode = controlMessage.getOpCode();
814
+
815
+ if (opCode == TransportLayerOpCodes.SAR_ACK_OPCODE) {
816
+ final BlockAcknowledgementMessage acknowledgement = new BlockAcknowledgementMessage(transportControlPdu);
817
+ controlMessage.setTransportControlMessage(acknowledgement);
818
+ }
819
+
820
+ if (opCode == TransportLayerOpCodes.HEARTBEAT_OPCODE) {
821
+ final HeartbeatMessage heartbeatMessage = new HeartbeatMessage(controlMessage);
822
+ controlMessage.setTransportControlMessage(heartbeatMessage);
823
+ }
824
+ }
825
+
826
+ /**
827
+ * Validates Sequence authentication value.
828
+ *
829
+ * @param seqAuth Sequence authentication.
830
+ * @param src Source address.
831
+ */
832
+ private boolean isValidSeqAuth(final int seqAuth,
833
+ final int src) {
834
+ final Integer lastSeqAuth = mMeshNode.getSeqAuth(src);
835
+ return lastSeqAuth == null || lastSeqAuth < seqAuth;
836
+ }
837
+ }