@offline-protocol/mesh-sdk 0.2.0

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 (1216) hide show
  1. package/README.md +195 -0
  2. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  3. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  4. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  5. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/reply/cache-v2-f94a2fa18daa925ecfe6.json +1311 -0
  6. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-958753898817403d4994.json +188 -0
  7. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-816c877d05f061ba32ff.json +69 -0
  8. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  9. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/reply/index-2025-11-06T08-13-13-0701.json +92 -0
  10. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/reply/target-copy_ffi_lib-Debug-031dfd8abe9dbf81c4d6.json +73 -0
  11. package/android/.cxx/Debug/04o6o112/arm64-v8a/.cmake/api/v1/reply/target-offline_protocol_jni-Debug-1c8e9f9c4754307ecff9.json +166 -0
  12. package/android/.cxx/Debug/04o6o112/arm64-v8a/.ninja_deps +0 -0
  13. package/android/.cxx/Debug/04o6o112/arm64-v8a/.ninja_log +43 -0
  14. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeCache.txt +395 -0
  15. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  16. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  17. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  18. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  19. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  20. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  21. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  22. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  23. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  24. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/CMakeOutput.log +264 -0
  25. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/TargetDirectories.txt +4 -0
  26. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/cmake.check_cache +1 -0
  27. package/android/.cxx/Debug/04o6o112/arm64-v8a/CMakeFiles/rules.ninja +64 -0
  28. package/android/.cxx/Debug/04o6o112/arm64-v8a/additional_project_files.txt +3 -0
  29. package/android/.cxx/Debug/04o6o112/arm64-v8a/android_gradle_build.json +43 -0
  30. package/android/.cxx/Debug/04o6o112/arm64-v8a/android_gradle_build_mini.json +32 -0
  31. package/android/.cxx/Debug/04o6o112/arm64-v8a/build.ninja +183 -0
  32. package/android/.cxx/Debug/04o6o112/arm64-v8a/build_file_index.txt +1 -0
  33. package/android/.cxx/Debug/04o6o112/arm64-v8a/cmake_install.cmake +54 -0
  34. package/android/.cxx/Debug/04o6o112/arm64-v8a/compile_commands.json +12 -0
  35. package/android/.cxx/Debug/04o6o112/arm64-v8a/compile_commands.json.bin +0 -0
  36. package/android/.cxx/Debug/04o6o112/arm64-v8a/configure_fingerprint.bin +29 -0
  37. package/android/.cxx/Debug/04o6o112/arm64-v8a/metadata_generation_command.txt +18 -0
  38. package/android/.cxx/Debug/04o6o112/arm64-v8a/prefab_config.json +4 -0
  39. package/android/.cxx/Debug/04o6o112/arm64-v8a/symbol_folder_index.txt +1 -0
  40. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  41. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  42. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  43. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/reply/cache-v2-7c41548ba7f7a262f089.json +1311 -0
  44. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-e55c72281fbc2be8d645.json +188 -0
  45. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-bdf1c220ad895f5774fb.json +69 -0
  46. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  47. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/reply/index-2025-11-06T08-13-14-0558.json +92 -0
  48. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/reply/target-copy_ffi_lib-Debug-63cd85708f54328e2a33.json +73 -0
  49. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.cmake/api/v1/reply/target-offline_protocol_jni-Debug-860ad59938b7faec5754.json +166 -0
  50. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.ninja_deps +0 -0
  51. package/android/.cxx/Debug/04o6o112/armeabi-v7a/.ninja_log +43 -0
  52. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeCache.txt +395 -0
  53. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  54. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  55. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  56. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  57. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  58. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  59. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  60. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  61. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  62. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/CMakeOutput.log +268 -0
  63. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/TargetDirectories.txt +4 -0
  64. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/cmake.check_cache +1 -0
  65. package/android/.cxx/Debug/04o6o112/armeabi-v7a/CMakeFiles/rules.ninja +64 -0
  66. package/android/.cxx/Debug/04o6o112/armeabi-v7a/additional_project_files.txt +3 -0
  67. package/android/.cxx/Debug/04o6o112/armeabi-v7a/android_gradle_build.json +43 -0
  68. package/android/.cxx/Debug/04o6o112/armeabi-v7a/android_gradle_build_mini.json +32 -0
  69. package/android/.cxx/Debug/04o6o112/armeabi-v7a/build.ninja +183 -0
  70. package/android/.cxx/Debug/04o6o112/armeabi-v7a/build_file_index.txt +1 -0
  71. package/android/.cxx/Debug/04o6o112/armeabi-v7a/cmake_install.cmake +54 -0
  72. package/android/.cxx/Debug/04o6o112/armeabi-v7a/compile_commands.json +12 -0
  73. package/android/.cxx/Debug/04o6o112/armeabi-v7a/compile_commands.json.bin +0 -0
  74. package/android/.cxx/Debug/04o6o112/armeabi-v7a/configure_fingerprint.bin +29 -0
  75. package/android/.cxx/Debug/04o6o112/armeabi-v7a/metadata_generation_command.txt +18 -0
  76. package/android/.cxx/Debug/04o6o112/armeabi-v7a/prefab_config.json +4 -0
  77. package/android/.cxx/Debug/04o6o112/armeabi-v7a/symbol_folder_index.txt +1 -0
  78. package/android/.cxx/Debug/04o6o112/hash_key.txt +25 -0
  79. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  80. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  81. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  82. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/reply/cache-v2-42023ee6505d9fa49dd4.json +1311 -0
  83. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/reply/cmakeFiles-v1-f45c3ac26c419160b148.json +188 -0
  84. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/reply/codemodel-v2-49c1f5aaac8de9fc8d04.json +69 -0
  85. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  86. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/reply/index-2025-11-06T08-13-15-0078.json +92 -0
  87. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/reply/target-copy_ffi_lib-Debug-954878eb814cfeb88ac9.json +73 -0
  88. package/android/.cxx/Debug/04o6o112/x86/.cmake/api/v1/reply/target-offline_protocol_jni-Debug-599396bfe047610845e0.json +166 -0
  89. package/android/.cxx/Debug/04o6o112/x86/.ninja_deps +0 -0
  90. package/android/.cxx/Debug/04o6o112/x86/.ninja_log +43 -0
  91. package/android/.cxx/Debug/04o6o112/x86/CMakeCache.txt +395 -0
  92. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  93. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  94. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  95. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  96. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  97. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  98. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  99. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  100. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  101. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/CMakeOutput.log +258 -0
  102. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/TargetDirectories.txt +4 -0
  103. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/cmake.check_cache +1 -0
  104. package/android/.cxx/Debug/04o6o112/x86/CMakeFiles/rules.ninja +64 -0
  105. package/android/.cxx/Debug/04o6o112/x86/additional_project_files.txt +3 -0
  106. package/android/.cxx/Debug/04o6o112/x86/android_gradle_build.json +43 -0
  107. package/android/.cxx/Debug/04o6o112/x86/android_gradle_build_mini.json +32 -0
  108. package/android/.cxx/Debug/04o6o112/x86/build.ninja +183 -0
  109. package/android/.cxx/Debug/04o6o112/x86/build_file_index.txt +1 -0
  110. package/android/.cxx/Debug/04o6o112/x86/cmake_install.cmake +54 -0
  111. package/android/.cxx/Debug/04o6o112/x86/compile_commands.json +12 -0
  112. package/android/.cxx/Debug/04o6o112/x86/compile_commands.json.bin +0 -0
  113. package/android/.cxx/Debug/04o6o112/x86/configure_fingerprint.bin +29 -0
  114. package/android/.cxx/Debug/04o6o112/x86/metadata_generation_command.txt +18 -0
  115. package/android/.cxx/Debug/04o6o112/x86/prefab_config.json +4 -0
  116. package/android/.cxx/Debug/04o6o112/x86/symbol_folder_index.txt +1 -0
  117. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  118. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  119. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  120. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/reply/cache-v2-9c2dffc78a4d85163abd.json +1311 -0
  121. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-6fd660d496ad526b3e02.json +188 -0
  122. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/reply/codemodel-v2-2d53a88f7e3a85d1db68.json +69 -0
  123. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
  124. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/reply/index-2025-11-06T08-13-15-0649.json +92 -0
  125. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/reply/target-copy_ffi_lib-Debug-aa91273acb422e0d2606.json +73 -0
  126. package/android/.cxx/Debug/04o6o112/x86_64/.cmake/api/v1/reply/target-offline_protocol_jni-Debug-d6267ba86ac88964cb2f.json +166 -0
  127. package/android/.cxx/Debug/04o6o112/x86_64/.ninja_deps +0 -0
  128. package/android/.cxx/Debug/04o6o112/x86_64/.ninja_log +43 -0
  129. package/android/.cxx/Debug/04o6o112/x86_64/CMakeCache.txt +395 -0
  130. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCCompiler.cmake +72 -0
  131. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeCXXCompiler.cmake +83 -0
  132. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_C.bin +0 -0
  133. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeDetermineCompilerABI_CXX.bin +0 -0
  134. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/3.22.1-g37088a8/CMakeSystem.cmake +15 -0
  135. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.c +803 -0
  136. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdC/CMakeCCompilerId.o +0 -0
  137. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.cpp +791 -0
  138. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/3.22.1-g37088a8/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  139. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/CMakeOutput.log +258 -0
  140. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/TargetDirectories.txt +4 -0
  141. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/cmake.check_cache +1 -0
  142. package/android/.cxx/Debug/04o6o112/x86_64/CMakeFiles/rules.ninja +64 -0
  143. package/android/.cxx/Debug/04o6o112/x86_64/additional_project_files.txt +3 -0
  144. package/android/.cxx/Debug/04o6o112/x86_64/android_gradle_build.json +43 -0
  145. package/android/.cxx/Debug/04o6o112/x86_64/android_gradle_build_mini.json +32 -0
  146. package/android/.cxx/Debug/04o6o112/x86_64/build.ninja +183 -0
  147. package/android/.cxx/Debug/04o6o112/x86_64/build_file_index.txt +1 -0
  148. package/android/.cxx/Debug/04o6o112/x86_64/cmake_install.cmake +54 -0
  149. package/android/.cxx/Debug/04o6o112/x86_64/compile_commands.json +12 -0
  150. package/android/.cxx/Debug/04o6o112/x86_64/compile_commands.json.bin +0 -0
  151. package/android/.cxx/Debug/04o6o112/x86_64/configure_fingerprint.bin +29 -0
  152. package/android/.cxx/Debug/04o6o112/x86_64/metadata_generation_command.txt +18 -0
  153. package/android/.cxx/Debug/04o6o112/x86_64/prefab_config.json +4 -0
  154. package/android/.cxx/Debug/04o6o112/x86_64/symbol_folder_index.txt +1 -0
  155. package/android/.cxx/tools/debug/arm64-v8a/compile_commands.json +12 -0
  156. package/android/.cxx/tools/debug/armeabi-v7a/compile_commands.json +12 -0
  157. package/android/.cxx/tools/debug/x86/compile_commands.json +12 -0
  158. package/android/.cxx/tools/debug/x86_64/compile_commands.json +12 -0
  159. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  160. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  161. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  162. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  163. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  164. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  165. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  166. package/android/.gradle/8.9/gc.properties +0 -0
  167. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  168. package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
  169. package/android/.gradle/vcs-1/gc.properties +0 -0
  170. package/android/.vscode/README.md +36 -0
  171. package/android/.vscode/settings.json +14 -0
  172. package/android/build/.transforms/53efb3d4d9f00d92cbf4ba76c24820df/results.bin +1 -0
  173. package/android/build/.transforms/53efb3d4d9f00d92cbf4ba76c24820df/transformed/classes/classes_dex/classes.dex +0 -0
  174. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/results.bin +1 -0
  175. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$Companion.dex +0 -0
  176. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$MeshObservation.dex +0 -0
  177. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$PendingFragment.dex +0 -0
  178. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$WhenMappings.dex +0 -0
  179. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$fragmentPollingRunnable$1.dex +0 -0
  180. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$gattClientCallback$1.dex +0 -0
  181. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$gattServerCallback$1$WhenMappings.dex +0 -0
  182. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$gattServerCallback$1.dex +0 -0
  183. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$resolveTargetAddress$$inlined$sortedBy$1.dex +0 -0
  184. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$routingCleanupRunnable$1.dex +0 -0
  185. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$scanWatchdogRunnable$1.dex +0 -0
  186. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$startAdvertising$1.dex +0 -0
  187. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager$startScanning$1.dex +0 -0
  188. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BleManager.dex +0 -0
  189. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/BuildConfig.dex +0 -0
  190. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/InternetManager$Companion.dex +0 -0
  191. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/InternetManager$messagePollingRunnable$1.dex +0 -0
  192. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/InternetManager$pingRunnable$1.dex +0 -0
  193. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/InternetManager$webSocketListener$1.dex +0 -0
  194. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/InternetManager.dex +0 -0
  195. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/LogThrottler.dex +0 -0
  196. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/OfflineProtocolModule$Companion.dex +0 -0
  197. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/OfflineProtocolModule$Constants.dex +0 -0
  198. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/OfflineProtocolModule$ParsedConfig.dex +0 -0
  199. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/OfflineProtocolModule$WhenMappings.dex +0 -0
  200. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/OfflineProtocolModule$create$1.dex +0 -0
  201. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/OfflineProtocolModule$create$3$1.dex +0 -0
  202. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/OfflineProtocolModule$create$5$1.dex +0 -0
  203. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/OfflineProtocolModule.dex +0 -0
  204. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/OfflineProtocolPackage.dex +0 -0
  205. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportException$AlreadyRunning.dex +0 -0
  206. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportException$InvalidState.dex +0 -0
  207. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportException$NotAvailable.dex +0 -0
  208. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportException$NotRunning.dex +0 -0
  209. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportException$PermissionDenied.dex +0 -0
  210. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportException$PlatformError.dex +0 -0
  211. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportException$StartFailed.dex +0 -0
  212. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportException.dex +0 -0
  213. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportManager$DefaultImpls.dex +0 -0
  214. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportManager.dex +0 -0
  215. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportManagerListener.dex +0 -0
  216. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/TransportState.dex +0 -0
  217. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/WifiDirectManager$Companion.dex +0 -0
  218. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/WifiDirectManager$messagePollingRunnable$1.dex +0 -0
  219. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/WifiDirectManager$p2pReceiver$1.dex +0 -0
  220. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/WifiDirectManager$startPeerDiscovery$1.dex +0 -0
  221. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/WifiDirectManager$stopPeerDiscovery$1.dex +0 -0
  222. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/WifiDirectManager.dex +0 -0
  223. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/ble/MeshConnectionRegistry.dex +0 -0
  224. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshAdvertisementData$Companion.dex +0 -0
  225. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshAdvertisementData.dex +0 -0
  226. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$Companion.dex +0 -0
  227. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$ConnectionIntent.dex +0 -0
  228. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$MeshConfig.dex +0 -0
  229. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$MeshDecision.dex +0 -0
  230. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$MeshRole.dex +0 -0
  231. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$PeerMetrics.dex +0 -0
  232. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$PeerState.dex +0 -0
  233. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$RebalanceDirective.dex +0 -0
  234. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$RemoteCandidate.dex +0 -0
  235. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$ScoreWeights.dex +0 -0
  236. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$pruneCandidateCache$$inlined$sortedBy$1.dex +0 -0
  237. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$prunePeerCache$$inlined$sortBy$1.dex +0 -0
  238. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController$prunePeerCache$$inlined$sortBy$2.dex +0 -0
  239. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/offlineprotocol/mesh/MeshController.dex +0 -0
  240. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/AckConfig$Companion.dex +0 -0
  241. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/AckConfig.dex +0 -0
  242. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/BleFragment$Companion.dex +0 -0
  243. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/BleFragment.dex +0 -0
  244. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/DedupConfig$Companion.dex +0 -0
  245. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/DedupConfig.dex +0 -0
  246. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/DedupStats$Companion.dex +0 -0
  247. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/DedupStats.dex +0 -0
  248. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/Disposable$Companion.dex +0 -0
  249. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/Disposable.dex +0 -0
  250. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/DorsConfig$Companion.dex +0 -0
  251. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/DorsConfig.dex +0 -0
  252. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/EventCallback$Companion.dex +0 -0
  253. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/EventCallback.dex +0 -0
  254. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverter$DefaultImpls.dex +0 -0
  255. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverter.dex +0 -0
  256. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterBoolean.dex +0 -0
  257. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterCallbackInterface.dex +0 -0
  258. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterFloat.dex +0 -0
  259. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalShort.dex +0 -0
  260. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalString.dex +0 -0
  261. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalTypeBleFragment.dex +0 -0
  262. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalTypeFileProgress.dex +0 -0
  263. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalTypeInternetMessage.dex +0 -0
  264. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalTypeRouteEntry.dex +0 -0
  265. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalTypeTransportMetrics.dex +0 -0
  266. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalTypeWifiDirectMessage.dex +0 -0
  267. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalUByte.dex +0 -0
  268. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterOptionalULong.dex +0 -0
  269. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterRustBuffer$DefaultImpls.dex +0 -0
  270. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterRustBuffer.dex +0 -0
  271. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterSequenceString.dex +0 -0
  272. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterSequenceTypeMessageStats.dex +0 -0
  273. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterSequenceTypeNetworkLink.dex +0 -0
  274. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterSequenceTypeNetworkNode.dex +0 -0
  275. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterSequenceTypeRouteEntry.dex +0 -0
  276. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterSequenceUByte.dex +0 -0
  277. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterShort.dex +0 -0
  278. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterString.dex +0 -0
  279. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeAckConfig.dex +0 -0
  280. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeBleFragment.dex +0 -0
  281. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeDedupConfig.dex +0 -0
  282. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeDedupStats.dex +0 -0
  283. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeDorsConfig.dex +0 -0
  284. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeEventCallback.dex +0 -0
  285. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeFileProgress.dex +0 -0
  286. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeGradientRoutingConfig.dex +0 -0
  287. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeInternetMessage.dex +0 -0
  288. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeMessagePriority.dex +0 -0
  289. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeMessageStats.dex +0 -0
  290. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeNetworkLink.dex +0 -0
  291. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeNetworkNode.dex +0 -0
  292. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeNetworkTopology.dex +0 -0
  293. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeOfflineProtocol.dex +0 -0
  294. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypePathConfig.dex +0 -0
  295. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypePeerDevice.dex +0 -0
  296. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeProtocolConfig.dex +0 -0
  297. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeProtocolConfigExtended.dex +0 -0
  298. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeProtocolError.dex +0 -0
  299. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeProtocolState.dex +0 -0
  300. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeRelayConfig.dex +0 -0
  301. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeRelayPriority.dex +0 -0
  302. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeReliabilityConfig.dex +0 -0
  303. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeRetryConfig.dex +0 -0
  304. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeRouteEntry.dex +0 -0
  305. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeRoutingStats.dex +0 -0
  306. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeTransportConfig.dex +0 -0
  307. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeTransportMetrics.dex +0 -0
  308. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeTransportType.dex +0 -0
  309. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterTypeWifiDirectMessage.dex +0 -0
  310. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterUByte.dex +0 -0
  311. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterUInt.dex +0 -0
  312. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterULong.dex +0 -0
  313. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FfiConverterUShort.dex +0 -0
  314. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FileProgress$Companion.dex +0 -0
  315. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/FileProgress.dex +0 -0
  316. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ForeignBytes$ByValue.dex +0 -0
  317. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ForeignBytes.dex +0 -0
  318. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/GradientRoutingConfig$Companion.dex +0 -0
  319. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/GradientRoutingConfig.dex +0 -0
  320. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/IntegrityCheckingUniffiLib.dex +0 -0
  321. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/InternalException.dex +0 -0
  322. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/InternetMessage$Companion.dex +0 -0
  323. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/InternetMessage.dex +0 -0
  324. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/JavaLangRefCleanable.dex +0 -0
  325. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/JavaLangRefCleaner.dex +0 -0
  326. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/MessagePriority$Companion.dex +0 -0
  327. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/MessagePriority.dex +0 -0
  328. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/MessageStats$Companion.dex +0 -0
  329. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/MessageStats.dex +0 -0
  330. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/NetworkLink$Companion.dex +0 -0
  331. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/NetworkLink.dex +0 -0
  332. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/NetworkNode$Companion.dex +0 -0
  333. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/NetworkNode.dex +0 -0
  334. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/NetworkTopology$Companion.dex +0 -0
  335. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/NetworkTopology.dex +0 -0
  336. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/NoHandle.dex +0 -0
  337. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/OfflineProtocol$Companion.dex +0 -0
  338. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/OfflineProtocol$UniffiCleanAction.dex +0 -0
  339. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/OfflineProtocol.dex +0 -0
  340. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/OfflineProtocolInterface$Companion.dex +0 -0
  341. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/OfflineProtocolInterface.dex +0 -0
  342. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/Offline_protocolKt.dex +0 -0
  343. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/PathConfig$Companion.dex +0 -0
  344. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/PathConfig.dex +0 -0
  345. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/PeerDevice$Companion.dex +0 -0
  346. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/PeerDevice.dex +0 -0
  347. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolConfig$Companion.dex +0 -0
  348. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolConfig.dex +0 -0
  349. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolConfigExtended$Companion.dex +0 -0
  350. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolConfigExtended.dex +0 -0
  351. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolException$AlreadyStarted.dex +0 -0
  352. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolException$ErrorHandler.dex +0 -0
  353. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolException$InvalidConfiguration.dex +0 -0
  354. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolException$InvalidState.dex +0 -0
  355. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolException$NotStarted.dex +0 -0
  356. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolException$Other.dex +0 -0
  357. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolException$SendFailed.dex +0 -0
  358. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolException.dex +0 -0
  359. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolState$Companion.dex +0 -0
  360. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ProtocolState.dex +0 -0
  361. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RelayConfig$Companion.dex +0 -0
  362. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RelayConfig.dex +0 -0
  363. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RelayPriority$Companion.dex +0 -0
  364. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RelayPriority.dex +0 -0
  365. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ReliabilityConfig$Companion.dex +0 -0
  366. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/ReliabilityConfig.dex +0 -0
  367. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RetryConfig$Companion.dex +0 -0
  368. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RetryConfig.dex +0 -0
  369. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RouteEntry$Companion.dex +0 -0
  370. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RouteEntry.dex +0 -0
  371. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RoutingStats$Companion.dex +0 -0
  372. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RoutingStats.dex +0 -0
  373. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RustBuffer$ByReference.dex +0 -0
  374. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RustBuffer$ByValue.dex +0 -0
  375. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RustBuffer$Companion.dex +0 -0
  376. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/RustBuffer.dex +0 -0
  377. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/TransportConfig$Companion.dex +0 -0
  378. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/TransportConfig.dex +0 -0
  379. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/TransportMetrics$Companion.dex +0 -0
  380. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/TransportMetrics.dex +0 -0
  381. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/TransportType$Companion.dex +0 -0
  382. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/TransportType.dex +0 -0
  383. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiCallbackInterfaceClone.dex +0 -0
  384. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiCallbackInterfaceEventCallbackMethod0.dex +0 -0
  385. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiCallbackInterfaceFree.dex +0 -0
  386. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiCleaner$Cleanable.dex +0 -0
  387. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiCleaner$Companion.dex +0 -0
  388. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiCleaner.dex +0 -0
  389. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteF32.dex +0 -0
  390. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteF64.dex +0 -0
  391. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteI16.dex +0 -0
  392. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteI32.dex +0 -0
  393. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteI64.dex +0 -0
  394. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteI8.dex +0 -0
  395. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteRustBuffer.dex +0 -0
  396. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteU16.dex +0 -0
  397. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteU32.dex +0 -0
  398. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteU64.dex +0 -0
  399. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteU8.dex +0 -0
  400. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureCompleteVoid.dex +0 -0
  401. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureDroppedCallback.dex +0 -0
  402. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureDroppedCallbackStruct$UniffiByValue.dex +0 -0
  403. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureDroppedCallbackStruct.dex +0 -0
  404. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultF32$UniffiByValue.dex +0 -0
  405. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultF32.dex +0 -0
  406. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultF64$UniffiByValue.dex +0 -0
  407. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultF64.dex +0 -0
  408. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultI16$UniffiByValue.dex +0 -0
  409. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultI16.dex +0 -0
  410. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultI32$UniffiByValue.dex +0 -0
  411. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultI32.dex +0 -0
  412. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultI64$UniffiByValue.dex +0 -0
  413. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultI64.dex +0 -0
  414. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultI8$UniffiByValue.dex +0 -0
  415. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultI8.dex +0 -0
  416. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultRustBuffer$UniffiByValue.dex +0 -0
  417. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultRustBuffer.dex +0 -0
  418. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultU16$UniffiByValue.dex +0 -0
  419. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultU16.dex +0 -0
  420. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultU32$UniffiByValue.dex +0 -0
  421. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultU32.dex +0 -0
  422. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultU64$UniffiByValue.dex +0 -0
  423. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultU64.dex +0 -0
  424. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultU8$UniffiByValue.dex +0 -0
  425. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultU8.dex +0 -0
  426. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultVoid$UniffiByValue.dex +0 -0
  427. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiForeignFutureResultVoid.dex +0 -0
  428. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiHandleMap.dex +0 -0
  429. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiJnaCleanable.dex +0 -0
  430. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiJnaCleaner.dex +0 -0
  431. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiLib.dex +0 -0
  432. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiNullRustCallStatusErrorHandler.dex +0 -0
  433. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiRustCallStatus$ByValue.dex +0 -0
  434. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiRustCallStatus$Companion.dex +0 -0
  435. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiRustCallStatus.dex +0 -0
  436. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiRustCallStatusErrorHandler.dex +0 -0
  437. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiRustFutureContinuationCallback.dex +0 -0
  438. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiVTableCallbackInterfaceEventCallback$UniffiByValue.dex +0 -0
  439. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiVTableCallbackInterfaceEventCallback.dex +0 -0
  440. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/UniffiWithHandle.dex +0 -0
  441. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/WifiDirectMessage$Companion.dex +0 -0
  442. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/WifiDirectMessage.dex +0 -0
  443. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback$onEvent.dex +0 -0
  444. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback$uniffiClone.dex +0 -0
  445. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback$uniffiFree.dex +0 -0
  446. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback.dex +0 -0
  447. package/android/build/.transforms/da3557589d4a483a1399f2bb7c5d79d9/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  448. package/android/build/generated/source/buildConfig/debug/com/offlineprotocol/BuildConfig.java +10 -0
  449. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +35 -0
  450. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +18 -0
  451. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +6 -0
  452. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +1 -0
  453. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  454. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  455. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  456. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -0
  457. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +2 -0
  458. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +2 -0
  459. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  460. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  461. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/offlineprotocol_react-native_debug.kotlin_module +0 -0
  462. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/offlineprotocol/BuildConfig.class +0 -0
  463. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/liboffline_protocol_uniffi.so +0 -0
  464. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libuniffi_offline_protocol.so +0 -0
  465. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/liboffline_protocol_uniffi.so +0 -0
  466. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libuniffi_offline_protocol.so +0 -0
  467. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/liboffline_protocol_uniffi.so +0 -0
  468. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libuniffi_offline_protocol.so +0 -0
  469. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/liboffline_protocol_uniffi.so +0 -0
  470. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libuniffi_offline_protocol.so +0 -0
  471. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +2 -0
  472. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +51 -0
  473. package/android/build/intermediates/merged_jni_libs/debug/mergeDebugJniLibFolders/out/arm64-v8a/liboffline_protocol_uniffi.so +0 -0
  474. package/android/build/intermediates/merged_jni_libs/debug/mergeDebugJniLibFolders/out/arm64-v8a/libuniffi_offline_protocol.so +0 -0
  475. package/android/build/intermediates/merged_jni_libs/debug/mergeDebugJniLibFolders/out/armeabi-v7a/liboffline_protocol_uniffi.so +0 -0
  476. package/android/build/intermediates/merged_jni_libs/debug/mergeDebugJniLibFolders/out/armeabi-v7a/libuniffi_offline_protocol.so +0 -0
  477. package/android/build/intermediates/merged_jni_libs/debug/mergeDebugJniLibFolders/out/x86/liboffline_protocol_uniffi.so +0 -0
  478. package/android/build/intermediates/merged_jni_libs/debug/mergeDebugJniLibFolders/out/x86/libuniffi_offline_protocol.so +0 -0
  479. package/android/build/intermediates/merged_jni_libs/debug/mergeDebugJniLibFolders/out/x86_64/liboffline_protocol_uniffi.so +0 -0
  480. package/android/build/intermediates/merged_jni_libs/debug/mergeDebugJniLibFolders/out/x86_64/libuniffi_offline_protocol.so +0 -0
  481. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +35 -0
  482. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/liboffline_protocol_uniffi.so +0 -0
  483. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libuniffi_offline_protocol.so +0 -0
  484. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/liboffline_protocol_uniffi.so +0 -0
  485. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libuniffi_offline_protocol.so +0 -0
  486. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/liboffline_protocol_uniffi.so +0 -0
  487. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libuniffi_offline_protocol.so +0 -0
  488. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/liboffline_protocol_uniffi.so +0 -0
  489. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libuniffi_offline_protocol.so +0 -0
  490. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +1 -0
  491. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +1 -0
  492. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/offlineprotocol_react-native_debug.kotlin_module +0 -0
  493. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$Companion.class +0 -0
  494. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$MeshObservation.class +0 -0
  495. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$PendingFragment.class +0 -0
  496. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$WhenMappings.class +0 -0
  497. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$fragmentPollingRunnable$1.class +0 -0
  498. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$gattClientCallback$1.class +0 -0
  499. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$gattServerCallback$1$WhenMappings.class +0 -0
  500. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$gattServerCallback$1.class +0 -0
  501. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$resolveTargetAddress$$inlined$sortedBy$1.class +0 -0
  502. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$routingCleanupRunnable$1.class +0 -0
  503. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$scanWatchdogRunnable$1.class +0 -0
  504. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$startAdvertising$1.class +0 -0
  505. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager$startScanning$1.class +0 -0
  506. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BleManager.class +0 -0
  507. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/BuildConfig.class +0 -0
  508. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/InternetManager$Companion.class +0 -0
  509. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/InternetManager$messagePollingRunnable$1.class +0 -0
  510. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/InternetManager$pingRunnable$1.class +0 -0
  511. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/InternetManager$webSocketListener$1.class +0 -0
  512. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/InternetManager.class +0 -0
  513. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/LogThrottler.class +0 -0
  514. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/OfflineProtocolModule$Companion.class +0 -0
  515. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/OfflineProtocolModule$Constants.class +0 -0
  516. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/OfflineProtocolModule$ParsedConfig.class +0 -0
  517. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/OfflineProtocolModule$WhenMappings.class +0 -0
  518. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/OfflineProtocolModule$create$1.class +0 -0
  519. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/OfflineProtocolModule$create$3$1.class +0 -0
  520. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/OfflineProtocolModule$create$5$1.class +0 -0
  521. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/OfflineProtocolModule.class +0 -0
  522. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/OfflineProtocolPackage.class +0 -0
  523. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportException$AlreadyRunning.class +0 -0
  524. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportException$InvalidState.class +0 -0
  525. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportException$NotAvailable.class +0 -0
  526. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportException$NotRunning.class +0 -0
  527. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportException$PermissionDenied.class +0 -0
  528. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportException$PlatformError.class +0 -0
  529. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportException$StartFailed.class +0 -0
  530. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportException.class +0 -0
  531. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportManager$DefaultImpls.class +0 -0
  532. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportManager.class +0 -0
  533. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportManagerListener.class +0 -0
  534. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/TransportState.class +0 -0
  535. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/WifiDirectManager$Companion.class +0 -0
  536. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/WifiDirectManager$messagePollingRunnable$1.class +0 -0
  537. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/WifiDirectManager$p2pReceiver$1.class +0 -0
  538. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/WifiDirectManager$startPeerDiscovery$1.class +0 -0
  539. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/WifiDirectManager$stopPeerDiscovery$1.class +0 -0
  540. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/WifiDirectManager.class +0 -0
  541. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/ble/MeshConnectionRegistry.class +0 -0
  542. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshAdvertisementData$Companion.class +0 -0
  543. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshAdvertisementData.class +0 -0
  544. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$Companion.class +0 -0
  545. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$ConnectionIntent.class +0 -0
  546. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$MeshConfig.class +0 -0
  547. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$MeshDecision.class +0 -0
  548. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$MeshRole.class +0 -0
  549. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$PeerMetrics.class +0 -0
  550. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$PeerState.class +0 -0
  551. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$RebalanceDirective.class +0 -0
  552. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$RemoteCandidate.class +0 -0
  553. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$ScoreWeights.class +0 -0
  554. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$pruneCandidateCache$$inlined$sortedBy$1.class +0 -0
  555. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$prunePeerCache$$inlined$sortBy$1.class +0 -0
  556. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController$prunePeerCache$$inlined$sortBy$2.class +0 -0
  557. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/offlineprotocol/mesh/MeshController.class +0 -0
  558. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/AckConfig$Companion.class +0 -0
  559. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/AckConfig.class +0 -0
  560. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/BleFragment$Companion.class +0 -0
  561. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/BleFragment.class +0 -0
  562. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/DedupConfig$Companion.class +0 -0
  563. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/DedupConfig.class +0 -0
  564. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/DedupStats$Companion.class +0 -0
  565. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/DedupStats.class +0 -0
  566. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/Disposable$Companion.class +0 -0
  567. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/Disposable.class +0 -0
  568. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/DorsConfig$Companion.class +0 -0
  569. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/DorsConfig.class +0 -0
  570. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/EventCallback$Companion.class +0 -0
  571. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/EventCallback.class +0 -0
  572. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverter$DefaultImpls.class +0 -0
  573. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverter.class +0 -0
  574. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterBoolean.class +0 -0
  575. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterCallbackInterface.class +0 -0
  576. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterFloat.class +0 -0
  577. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalShort.class +0 -0
  578. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalString.class +0 -0
  579. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalTypeBleFragment.class +0 -0
  580. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalTypeFileProgress.class +0 -0
  581. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalTypeInternetMessage.class +0 -0
  582. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalTypeRouteEntry.class +0 -0
  583. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalTypeTransportMetrics.class +0 -0
  584. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalTypeWifiDirectMessage.class +0 -0
  585. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalUByte.class +0 -0
  586. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterOptionalULong.class +0 -0
  587. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterRustBuffer$DefaultImpls.class +0 -0
  588. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterRustBuffer.class +0 -0
  589. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterSequenceString.class +0 -0
  590. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterSequenceTypeMessageStats.class +0 -0
  591. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterSequenceTypeNetworkLink.class +0 -0
  592. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterSequenceTypeNetworkNode.class +0 -0
  593. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterSequenceTypeRouteEntry.class +0 -0
  594. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterSequenceUByte.class +0 -0
  595. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterShort.class +0 -0
  596. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterString.class +0 -0
  597. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeAckConfig.class +0 -0
  598. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeBleFragment.class +0 -0
  599. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeDedupConfig.class +0 -0
  600. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeDedupStats.class +0 -0
  601. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeDorsConfig.class +0 -0
  602. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeEventCallback.class +0 -0
  603. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeFileProgress.class +0 -0
  604. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeGradientRoutingConfig.class +0 -0
  605. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeInternetMessage.class +0 -0
  606. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeMessagePriority.class +0 -0
  607. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeMessageStats.class +0 -0
  608. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeNetworkLink.class +0 -0
  609. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeNetworkNode.class +0 -0
  610. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeNetworkTopology.class +0 -0
  611. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeOfflineProtocol.class +0 -0
  612. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypePathConfig.class +0 -0
  613. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypePeerDevice.class +0 -0
  614. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeProtocolConfig.class +0 -0
  615. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeProtocolConfigExtended.class +0 -0
  616. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeProtocolError.class +0 -0
  617. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeProtocolState.class +0 -0
  618. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeRelayConfig.class +0 -0
  619. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeRelayPriority.class +0 -0
  620. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeReliabilityConfig.class +0 -0
  621. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeRetryConfig.class +0 -0
  622. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeRouteEntry.class +0 -0
  623. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeRoutingStats.class +0 -0
  624. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeTransportConfig.class +0 -0
  625. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeTransportMetrics.class +0 -0
  626. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeTransportType.class +0 -0
  627. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterTypeWifiDirectMessage.class +0 -0
  628. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterUByte.class +0 -0
  629. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterUInt.class +0 -0
  630. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterULong.class +0 -0
  631. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FfiConverterUShort.class +0 -0
  632. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FileProgress$Companion.class +0 -0
  633. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/FileProgress.class +0 -0
  634. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ForeignBytes$ByValue.class +0 -0
  635. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ForeignBytes.class +0 -0
  636. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/GradientRoutingConfig$Companion.class +0 -0
  637. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/GradientRoutingConfig.class +0 -0
  638. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/IntegrityCheckingUniffiLib.class +0 -0
  639. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/InternalException.class +0 -0
  640. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/InternetMessage$Companion.class +0 -0
  641. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/InternetMessage.class +0 -0
  642. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/JavaLangRefCleanable.class +0 -0
  643. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/JavaLangRefCleaner.class +0 -0
  644. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/MessagePriority$Companion.class +0 -0
  645. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/MessagePriority.class +0 -0
  646. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/MessageStats$Companion.class +0 -0
  647. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/MessageStats.class +0 -0
  648. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/NetworkLink$Companion.class +0 -0
  649. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/NetworkLink.class +0 -0
  650. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/NetworkNode$Companion.class +0 -0
  651. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/NetworkNode.class +0 -0
  652. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/NetworkTopology$Companion.class +0 -0
  653. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/NetworkTopology.class +0 -0
  654. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/NoHandle.class +0 -0
  655. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/OfflineProtocol$Companion.class +0 -0
  656. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/OfflineProtocol$UniffiCleanAction.class +0 -0
  657. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/OfflineProtocol.class +0 -0
  658. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/OfflineProtocolInterface$Companion.class +0 -0
  659. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/OfflineProtocolInterface.class +0 -0
  660. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/Offline_protocolKt.class +0 -0
  661. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/PathConfig$Companion.class +0 -0
  662. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/PathConfig.class +0 -0
  663. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/PeerDevice$Companion.class +0 -0
  664. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/PeerDevice.class +0 -0
  665. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolConfig$Companion.class +0 -0
  666. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolConfig.class +0 -0
  667. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolConfigExtended$Companion.class +0 -0
  668. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolConfigExtended.class +0 -0
  669. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolException$AlreadyStarted.class +0 -0
  670. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolException$ErrorHandler.class +0 -0
  671. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolException$InvalidConfiguration.class +0 -0
  672. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolException$InvalidState.class +0 -0
  673. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolException$NotStarted.class +0 -0
  674. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolException$Other.class +0 -0
  675. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolException$SendFailed.class +0 -0
  676. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolException.class +0 -0
  677. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolState$Companion.class +0 -0
  678. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ProtocolState.class +0 -0
  679. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RelayConfig$Companion.class +0 -0
  680. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RelayConfig.class +0 -0
  681. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RelayPriority$Companion.class +0 -0
  682. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RelayPriority.class +0 -0
  683. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ReliabilityConfig$Companion.class +0 -0
  684. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/ReliabilityConfig.class +0 -0
  685. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RetryConfig$Companion.class +0 -0
  686. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RetryConfig.class +0 -0
  687. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RouteEntry$Companion.class +0 -0
  688. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RouteEntry.class +0 -0
  689. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RoutingStats$Companion.class +0 -0
  690. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RoutingStats.class +0 -0
  691. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RustBuffer$ByReference.class +0 -0
  692. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RustBuffer$ByValue.class +0 -0
  693. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RustBuffer$Companion.class +0 -0
  694. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/RustBuffer.class +0 -0
  695. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/TransportConfig$Companion.class +0 -0
  696. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/TransportConfig.class +0 -0
  697. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/TransportMetrics$Companion.class +0 -0
  698. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/TransportMetrics.class +0 -0
  699. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/TransportType$Companion.class +0 -0
  700. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/TransportType.class +0 -0
  701. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiCallbackInterfaceClone.class +0 -0
  702. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiCallbackInterfaceEventCallbackMethod0.class +0 -0
  703. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiCallbackInterfaceFree.class +0 -0
  704. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiCleaner$Cleanable.class +0 -0
  705. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiCleaner$Companion.class +0 -0
  706. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiCleaner.class +0 -0
  707. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteF32.class +0 -0
  708. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteF64.class +0 -0
  709. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteI16.class +0 -0
  710. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteI32.class +0 -0
  711. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteI64.class +0 -0
  712. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteI8.class +0 -0
  713. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteRustBuffer.class +0 -0
  714. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteU16.class +0 -0
  715. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteU32.class +0 -0
  716. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteU64.class +0 -0
  717. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteU8.class +0 -0
  718. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureCompleteVoid.class +0 -0
  719. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureDroppedCallback.class +0 -0
  720. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureDroppedCallbackStruct$UniffiByValue.class +0 -0
  721. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureDroppedCallbackStruct.class +0 -0
  722. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultF32$UniffiByValue.class +0 -0
  723. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultF32.class +0 -0
  724. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultF64$UniffiByValue.class +0 -0
  725. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultF64.class +0 -0
  726. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultI16$UniffiByValue.class +0 -0
  727. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultI16.class +0 -0
  728. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultI32$UniffiByValue.class +0 -0
  729. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultI32.class +0 -0
  730. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultI64$UniffiByValue.class +0 -0
  731. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultI64.class +0 -0
  732. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultI8$UniffiByValue.class +0 -0
  733. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultI8.class +0 -0
  734. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultRustBuffer$UniffiByValue.class +0 -0
  735. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultRustBuffer.class +0 -0
  736. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultU16$UniffiByValue.class +0 -0
  737. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultU16.class +0 -0
  738. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultU32$UniffiByValue.class +0 -0
  739. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultU32.class +0 -0
  740. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultU64$UniffiByValue.class +0 -0
  741. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultU64.class +0 -0
  742. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultU8$UniffiByValue.class +0 -0
  743. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultU8.class +0 -0
  744. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultVoid$UniffiByValue.class +0 -0
  745. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiForeignFutureResultVoid.class +0 -0
  746. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiHandleMap.class +0 -0
  747. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiJnaCleanable.class +0 -0
  748. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiJnaCleaner.class +0 -0
  749. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiLib.class +0 -0
  750. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiNullRustCallStatusErrorHandler.class +0 -0
  751. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiRustCallStatus$ByValue.class +0 -0
  752. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiRustCallStatus$Companion.class +0 -0
  753. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiRustCallStatus.class +0 -0
  754. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiRustCallStatusErrorHandler.class +0 -0
  755. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiRustFutureContinuationCallback.class +0 -0
  756. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiVTableCallbackInterfaceEventCallback$UniffiByValue.class +0 -0
  757. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiVTableCallbackInterfaceEventCallback.class +0 -0
  758. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/UniffiWithHandle.class +0 -0
  759. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/WifiDirectMessage$Companion.class +0 -0
  760. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/WifiDirectMessage.class +0 -0
  761. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback$onEvent.class +0 -0
  762. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback$uniffiClone.class +0 -0
  763. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback$uniffiFree.class +0 -0
  764. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback.class +0 -0
  765. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  766. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +1 -0
  767. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  768. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  769. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  770. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  771. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values +0 -0
  772. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  773. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.s +1 -0
  774. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  775. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  776. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  777. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  778. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  779. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  780. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  781. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  782. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  783. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  784. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  785. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  786. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  787. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values +0 -0
  788. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  789. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.s +1 -0
  790. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  791. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  792. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  793. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  794. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  795. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  796. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  797. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  798. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  799. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/inline-functions.tab +0 -0
  800. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/inline-functions.tab.keystream +0 -0
  801. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/inline-functions.tab.keystream.len +0 -0
  802. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/inline-functions.tab.len +0 -0
  803. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/inline-functions.tab.values.at +0 -0
  804. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/inline-functions.tab_i +0 -0
  805. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/inline-functions.tab_i.len +0 -0
  806. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  807. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  808. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  809. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  810. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values +0 -0
  811. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  812. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.s +1 -0
  813. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  814. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  815. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
  816. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
  817. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
  818. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
  819. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
  820. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
  821. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
  822. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  823. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  824. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  825. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  826. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
  827. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  828. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +1 -0
  829. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  830. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  831. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  832. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  833. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  834. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  835. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  836. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  837. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  838. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  839. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  840. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  841. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  842. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  843. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  844. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  845. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  846. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  847. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  848. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  849. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  850. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  851. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  852. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +2 -0
  853. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  854. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  855. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  856. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  857. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  858. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  859. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  860. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  861. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  862. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  863. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  864. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  865. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  866. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  867. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  868. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  869. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  870. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  871. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values +0 -0
  872. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  873. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s +1 -0
  874. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  875. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  876. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  877. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  878. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  879. package/android/build/outputs/logs/manifest-merger-debug-report.txt +48 -0
  880. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  881. package/android/build/tmp/kotlin-classes/debug/META-INF/offlineprotocol_react-native_debug.kotlin_module +0 -0
  882. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$Companion.class +0 -0
  883. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$MeshObservation.class +0 -0
  884. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$PendingFragment.class +0 -0
  885. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$WhenMappings.class +0 -0
  886. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$fragmentPollingRunnable$1.class +0 -0
  887. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$gattClientCallback$1.class +0 -0
  888. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$gattServerCallback$1$WhenMappings.class +0 -0
  889. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$gattServerCallback$1.class +0 -0
  890. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$resolveTargetAddress$$inlined$sortedBy$1.class +0 -0
  891. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$routingCleanupRunnable$1.class +0 -0
  892. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$scanWatchdogRunnable$1.class +0 -0
  893. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$startAdvertising$1.class +0 -0
  894. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager$startScanning$1.class +0 -0
  895. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/BleManager.class +0 -0
  896. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/InternetManager$Companion.class +0 -0
  897. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/InternetManager$messagePollingRunnable$1.class +0 -0
  898. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/InternetManager$pingRunnable$1.class +0 -0
  899. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/InternetManager$webSocketListener$1.class +0 -0
  900. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/InternetManager.class +0 -0
  901. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/LogThrottler.class +0 -0
  902. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/OfflineProtocolModule$Companion.class +0 -0
  903. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/OfflineProtocolModule$Constants.class +0 -0
  904. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/OfflineProtocolModule$ParsedConfig.class +0 -0
  905. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/OfflineProtocolModule$WhenMappings.class +0 -0
  906. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/OfflineProtocolModule$create$1.class +0 -0
  907. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/OfflineProtocolModule$create$3$1.class +0 -0
  908. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/OfflineProtocolModule$create$5$1.class +0 -0
  909. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/OfflineProtocolModule.class +0 -0
  910. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/OfflineProtocolPackage.class +0 -0
  911. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportException$AlreadyRunning.class +0 -0
  912. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportException$InvalidState.class +0 -0
  913. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportException$NotAvailable.class +0 -0
  914. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportException$NotRunning.class +0 -0
  915. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportException$PermissionDenied.class +0 -0
  916. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportException$PlatformError.class +0 -0
  917. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportException$StartFailed.class +0 -0
  918. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportException.class +0 -0
  919. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportManager$DefaultImpls.class +0 -0
  920. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportManager.class +0 -0
  921. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportManagerListener.class +0 -0
  922. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/TransportState.class +0 -0
  923. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/WifiDirectManager$Companion.class +0 -0
  924. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/WifiDirectManager$messagePollingRunnable$1.class +0 -0
  925. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/WifiDirectManager$p2pReceiver$1.class +0 -0
  926. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/WifiDirectManager$startPeerDiscovery$1.class +0 -0
  927. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/WifiDirectManager$stopPeerDiscovery$1.class +0 -0
  928. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/WifiDirectManager.class +0 -0
  929. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/ble/MeshConnectionRegistry.class +0 -0
  930. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshAdvertisementData$Companion.class +0 -0
  931. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshAdvertisementData.class +0 -0
  932. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$Companion.class +0 -0
  933. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$ConnectionIntent.class +0 -0
  934. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$MeshConfig.class +0 -0
  935. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$MeshDecision.class +0 -0
  936. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$MeshRole.class +0 -0
  937. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$PeerMetrics.class +0 -0
  938. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$PeerState.class +0 -0
  939. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$RebalanceDirective.class +0 -0
  940. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$RemoteCandidate.class +0 -0
  941. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$ScoreWeights.class +0 -0
  942. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$pruneCandidateCache$$inlined$sortedBy$1.class +0 -0
  943. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$prunePeerCache$$inlined$sortBy$1.class +0 -0
  944. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController$prunePeerCache$$inlined$sortBy$2.class +0 -0
  945. package/android/build/tmp/kotlin-classes/debug/com/offlineprotocol/mesh/MeshController.class +0 -0
  946. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/AckConfig$Companion.class +0 -0
  947. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/AckConfig.class +0 -0
  948. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/BleFragment$Companion.class +0 -0
  949. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/BleFragment.class +0 -0
  950. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/DedupConfig$Companion.class +0 -0
  951. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/DedupConfig.class +0 -0
  952. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/DedupStats$Companion.class +0 -0
  953. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/DedupStats.class +0 -0
  954. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/Disposable$Companion.class +0 -0
  955. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/Disposable.class +0 -0
  956. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/DorsConfig$Companion.class +0 -0
  957. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/DorsConfig.class +0 -0
  958. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/EventCallback$Companion.class +0 -0
  959. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/EventCallback.class +0 -0
  960. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverter$DefaultImpls.class +0 -0
  961. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverter.class +0 -0
  962. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterBoolean.class +0 -0
  963. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterCallbackInterface.class +0 -0
  964. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterFloat.class +0 -0
  965. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalShort.class +0 -0
  966. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalString.class +0 -0
  967. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalTypeBleFragment.class +0 -0
  968. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalTypeFileProgress.class +0 -0
  969. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalTypeInternetMessage.class +0 -0
  970. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalTypeRouteEntry.class +0 -0
  971. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalTypeTransportMetrics.class +0 -0
  972. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalTypeWifiDirectMessage.class +0 -0
  973. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalUByte.class +0 -0
  974. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterOptionalULong.class +0 -0
  975. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterRustBuffer$DefaultImpls.class +0 -0
  976. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterRustBuffer.class +0 -0
  977. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterSequenceString.class +0 -0
  978. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterSequenceTypeMessageStats.class +0 -0
  979. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterSequenceTypeNetworkLink.class +0 -0
  980. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterSequenceTypeNetworkNode.class +0 -0
  981. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterSequenceTypeRouteEntry.class +0 -0
  982. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterSequenceUByte.class +0 -0
  983. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterShort.class +0 -0
  984. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterString.class +0 -0
  985. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeAckConfig.class +0 -0
  986. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeBleFragment.class +0 -0
  987. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeDedupConfig.class +0 -0
  988. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeDedupStats.class +0 -0
  989. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeDorsConfig.class +0 -0
  990. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeEventCallback.class +0 -0
  991. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeFileProgress.class +0 -0
  992. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeGradientRoutingConfig.class +0 -0
  993. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeInternetMessage.class +0 -0
  994. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeMessagePriority.class +0 -0
  995. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeMessageStats.class +0 -0
  996. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeNetworkLink.class +0 -0
  997. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeNetworkNode.class +0 -0
  998. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeNetworkTopology.class +0 -0
  999. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeOfflineProtocol.class +0 -0
  1000. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypePathConfig.class +0 -0
  1001. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypePeerDevice.class +0 -0
  1002. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeProtocolConfig.class +0 -0
  1003. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeProtocolConfigExtended.class +0 -0
  1004. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeProtocolError.class +0 -0
  1005. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeProtocolState.class +0 -0
  1006. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeRelayConfig.class +0 -0
  1007. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeRelayPriority.class +0 -0
  1008. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeReliabilityConfig.class +0 -0
  1009. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeRetryConfig.class +0 -0
  1010. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeRouteEntry.class +0 -0
  1011. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeRoutingStats.class +0 -0
  1012. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeTransportConfig.class +0 -0
  1013. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeTransportMetrics.class +0 -0
  1014. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeTransportType.class +0 -0
  1015. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterTypeWifiDirectMessage.class +0 -0
  1016. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterUByte.class +0 -0
  1017. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterUInt.class +0 -0
  1018. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterULong.class +0 -0
  1019. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FfiConverterUShort.class +0 -0
  1020. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FileProgress$Companion.class +0 -0
  1021. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/FileProgress.class +0 -0
  1022. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ForeignBytes$ByValue.class +0 -0
  1023. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ForeignBytes.class +0 -0
  1024. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/GradientRoutingConfig$Companion.class +0 -0
  1025. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/GradientRoutingConfig.class +0 -0
  1026. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/IntegrityCheckingUniffiLib.class +0 -0
  1027. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/InternalException.class +0 -0
  1028. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/InternetMessage$Companion.class +0 -0
  1029. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/InternetMessage.class +0 -0
  1030. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/JavaLangRefCleanable.class +0 -0
  1031. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/JavaLangRefCleaner.class +0 -0
  1032. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/MessagePriority$Companion.class +0 -0
  1033. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/MessagePriority.class +0 -0
  1034. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/MessageStats$Companion.class +0 -0
  1035. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/MessageStats.class +0 -0
  1036. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/NetworkLink$Companion.class +0 -0
  1037. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/NetworkLink.class +0 -0
  1038. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/NetworkNode$Companion.class +0 -0
  1039. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/NetworkNode.class +0 -0
  1040. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/NetworkTopology$Companion.class +0 -0
  1041. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/NetworkTopology.class +0 -0
  1042. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/NoHandle.class +0 -0
  1043. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/OfflineProtocol$Companion.class +0 -0
  1044. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/OfflineProtocol$UniffiCleanAction.class +0 -0
  1045. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/OfflineProtocol.class +0 -0
  1046. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/OfflineProtocolInterface$Companion.class +0 -0
  1047. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/OfflineProtocolInterface.class +0 -0
  1048. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/Offline_protocolKt.class +0 -0
  1049. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/PathConfig$Companion.class +0 -0
  1050. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/PathConfig.class +0 -0
  1051. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/PeerDevice$Companion.class +0 -0
  1052. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/PeerDevice.class +0 -0
  1053. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolConfig$Companion.class +0 -0
  1054. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolConfig.class +0 -0
  1055. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolConfigExtended$Companion.class +0 -0
  1056. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolConfigExtended.class +0 -0
  1057. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolException$AlreadyStarted.class +0 -0
  1058. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolException$ErrorHandler.class +0 -0
  1059. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolException$InvalidConfiguration.class +0 -0
  1060. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolException$InvalidState.class +0 -0
  1061. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolException$NotStarted.class +0 -0
  1062. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolException$Other.class +0 -0
  1063. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolException$SendFailed.class +0 -0
  1064. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolException.class +0 -0
  1065. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolState$Companion.class +0 -0
  1066. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ProtocolState.class +0 -0
  1067. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RelayConfig$Companion.class +0 -0
  1068. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RelayConfig.class +0 -0
  1069. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RelayPriority$Companion.class +0 -0
  1070. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RelayPriority.class +0 -0
  1071. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ReliabilityConfig$Companion.class +0 -0
  1072. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/ReliabilityConfig.class +0 -0
  1073. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RetryConfig$Companion.class +0 -0
  1074. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RetryConfig.class +0 -0
  1075. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RouteEntry$Companion.class +0 -0
  1076. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RouteEntry.class +0 -0
  1077. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RoutingStats$Companion.class +0 -0
  1078. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RoutingStats.class +0 -0
  1079. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RustBuffer$ByReference.class +0 -0
  1080. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RustBuffer$ByValue.class +0 -0
  1081. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RustBuffer$Companion.class +0 -0
  1082. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/RustBuffer.class +0 -0
  1083. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/TransportConfig$Companion.class +0 -0
  1084. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/TransportConfig.class +0 -0
  1085. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/TransportMetrics$Companion.class +0 -0
  1086. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/TransportMetrics.class +0 -0
  1087. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/TransportType$Companion.class +0 -0
  1088. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/TransportType.class +0 -0
  1089. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiCallbackInterfaceClone.class +0 -0
  1090. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiCallbackInterfaceEventCallbackMethod0.class +0 -0
  1091. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiCallbackInterfaceFree.class +0 -0
  1092. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiCleaner$Cleanable.class +0 -0
  1093. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiCleaner$Companion.class +0 -0
  1094. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiCleaner.class +0 -0
  1095. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteF32.class +0 -0
  1096. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteF64.class +0 -0
  1097. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteI16.class +0 -0
  1098. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteI32.class +0 -0
  1099. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteI64.class +0 -0
  1100. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteI8.class +0 -0
  1101. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteRustBuffer.class +0 -0
  1102. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteU16.class +0 -0
  1103. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteU32.class +0 -0
  1104. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteU64.class +0 -0
  1105. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteU8.class +0 -0
  1106. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureCompleteVoid.class +0 -0
  1107. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureDroppedCallback.class +0 -0
  1108. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureDroppedCallbackStruct$UniffiByValue.class +0 -0
  1109. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureDroppedCallbackStruct.class +0 -0
  1110. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultF32$UniffiByValue.class +0 -0
  1111. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultF32.class +0 -0
  1112. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultF64$UniffiByValue.class +0 -0
  1113. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultF64.class +0 -0
  1114. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultI16$UniffiByValue.class +0 -0
  1115. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultI16.class +0 -0
  1116. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultI32$UniffiByValue.class +0 -0
  1117. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultI32.class +0 -0
  1118. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultI64$UniffiByValue.class +0 -0
  1119. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultI64.class +0 -0
  1120. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultI8$UniffiByValue.class +0 -0
  1121. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultI8.class +0 -0
  1122. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultRustBuffer$UniffiByValue.class +0 -0
  1123. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultRustBuffer.class +0 -0
  1124. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultU16$UniffiByValue.class +0 -0
  1125. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultU16.class +0 -0
  1126. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultU32$UniffiByValue.class +0 -0
  1127. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultU32.class +0 -0
  1128. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultU64$UniffiByValue.class +0 -0
  1129. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultU64.class +0 -0
  1130. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultU8$UniffiByValue.class +0 -0
  1131. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultU8.class +0 -0
  1132. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultVoid$UniffiByValue.class +0 -0
  1133. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiForeignFutureResultVoid.class +0 -0
  1134. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiHandleMap.class +0 -0
  1135. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiJnaCleanable.class +0 -0
  1136. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiJnaCleaner.class +0 -0
  1137. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiLib.class +0 -0
  1138. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiNullRustCallStatusErrorHandler.class +0 -0
  1139. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiRustCallStatus$ByValue.class +0 -0
  1140. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiRustCallStatus$Companion.class +0 -0
  1141. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiRustCallStatus.class +0 -0
  1142. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiRustCallStatusErrorHandler.class +0 -0
  1143. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiRustFutureContinuationCallback.class +0 -0
  1144. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiVTableCallbackInterfaceEventCallback$UniffiByValue.class +0 -0
  1145. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiVTableCallbackInterfaceEventCallback.class +0 -0
  1146. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/UniffiWithHandle.class +0 -0
  1147. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/WifiDirectMessage$Companion.class +0 -0
  1148. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/WifiDirectMessage.class +0 -0
  1149. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback$onEvent.class +0 -0
  1150. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback$uniffiClone.class +0 -0
  1151. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback$uniffiFree.class +0 -0
  1152. package/android/build/tmp/kotlin-classes/debug/uniffi/offline_protocol/uniffiCallbackInterfaceEventCallback.class +0 -0
  1153. package/android/build.gradle +78 -0
  1154. package/android/src/main/AndroidManifest.xml +24 -0
  1155. package/android/src/main/cpp/CMakeLists.txt +63 -0
  1156. package/android/src/main/cpp/ble_bridge.cpp +156 -0
  1157. package/android/src/main/cpp/offline_protocol_jni.cpp +840 -0
  1158. package/android/src/main/java/com/offlineprotocol/BleManager.kt +1763 -0
  1159. package/android/src/main/java/com/offlineprotocol/InternetManager.kt +684 -0
  1160. package/android/src/main/java/com/offlineprotocol/OfflineProtocolModule.kt +1806 -0
  1161. package/android/src/main/java/com/offlineprotocol/OfflineProtocolPackage.kt +16 -0
  1162. package/android/src/main/java/com/offlineprotocol/TransportManager.kt +124 -0
  1163. package/android/src/main/java/com/offlineprotocol/WifiDirectManager.kt +647 -0
  1164. package/android/src/main/java/com/offlineprotocol/ble/MeshConnectionRegistry.kt +101 -0
  1165. package/android/src/main/java/com/offlineprotocol/mesh/Mesh.kt +850 -0
  1166. package/android/src/main/java/uniffi/offline_protocol/offline_protocol.kt +4789 -0
  1167. package/android/src/main/jniLibs/arm64-v8a/liboffline_protocol_uniffi.so +0 -0
  1168. package/android/src/main/jniLibs/arm64-v8a/libuniffi_offline_protocol.so +0 -0
  1169. package/android/src/main/jniLibs/armeabi-v7a/liboffline_protocol_uniffi.so +0 -0
  1170. package/android/src/main/jniLibs/armeabi-v7a/libuniffi_offline_protocol.so +0 -0
  1171. package/android/src/main/jniLibs/x86/liboffline_protocol_uniffi.so +0 -0
  1172. package/android/src/main/jniLibs/x86/libuniffi_offline_protocol.so +0 -0
  1173. package/android/src/main/jniLibs/x86_64/liboffline_protocol_uniffi.so +0 -0
  1174. package/android/src/main/jniLibs/x86_64/libuniffi_offline_protocol.so +0 -0
  1175. package/android/src/test/java/com/offlineprotocol/mesh/MeshControllerTest.kt +117 -0
  1176. package/ios/BleManager.swift +1988 -0
  1177. package/ios/Generated/offline_protocol.swift +3995 -0
  1178. package/ios/Generated/offline_protocolFFI.h +1297 -0
  1179. package/ios/Generated/offline_protocolFFI.modulemap +7 -0
  1180. package/ios/InternetManager.swift +678 -0
  1181. package/ios/MeshSdk.podspec +60 -0
  1182. package/ios/OfflineProtocolModule.m +272 -0
  1183. package/ios/OfflineProtocolModule.swift +1939 -0
  1184. package/ios/TransportManager.swift +119 -0
  1185. package/ios/WifiDirectManager.swift +418 -0
  1186. package/ios/ble/MeshConnectionRegistry.swift +174 -0
  1187. package/ios/libs/liboffline_protocol_uniffi_device.a +0 -0
  1188. package/ios/libs/liboffline_protocol_uniffi_sim.a +0 -0
  1189. package/ios/mesh/Mesh.swift +1019 -0
  1190. package/ios/tests/MeshControllerTests.swift +119 -0
  1191. package/lib/constants.d.ts +4 -0
  1192. package/lib/constants.d.ts.map +1 -0
  1193. package/lib/constants.js +9 -0
  1194. package/lib/index.d.ts +141 -0
  1195. package/lib/index.d.ts.map +1 -0
  1196. package/lib/index.js +498 -0
  1197. package/lib/types-uniffi.d.ts +50 -0
  1198. package/lib/types-uniffi.d.ts.map +1 -0
  1199. package/lib/types-uniffi.js +35 -0
  1200. package/lib/types.d.ts +285 -0
  1201. package/lib/types.d.ts.map +1 -0
  1202. package/lib/types.js +21 -0
  1203. package/package.json +63 -0
  1204. package/react-native.config.js +9 -0
  1205. package/scripts/build-all.sh +41 -0
  1206. package/scripts/build-android.sh +110 -0
  1207. package/scripts/build-ios.sh +75 -0
  1208. package/scripts/build-uniffi-all.sh +69 -0
  1209. package/scripts/build-uniffi-android.sh +139 -0
  1210. package/scripts/build-uniffi-ios.sh +96 -0
  1211. package/scripts/generate-bindings.sh +64 -0
  1212. package/scripts/prepare-npm.sh +87 -0
  1213. package/src/constants.ts +25 -0
  1214. package/src/index.ts +1277 -0
  1215. package/src/types-uniffi.ts +124 -0
  1216. package/src/types.ts +613 -0
@@ -0,0 +1,1763 @@
1
+ package com.offlineprotocol
2
+
3
+ import android.Manifest
4
+ import android.bluetooth.*
5
+ import android.bluetooth.le.*
6
+ import android.content.Context
7
+ import android.content.pm.PackageManager
8
+ import android.os.Build
9
+ import android.os.BatteryManager
10
+ import android.os.Handler
11
+ import android.os.Looper
12
+ import android.os.ParcelUuid
13
+ import android.util.Log
14
+ import androidx.core.content.ContextCompat
15
+ import com.offlineprotocol.ble.MeshConnectionRegistry
16
+ import com.offlineprotocol.mesh.MeshAdvertisementData
17
+ import com.offlineprotocol.mesh.MeshController
18
+ import com.offlineprotocol.mesh.MeshController.ConnectionIntent
19
+ import com.offlineprotocol.mesh.MeshController.MeshRole
20
+ import uniffi.offline_protocol.OfflineProtocol
21
+ import android.bluetooth.BluetoothStatusCodes
22
+ import java.util.*
23
+ import java.util.concurrent.ConcurrentHashMap
24
+ import java.util.concurrent.CountDownLatch
25
+ import java.util.concurrent.ThreadLocalRandom
26
+ import kotlin.math.min
27
+ import kotlin.math.roundToInt
28
+
29
+ private class LogThrottler(private val defaultIntervalMs: Long = 5000L) {
30
+ private val timestamps = ConcurrentHashMap<String, Long>()
31
+
32
+ fun shouldLog(key: String, intervalMs: Long = defaultIntervalMs, nowMs: Long = System.currentTimeMillis()): Boolean {
33
+ val last = timestamps[key]
34
+ if (last != null && nowMs - last < intervalMs) {
35
+ return false
36
+ }
37
+ timestamps[key] = nowMs
38
+ return true
39
+ }
40
+ }
41
+
42
+ /**
43
+ * BLE Manager implementing TransportManager for Bluetooth Low Energy communication
44
+ * Ensures iOS ↔ Android cross-platform compatibility
45
+ */
46
+ class BleManager(
47
+ private val context: Context,
48
+ private val protocol: OfflineProtocol,
49
+ private val deviceId: String,
50
+ private val diagnosticEmitter: ((String, String, Map<String, Any?>) -> Unit)? = null
51
+ ) : TransportManager {
52
+
53
+ // MARK: - TransportManager Implementation
54
+
55
+ override val transportId = "ble"
56
+ override val transportName = "Bluetooth Low Energy"
57
+ override var state: TransportState = TransportState.UNAVAILABLE
58
+ private set
59
+ override var listener: TransportManagerListener? = null
60
+
61
+ // MARK: - BLE Constants (matching Rust core and iOS)
62
+
63
+ companion object {
64
+ private const val TAG = "BleManager"
65
+
66
+ // UUIDs must match iOS and Rust core exactly
67
+ private val SERVICE_UUID = UUID.fromString("6E400001-B5A3-F393-E0A9-E50E24DCCA9E")
68
+ private val MESSAGE_CHAR_UUID = UUID.fromString("6E400002-B5A3-F393-E0A9-E50E24DCCA9E")
69
+ private val DEVICE_ID_CHAR_UUID = UUID.fromString("6E400003-B5A3-F393-E0A9-E50E24DCCA9E")
70
+
71
+ private const val FRAGMENT_POLL_INTERVAL_MS = 100L // 100ms
72
+ private const val MAX_FRAGMENT_SIZE = 185
73
+ private const val CONNECTION_TIMEOUT_MS = 10000L
74
+ private const val SCAN_WATCHDOG_INTERVAL_MS = 20000L
75
+ private const val SCAN_WATCHDOG_HEARTBEAT_MS = 10000L
76
+ private const val MAX_CONNECTIONS_PER_DEVICE = 4
77
+ private const val ADVERTISE_RESTART_MIN_MS = 200L
78
+ private const val ADVERTISE_RESTART_MAX_MS = 1200L
79
+ private const val MIN_ADVERTISE_INTERVAL_MS = 1500L
80
+
81
+ // Adaptive Scan Configuration
82
+ /** Minimum RSSI to consider for connection (filter weak signals early) */
83
+ private const val ADAPTIVE_MIN_RSSI = -85
84
+ /** Peer count threshold below which we process all advertisements */
85
+ private const val ADAPTIVE_LOW_DENSITY_THRESHOLD = 10
86
+ /** Peer count threshold above which we apply maximum throttling */
87
+ private const val ADAPTIVE_HIGH_DENSITY_THRESHOLD = 50
88
+ /** Maximum connection attempts per minute in dense networks */
89
+ private const val ADAPTIVE_MAX_CONNECTIONS_PER_MINUTE = 6
90
+ /** Minimum interval between connection attempts to the same device (ms) */
91
+ private const val ADAPTIVE_COOLDOWN_PER_DEVICE_MS = 30_000L
92
+ /** Interval for updating visible peer count estimate (ms) */
93
+ private const val ADAPTIVE_PEER_COUNT_WINDOW_MS = 5_000L
94
+ }
95
+
96
+ // MARK: - Properties
97
+
98
+ private val bluetoothManager: BluetoothManager =
99
+ context.getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
100
+ private val bluetoothAdapter: BluetoothAdapter? = bluetoothManager.adapter
101
+
102
+ // Scanner components
103
+ private var bluetoothLeScanner: BluetoothLeScanner? = null
104
+ private var scanCallback: ScanCallback? = null
105
+ private var isScanning = false
106
+
107
+ // Advertiser components
108
+ private var bluetoothLeAdvertiser: BluetoothLeAdvertiser? = null
109
+ private var advertiseCallback: AdvertiseCallback? = null
110
+ private var isAdvertising = false
111
+
112
+ // GATT Server (peripheral role)
113
+ private var gattServer: BluetoothGattServer? = null
114
+ private var messageCharacteristic: BluetoothGattCharacteristic? = null
115
+ private var deviceIdCharacteristic: BluetoothGattCharacteristic? = null
116
+
117
+ // Connection registry keeps track of client/server links and desired roles.
118
+ private val connections = MeshConnectionRegistry()
119
+ private val lastSeenRssi = ConcurrentHashMap<String, Short>()
120
+ private val discoveryLogTimestamps = ConcurrentHashMap<String, Long>()
121
+ @Volatile private var lastDiscoveryAt: Long = 0L
122
+
123
+ private val logThrottler = LogThrottler()
124
+
125
+ // Pending fragments waiting for device ID
126
+ private data class PendingFragment(val data: ByteArray, val timestamp: Long)
127
+ private data class MeshObservation(val advertisement: MeshAdvertisementData, val rssi: Int?, val timestamp: Long)
128
+ private val pendingFragments = ConcurrentHashMap<String, MutableList<PendingFragment>>()
129
+ private val PENDING_FRAGMENT_TIMEOUT_MS = 5000L
130
+ private val LOAD_SATURATION_COUNT = 20
131
+ private val MESH_OBSERVATION_TTL_MS = 120_000L
132
+ private val deviceIdResolutionAttempts = ConcurrentHashMap<String, Long>()
133
+
134
+ private val meshController = MeshController(deviceId)
135
+
136
+ // Adaptive scan state
137
+ /** Timestamps of recent peripheral discoveries for density estimation */
138
+ private val recentDiscoveryTimestamps = Collections.synchronizedList(mutableListOf<Long>())
139
+ /** Last connection attempt timestamps per device for rate limiting */
140
+ private val deviceConnectionAttempts = ConcurrentHashMap<String, Long>()
141
+ /** Global connection attempts in the last minute for rate limiting */
142
+ private val globalConnectionAttempts = Collections.synchronizedList(mutableListOf<Long>())
143
+ /** Current estimated visible peer count */
144
+ @Volatile private var estimatedVisiblePeerCount: Int = 0
145
+ /** Last time we updated the peer count estimate */
146
+ @Volatile private var lastPeerCountUpdate: Long = 0L
147
+ @Volatile private var lastMeshAdvertisement: MeshAdvertisementData? = null
148
+
149
+ // Fragment polling
150
+ private val mainHandler = Handler(Looper.getMainLooper())
151
+
152
+ private fun <T> runOnMainSync(action: () -> T): T {
153
+ if (Looper.myLooper() == Looper.getMainLooper()) {
154
+ return action()
155
+ }
156
+
157
+ val latch = CountDownLatch(1)
158
+ var outcome: Result<T>? = null
159
+ mainHandler.post {
160
+ outcome = try {
161
+ Result.success(action())
162
+ } catch (t: Throwable) {
163
+ Result.failure(t)
164
+ }
165
+ latch.countDown()
166
+ }
167
+
168
+ try {
169
+ latch.await()
170
+ } catch (ie: InterruptedException) {
171
+ Thread.currentThread().interrupt()
172
+ throw RuntimeException("Interrupted while executing on main thread", ie)
173
+ }
174
+
175
+ return outcome!!.getOrThrow()
176
+ }
177
+ private val fragmentPollingRunnable = object : Runnable {
178
+ override fun run() {
179
+ pollAndSendFragments()
180
+ if (state == TransportState.RUNNING) {
181
+ mainHandler.postDelayed(this, FRAGMENT_POLL_INTERVAL_MS)
182
+ }
183
+ }
184
+ }
185
+
186
+ // Gradient routing cleanup
187
+ private val ROUTING_CLEANUP_INTERVAL_MS = 30_000L
188
+ private val routingCleanupRunnable = object : Runnable {
189
+ override fun run() {
190
+ protocol.cleanupExpiredRoutes()
191
+ if (state == TransportState.RUNNING) {
192
+ mainHandler.postDelayed(this, ROUTING_CLEANUP_INTERVAL_MS)
193
+ }
194
+ }
195
+ }
196
+
197
+ private val pendingOutboundFragments = mutableMapOf<String, MutableList<ByteArray>>()
198
+ private val lastSeenMeshAdvertisements = ConcurrentHashMap<String, MeshObservation>()
199
+ private var pendingAdvertiseRestart: Runnable? = null
200
+ private var lastAdvertiseRestartAt: Long = 0L
201
+ private var transportStartAt: Long = 0L
202
+
203
+ private val scanWatchdogRunnable = object : Runnable {
204
+ override fun run() {
205
+ if (!isScanning) {
206
+ return
207
+ }
208
+ val now = System.currentTimeMillis()
209
+ val idleMs = now - lastDiscoveryAt
210
+ if (idleMs >= SCAN_WATCHDOG_INTERVAL_MS) {
211
+ if (logThrottler.shouldLog("scan_watchdog", intervalMs = SCAN_WATCHDOG_INTERVAL_MS)) {
212
+ Log.w(TAG, "Restarting BLE scan after ${idleMs}ms of inactivity")
213
+ emitDiagnostic("warning", "Restarting BLE scan due to inactivity", mapOf("idleMs" to idleMs))
214
+ }
215
+ restartScanning("watchdog")
216
+ return
217
+ }
218
+ mainHandler.postDelayed(this, SCAN_WATCHDOG_HEARTBEAT_MS)
219
+ }
220
+ }
221
+
222
+ // Metrics
223
+ private var bytesSent: Long = 0
224
+ private var bytesReceived: Long = 0
225
+ private var fragmentsSent: Long = 0
226
+ private var fragmentsReceived: Long = 0
227
+
228
+ // MARK: - TransportManager Implementation
229
+
230
+ private fun emitDiagnostic(level: String, message: String, context: Map<String, Any?> = emptyMap()) {
231
+ diagnosticEmitter?.invoke(level, message, context)
232
+ }
233
+
234
+ override fun isAvailable(): Boolean {
235
+ if (bluetoothAdapter == null) {
236
+ Log.w(TAG, "Bluetooth adapter not available")
237
+ emitDiagnostic("error", "Bluetooth adapter not available")
238
+ return false
239
+ }
240
+
241
+ if (!context.packageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) {
242
+ Log.w(TAG, "BLE not supported on this device")
243
+ emitDiagnostic("error", "BLE not supported on this device")
244
+ return false
245
+ }
246
+
247
+ return true
248
+ }
249
+
250
+ override fun start() {
251
+ runOnMainSync {
252
+ startUnsafe()
253
+ }
254
+ }
255
+
256
+ private fun startUnsafe() {
257
+ if (state == TransportState.RUNNING) {
258
+ throw TransportException.AlreadyRunning()
259
+ }
260
+
261
+ if (!isAvailable()) {
262
+ throw TransportException.NotAvailable("BLE not available on this device")
263
+ }
264
+
265
+ // Check permissions with detailed logging
266
+ Log.i(TAG, "🔐 Checking Bluetooth permissions (Android ${Build.VERSION.SDK_INT})...")
267
+ emitDiagnostic("info", "Checking Bluetooth permissions", mapOf("androidVersion" to Build.VERSION.SDK_INT))
268
+
269
+ if (!checkPermissions()) {
270
+ val errorMsg = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
271
+ "Missing required Bluetooth permissions (BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE, BLUETOOTH_CONNECT). " +
272
+ "Please grant permissions in Settings > Apps > ${context.applicationInfo.loadLabel(context.packageManager)} > Permissions"
273
+ } else {
274
+ "Missing required Bluetooth permissions (BLUETOOTH, BLUETOOTH_ADMIN, ACCESS_FINE_LOCATION). " +
275
+ "Please grant permissions in app settings."
276
+ }
277
+ Log.w(TAG, "❌ $errorMsg")
278
+ emitDiagnostic("error", errorMsg)
279
+ throw TransportException.PermissionDenied(errorMsg)
280
+ }
281
+
282
+ if (bluetoothAdapter?.isEnabled != true) {
283
+ val errorMsg = "Bluetooth is not enabled. Please enable Bluetooth in Settings."
284
+ Log.w(TAG, "⚠️ $errorMsg")
285
+ emitDiagnostic("error", errorMsg)
286
+ throw TransportException.InvalidState(errorMsg)
287
+ }
288
+
289
+ Log.i(TAG, "🚀 Starting BLE transport for device: $deviceId")
290
+ emitDiagnostic("info", "Starting BLE transport", mapOf("deviceId" to deviceId))
291
+ updateState(TransportState.STARTING)
292
+
293
+ try {
294
+ // Initialize scanner
295
+ Log.i(TAG, "📱 Initializing BLE scanner...")
296
+ bluetoothLeScanner = bluetoothAdapter.bluetoothLeScanner
297
+ if (bluetoothLeScanner == null) {
298
+ throw TransportException.InvalidState("BLE scanner is not available")
299
+ }
300
+
301
+ // Initialize advertiser
302
+ Log.i(TAG, "📡 Initializing BLE advertiser...")
303
+ bluetoothLeAdvertiser = bluetoothAdapter.bluetoothLeAdvertiser
304
+ if (bluetoothLeAdvertiser == null) {
305
+ throw TransportException.InvalidState("BLE advertiser is not available")
306
+ }
307
+
308
+ // Setup GATT server
309
+ Log.i(TAG, "🔧 Setting up GATT server...")
310
+ setupGattServer()
311
+
312
+ transportStartAt = System.currentTimeMillis()
313
+ meshController.markPeerActive(deviceId)
314
+ refreshSelfMetrics()
315
+
316
+ // Start advertising
317
+ Log.i(TAG, "📢 Starting BLE advertising...")
318
+ startAdvertising("start")
319
+
320
+ // Start scanning
321
+ Log.i(TAG, "🔍 Starting BLE scanning...")
322
+ startScanning("start")
323
+
324
+ // Start fragment polling
325
+ mainHandler.post(fragmentPollingRunnable)
326
+
327
+ // Start routing cleanup
328
+ mainHandler.postDelayed(routingCleanupRunnable, ROUTING_CLEANUP_INTERVAL_MS)
329
+
330
+ updateState(TransportState.RUNNING)
331
+ Log.i(TAG, "✅ BLE Manager started successfully - calling bleStatusChanged(true)")
332
+ emitDiagnostic("info", "About to call protocol.bleStatusChanged(true)")
333
+
334
+ try {
335
+ protocol.bleStatusChanged(true)
336
+ Log.i(TAG, "✅ Successfully called protocol.bleStatusChanged(true)")
337
+ emitDiagnostic("info", "Successfully called protocol.bleStatusChanged(true)")
338
+ } catch (e: Exception) {
339
+ Log.e(TAG, "❌ Failed to call protocol.bleStatusChanged(true): ${e.message}", e)
340
+ emitDiagnostic("error", "Failed to call protocol.bleStatusChanged(true)", mapOf(
341
+ "error" to (e.message ?: "unknown"),
342
+ "exception" to e.javaClass.simpleName
343
+ ))
344
+ }
345
+
346
+ Log.i(TAG, "✅ BLE transport ready - scanning and advertising active")
347
+ emitDiagnostic(
348
+ "info",
349
+ "BLE manager running",
350
+ mapOf(
351
+ "scanning" to true,
352
+ "advertising" to true,
353
+ "mtu" to MAX_FRAGMENT_SIZE
354
+ )
355
+ )
356
+ } catch (e: Exception) {
357
+ Log.e(TAG, "Failed to start BLE manager", e)
358
+ emitDiagnostic(
359
+ "error",
360
+ "Failed to start BLE manager",
361
+ mapOf(
362
+ "message" to (e.message ?: "unknown"),
363
+ "exception" to e.javaClass.simpleName
364
+ )
365
+ )
366
+ updateState(TransportState.STOPPED)
367
+ throw TransportException.StartFailed("Failed to start BLE manager", e)
368
+ }
369
+ }
370
+
371
+ override fun stop() {
372
+ runOnMainSync {
373
+ stopUnsafe()
374
+ }
375
+ }
376
+
377
+ private fun stopUnsafe() {
378
+ if (state != TransportState.RUNNING && state != TransportState.STARTING) {
379
+ return
380
+ }
381
+
382
+ updateState(TransportState.STOPPING)
383
+
384
+ // Stop fragment polling
385
+ mainHandler.removeCallbacks(fragmentPollingRunnable)
386
+
387
+ // Stop routing cleanup
388
+ mainHandler.removeCallbacks(routingCleanupRunnable)
389
+
390
+ // Stop scanning
391
+ stopScanning("stop")
392
+
393
+ // Stop advertising
394
+ stopAdvertising()
395
+
396
+ // Disconnect all GATT clients
397
+ connections.forEachGatt { gatt ->
398
+ try {
399
+ gatt.disconnect()
400
+ gatt.close()
401
+ } catch (e: Exception) {
402
+ Log.e(TAG, "Error closing GATT client", e)
403
+ }
404
+ }
405
+ connections.clear()
406
+ lastSeenRssi.clear()
407
+ pendingFragments.clear()
408
+ pendingOutboundFragments.clear()
409
+ lastSeenMeshAdvertisements.clear()
410
+ transportStartAt = 0L
411
+
412
+ // Close GATT server
413
+ gattServer?.close()
414
+ gattServer = null
415
+
416
+ updateState(TransportState.STOPPED)
417
+ protocol.bleStatusChanged(false)
418
+
419
+ Log.i(TAG, "BLE Manager stopped")
420
+ emitDiagnostic("info", "BLE transport stopped")
421
+ }
422
+
423
+ override fun pause() {
424
+ runOnMainSync {
425
+ pauseUnsafe()
426
+ }
427
+ }
428
+
429
+ private fun pauseUnsafe() {
430
+ // For Android background mode
431
+ stopScanning("pause")
432
+ mainHandler.removeCallbacks(fragmentPollingRunnable)
433
+ mainHandler.removeCallbacks(routingCleanupRunnable)
434
+ }
435
+
436
+ override fun resume() {
437
+ runOnMainSync {
438
+ resumeUnsafe()
439
+ }
440
+ }
441
+
442
+ private fun resumeUnsafe() {
443
+ // Resume from background
444
+ if (state == TransportState.RUNNING) {
445
+ startScanning("resume")
446
+ mainHandler.post(fragmentPollingRunnable)
447
+ mainHandler.postDelayed(routingCleanupRunnable, ROUTING_CLEANUP_INTERVAL_MS)
448
+ }
449
+ }
450
+
451
+ override fun getMetrics(): Map<String, Any> {
452
+ return mapOf(
453
+ "bytes_sent" to bytesSent,
454
+ "bytes_received" to bytesReceived,
455
+ "fragments_sent" to fragmentsSent,
456
+ "fragments_received" to fragmentsReceived,
457
+ "connected_peers" to connections.connectionCount(),
458
+ "discovered_peers" to connections.discoveredPeerCount()
459
+ )
460
+ }
461
+
462
+ // MARK: - Private Methods
463
+
464
+ private fun updateState(newState: TransportState) {
465
+ state = newState
466
+ listener?.onTransportStateChanged(this, newState)
467
+ }
468
+
469
+ private fun checkPermissions(): Boolean {
470
+ val missingPermissions = mutableListOf<String>()
471
+
472
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
473
+ // Android 12+ (API 31+) requires new Bluetooth permissions
474
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_SCAN) != PackageManager.PERMISSION_GRANTED) {
475
+ missingPermissions.add("BLUETOOTH_SCAN")
476
+ }
477
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_ADVERTISE) != PackageManager.PERMISSION_GRANTED) {
478
+ missingPermissions.add("BLUETOOTH_ADVERTISE")
479
+ }
480
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
481
+ missingPermissions.add("BLUETOOTH_CONNECT")
482
+ }
483
+ } else {
484
+ // Pre-Android 12 (API <31)
485
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH) != PackageManager.PERMISSION_GRANTED) {
486
+ missingPermissions.add("BLUETOOTH")
487
+ }
488
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.BLUETOOTH_ADMIN) != PackageManager.PERMISSION_GRANTED) {
489
+ missingPermissions.add("BLUETOOTH_ADMIN")
490
+ }
491
+ if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
492
+ missingPermissions.add("ACCESS_FINE_LOCATION")
493
+ }
494
+ }
495
+
496
+ if (missingPermissions.isNotEmpty()) {
497
+ Log.w(TAG, "⚠️ Missing Bluetooth permissions: ${missingPermissions.joinToString(", ")}")
498
+ emitDiagnostic("error", "Missing Bluetooth permissions", mapOf(
499
+ "missingPermissions" to missingPermissions,
500
+ "androidVersion" to Build.VERSION.SDK_INT
501
+ ))
502
+ return false
503
+ }
504
+
505
+ Log.d(TAG, "✅ All Bluetooth permissions granted (Android ${Build.VERSION.SDK_INT})")
506
+ return true
507
+ }
508
+
509
+ private fun setupGattServer() {
510
+ try {
511
+ gattServer = bluetoothManager.openGattServer(context, gattServerCallback)
512
+
513
+ // Create message characteristic (write without response + notify)
514
+ messageCharacteristic = BluetoothGattCharacteristic(
515
+ MESSAGE_CHAR_UUID,
516
+ BluetoothGattCharacteristic.PROPERTY_WRITE_NO_RESPONSE or BluetoothGattCharacteristic.PROPERTY_NOTIFY,
517
+ BluetoothGattCharacteristic.PERMISSION_WRITE
518
+ )
519
+
520
+ // Create device ID characteristic (read)
521
+ deviceIdCharacteristic = BluetoothGattCharacteristic(
522
+ DEVICE_ID_CHAR_UUID,
523
+ BluetoothGattCharacteristic.PROPERTY_READ,
524
+ BluetoothGattCharacteristic.PERMISSION_READ
525
+ )
526
+ deviceIdCharacteristic?.value = deviceId.toByteArray(Charsets.UTF_8)
527
+
528
+ // Create service
529
+ val service = BluetoothGattService(SERVICE_UUID, BluetoothGattService.SERVICE_TYPE_PRIMARY)
530
+ service.addCharacteristic(messageCharacteristic)
531
+ service.addCharacteristic(deviceIdCharacteristic)
532
+
533
+ // Add service to GATT server
534
+ gattServer?.addService(service)
535
+
536
+ Log.i(TAG, "GATT server configured")
537
+ } catch (e: SecurityException) {
538
+ Log.e(TAG, "Permission denied while setting up GATT server", e)
539
+ throw e
540
+ }
541
+ }
542
+
543
+ private fun startScanning(reason: String = "manual") {
544
+ if (isScanning) {
545
+ if (logThrottler.shouldLog("scan_already_running")) {
546
+ Log.d(TAG, "Scan already running (reason: $reason)")
547
+ }
548
+ return
549
+ }
550
+
551
+ try {
552
+ val scanner = bluetoothLeScanner
553
+ if (scanner == null) {
554
+ if (logThrottler.shouldLog("scanner_unavailable")) {
555
+ Log.w(TAG, "BluetoothLeScanner unavailable; cannot start scan")
556
+ emitDiagnostic("error", "BLE scanner unavailable", mapOf("reason" to reason))
557
+ }
558
+ return
559
+ }
560
+ val scanSettings = ScanSettings.Builder()
561
+ .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
562
+ .setCallbackType(ScanSettings.CALLBACK_TYPE_ALL_MATCHES)
563
+ .build()
564
+
565
+ val scanFilter = ScanFilter.Builder()
566
+ .setServiceUuid(ParcelUuid(SERVICE_UUID))
567
+ .build()
568
+
569
+ scanCallback = object : ScanCallback() {
570
+ override fun onScanResult(callbackType: Int, result: ScanResult) {
571
+ handleScanResult(result)
572
+ }
573
+
574
+ override fun onBatchScanResults(results: List<ScanResult>) {
575
+ results.forEach { handleScanResult(it) }
576
+ }
577
+
578
+ override fun onScanFailed(errorCode: Int) {
579
+ val errorMsg = when(errorCode) {
580
+ SCAN_FAILED_ALREADY_STARTED -> "Scan already started"
581
+ SCAN_FAILED_APPLICATION_REGISTRATION_FAILED -> "Application registration failed"
582
+ SCAN_FAILED_INTERNAL_ERROR -> "Internal error"
583
+ SCAN_FAILED_FEATURE_UNSUPPORTED -> "Feature unsupported"
584
+ else -> "Unknown error $errorCode"
585
+ }
586
+ Log.e(TAG, "❌ BLE scan failed: $errorMsg (code=$errorCode)")
587
+ isScanning = false
588
+ emitDiagnostic("error", "BLE scan failed", mapOf(
589
+ "errorCode" to errorCode,
590
+ "errorMessage" to errorMsg
591
+ ))
592
+ }
593
+ }
594
+
595
+ scanner.startScan(listOf(scanFilter), scanSettings, scanCallback)
596
+ isScanning = true
597
+ lastDiscoveryAt = System.currentTimeMillis()
598
+ scheduleScanWatchdog()
599
+ if (logThrottler.shouldLog("scan_started")) {
600
+ Log.i(TAG, "✅ BLE scanning started successfully (reason: $reason)")
601
+ emitDiagnostic("info", "BLE scanning started", mapOf("reason" to reason))
602
+ }
603
+ } catch (e: SecurityException) {
604
+ Log.e(TAG, "Permission denied while starting scan", e)
605
+ emitDiagnostic("error", "Permission denied while starting scan", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
606
+ throw e
607
+ }
608
+ }
609
+
610
+ private fun stopScanning(reason: String = "manual") {
611
+ if (!isScanning) return
612
+
613
+ try {
614
+ scanCallback?.let { bluetoothLeScanner?.stopScan(it) }
615
+ scanCallback = null
616
+ isScanning = false
617
+ cancelScanWatchdog()
618
+ lastDiscoveryAt = 0L
619
+ discoveryLogTimestamps.clear()
620
+ if (logThrottler.shouldLog("scan_stopped")) {
621
+ Log.i(TAG, "Stopped scanning (reason: $reason)")
622
+ }
623
+ emitDiagnostic("info", "Stopped BLE scanning", mapOf("reason" to reason))
624
+ } catch (e: SecurityException) {
625
+ Log.e(TAG, "Permission denied while stopping scan", e)
626
+ emitDiagnostic("error", "Permission denied while stopping scan", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
627
+ }
628
+ }
629
+
630
+ private fun restartScanning(reason: String) {
631
+ stopScanning("restart_$reason")
632
+ startScanning("restart_$reason")
633
+ }
634
+
635
+ private fun scheduleScanWatchdog() {
636
+ cancelScanWatchdog()
637
+ mainHandler.postDelayed(scanWatchdogRunnable, SCAN_WATCHDOG_HEARTBEAT_MS)
638
+ }
639
+
640
+ private fun cancelScanWatchdog() {
641
+ mainHandler.removeCallbacks(scanWatchdogRunnable)
642
+ }
643
+
644
+ private fun startAdvertising(reason: String = "manual") {
645
+ if (isAdvertising) return
646
+
647
+ try {
648
+ val settings = AdvertiseSettings.Builder()
649
+ .setAdvertiseMode(AdvertiseSettings.ADVERTISE_MODE_LOW_LATENCY)
650
+ .setConnectable(true)
651
+ .setTimeout(0)
652
+ .setTxPowerLevel(AdvertiseSettings.ADVERTISE_TX_POWER_HIGH)
653
+ .build()
654
+
655
+ val advertiseData = buildAdvertiseData()
656
+
657
+ advertiseCallback = object : AdvertiseCallback() {
658
+ override fun onStartSuccess(settingsInEffect: AdvertiseSettings) {
659
+ Log.i(TAG, "✅ BLE advertising started successfully (reason=$reason)")
660
+ isAdvertising = true
661
+ lastAdvertiseRestartAt = System.currentTimeMillis()
662
+ emitDiagnostic("info", "BLE advertising started", mapOf("reason" to reason))
663
+ }
664
+
665
+ override fun onStartFailure(errorCode: Int) {
666
+ val errorMsg = when(errorCode) {
667
+ ADVERTISE_FAILED_DATA_TOO_LARGE -> "Data too large"
668
+ ADVERTISE_FAILED_TOO_MANY_ADVERTISERS -> "Too many advertisers"
669
+ ADVERTISE_FAILED_ALREADY_STARTED -> "Already started"
670
+ ADVERTISE_FAILED_INTERNAL_ERROR -> "Internal error"
671
+ ADVERTISE_FAILED_FEATURE_UNSUPPORTED -> "Feature unsupported"
672
+ else -> "Unknown error $errorCode"
673
+ }
674
+ Log.e(TAG, "❌ BLE advertising failed: $errorMsg (code=$errorCode)")
675
+ isAdvertising = false
676
+ emitDiagnostic("error", "BLE advertising failed", mapOf(
677
+ "errorCode" to errorCode,
678
+ "errorMessage" to errorMsg
679
+ ))
680
+ }
681
+ }
682
+
683
+ bluetoothLeAdvertiser?.startAdvertising(settings, advertiseData, advertiseCallback)
684
+
685
+ // Reduced logging
686
+ } catch (e: SecurityException) {
687
+ Log.e(TAG, "Permission denied while starting advertising", e)
688
+ emitDiagnostic("error", "Permission denied while starting advertising", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
689
+ throw e
690
+ }
691
+ }
692
+
693
+ private fun stopAdvertising() {
694
+ if (!isAdvertising) return
695
+
696
+ try {
697
+ advertiseCallback?.let { bluetoothLeAdvertiser?.stopAdvertising(it) }
698
+ advertiseCallback = null
699
+ isAdvertising = false
700
+ pendingAdvertiseRestart?.let {
701
+ mainHandler.removeCallbacks(it)
702
+ pendingAdvertiseRestart = null
703
+ }
704
+ Log.i(TAG, "Stopped advertising")
705
+ emitDiagnostic("info", "Stopped BLE advertising")
706
+ } catch (e: SecurityException) {
707
+ Log.e(TAG, "Permission denied while stopping advertising", e)
708
+ emitDiagnostic("error", "Permission denied while stopping advertising", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
709
+ }
710
+ }
711
+
712
+ private fun refreshAdvertising(reason: String) {
713
+ stopAdvertising()
714
+ scheduleAdvertisingRestart(reason)
715
+ }
716
+
717
+ private fun scheduleAdvertisingRestart(reason: String) {
718
+ val now = System.currentTimeMillis()
719
+ val elapsed = now - lastAdvertiseRestartAt
720
+ val cooldownDelay = if (elapsed < MIN_ADVERTISE_INTERVAL_MS) MIN_ADVERTISE_INTERVAL_MS - elapsed else 0L
721
+ val jitter = ThreadLocalRandom.current().nextLong(ADVERTISE_RESTART_MIN_MS, ADVERTISE_RESTART_MAX_MS + 1)
722
+ val delay = cooldownDelay + jitter
723
+ pendingAdvertiseRestart?.let { mainHandler.removeCallbacks(it) }
724
+ val runnable = Runnable {
725
+ pendingAdvertiseRestart = null
726
+ startAdvertising(reason)
727
+ }
728
+ pendingAdvertiseRestart = runnable
729
+ mainHandler.postDelayed(runnable, delay)
730
+ }
731
+
732
+ private fun buildAdvertiseData(): AdvertiseData {
733
+ val meshData = meshController.toAdvertisement()
734
+ lastMeshAdvertisement = meshData
735
+
736
+ // Android has strict 31-byte advertisement limit
737
+ // Include only service UUID, mesh metadata will be exchanged via GATT after connection
738
+ // This matches iOS behavior which also cannot include service data
739
+ return AdvertiseData.Builder()
740
+ .setIncludeDeviceName(false)
741
+ .addServiceUuid(ParcelUuid(SERVICE_UUID))
742
+ // Don't include service data - it often exceeds Android's 31-byte limit
743
+ // Mesh metadata will be read via GATT characteristics after connection
744
+ .build()
745
+ }
746
+
747
+ private fun handleScanResult(result: ScanResult) {
748
+ val device = result.device
749
+ val rssi = result.rssi
750
+ val address = device.address
751
+ val now = System.currentTimeMillis()
752
+ lastDiscoveryAt = now
753
+
754
+ // Adaptive scanning: track discoveries for density estimation
755
+ recordDiscoveryForDensity(now)
756
+
757
+ // Adaptive scanning: early RSSI filtering in dense networks
758
+ if (shouldFilterByRssi(rssi)) {
759
+ if (logThrottler.shouldLog("adaptive_rssi_filter", intervalMs = 10000)) {
760
+ Log.d(TAG, "Adaptive: filtering weak signal (${rssi}dBm) in dense network ($estimatedVisiblePeerCount peers)")
761
+ }
762
+ return
763
+ }
764
+
765
+ // Adaptive scanning: probabilistic filtering in very dense networks
766
+ if (shouldProbabilisticallySkip(address)) {
767
+ return // Silently skip to reduce log spam in dense networks
768
+ }
769
+
770
+ val lastLog = discoveryLogTimestamps[address]
771
+ val isConnectable = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
772
+ result.isConnectable
773
+ } else {
774
+ null
775
+ }
776
+ if (lastLog == null || now - lastLog > 30000) {
777
+ discoveryLogTimestamps[address] = now
778
+ Log.d(TAG, "Discovered device $address RSSI=$rssi (density: $estimatedVisiblePeerCount)")
779
+ emitDiagnostic(
780
+ "info",
781
+ "Discovered BLE device",
782
+ mapOf(
783
+ "address" to address,
784
+ "rssi" to rssi,
785
+ "connectable" to (isConnectable ?: true),
786
+ "visiblePeers" to estimatedVisiblePeerCount
787
+ )
788
+ )
789
+ }
790
+ lastSeenRssi[address] = rssi.toShort()
791
+
792
+ val scanRecord = result.scanRecord
793
+ val serviceData = scanRecord?.getServiceData(ParcelUuid(SERVICE_UUID))
794
+ val meshMetadata = MeshAdvertisementData.decode(serviceData)
795
+ meshMetadata?.let {
796
+ lastSeenMeshAdvertisements[address] = MeshObservation(it, rssi, now)
797
+ }
798
+ meshController.observeAdvertisement(meshMetadata, rssi)
799
+ pruneMeshObservations(now)
800
+
801
+ // When there's no metadata (iOS/Android advertising without service data),
802
+ // still try to connect - metadata will be exchanged via GATT after connection
803
+ val decision = if (meshMetadata == null) {
804
+ // No metadata in advertisement - allow basic connection to exchange info via GATT
805
+ MeshController.MeshDecision(
806
+ intent = ConnectionIntent.INTRA_CLUSTER,
807
+ reason = "no_metadata_in_advert",
808
+ evictPeerId = null
809
+ )
810
+ } else {
811
+ meshController.shouldInitiateOutbound(meshMetadata, rssi)
812
+ }
813
+
814
+ if (decision.intent == ConnectionIntent.REJECTED) {
815
+ if (logThrottler.shouldLog("mesh_skip_$address", intervalMs = 15000)) {
816
+ Log.v(TAG, "Skipping connection to $address due to ${decision.reason}")
817
+ }
818
+ return
819
+ }
820
+
821
+ // Adaptive scanning: rate limit connection attempts
822
+ if (shouldThrottleConnection(address, now)) {
823
+ if (logThrottler.shouldLog("adaptive_throttle_$address", intervalMs = 30000)) {
824
+ Log.d(TAG, "Adaptive: throttling connection to $address")
825
+ }
826
+ return
827
+ }
828
+
829
+ if (!meshController.connectionBudgetAvailable() && decision.evictPeerId != null) {
830
+ evictPeer(decision.evictPeerId, decision.reason)
831
+ }
832
+
833
+ val desiredRole = when (decision.intent) {
834
+ ConnectionIntent.INTER_CLUSTER -> MeshRole.BRIDGE
835
+ ConnectionIntent.INTRA_CLUSTER -> MeshRole.MEMBER
836
+ ConnectionIntent.REJECTED -> MeshRole.MEMBER
837
+ }
838
+
839
+ if (!meshController.connectionBudgetAvailable()) {
840
+ if (logThrottler.shouldLog("mesh_budget_exhausted", intervalMs = 5000)) {
841
+ Log.d(TAG, "Connection budget exhausted, skipping $address")
842
+ }
843
+ return
844
+ }
845
+
846
+ // Record the connection attempt for rate limiting
847
+ recordConnectionAttempt(address, now)
848
+
849
+ if (currentConnectionCount() >= MAX_CONNECTIONS_PER_DEVICE) {
850
+ if (logThrottler.shouldLog("mesh_conn_cap", intervalMs = 10000)) {
851
+ Log.d(TAG, "Reached max simultaneous connections, skipping $address")
852
+ }
853
+ return
854
+ }
855
+
856
+ if (connections.getGatt(address) == null) {
857
+ connections.setPendingRole(address, desiredRole)
858
+ connectToDevice(device)
859
+ } else if (logThrottler.shouldLog("discovery_existing_$address", intervalMs = 30000)) {
860
+ Log.v(TAG, "Device $address already connected/connecting")
861
+ }
862
+
863
+ maybeHandleRebalance("scan")
864
+ }
865
+
866
+ private fun connectToDevice(device: BluetoothDevice) {
867
+ try {
868
+ if (currentConnectionCount() >= MAX_CONNECTIONS_PER_DEVICE) {
869
+ if (logThrottler.shouldLog("mesh_conn_cap", intervalMs = 10000)) {
870
+ Log.d(TAG, "Connection cap reached, not connecting to ${device.address}")
871
+ }
872
+ connections.consumePendingRole(device.address)
873
+ return
874
+ }
875
+ val gatt = device.connectGatt(context, false, gattClientCallback, BluetoothDevice.TRANSPORT_LE)
876
+ connections.registerGatt(device.address, gatt)
877
+
878
+ Log.i(TAG, "Connecting to device: ${device.address}")
879
+ emitDiagnostic("info", "Connecting to BLE device", mapOf("address" to device.address))
880
+ } catch (e: SecurityException) {
881
+ Log.e(TAG, "Permission denied while connecting to device", e)
882
+ emitDiagnostic("error", "Permission denied while connecting to device", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
883
+ connections.consumePendingRole(device.address)
884
+ }
885
+ }
886
+
887
+ private fun currentConnectionCount(): Int = connections.connectionCount()
888
+
889
+ private fun refreshSelfMetrics() {
890
+ val rssiValues = lastSeenRssi.values.map { it.toInt() }
891
+ val averageRssi = if (rssiValues.isEmpty()) null else rssiValues.average().roundToInt()
892
+ val signalQuality = averageRssi?.let { rssi ->
893
+ (((rssi + 100).coerceIn(-100, -20) + 100) / 80.0 * 100).roundToInt().coerceIn(0, 100)
894
+ }
895
+ val pendingCount = pendingFragments.values.sumOf { it.size }
896
+ val outboundPending = pendingOutboundFragments.values.sumOf { it.size }
897
+ val totalPending = pendingCount + outboundPending
898
+ val stability = 1.0 - min(1.0, pendingCount / 10.0)
899
+ val batteryPercent = currentBatteryPercent()
900
+ val loadPercent = ((totalPending.coerceAtMost(LOAD_SATURATION_COUNT) * 100) / LOAD_SATURATION_COUNT).coerceIn(0, 100)
901
+ val uptimeSeconds = if (transportStartAt == 0L) null else ((System.currentTimeMillis() - transportStartAt) / 1000).coerceAtLeast(0)
902
+
903
+ meshController.updateSelfMetrics(
904
+ MeshController.PeerMetrics(
905
+ rssi = averageRssi,
906
+ batteryPercent = batteryPercent,
907
+ signalQuality = signalQuality,
908
+ stability = stability,
909
+ uptimeSeconds = uptimeSeconds?.toLong(),
910
+ loadPercent = loadPercent
911
+ )
912
+ )
913
+ meshController.markPeerActive(deviceId)
914
+ maybeHandleRebalance("self_metrics")
915
+ }
916
+
917
+ private fun currentBatteryPercent(): Int? {
918
+ return try {
919
+ val manager = context.getSystemService(Context.BATTERY_SERVICE) as? BatteryManager
920
+ val capacity = manager?.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) ?: return null
921
+ capacity.takeIf { it in 0..100 }
922
+ } catch (_: Exception) {
923
+ null
924
+ }
925
+ }
926
+
927
+ private fun evictPeer(peerId: String, reason: String) {
928
+ val address = connections.addressForDevice(peerId)
929
+ if (address == null) {
930
+ if (logThrottler.shouldLog("mesh_evict_missing_$peerId")) {
931
+ Log.w(TAG, "Cannot evict $peerId: no known address")
932
+ }
933
+ return
934
+ }
935
+
936
+ if (logThrottler.shouldLog("mesh_evict_$peerId", intervalMs = 5000)) {
937
+ Log.i(TAG, "Evicting peer $peerId to reclaim capacity (reason=$reason)")
938
+ }
939
+
940
+ connections.getGatt(address)?.let { gatt ->
941
+ try {
942
+ gatt.disconnect()
943
+ gatt.close()
944
+ } catch (e: Exception) {
945
+ Log.w(TAG, "Error while evicting $peerId", e)
946
+ }
947
+ }
948
+
949
+ connections.removeGatt(address)
950
+ connections.removeIdentifiersForDevice(peerId)
951
+ connections.removeConnectionRole(peerId)
952
+ lastSeenRssi.remove(address)
953
+ pendingFragments.remove(address)
954
+ pendingOutboundFragments.remove(peerId)
955
+ deviceIdResolutionAttempts.remove(address)
956
+ meshController.registerDisconnection(peerId)
957
+ refreshSelfMetrics()
958
+
959
+ // Clean up routes through this neighbor
960
+ protocol.removeNeighborRoutes(peerId)
961
+
962
+ try {
963
+ protocol.blePeerLost(peerId)
964
+ } catch (e: Exception) {
965
+ Log.e(TAG, "Failed to notify protocol of peer eviction", e)
966
+ }
967
+
968
+ refreshAdvertising("evict_$reason")
969
+ maybeHandleRebalance("evict")
970
+ }
971
+
972
+ private fun pollAndSendFragments() {
973
+ try {
974
+ if (flushPendingOutboundFragments()) {
975
+ return
976
+ }
977
+
978
+ // Poll for next fragment from protocol
979
+ val fragment = try {
980
+ protocol.bleGetNextFragment()
981
+ } catch (e: Exception) {
982
+ Log.e(TAG, "Error calling bleGetNextFragment(): ${e.message}", e)
983
+ emitDiagnostic("error", "Error calling bleGetNextFragment", mapOf(
984
+ "error" to (e.message ?: "unknown"),
985
+ "exception" to e.javaClass.simpleName
986
+ ))
987
+ return
988
+ }
989
+
990
+ if (fragment == null) {
991
+ // No fragment available - this is normal most of the time
992
+ // Only log occasionally to avoid spam
993
+ if (logThrottler.shouldLog("no_fragments", intervalMs = 10000)) {
994
+ Log.d(TAG, "No fragments available from protocol")
995
+ }
996
+ return
997
+ }
998
+
999
+ Log.i(TAG, "🚀 GOT FRAGMENT for recipient: ${fragment.recipientId}, size: ${fragment.data.size}")
1000
+ emitDiagnostic("debug", "Polling got fragment", mapOf(
1001
+ "recipientId" to fragment.recipientId,
1002
+ "fragmentSize" to fragment.data.size
1003
+ ))
1004
+
1005
+ val recipientId = fragment.recipientId
1006
+ val data = fragment.data.map { it.toByte() }.toByteArray()
1007
+
1008
+ val sendResult = sendFragmentData(recipientId, data)
1009
+ Log.d(TAG, "Fragment send result for $recipientId: $sendResult")
1010
+
1011
+ if (!sendResult) {
1012
+ Log.w(TAG, "Failed to send fragment immediately, queuing for retry")
1013
+ enqueuePendingOutboundFragment(recipientId, data)
1014
+ } else {
1015
+ Log.d(TAG, "Fragment sent successfully to $recipientId")
1016
+ emitDiagnostic("debug", "Fragment sent successfully", mapOf("recipientId" to recipientId))
1017
+ }
1018
+ } catch (e: Exception) {
1019
+ Log.e(TAG, "Error polling/sending fragments", e)
1020
+ emitDiagnostic("error", "Error sending BLE fragment", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1021
+ }
1022
+ }
1023
+
1024
+ private fun flushPendingOutboundFragments(): Boolean {
1025
+ var hasUnsentFragments = false
1026
+
1027
+ val recipients = pendingOutboundFragments.keys.toList()
1028
+ for (recipientId in recipients) {
1029
+ val queue = pendingOutboundFragments[recipientId] ?: continue
1030
+ val iterator = queue.listIterator()
1031
+ while (iterator.hasNext()) {
1032
+ val data = iterator.next()
1033
+ if (sendFragmentData(recipientId, data)) {
1034
+ iterator.remove()
1035
+ } else {
1036
+ hasUnsentFragments = true
1037
+ break
1038
+ }
1039
+ }
1040
+ if (queue.isEmpty()) {
1041
+ pendingOutboundFragments.remove(recipientId)
1042
+ }
1043
+ }
1044
+
1045
+ return hasUnsentFragments
1046
+ }
1047
+
1048
+ private fun enqueuePendingOutboundFragment(recipientId: String, data: ByteArray) {
1049
+ val queue = pendingOutboundFragments.getOrPut(recipientId) { mutableListOf() }
1050
+ queue.add(data)
1051
+ }
1052
+
1053
+ private fun resolveTargetAddress(recipientId: String): String? {
1054
+ if (recipientId == deviceId) {
1055
+ return null
1056
+ }
1057
+ connections.addressForDevice(recipientId)?.let { return it }
1058
+ connections.connectionRoleEntries()
1059
+ .sortedBy { entry -> if (entry.value == MeshRole.BRIDGE) 0 else 1 }
1060
+ .firstOrNull()
1061
+ ?.key
1062
+ ?.let { return connections.addressForDevice(it) }
1063
+ return null
1064
+ }
1065
+
1066
+ private fun sendFragmentData(recipientId: String, data: ByteArray): Boolean {
1067
+ // Find GATT client for recipient
1068
+ val address = resolveTargetAddress(recipientId)
1069
+ val gatt = address?.let { connections.getGatt(it) }
1070
+
1071
+ if (gatt == null) {
1072
+ if (logThrottler.shouldLog("missing_gatt_$recipientId")) {
1073
+ Log.w(TAG, "No connected device for recipient: $recipientId")
1074
+ emitDiagnostic("warning", "No connected device for BLE fragment", mapOf("recipientId" to recipientId))
1075
+ }
1076
+ return false
1077
+ }
1078
+
1079
+ val service = gatt.getService(SERVICE_UUID)
1080
+ val characteristic = service?.getCharacteristic(MESSAGE_CHAR_UUID)
1081
+
1082
+ if (service == null || characteristic == null) {
1083
+ if (logThrottler.shouldLog("missing_char_$recipientId")) {
1084
+ Log.w(TAG, "Message characteristic not found for recipient: $recipientId")
1085
+ emitDiagnostic("warning", "Message characteristic missing", mapOf("recipientId" to recipientId))
1086
+ }
1087
+ return false
1088
+ }
1089
+
1090
+ characteristic.value = data
1091
+ characteristic.writeType = BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE
1092
+
1093
+ val writeOk = try {
1094
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
1095
+ gatt.writeCharacteristic(characteristic, data, BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE) == BluetoothStatusCodes.SUCCESS
1096
+ } else {
1097
+ gatt.writeCharacteristic(characteristic)
1098
+ }
1099
+ } catch (e: Exception) {
1100
+ Log.e(TAG, "Error writing characteristic", e)
1101
+ emitDiagnostic("error", "Error writing BLE fragment", mapOf("recipientId" to recipientId, "exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1102
+ false
1103
+ }
1104
+
1105
+ if (!writeOk) {
1106
+ if (logThrottler.shouldLog("write_failed_$recipientId", intervalMs = 2000)) {
1107
+ Log.w(TAG, "Failed to write BLE fragment for $recipientId")
1108
+ emitDiagnostic("warning", "Failed to write BLE fragment", mapOf("recipientId" to recipientId))
1109
+ }
1110
+ return false
1111
+ }
1112
+
1113
+ bytesSent += data.size
1114
+ fragmentsSent++
1115
+ meshController.markPeerActive(recipientId)
1116
+ meshController.markPeerActive(deviceId)
1117
+ return true
1118
+ }
1119
+
1120
+ private fun handleReceivedData(data: ByteArray, address: String) {
1121
+ try {
1122
+ // Get sender device ID
1123
+ val senderId = connections.deviceIdForAddress(address)
1124
+ if (senderId == null) {
1125
+ // Queue fragment to process later when device ID is available
1126
+ val pendingList = pendingFragments.getOrPut(address) { mutableListOf() }
1127
+ pendingList.add(PendingFragment(data, System.currentTimeMillis()))
1128
+ if (logThrottler.shouldLog("queue_pending_$address")) {
1129
+ Log.d(TAG, "Queued fragment while awaiting device ID for $address")
1130
+ emitDiagnostic(
1131
+ "info",
1132
+ "Queued BLE fragment pending device ID",
1133
+ mapOf("address" to address, "length" to data.size)
1134
+ )
1135
+ }
1136
+
1137
+ // Proactively attempt to resolve the device ID by initiating a client connection
1138
+ bluetoothAdapter?.let { adapter ->
1139
+ try {
1140
+ val device = adapter.getRemoteDevice(address)
1141
+ mainHandler.post {
1142
+ val hasGattClient = connections.getGatt(device.address) != null
1143
+ val mappedId = connections.deviceIdForAddress(device.address)
1144
+ val now = System.currentTimeMillis()
1145
+ val lastAttempt = deviceIdResolutionAttempts[address] ?: 0L
1146
+ val shouldAttempt = now - lastAttempt > PENDING_FRAGMENT_TIMEOUT_MS
1147
+ if ((!hasGattClient || mappedId.isNullOrEmpty()) && shouldAttempt) {
1148
+ deviceIdResolutionAttempts[address] = now
1149
+ if (logThrottler.shouldLog("resolve_device_$address", intervalMs = 5000)) {
1150
+ Log.d(TAG, "Attempting to resolve device ID for $address via client connection")
1151
+ emitDiagnostic(
1152
+ "debug",
1153
+ "Resolving BLE sender device ID",
1154
+ mapOf("address" to address, "hasGattClient" to hasGattClient, "knownId" to (mappedId != null))
1155
+ )
1156
+ }
1157
+ connectToDevice(device)
1158
+ }
1159
+ }
1160
+ } catch (e: IllegalArgumentException) {
1161
+ if (logThrottler.shouldLog("resolve_device_error_$address", intervalMs = 10000)) {
1162
+ Log.w(TAG, "Failed to obtain remote device for address $address", e)
1163
+ emitDiagnostic(
1164
+ "warning",
1165
+ "Failed to resolve BLE device for pending fragment",
1166
+ mapOf("address" to address, "message" to (e.message ?: "unknown"))
1167
+ )
1168
+ }
1169
+ }
1170
+ }
1171
+
1172
+ // Clean up old pending fragments
1173
+ cleanupPendingFragments()
1174
+ return
1175
+ }
1176
+ lastSeenRssi[address]?.toInt()?.let { observedRssi ->
1177
+ meshController.updatePeerMetrics(
1178
+ senderId,
1179
+ MeshController.PeerMetrics(rssi = observedRssi)
1180
+ )
1181
+ }
1182
+ meshController.markPeerActive(senderId)
1183
+ meshController.markPeerActive(deviceId)
1184
+
1185
+ // Convert to UByte list
1186
+ val bytes = data.map { it.toUByte() }
1187
+
1188
+ // Pass to protocol
1189
+ Log.i(TAG, "📥 RECEIVED FRAGMENT from $senderId, size: ${data.size}")
1190
+ emitDiagnostic("info", "Fragment received from BLE", mapOf(
1191
+ "senderId" to senderId,
1192
+ "fragmentSize" to data.size
1193
+ ))
1194
+
1195
+ try {
1196
+ protocol.bleFragmentReceived(senderId, bytes)
1197
+ Log.i(TAG, "✅ Fragment processed successfully for sender: $senderId")
1198
+
1199
+ // CRITICAL: Immediately check if this completed a message
1200
+ val completedMessage = protocol.receiveMessage()
1201
+ if (completedMessage != null) {
1202
+ Log.i(TAG, "🎉 COMPLETE MESSAGE ASSEMBLED FROM FRAGMENTS!")
1203
+ Log.i(TAG, "📬 Received message: $completedMessage")
1204
+ emitDiagnostic("info", "Complete message assembled from fragments", mapOf(
1205
+ "senderId" to senderId,
1206
+ "messageContent" to completedMessage
1207
+ ))
1208
+
1209
+ // Learn route from the message sender through the delivering neighbor
1210
+ learnRouteFromMessage(completedMessage, senderId, address)
1211
+ } else {
1212
+ Log.d(TAG, "📦 Fragment processed, waiting for more fragments to complete message")
1213
+ }
1214
+ } catch (e: Exception) {
1215
+ Log.e(TAG, "❌ Error processing fragment from $senderId: ${e.message}", e)
1216
+ emitDiagnostic("error", "Error processing received fragment", mapOf(
1217
+ "senderId" to senderId,
1218
+ "fragmentSize" to data.size,
1219
+ "error" to (e.message ?: "unknown"),
1220
+ "exception" to e.javaClass.simpleName
1221
+ ))
1222
+ }
1223
+
1224
+ bytesReceived += data.size
1225
+ fragmentsReceived++
1226
+ } catch (e: Exception) {
1227
+ Log.e(TAG, "Error processing received fragment", e)
1228
+ emitDiagnostic("error", "Error processing received fragment", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1229
+ }
1230
+ }
1231
+
1232
+ private fun processPendingFragments(address: String, deviceId: String) {
1233
+ deviceIdResolutionAttempts.remove(address)
1234
+ val fragments = pendingFragments.remove(address) ?: return
1235
+ val role = connections.consumePendingRole(address) ?: MeshRole.MEMBER
1236
+ meshController.registerConnection(deviceId, role)
1237
+ connections.setConnectionRole(deviceId, role)
1238
+ meshController.markPeerActive(deviceId)
1239
+ meshController.markPeerActive(this.deviceId)
1240
+ refreshSelfMetrics()
1241
+ mainHandler.post {
1242
+ if (state == TransportState.RUNNING) {
1243
+ refreshAdvertising("membership_change")
1244
+ }
1245
+ }
1246
+
1247
+ for (fragment in fragments) {
1248
+ try {
1249
+ val bytes = fragment.data.map { it.toUByte() }
1250
+ protocol.bleFragmentReceived(deviceId, bytes)
1251
+ bytesReceived += fragment.data.size
1252
+ fragmentsReceived++
1253
+ } catch (e: Exception) {
1254
+ Log.e(TAG, "Error processing pending fragment", e)
1255
+ }
1256
+ }
1257
+ }
1258
+
1259
+ private fun cleanupPendingFragments() {
1260
+ val now = System.currentTimeMillis()
1261
+ val addressesToRemove = mutableListOf<String>()
1262
+ for ((address, fragments) in pendingFragments) {
1263
+ fragments.removeAll { now - it.timestamp > PENDING_FRAGMENT_TIMEOUT_MS }
1264
+ if (fragments.isEmpty()) {
1265
+ addressesToRemove.add(address)
1266
+ }
1267
+ }
1268
+ addressesToRemove.forEach { pendingFragments.remove(it) }
1269
+ }
1270
+
1271
+ private fun pruneMeshObservations(now: Long) {
1272
+ val iterator = lastSeenMeshAdvertisements.entries.iterator()
1273
+ while (iterator.hasNext()) {
1274
+ val entry = iterator.next()
1275
+ if (now - entry.value.timestamp > MESH_OBSERVATION_TTL_MS) {
1276
+ iterator.remove()
1277
+ }
1278
+ }
1279
+ }
1280
+
1281
+ // MARK: - Gradient Routing
1282
+
1283
+ /** Computes route quality from RSSI value (0.0 to 1.0) */
1284
+ private fun computeRouteQuality(rssi: Int?): Float {
1285
+ if (rssi == null) return 0.5f
1286
+ // Map RSSI from [-100, -20] to [0.0, 1.0]
1287
+ val clamped = rssi.coerceIn(-100, -20)
1288
+ return (clamped + 100).toFloat() / 80f
1289
+ }
1290
+
1291
+ /** Learns a route from a received message */
1292
+ private fun learnRouteFromMessage(messageJson: String, neighborId: String, neighborAddress: String?) {
1293
+ try {
1294
+ val json = org.json.JSONObject(messageJson)
1295
+ val sender = json.optString("sender", null) ?: return
1296
+ val hopCount = json.optInt("hop_count", 0)
1297
+
1298
+ // Don't learn route to ourselves
1299
+ if (sender == deviceId) return
1300
+
1301
+ // Compute quality from RSSI
1302
+ val rssi = neighborAddress?.let { lastSeenRssi[it]?.toInt() }
1303
+ val quality = computeRouteQuality(rssi)
1304
+
1305
+ // Learn the route: sender can be reached through neighborId
1306
+ protocol.learnRoute(
1307
+ destination = sender,
1308
+ nextHop = neighborId,
1309
+ hopCount = minOf(255, hopCount + 1).toUByte(),
1310
+ quality = quality
1311
+ )
1312
+ } catch (e: Exception) {
1313
+ Log.w(TAG, "Failed to learn route from message: ${e.message}")
1314
+ }
1315
+ }
1316
+
1317
+ // MARK: - Adaptive Scan Methods
1318
+
1319
+ /** Updates the estimated visible peer count based on recent discoveries. */
1320
+ private fun updateVisiblePeerCount(now: Long) {
1321
+ // Only update periodically to avoid overhead
1322
+ if (now - lastPeerCountUpdate < 1000L) {
1323
+ return
1324
+ }
1325
+ lastPeerCountUpdate = now
1326
+
1327
+ // Clean up old timestamps
1328
+ val windowStart = now - ADAPTIVE_PEER_COUNT_WINDOW_MS
1329
+ synchronized(recentDiscoveryTimestamps) {
1330
+ recentDiscoveryTimestamps.removeAll { it < windowStart }
1331
+ }
1332
+
1333
+ // Estimate peer count from unique discoveries in window
1334
+ val recentCount = recentDiscoveryTimestamps.size
1335
+ val cachedCount = lastSeenMeshAdvertisements.size
1336
+ estimatedVisiblePeerCount = maxOf(recentCount, cachedCount)
1337
+ }
1338
+
1339
+ /** Records a device discovery for density estimation. */
1340
+ private fun recordDiscoveryForDensity(now: Long) {
1341
+ recentDiscoveryTimestamps.add(now)
1342
+ updateVisiblePeerCount(now)
1343
+ }
1344
+
1345
+ /** Checks if we should skip this device based on RSSI filtering. */
1346
+ private fun shouldFilterByRssi(rssi: Int): Boolean {
1347
+ // In dense networks, apply stricter RSSI filtering
1348
+ val threshold = when {
1349
+ estimatedVisiblePeerCount > ADAPTIVE_HIGH_DENSITY_THRESHOLD -> -70
1350
+ estimatedVisiblePeerCount > ADAPTIVE_LOW_DENSITY_THRESHOLD -> ADAPTIVE_MIN_RSSI
1351
+ else -> return false // Sparse network - accept all signals
1352
+ }
1353
+ return rssi < threshold
1354
+ }
1355
+
1356
+ /** Checks if we should throttle connection attempts based on rate limits. */
1357
+ private fun shouldThrottleConnection(address: String, now: Long): Boolean {
1358
+ // Prune old entries
1359
+ val oneMinuteAgo = now - 60_000L
1360
+ synchronized(globalConnectionAttempts) {
1361
+ globalConnectionAttempts.removeAll { it < oneMinuteAgo }
1362
+ }
1363
+ deviceConnectionAttempts.entries.removeIf {
1364
+ now - it.value >= ADAPTIVE_COOLDOWN_PER_DEVICE_MS
1365
+ }
1366
+
1367
+ // Check per-device cooldown
1368
+ val lastAttempt = deviceConnectionAttempts[address]
1369
+ if (lastAttempt != null && now - lastAttempt < ADAPTIVE_COOLDOWN_PER_DEVICE_MS) {
1370
+ return true
1371
+ }
1372
+
1373
+ // In dense networks, apply global rate limiting
1374
+ if (estimatedVisiblePeerCount > ADAPTIVE_LOW_DENSITY_THRESHOLD) {
1375
+ val currentAttempts = globalConnectionAttempts.size
1376
+ if (currentAttempts >= ADAPTIVE_MAX_CONNECTIONS_PER_MINUTE) {
1377
+ if (logThrottler.shouldLog("adaptive_rate_limit", intervalMs = 5000)) {
1378
+ Log.d(TAG, "Adaptive: rate limiting connections ($currentAttempts/$ADAPTIVE_MAX_CONNECTIONS_PER_MINUTE in last minute)")
1379
+ }
1380
+ return true
1381
+ }
1382
+ }
1383
+
1384
+ return false
1385
+ }
1386
+
1387
+ /** Records a connection attempt for rate limiting. */
1388
+ private fun recordConnectionAttempt(address: String, now: Long) {
1389
+ deviceConnectionAttempts[address] = now
1390
+ globalConnectionAttempts.add(now)
1391
+ }
1392
+
1393
+ /** Returns true if we should apply probabilistic filtering based on network density. */
1394
+ private fun shouldProbabilisticallySkip(address: String): Boolean {
1395
+ if (estimatedVisiblePeerCount <= ADAPTIVE_LOW_DENSITY_THRESHOLD) {
1396
+ return false
1397
+ }
1398
+
1399
+ // Calculate skip probability based on density
1400
+ val density = (estimatedVisiblePeerCount - ADAPTIVE_LOW_DENSITY_THRESHOLD).toDouble()
1401
+ val range = (ADAPTIVE_HIGH_DENSITY_THRESHOLD - ADAPTIVE_LOW_DENSITY_THRESHOLD).toDouble()
1402
+ val skipProbability = minOf(0.8, density / range * 0.8)
1403
+
1404
+ // Use address hash for deterministic selection
1405
+ val hash = address.hashCode()
1406
+ val normalizedHash = (kotlin.math.abs(hash) % 1000) / 1000.0
1407
+
1408
+ return normalizedHash < skipProbability
1409
+ }
1410
+
1411
+ private fun addressForNodeHash(nodeHash: Long): String? {
1412
+ return lastSeenMeshAdvertisements.entries.firstOrNull {
1413
+ it.value.advertisement.nodeIdHash == nodeHash
1414
+ }?.key
1415
+ }
1416
+
1417
+ private fun maybeHandleRebalance(trigger: String) {
1418
+ val directive = meshController.evaluateRebalance() ?: return
1419
+ val decision = directive.decision
1420
+ val candidateHash = directive.candidate.nodeIdHash
1421
+ val candidateAddress = addressForNodeHash(candidateHash)
1422
+ if (candidateAddress == null) {
1423
+ if (logThrottler.shouldLog("rebalance_missing_candidate", intervalMs = 10_000)) {
1424
+ Log.v(TAG, "No address found for rebalance candidate hash=${candidateHash.toString(16)}")
1425
+ }
1426
+ return
1427
+ }
1428
+
1429
+ if (decision.evictPeerId != null) {
1430
+ evictPeer(decision.evictPeerId, "rebalance_${trigger}")
1431
+ }
1432
+
1433
+ if (!meshController.connectionBudgetAvailable() && decision.evictPeerId == null) {
1434
+ return
1435
+ }
1436
+
1437
+ if (connections.getGatt(candidateAddress) != null) {
1438
+ return
1439
+ }
1440
+
1441
+ val device = try {
1442
+ bluetoothAdapter?.getRemoteDevice(candidateAddress)
1443
+ } catch (e: IllegalArgumentException) {
1444
+ null
1445
+ } ?: return
1446
+
1447
+ val desiredRole = when (decision.intent) {
1448
+ ConnectionIntent.INTER_CLUSTER -> MeshRole.BRIDGE
1449
+ ConnectionIntent.INTRA_CLUSTER, ConnectionIntent.REJECTED -> MeshRole.MEMBER
1450
+ }
1451
+
1452
+ connections.setPendingRole(candidateAddress, desiredRole)
1453
+ connectToDevice(device)
1454
+ }
1455
+
1456
+ // MARK: - GATT Server Callback
1457
+
1458
+ private val gattServerCallback = object : BluetoothGattServerCallback() {
1459
+ override fun onConnectionStateChange(device: BluetoothDevice, status: Int, newState: Int) {
1460
+ when (newState) {
1461
+ BluetoothProfile.STATE_CONNECTED -> {
1462
+ val observation = lastSeenMeshAdvertisements[device.address]
1463
+ val decision = meshController.shouldAcceptInboundConnection(
1464
+ connections.deviceIdForAddress(device.address),
1465
+ observation?.advertisement,
1466
+ observation?.rssi
1467
+ )
1468
+ if (decision.evictPeerId != null) {
1469
+ evictPeer(decision.evictPeerId, "inbound_swap")
1470
+ }
1471
+ if (decision.intent == ConnectionIntent.REJECTED) {
1472
+ Log.w(TAG, "Rejecting inbound connection from ${device.address}: ${decision.reason}")
1473
+ gattServer?.cancelConnection(device)
1474
+ return
1475
+ }
1476
+ val role = when (decision.intent) {
1477
+ ConnectionIntent.INTER_CLUSTER -> MeshRole.BRIDGE
1478
+ ConnectionIntent.INTRA_CLUSTER, ConnectionIntent.REJECTED -> MeshRole.MEMBER
1479
+ }
1480
+ connections.trackServerConnection(device.address)
1481
+ connections.setPendingRole(device.address, role)
1482
+ Log.i(TAG, "GATT server: Device connected: ${device.address} (role=$role)")
1483
+ emitDiagnostic("info", "Device connected to GATT server", mapOf("address" to device.address))
1484
+ }
1485
+ BluetoothProfile.STATE_DISCONNECTED -> {
1486
+ val address = device.address
1487
+ connections.untrackServerConnection(address)
1488
+ connections.consumePendingRole(address)
1489
+ // Don't immediately remove - connection might be re-established
1490
+ // Only remove if it's a permanent error (status != 0)
1491
+ if (status != 0 && status != 19) { // Not normal disconnect or connection timeout
1492
+ lastSeenRssi.remove(address)
1493
+ connections.deviceIdForAddress(address)?.let { peerId ->
1494
+ // Clean up routes through this neighbor
1495
+ protocol.removeNeighborRoutes(peerId)
1496
+ try {
1497
+ protocol.blePeerLost(peerId)
1498
+ } catch (e: Exception) {
1499
+ Log.e(TAG, "Error notifying peer lost", e)
1500
+ emitDiagnostic("error", "Error notifying peer lost", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1501
+ }
1502
+ meshController.registerDisconnection(peerId)
1503
+ refreshSelfMetrics()
1504
+ connections.removeIdentifiersForAddress(address)
1505
+ deviceIdResolutionAttempts.remove(address)
1506
+ connections.removeConnectionRole(peerId)
1507
+ mainHandler.post {
1508
+ if (state == TransportState.RUNNING) {
1509
+ refreshAdvertising("membership_change")
1510
+ }
1511
+ }
1512
+ maybeHandleRebalance("disconnect")
1513
+ }
1514
+ }
1515
+ }
1516
+ }
1517
+ }
1518
+
1519
+ override fun onCharacteristicReadRequest(
1520
+ device: BluetoothDevice,
1521
+ requestId: Int,
1522
+ offset: Int,
1523
+ characteristic: BluetoothGattCharacteristic
1524
+ ) {
1525
+ try {
1526
+ if (characteristic.uuid == DEVICE_ID_CHAR_UUID) {
1527
+ gattServer?.sendResponse(device, requestId, BluetoothGatt.GATT_SUCCESS, offset, characteristic.value)
1528
+ Log.d(TAG, "Sent device ID to ${device.address}")
1529
+ } else {
1530
+ gattServer?.sendResponse(device, requestId, BluetoothGatt.GATT_FAILURE, offset, null)
1531
+ }
1532
+ } catch (e: SecurityException) {
1533
+ Log.e(TAG, "Permission denied in read request", e)
1534
+ emitDiagnostic("error", "Permission denied in characteristic read", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1535
+ }
1536
+ }
1537
+
1538
+ override fun onCharacteristicWriteRequest(
1539
+ device: BluetoothDevice,
1540
+ requestId: Int,
1541
+ characteristic: BluetoothGattCharacteristic,
1542
+ preparedWrite: Boolean,
1543
+ responseNeeded: Boolean,
1544
+ offset: Int,
1545
+ value: ByteArray
1546
+ ) {
1547
+ try {
1548
+ Log.i(TAG, "📨 GATT WRITE REQUEST from ${device.address}, char: ${characteristic.uuid}, size: ${value.size}")
1549
+ emitDiagnostic("info", "GATT write request received", mapOf(
1550
+ "deviceAddress" to device.address,
1551
+ "characteristicUuid" to characteristic.uuid.toString(),
1552
+ "dataSize" to value.size,
1553
+ "responseNeeded" to responseNeeded
1554
+ ))
1555
+
1556
+ if (characteristic.uuid == MESSAGE_CHAR_UUID) {
1557
+ Log.i(TAG, "📥 MESSAGE CHARACTERISTIC WRITE from ${device.address}, processing...")
1558
+ // Handle incoming fragment
1559
+ handleReceivedData(value, device.address)
1560
+
1561
+ if (responseNeeded) {
1562
+ gattServer?.sendResponse(device, requestId, BluetoothGatt.GATT_SUCCESS, offset, value)
1563
+ Log.d(TAG, "✅ Sent GATT_SUCCESS response to ${device.address}")
1564
+ }
1565
+ } else {
1566
+ Log.w(TAG, "❌ Unknown characteristic write: ${characteristic.uuid}")
1567
+ if (responseNeeded) {
1568
+ gattServer?.sendResponse(device, requestId, BluetoothGatt.GATT_FAILURE, offset, null)
1569
+ }
1570
+ }
1571
+ } catch (e: SecurityException) {
1572
+ Log.e(TAG, "Permission denied in write request", e)
1573
+ emitDiagnostic("error", "Permission denied in characteristic write", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1574
+ }
1575
+ }
1576
+ }
1577
+
1578
+ // MARK: - GATT Client Callback
1579
+
1580
+ private val gattClientCallback = object : BluetoothGattCallback() {
1581
+ override fun onConnectionStateChange(gatt: BluetoothGatt, status: Int, newState: Int) {
1582
+ when (newState) {
1583
+ BluetoothProfile.STATE_CONNECTED -> {
1584
+ Log.i(TAG, "GATT client: Connected to ${gatt.device.address}")
1585
+ emitDiagnostic("info", "Connected to BLE device", mapOf("address" to gatt.device.address))
1586
+ try {
1587
+ Log.d(TAG, "🔎 Starting service discovery for ${gatt.device.address}")
1588
+ val discoveryStarted = gatt.discoverServices()
1589
+ Log.d(TAG, "🔎 Service discovery ${if (discoveryStarted) "started" else "FAILED"} for ${gatt.device.address}")
1590
+ emitDiagnostic("debug", "Service discovery initiated", mapOf(
1591
+ "address" to gatt.device.address,
1592
+ "started" to discoveryStarted
1593
+ ))
1594
+ } catch (e: SecurityException) {
1595
+ Log.e(TAG, "❌ Permission denied discovering services", e)
1596
+ emitDiagnostic("error", "Permission denied discovering services", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1597
+ } catch (e: Exception) {
1598
+ Log.e(TAG, "❌ Error discovering services", e)
1599
+ emitDiagnostic("error", "Error discovering services", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1600
+ }
1601
+ }
1602
+ BluetoothProfile.STATE_DISCONNECTED -> {
1603
+ val address = gatt.device.address
1604
+ val wasConnected = connections.getGatt(address) != null
1605
+ connections.removeGatt(address)
1606
+
1607
+ // Don't remove from discovered list - keep trying to reconnect
1608
+ // Only remove RSSI if it's a permanent error
1609
+ if (status == 133) { // Connection timeout
1610
+ lastSeenRssi.remove(address)
1611
+ }
1612
+
1613
+ // Try to reconnect if we were connected and state is still running
1614
+ if (wasConnected && state == TransportState.RUNNING) {
1615
+ // Attempt reconnection after a short delay
1616
+ mainHandler.postDelayed({
1617
+ if (state == TransportState.RUNNING && connections.hasDeviceForAddress(address)) {
1618
+ try {
1619
+ val device = bluetoothAdapter?.getRemoteDevice(address)
1620
+ if (device != null) {
1621
+ connectToDevice(device)
1622
+ }
1623
+ } catch (e: Exception) {
1624
+ Log.e(TAG, "Error reconnecting to device", e)
1625
+ }
1626
+ }
1627
+ }, 1000)
1628
+ } else {
1629
+ // Notify protocol of peer loss only if we're not reconnecting
1630
+ connections.deviceIdForAddress(address)?.let { deviceId ->
1631
+ // Clean up routes through this neighbor
1632
+ protocol.removeNeighborRoutes(deviceId)
1633
+ try {
1634
+ protocol.blePeerLost(deviceId)
1635
+ } catch (e: Exception) {
1636
+ Log.e(TAG, "Error notifying peer lost", e)
1637
+ emitDiagnostic("error", "Error notifying peer lost", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1638
+ }
1639
+ meshController.registerDisconnection(deviceId)
1640
+ refreshSelfMetrics()
1641
+ connections.removeIdentifiersForAddress(address)
1642
+ deviceIdResolutionAttempts.remove(address)
1643
+ connections.removeConnectionRole(deviceId)
1644
+ mainHandler.post {
1645
+ if (state == TransportState.RUNNING) {
1646
+ refreshAdvertising("membership_change")
1647
+ }
1648
+ }
1649
+ maybeHandleRebalance("disconnect")
1650
+ }
1651
+ }
1652
+ }
1653
+ }
1654
+ }
1655
+
1656
+ override fun onServicesDiscovered(gatt: BluetoothGatt, status: Int) {
1657
+ Log.i(TAG, "🔎 onServicesDiscovered callback: ${gatt.device.address}, status=$status (${if (status == BluetoothGatt.GATT_SUCCESS) "SUCCESS" else "FAILED"})")
1658
+
1659
+ if (status == BluetoothGatt.GATT_SUCCESS) {
1660
+ val service = gatt.getService(SERVICE_UUID)
1661
+ if (service != null) {
1662
+ Log.i(TAG, "✅ Found offline protocol service on ${gatt.device.address}")
1663
+ emitDiagnostic("info", "GATT services discovered", mapOf("address" to gatt.device.address))
1664
+
1665
+ // Read device ID characteristic
1666
+ val deviceIdChar = service.getCharacteristic(DEVICE_ID_CHAR_UUID)
1667
+ if (deviceIdChar != null) {
1668
+ Log.d(TAG, "📖 Reading device ID characteristic from ${gatt.device.address}")
1669
+ try {
1670
+ val readStarted = gatt.readCharacteristic(deviceIdChar)
1671
+ Log.d(TAG, "📖 Read request ${if (readStarted) "sent" else "FAILED"} for ${gatt.device.address}")
1672
+ } catch (e: SecurityException) {
1673
+ Log.e(TAG, "❌ Permission denied reading characteristic", e)
1674
+ emitDiagnostic("error", "Permission denied reading device ID characteristic", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1675
+ }
1676
+ } else {
1677
+ Log.w(TAG, "⚠️ Device ID characteristic NOT FOUND on ${gatt.device.address}")
1678
+ }
1679
+
1680
+ // Enable notifications for message characteristic
1681
+ val messageChar = service.getCharacteristic(MESSAGE_CHAR_UUID)
1682
+ if (messageChar != null) {
1683
+ Log.d(TAG, "🔔 Enabling notifications for message characteristic on ${gatt.device.address}")
1684
+ try {
1685
+ val notifyEnabled = gatt.setCharacteristicNotification(messageChar, true)
1686
+ Log.d(TAG, "🔔 Notifications ${if (notifyEnabled) "enabled" else "FAILED"} for ${gatt.device.address}")
1687
+ emitDiagnostic("info", "Enabled notifications for message characteristic", mapOf("address" to gatt.device.address))
1688
+ } catch (e: SecurityException) {
1689
+ Log.e(TAG, "❌ Permission denied setting notification", e)
1690
+ emitDiagnostic("error", "Permission denied enabling notifications", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1691
+ }
1692
+ } else {
1693
+ Log.w(TAG, "⚠️ Message characteristic NOT FOUND on ${gatt.device.address}")
1694
+ }
1695
+ } else {
1696
+ Log.w(TAG, "⚠️ Service UUID not found on ${gatt.device.address}. Available services: ${gatt.services.map { it.uuid }}")
1697
+ emitDiagnostic("warning", "Offline protocol service not found", mapOf(
1698
+ "address" to gatt.device.address,
1699
+ "serviceCount" to gatt.services.size
1700
+ ))
1701
+ }
1702
+ } else {
1703
+ Log.e(TAG, "❌ Service discovery FAILED for ${gatt.device.address}, status=$status")
1704
+ emitDiagnostic("error", "Service discovery failed", mapOf("address" to gatt.device.address, "status" to status))
1705
+ }
1706
+ }
1707
+
1708
+ override fun onCharacteristicRead(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic, status: Int) {
1709
+ Log.i(TAG, "📖 onCharacteristicRead: ${gatt.device.address}, char=${characteristic.uuid}, status=$status")
1710
+
1711
+ if (status == BluetoothGatt.GATT_SUCCESS && characteristic.uuid == DEVICE_ID_CHAR_UUID) {
1712
+ val deviceIdValue = characteristic.value?.toString(Charsets.UTF_8)
1713
+ Log.i(TAG, "✅ Read device ID from ${gatt.device.address}: $deviceIdValue")
1714
+
1715
+ if (deviceIdValue != null) {
1716
+ Log.i(TAG, "📝 Mapping ${gatt.device.address} -> $deviceIdValue")
1717
+ connections.setDeviceIdentifier(gatt.device.address, deviceIdValue)
1718
+
1719
+ val role = connections.consumePendingRole(gatt.device.address) ?: MeshRole.MEMBER
1720
+ meshController.registerConnection(deviceIdValue, role)
1721
+ connections.setConnectionRole(deviceIdValue, role)
1722
+ meshController.markPeerActive(deviceIdValue)
1723
+ meshController.markPeerActive(deviceId)
1724
+ refreshSelfMetrics()
1725
+ mainHandler.post {
1726
+ if (state == TransportState.RUNNING) {
1727
+ refreshAdvertising("membership_change")
1728
+ }
1729
+ }
1730
+ val rssiInt = lastSeenRssi[gatt.device.address]?.toInt()
1731
+ if (rssiInt != null) {
1732
+ meshController.updatePeerMetrics(
1733
+ deviceIdValue,
1734
+ MeshController.PeerMetrics(rssi = rssiInt)
1735
+ )
1736
+ }
1737
+
1738
+ // Notify protocol of peer discovery
1739
+ val rssi = lastSeenRssi[gatt.device.address] ?: (-60).toShort()
1740
+ try {
1741
+ protocol.blePeerDiscovered(deviceIdValue, rssi)
1742
+ } catch (e: Exception) {
1743
+ Log.e(TAG, "Error notifying peer discovered", e)
1744
+ emitDiagnostic("error", "Error notifying peer discovered", mapOf("exception" to e.javaClass.simpleName, "message" to (e.message ?: "unknown")))
1745
+ }
1746
+
1747
+ // Process any pending fragments for this device
1748
+ processPendingFragments(gatt.device.address, deviceIdValue)
1749
+ }
1750
+ }
1751
+ }
1752
+
1753
+ override fun onCharacteristicChanged(gatt: BluetoothGatt, characteristic: BluetoothGattCharacteristic) {
1754
+ if (characteristic.uuid == MESSAGE_CHAR_UUID) {
1755
+ val data = characteristic.value
1756
+ if (data != null) {
1757
+ handleReceivedData(data, gatt.device.address)
1758
+ }
1759
+ }
1760
+ }
1761
+ }
1762
+ }
1763
+