react-native-background-geolocation 4.19.1 → 5.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) hide show
  1. package/README.md +1 -1
  2. package/RNBackgroundGeolocation.podspec +3 -3
  3. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  4. package/android/build.gradle +21 -56
  5. package/android/proguard-rules.pro +66 -38
  6. package/android/src/main/java/com/transistorsoft/rnbackgroundgeolocation/HeadlessTask.java +44 -44
  7. package/android/src/main/java/com/transistorsoft/rnbackgroundgeolocation/RNBackgroundGeolocation.java +1 -0
  8. package/android/src/main/java/com/transistorsoft/rnbackgroundgeolocation/RNBackgroundGeolocationModule.java +303 -274
  9. package/babel.config.js +5 -0
  10. package/expo/plugin/build/androidPlugin.d.ts +8 -0
  11. package/expo/plugin/build/androidPlugin.js +127 -0
  12. package/expo/plugin/build/androidPlugin.js.map +1 -0
  13. package/expo/plugin/build/iOSPlugin.d.ts +4 -0
  14. package/expo/plugin/build/iOSPlugin.js +10 -0
  15. package/expo/plugin/build/iOSPlugin.js.map +1 -0
  16. package/expo/plugin/build/index.d.ts +16 -0
  17. package/expo/plugin/build/index.js +23 -0
  18. package/expo/plugin/build/index.js.map +1 -0
  19. package/expo/plugin/tsconfig.tsbuildinfo +1 -0
  20. package/ios/RNBackgroundGeolocation/RNBackgroundGeolocation.m +177 -162
  21. package/jest.config.js +14 -0
  22. package/mocks/react-native.js +52 -0
  23. package/package.json +24 -12
  24. package/src/DeviceSettings.js +7 -24
  25. package/src/Logger.js +4 -23
  26. package/src/NativeModule.js +61 -262
  27. package/src/{TransistorAuthorizationToken.js → TransistorAuthorizationService.js} +17 -19
  28. package/src/index.d.ts +13 -1
  29. package/src/index.js +266 -462
  30. package/src/native/specs/NativeBackgroundGeolocation.ts +49 -0
  31. package/tests/enums-bridge-test.js +16 -0
  32. package/tests/enums.test.js +23 -0
  33. package/tests/ready-compound.test.js +28 -0
  34. package/tests/ready.test.js +6 -0
  35. package/tests-types/config-surface.ts +38 -0
  36. package/tests-types/enums-smoke-test.ts +35 -0
  37. package/tests-types/events-typing.ts +23 -0
  38. package/tests-types/flat-config.ts +0 -0
  39. package/tests-types/ok.ts +20 -0
  40. package/tests-types/tsconfig.json +14 -0
  41. package/typedoc.json +49 -0
  42. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.aar +0 -0
  43. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.aar.md5 +0 -1
  44. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.aar.sha1 +0 -1
  45. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.aar.sha256 +0 -1
  46. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.aar.sha512 +0 -1
  47. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.pom +0 -9
  48. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.pom.md5 +0 -1
  49. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.pom.sha1 +0 -1
  50. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.pom.sha256 +0 -1
  51. package/android/libs/com/transistorsoft/tslocationmanager/3.7.0/tslocationmanager-3.7.0.pom.sha512 +0 -1
  52. package/android/libs/com/transistorsoft/tslocationmanager/maven-metadata.xml +0 -13
  53. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.aar +0 -0
  54. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.aar.md5 +0 -1
  55. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.aar.sha1 +0 -1
  56. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.aar.sha256 +0 -1
  57. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.aar.sha512 +0 -1
  58. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.pom +0 -9
  59. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.pom.md5 +0 -1
  60. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.pom.sha1 +0 -1
  61. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.pom.sha256 +0 -1
  62. package/android/libs/com/transistorsoft/tslocationmanager-v21/3.7.0/tslocationmanager-v21-3.7.0.pom.sha512 +0 -1
  63. package/android/libs/com/transistorsoft/tslocationmanager-v21/maven-metadata.xml +0 -13
  64. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/Info.plist +0 -61
  65. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/_CodeSignature/CodeDirectory +0 -0
  66. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/_CodeSignature/CodeRequirements +0 -0
  67. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/_CodeSignature/CodeRequirements-1 +0 -0
  68. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/_CodeSignature/CodeResources +0 -2033
  69. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/_CodeSignature/CodeSignature +0 -0
  70. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/AtomicBoolean.h +0 -18
  71. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/ConfigModule.h +0 -21
  72. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/HttpRequest.h +0 -21
  73. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/HttpResponse.h +0 -29
  74. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/LocationManager.h +0 -55
  75. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/LogQuery.h +0 -13
  76. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/SOMotionDetector.h +0 -141
  77. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/SQLQuery.h +0 -34
  78. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +0 -16
  79. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSAuthorization.h +0 -38
  80. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +0 -18
  81. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSCallback.h +0 -18
  82. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSConfig.h +0 -310
  83. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +0 -17
  84. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +0 -43
  85. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSDeviceInfo.h +0 -24
  86. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +0 -15
  87. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofence.h +0 -54
  88. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofenceEvent.h +0 -64
  89. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofenceManager.h +0 -54
  90. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +0 -17
  91. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +0 -18
  92. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSHttpEvent.h +0 -19
  93. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSHttpService.h +0 -58
  94. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSLocation.h +0 -105
  95. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSLocationManager.h +0 -315
  96. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +0 -14
  97. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +0 -20
  98. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSReachability.h +0 -106
  99. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSSchedule.h +0 -40
  100. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSScheduleEvent.h +0 -18
  101. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +0 -41
  102. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +0 -31
  103. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Info.plist +0 -0
  104. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Miniball/Miniball.hpp +0 -525
  105. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/Modules/module.modulemap +0 -6
  106. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/PrivacyInfo.xcprivacy +0 -36
  107. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/TSLocationManager +0 -0
  108. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
  109. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
  110. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
  111. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeResources +0 -642
  112. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64/TSLocationManager.framework/_CodeSignature/CodeSignature +0 -0
  113. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/AtomicBoolean.h +0 -18
  114. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/ConfigModule.h +0 -21
  115. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/HttpRequest.h +0 -21
  116. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/HttpResponse.h +0 -29
  117. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/LocationManager.h +0 -55
  118. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/LogQuery.h +0 -13
  119. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/SOMotionDetector.h +0 -141
  120. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/SQLQuery.h +0 -34
  121. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +0 -16
  122. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSAuthorization.h +0 -38
  123. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +0 -18
  124. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSCallback.h +0 -18
  125. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSConfig.h +0 -310
  126. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +0 -17
  127. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +0 -43
  128. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSDeviceInfo.h +0 -24
  129. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +0 -15
  130. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofence.h +0 -54
  131. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofenceEvent.h +0 -64
  132. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofenceManager.h +0 -54
  133. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +0 -17
  134. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +0 -18
  135. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHttpEvent.h +0 -19
  136. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHttpService.h +0 -58
  137. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSLocation.h +0 -105
  138. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSLocationManager.h +0 -315
  139. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +0 -14
  140. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +0 -20
  141. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSReachability.h +0 -106
  142. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSSchedule.h +0 -40
  143. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSScheduleEvent.h +0 -18
  144. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +0 -41
  145. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +0 -31
  146. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Modules/module.modulemap +0 -6
  147. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/Info.plist +0 -50
  148. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/Miniball/Miniball.hpp +0 -525
  149. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/PrivacyInfo.xcprivacy +0 -36
  150. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/TSLocationManager +0 -0
  151. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
  152. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
  153. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
  154. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeResources +0 -536
  155. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/_CodeSignature/CodeSignature +0 -0
  156. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/AtomicBoolean.h +0 -18
  157. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/ConfigModule.h +0 -21
  158. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/HttpRequest.h +0 -21
  159. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/HttpResponse.h +0 -29
  160. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/LocationManager.h +0 -55
  161. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/LogQuery.h +0 -13
  162. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/SOMotionDetector.h +0 -141
  163. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/SQLQuery.h +0 -34
  164. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +0 -16
  165. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSAuthorization.h +0 -38
  166. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +0 -18
  167. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSCallback.h +0 -18
  168. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSConfig.h +0 -310
  169. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +0 -17
  170. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +0 -43
  171. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSDeviceInfo.h +0 -24
  172. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +0 -15
  173. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofence.h +0 -54
  174. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofenceEvent.h +0 -64
  175. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofenceManager.h +0 -54
  176. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +0 -17
  177. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +0 -18
  178. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSHttpEvent.h +0 -19
  179. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSHttpService.h +0 -58
  180. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSLocation.h +0 -105
  181. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSLocationManager.h +0 -315
  182. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +0 -14
  183. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +0 -20
  184. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSReachability.h +0 -106
  185. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSSchedule.h +0 -40
  186. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSScheduleEvent.h +0 -18
  187. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +0 -41
  188. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +0 -31
  189. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Info.plist +0 -0
  190. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Miniball/Miniball.hpp +0 -525
  191. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/Modules/module.modulemap +0 -6
  192. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/PrivacyInfo.xcprivacy +0 -36
  193. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/TSLocationManager +0 -0
  194. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
  195. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
  196. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
  197. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeResources +0 -642
  198. package/src/Events.js +0 -17
  199. package/src/declarations/BackgroundGeolocation.d.ts +0 -1683
  200. /package/{ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeSignature → tests-types/api-surface.ts} +0 -0
@@ -4,12 +4,12 @@ import android.Manifest;
4
4
  import android.app.Activity;
5
5
  import android.content.Context;
6
6
  import android.content.Intent;
7
- import android.util.Log;
8
7
  import android.os.Build;
8
+ import android.util.Log;
9
9
 
10
10
  import com.facebook.react.bridge.ActivityEventListener;
11
- import com.facebook.react.bridge.Callback;
12
11
  import com.facebook.react.bridge.LifecycleEventListener;
12
+ import com.facebook.react.bridge.Promise;
13
13
  import com.facebook.react.bridge.ReactApplicationContext;
14
14
  import com.facebook.react.bridge.ReactContextBaseJavaModule;
15
15
  import com.facebook.react.bridge.ReactMethod;
@@ -21,23 +21,27 @@ import com.facebook.react.bridge.WritableArray;
21
21
  import com.facebook.react.bridge.WritableMap;
22
22
  import com.facebook.react.bridge.WritableNativeArray;
23
23
  import com.facebook.react.bridge.WritableNativeMap;
24
- import com.facebook.react.modules.core.RCTNativeAppEventEmitter;
24
+ import com.facebook.react.module.annotations.ReactModule;
25
+ import com.facebook.react.modules.core.DeviceEventManagerModule;
25
26
 
26
27
  import org.greenrobot.eventbus.EventBus;
27
28
  import org.json.JSONArray;
28
29
  import org.json.JSONException;
29
30
  import org.json.JSONObject;
30
31
 
32
+ import com.transistorsoft.locationmanager.config.TSConfig;
33
+ import com.transistorsoft.locationmanager.config.edit.Editor;
34
+ import com.transistorsoft.locationmanager.event.EventName;
31
35
  import com.transistorsoft.locationmanager.event.FinishHeadlessTaskEvent;
32
36
  import com.transistorsoft.locationmanager.event.HeadlessEvent;
33
37
  import com.google.android.gms.common.GoogleApiAvailability;
34
38
 
35
39
  import com.transistorsoft.locationmanager.adapter.BackgroundGeolocation;
36
- import com.transistorsoft.locationmanager.adapter.TSConfig;
40
+
37
41
  import com.transistorsoft.locationmanager.adapter.callback.*;
38
- import com.transistorsoft.locationmanager.config.TransistorAuthorizationToken;
39
- import com.transistorsoft.locationmanager.config.TSAuthorization;
42
+
40
43
  import com.transistorsoft.locationmanager.data.LocationModel;
44
+
41
45
  import com.transistorsoft.locationmanager.data.SQLQuery;
42
46
  import com.transistorsoft.locationmanager.device.DeviceInfo;
43
47
  import com.transistorsoft.locationmanager.event.ActivityChangeEvent;
@@ -46,12 +50,14 @@ import com.transistorsoft.locationmanager.event.ConnectivityChangeEvent;
46
50
  import com.transistorsoft.locationmanager.event.GeofenceEvent;
47
51
  import com.transistorsoft.locationmanager.event.GeofencesChangeEvent;
48
52
  import com.transistorsoft.locationmanager.event.HeartbeatEvent;
53
+ import com.transistorsoft.locationmanager.event.LocationEvent;
49
54
  import com.transistorsoft.locationmanager.event.LocationProviderChangeEvent;
50
55
  import com.transistorsoft.locationmanager.geofence.TSGeofence;
51
56
  import com.transistorsoft.locationmanager.http.HttpResponse;
52
57
  import com.transistorsoft.locationmanager.http.HttpService;
58
+ import com.transistorsoft.locationmanager.http.TSAuthorization;
59
+ import com.transistorsoft.locationmanager.http.TransistorAuthorizationToken;
53
60
  import com.transistorsoft.locationmanager.location.TSCurrentPositionRequest;
54
- import com.transistorsoft.locationmanager.location.TSLocation;
55
61
  import com.transistorsoft.locationmanager.location.TSWatchPositionRequest;
56
62
  import com.transistorsoft.locationmanager.scheduler.TSScheduleManager;
57
63
  import com.transistorsoft.locationmanager.scheduler.ScheduleEvent;
@@ -70,7 +76,10 @@ import java.util.Map;
70
76
  /**
71
77
  * Created by chris on 2015-10-30.
72
78
  */
73
- public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule implements ActivityEventListener, LifecycleEventListener {
79
+ @ReactModule(name = "RNBackgroundGeolocation")
80
+ public class RNBackgroundGeolocationModule
81
+ extends ReactContextBaseJavaModule
82
+ implements ActivityEventListener, LifecycleEventListener {
74
83
 
75
84
  private static final String TAG = "TSLocationManager";
76
85
  private static final String JOB_SERVICE_CLASS = "HeadlessTask";
@@ -97,26 +106,26 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
97
106
  reactContext.addLifecycleEventListener(this);
98
107
 
99
108
  TSConfig config = TSConfig.getInstance(getReactApplicationContext());
100
- config.useCLLocationAccuracy(true);
101
-
102
- config.updateWithBuilder()
103
- .setHeadlessJobService(getClass().getPackage().getName() + "." + JOB_SERVICE_CLASS)
104
- .commit();
109
+ config.setUseCLLocationAccuracy(true);
110
+ Editor ed = config.edit();
111
+ //ed.geo().setUseCLLocationAccuracy(true);
112
+ ed.app().setHeadlessJobService(getClass().getPackage().getName() + "." + JOB_SERVICE_CLASS);
113
+ ed.commit();
105
114
 
106
115
  // These are the only events which can be subscribed to.
107
- mEvents.add(BackgroundGeolocation.EVENT_LOCATION);
108
- mEvents.add(BackgroundGeolocation.EVENT_MOTIONCHANGE);
109
- mEvents.add(BackgroundGeolocation.EVENT_ACTIVITYCHANGE);
110
- mEvents.add(BackgroundGeolocation.EVENT_PROVIDERCHANGE);
111
- mEvents.add(BackgroundGeolocation.EVENT_GEOFENCESCHANGE);
112
- mEvents.add(BackgroundGeolocation.EVENT_GEOFENCE);
113
- mEvents.add(BackgroundGeolocation.EVENT_HEARTBEAT);
114
- mEvents.add(BackgroundGeolocation.EVENT_HTTP);
115
- mEvents.add(BackgroundGeolocation.EVENT_SCHEDULE);
116
- mEvents.add(BackgroundGeolocation.EVENT_POWERSAVECHANGE);
117
- mEvents.add(BackgroundGeolocation.EVENT_CONNECTIVITYCHANGE);
118
- mEvents.add(BackgroundGeolocation.EVENT_ENABLEDCHANGE);
119
- mEvents.add(BackgroundGeolocation.EVENT_NOTIFICATIONACTION);
116
+ mEvents.add(EventName.LOCATION);
117
+ mEvents.add(EventName.MOTIONCHANGE);
118
+ mEvents.add(EventName.ACTIVITYCHANGE);
119
+ mEvents.add(EventName.PROVIDERCHANGE);
120
+ mEvents.add(EventName.GEOFENCESCHANGE);
121
+ mEvents.add(EventName.GEOFENCE);
122
+ mEvents.add(EventName.HEARTBEAT);
123
+ mEvents.add(EventName.HTTP);
124
+ mEvents.add(EventName.SCHEDULE);
125
+ mEvents.add(EventName.POWERSAVECHANGE);
126
+ mEvents.add(EventName.CONNECTIVITYCHANGE);
127
+ mEvents.add(EventName.ENABLEDCHANGE);
128
+ mEvents.add(EventName.NOTIFICATIONACTION);
120
129
  mEvents.add(TSAuthorization.NAME);
121
130
  }
122
131
 
@@ -131,6 +140,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
131
140
 
132
141
  private void registerEvents() {
133
142
  BackgroundGeolocation adapter = getAdapter();
143
+
134
144
  adapter.onLocation(new LocationCallback());
135
145
  adapter.onMotionChange(new MotionChangeCallback());
136
146
  adapter.onActivityChange(new ActivityChangeCallback());
@@ -151,13 +161,11 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
151
161
  * location event callback
152
162
  */
153
163
  private class LocationCallback implements TSLocationCallback {
154
- @Override public void onLocation(TSLocation location) {
155
- try {
156
- sendEvent(BackgroundGeolocation.EVENT_LOCATION, jsonToMap(location.toJson()));
157
- } catch (JSONException e) {
158
- e.printStackTrace();
159
- }
164
+ @Override
165
+ public void onLocation(LocationEvent locationEvent) {
166
+ sendEvent(EventName.LOCATION, mapToWritableMap(locationEvent.toMap()));
160
167
  }
168
+
161
169
  @Override public void onError(Integer error) {
162
170
  onLocationError(error);
163
171
  }
@@ -167,16 +175,14 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
167
175
  * motionchange event callback
168
176
  */
169
177
  private class MotionChangeCallback implements TSLocationCallback {
170
- @Override public void onLocation(TSLocation location) {
178
+ @Override
179
+ public void onLocation(LocationEvent locationEvent) {
171
180
  WritableMap params = new WritableNativeMap();
172
- params.putBoolean("isMoving", location.getIsMoving());
173
- try {
174
- params.putMap("location", jsonToMap(location.toJson()));
175
- sendEvent(BackgroundGeolocation.EVENT_MOTIONCHANGE, params);
176
- } catch (JSONException e) {
177
- e.printStackTrace();
178
- }
181
+ params.putBoolean("isMoving", locationEvent.isMoving());
182
+ params.putMap("location", mapToWritableMap(locationEvent.toMap()));
183
+ sendEvent(EventName.MOTIONCHANGE, params);
179
184
  }
185
+
180
186
  @Override public void onError(Integer error) {
181
187
  onLocationError(error);
182
188
  }
@@ -187,11 +193,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
187
193
  */
188
194
  private class ActivityChangeCallback implements TSActivityChangeCallback {
189
195
  @Override public void onActivityChange(ActivityChangeEvent event) {
190
- try {
191
- sendEvent(BackgroundGeolocation.EVENT_ACTIVITYCHANGE, jsonToMap(event.toJson()));
192
- } catch (JSONException e) {
193
- e.printStackTrace();
194
- }
196
+ sendEvent(EventName.ACTIVITYCHANGE, mapToWritableMap(event.toMap()));
195
197
  }
196
198
  }
197
199
 
@@ -206,7 +208,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
206
208
  params.putBoolean("enabled", event.isEnabled());
207
209
  params.putInt("accuracyAuthorization", event.getAccuracyAuthorization());
208
210
  params.putInt("status", event.getStatus());
209
- sendEvent(BackgroundGeolocation.EVENT_PROVIDERCHANGE, params);
211
+ sendEvent(EventName.PROVIDERCHANGE, params);
210
212
  }
211
213
  }
212
214
 
@@ -217,7 +219,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
217
219
  @Override public void onConnectivityChange(ConnectivityChangeEvent event) {
218
220
  WritableMap params = new WritableNativeMap();
219
221
  params.putBoolean("connected", event.hasConnection());
220
- sendEvent(BackgroundGeolocation.EVENT_CONNECTIVITYCHANGE, params);
222
+ sendEvent(EventName.CONNECTIVITYCHANGE, params);
221
223
  }
222
224
  }
223
225
  /**
@@ -225,7 +227,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
225
227
  */
226
228
  private class EnabledChangeCallback implements TSEnabledChangeCallback {
227
229
  @Override public void onEnabledChange(boolean enabled) {
228
- sendEvent(BackgroundGeolocation.EVENT_ENABLEDCHANGE, enabled);
230
+ sendEvent(EventName.ENABLEDCHANGE, enabled);
229
231
  }
230
232
  }
231
233
  /**
@@ -233,7 +235,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
233
235
  */
234
236
  private class NotificationActionCallback implements TSNotificationActionCallback {
235
237
  @Override public void onClick(String buttonId) {
236
- sendEvent(BackgroundGeolocation.EVENT_NOTIFICATIONACTION, buttonId);
238
+ sendEvent(EventName.NOTIFICATIONACTION, buttonId);
237
239
  }
238
240
  }
239
241
  /**
@@ -241,15 +243,11 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
241
243
  */
242
244
  private class GeofencesChangeCallback implements TSGeofencesChangeCallback {
243
245
  @Override public void onGeofencesChange(GeofencesChangeEvent event) {
244
- try {
245
- // TODO
246
- WritableMap params = new WritableNativeMap();
247
- WritableArray on = new WritableNativeArray();
248
- WritableArray off = new WritableNativeArray();
249
- sendEvent(BackgroundGeolocation.EVENT_GEOFENCESCHANGE, jsonToMap(event.toJson()));
250
- } catch (JSONException e) {
251
- e.printStackTrace();
252
- }
246
+ // TODO
247
+ WritableMap params = new WritableNativeMap();
248
+ WritableArray on = new WritableNativeArray();
249
+ WritableArray off = new WritableNativeArray();
250
+ sendEvent(EventName.GEOFENCESCHANGE, mapToWritableMap(event.toMap()));
253
251
  }
254
252
  }
255
253
 
@@ -258,11 +256,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
258
256
  */
259
257
  private class GeofenceCallback implements TSGeofenceCallback {
260
258
  @Override public void onGeofence(GeofenceEvent event) {
261
- try {
262
- sendEvent(BackgroundGeolocation.EVENT_GEOFENCE, jsonToMap(event.toJson()));
263
- } catch (JSONException e) {
264
- e.printStackTrace();
265
- }
259
+ sendEvent(EventName.GEOFENCE, mapToWritableMap(event.toMap()));
266
260
  }
267
261
  }
268
262
 
@@ -271,11 +265,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
271
265
  */
272
266
  private class HeartbeatCallback implements TSHeartbeatCallback {
273
267
  @Override public void onHeartbeat(HeartbeatEvent event) {
274
- try {
275
- sendEvent(BackgroundGeolocation.EVENT_HEARTBEAT, jsonToMap(event.toJson()));
276
- } catch (JSONException e) {
277
- e.printStackTrace();
278
- }
268
+ sendEvent(EventName.HEARTBEAT, mapToWritableMap(event.toMap()));
279
269
  }
280
270
  }
281
271
 
@@ -288,7 +278,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
288
278
  params.putBoolean("success", response.isSuccess());
289
279
  params.putInt("status", response.status);
290
280
  params.putString("responseText", response.responseText);
291
- sendEvent(BackgroundGeolocation.EVENT_HTTP, params);
281
+ sendEvent(EventName.HTTP, params);
292
282
  }
293
283
  }
294
284
 
@@ -297,11 +287,8 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
297
287
  */
298
288
  private class ScheduleCallback implements TSScheduleCallback {
299
289
  @Override public void onSchedule(ScheduleEvent event) {
300
- try {
301
- sendEvent(BackgroundGeolocation.EVENT_SCHEDULE, jsonToMap(event.getState()));
302
- } catch (JSONException e) {
303
- e.printStackTrace();
304
- }
290
+ TSConfig config = TSConfig.getInstance(getReactApplicationContext());
291
+ sendEvent(EventName.SCHEDULE, mapToWritableMap(config.toMap(false)));
305
292
  }
306
293
  }
307
294
 
@@ -310,7 +297,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
310
297
  */
311
298
  private class PowerSaveChangeCallack implements TSPowerSaveChangeCallback {
312
299
  @Override public void onPowerSaveChange(Boolean isPowerSaveMode) {
313
- sendEvent(BackgroundGeolocation.EVENT_POWERSAVECHANGE, isPowerSaveMode);
300
+ sendEvent(EventName.POWERSAVECHANGE, isPowerSaveMode);
314
301
  }
315
302
  }
316
303
 
@@ -319,11 +306,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
319
306
  */
320
307
  private class AuthorizationCallback implements TSAuthorizationCallback {
321
308
  @Override public void onResponse(AuthorizationEvent event) {
322
- try {
323
- sendEvent(TSAuthorization.NAME, jsonToMap(event.toJson()));
324
- } catch (JSONException e) {
325
- TSLog.logger.error(TSLog.error(e.getMessage()), e);
326
- }
309
+ sendEvent(TSAuthorization.NAME, mapToWritableMap(event.toMap()));
327
310
  }
328
311
  }
329
312
 
@@ -371,7 +354,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
371
354
  }
372
355
 
373
356
  @ReactMethod
374
- public void ready(ReadableMap params, final Callback success, final Callback failure) {
357
+ public void ready(ReadableMap params, final Promise response) {
375
358
  TSConfig config = TSConfig.getInstance(getReactApplicationContext());
376
359
 
377
360
  boolean reset = true;
@@ -381,11 +364,11 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
381
364
 
382
365
  if (mReady) {
383
366
  if (reset) {
384
- TSLog.logger.warn(TSLog.warn("#ready already called. Redirecting to #setConfig"));
385
- setConfig(params, success, failure);
367
+ TSLog.w(TSLog.warn("#ready already called. Redirecting to #setConfig"));
368
+ setConfig(params, response);
386
369
  } else {
387
- TSLog.logger.warn(TSLog.warn("#ready already called. Ignored config since reset: false"));
388
- success.invoke(getState());
370
+ TSLog.w(TSLog.warn("#ready already called. Ignored config since reset: false"));
371
+ response.resolve(getState());
389
372
  }
390
373
  return;
391
374
  }
@@ -405,99 +388,99 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
405
388
  // Have to be careful with expires: ReadadbleMap#toHashMap converts it to Double.
406
389
  options.put(TSAuthorization.FIELD_EXPIRES, readableMap.getInt(TSAuthorization.FIELD_EXPIRES));
407
390
 
408
- config.updateWithBuilder()
409
- .setAuthorization(new TSAuthorization(options))
410
- .commit();
391
+ Editor ed = config.edit();
392
+ ed.auth().setAuthorization(options);
393
+ ed.commit();
411
394
  }
412
395
  }
413
396
  }
414
397
  getAdapter().ready(new TSCallback() {
415
- @Override public void onSuccess() { success.invoke(getState()); }
416
- @Override public void onFailure(String error) { failure.invoke(error); }
398
+ @Override public void onSuccess() { response.resolve(getState()); }
399
+ @Override public void onFailure(String error) { response.reject(error); }
417
400
  });
418
401
  }
419
402
 
420
403
  @ReactMethod
421
- public void configure(ReadableMap params, final Callback success, final Callback failure){
404
+ public void configure(ReadableMap params, final Promise response){
422
405
  final TSConfig config = TSConfig.getInstance(getReactApplicationContext());
423
406
  config.reset();
424
407
  config.updateWithJSONObject(mapToJson(setHeadlessJobService(params)));
425
408
 
426
409
  getAdapter().ready(new TSCallback() {
427
- @Override public void onSuccess() { success.invoke(getState()); }
428
- @Override public void onFailure(String error) { failure.invoke(error); }
410
+ @Override public void onSuccess() { response.resolve(getState()); }
411
+ @Override public void onFailure(String error) { response.reject(error); }
429
412
  });
430
413
  }
431
414
 
432
415
  @ReactMethod
433
- public void setConfig(ReadableMap params, final Callback success, final Callback failure) {
416
+ public void setConfig(ReadableMap params, final Promise response) {
434
417
  TSConfig config = TSConfig.getInstance(getReactApplicationContext());
435
418
  config.updateWithJSONObject(mapToJson(params));
436
- success.invoke(getState());
419
+ response.resolve(getState());
437
420
  }
438
421
 
439
422
  @ReactMethod
440
- public void reset(ReadableMap defaultConfig, final Callback success, final Callback failure) {
423
+ public void reset(ReadableMap defaultConfig, final Promise response) {
441
424
  TSConfig config = TSConfig.getInstance(getReactApplicationContext());
442
425
  config.reset();
443
426
  config.updateWithJSONObject(mapToJson(setHeadlessJobService(defaultConfig)));
444
- success.invoke(getState());
427
+ response.resolve(getState());
445
428
  }
446
429
 
447
430
  @ReactMethod
448
- public void start(final Callback success, final Callback failure) {
431
+ public void start(final Promise response) {
449
432
  getAdapter().start(new TSCallback() {
450
- @Override public void onSuccess() { success.invoke(getState()); }
451
- @Override public void onFailure(String error) { failure.invoke(error); }
433
+ @Override public void onSuccess() { response.resolve(getState()); }
434
+ @Override public void onFailure(String error) { response.reject(error); }
452
435
  });
453
436
  }
454
437
 
455
438
  @ReactMethod
456
- public void startSchedule(Callback success, Callback failure) {
439
+ public void startSchedule(Promise response) {
457
440
  if (getAdapter().startSchedule()) {
458
- success.invoke(getState());
441
+ response.resolve(getState());
459
442
  } else {
460
- failure.invoke("Failed to start schedule. Did you configure a #schedule?");
443
+ response.reject("Failed to start schedule. Did you configure a #schedule?");
461
444
  }
462
445
  }
463
446
 
464
447
  @ReactMethod
465
- public void stopSchedule(Callback success, Callback failure) {
448
+ public void stopSchedule(Promise response) {
466
449
  getAdapter().stopSchedule();
467
- success.invoke(getState());
450
+ response.resolve(getState());
468
451
  }
469
452
 
470
453
  @ReactMethod
471
- public void startGeofences(final Callback success, final Callback failure) {
454
+ public void startGeofences(final Promise response) {
472
455
  getAdapter().startGeofences(new TSCallback() {
473
- @Override public void onSuccess() { success.invoke(getState()); }
474
- @Override public void onFailure(String error) { failure.invoke(error); }
456
+ @Override public void onSuccess() { response.resolve(getState()); }
457
+ @Override public void onFailure(String error) { response.reject(error); }
475
458
  });
476
459
  }
477
460
 
478
461
  @ReactMethod
479
- public void stop(final Callback success, final Callback failure) {
462
+ public void stop(final Promise response) {
480
463
  getAdapter().stop(new TSCallback() {
481
- @Override public void onSuccess() { success.invoke(getState()); }
482
- @Override public void onFailure(String error) { failure.invoke(error); }
464
+ @Override public void onSuccess() { response.resolve(getState()); }
465
+ @Override public void onFailure(String error) { response.reject(error); }
483
466
  });
484
467
  }
485
468
 
486
469
  @ReactMethod
487
- public void changePace(Boolean moving, final Callback success, final Callback failure) {
470
+ public void changePace(final Boolean moving, final Promise response) {
488
471
  getAdapter().changePace(moving, new TSCallback() {
489
- @Override public void onSuccess() { success.invoke(); }
490
- @Override public void onFailure(String error) { failure.invoke(error); }
472
+ @Override public void onSuccess() { response.resolve(moving); }
473
+ @Override public void onFailure(String error) { response.reject(error); }
491
474
  });
492
475
  }
493
476
 
494
477
  @ReactMethod
495
- public void getState(Callback success, final Callback failure) {
496
- success.invoke(getState());
478
+ public void getState(Promise response) {
479
+ response.resolve(getState());
497
480
  }
498
481
 
499
482
  @ReactMethod
500
- public void getLocations(final Callback success, final Callback failure) {
483
+ public void getLocations(final Promise response) {
501
484
  getAdapter().getLocations(new TSGetLocationsCallback() {
502
485
  @Override public void onSuccess(List<LocationModel> records) {
503
486
  try {
@@ -505,73 +488,75 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
505
488
  for (LocationModel location : records) {
506
489
  data.put(location.json);
507
490
  }
508
- success.invoke(convertJsonToArray(data));
491
+ response.resolve(convertJsonToArray(data));
509
492
  } catch (JSONException e) {
510
493
  e.printStackTrace();
511
- failure.invoke(e.getMessage());
494
+ response.reject(e.getMessage());
512
495
  }
513
496
  }
514
- @Override public void onFailure(Integer error) { failure.invoke(error); }
497
+ @Override public void onFailure(Integer error) { response.reject(error.toString()); }
515
498
  });
516
499
  }
517
500
 
518
501
  @ReactMethod
519
- public void getCount(final Callback success, final Callback failure) {
520
- success.invoke(getAdapter().getCount());
502
+ public void getCount(final Promise response) {
503
+ response.resolve(getAdapter().getCount());
521
504
  }
522
505
 
523
506
  @ReactMethod
524
- public void insertLocation(ReadableMap params, final Callback success, final Callback failure) {
507
+ public void insertLocation(ReadableMap params, final Promise response) {
525
508
  getAdapter().insertLocation(mapToJson(params), new TSInsertLocationCallback() {
526
509
  @Override public void onSuccess(String uuid) {
527
- success.invoke(uuid);
510
+ response.resolve(uuid);
528
511
  }
529
512
  @Override public void onFailure(String error) {
530
- failure.invoke(error);
513
+ response.reject(error);
531
514
  }
532
515
  });
533
516
  }
534
517
 
535
518
  // @deprecated -> #destroyLocations
536
519
  @ReactMethod
537
- public void clearDatabase(Callback success, Callback failure) {
538
- destroyLocations(success, failure);
520
+ public void clearDatabase(Promise response) {
521
+ destroyLocations(response);
539
522
  }
540
523
 
541
524
  @ReactMethod
542
- public void destroyLocations(final Callback success, final Callback failure) {
525
+ public void destroyLocations(final Promise response) {
543
526
  getAdapter().destroyLocations(new TSCallback() {
544
- @Override public void onSuccess() { success.invoke(); }
527
+ @Override public void onSuccess() {
528
+ response.resolve(true);
529
+ }
545
530
  @Override public void onFailure(String error) {
546
- failure.invoke(error);
531
+ response.reject(error);
547
532
  }
548
533
  });
549
534
  }
550
535
 
551
536
  @ReactMethod
552
- public void destroyLocation(String uuid, final Callback success, final Callback failure) {
537
+ public void destroyLocation(String uuid, final Promise response) {
553
538
  getAdapter().destroyLocation(uuid, new TSCallback() {
554
- @Override public void onSuccess() { success.invoke(); }
539
+ @Override public void onSuccess() { response.resolve(true); }
555
540
  @Override public void onFailure(String error) {
556
- failure.invoke(error);
541
+ response.reject(error);
557
542
  }
558
543
  });
559
544
  }
560
545
 
561
546
  @ReactMethod
562
- public void destroyLog(final Callback success, final Callback failure) {
547
+ public void destroyLog(final Promise response) {
563
548
  getAdapter().destroyLog(new TSCallback() {
564
549
  @Override public void onSuccess() {
565
- success.invoke(true);
550
+ response.resolve(true);
566
551
  }
567
552
  @Override public void onFailure(String error) {
568
- failure.invoke(error);
553
+ response.reject(error);
569
554
  }
570
555
  });
571
556
  }
572
557
 
573
558
  @ReactMethod
574
- public void sync(final Callback success, final Callback failure) {
559
+ public void sync(final Promise response) {
575
560
  getAdapter().sync(new TSSyncCallback() {
576
561
  @Override public void onSuccess(List<LocationModel> records) {
577
562
  try {
@@ -579,31 +564,27 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
579
564
  for (LocationModel location : records) {
580
565
  data.put(location.json);
581
566
  }
582
- success.invoke(convertJsonToArray(data));
567
+ response.resolve(convertJsonToArray(data));
583
568
  } catch (JSONException e) {
584
- failure.invoke(e.getMessage());
569
+ response.reject(e.getMessage());
585
570
  }
586
571
  }
587
572
  @Override public void onFailure(String error) {
588
- failure.invoke(error);
573
+ response.reject(error);
589
574
  }
590
575
  });
591
576
  }
592
577
 
593
578
  @ReactMethod
594
- public void getCurrentPosition(ReadableMap options, final Callback success, final Callback failure) {
579
+ public void getCurrentPosition(ReadableMap options, final Promise response) {
595
580
  TSCurrentPositionRequest.Builder builder = new TSCurrentPositionRequest.Builder(getReactApplicationContext());
596
581
 
597
582
  builder.setCallback(new TSLocationCallback() {
598
- @Override public void onLocation(TSLocation tsLocation) {
599
- try {
600
- success.invoke(jsonToMap(tsLocation.toJson()));
601
- } catch (JSONException e) {
602
- failure.invoke(e.getMessage());
603
- }
583
+ @Override public void onLocation(LocationEvent event) {
584
+ response.resolve(mapToWritableMap(event.toMap()));
604
585
  }
605
586
  @Override public void onError(Integer errorCode) {
606
- failure.invoke(errorCode);
587
+ response.reject(errorCode.toString());
607
588
  }
608
589
  });
609
590
 
@@ -617,19 +598,15 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
617
598
  getAdapter().getCurrentPosition(builder.build());
618
599
  }
619
600
  @ReactMethod
620
- public void watchPosition(ReadableMap options, final Callback success, final Callback failure) {
601
+ public void watchPosition(ReadableMap options, final Promise response) {
621
602
  TSWatchPositionRequest.Builder builder = new TSWatchPositionRequest.Builder(getReactApplicationContext());
622
603
 
623
604
  builder.setCallback(new TSLocationCallback() {
624
- @Override public void onLocation(TSLocation tsLocation) {
625
- try {
626
- sendEvent(EVENT_WATCHPOSITION, jsonToMap(tsLocation.toJson()));
627
- } catch (JSONException e) {
628
- e.printStackTrace();
629
- }
605
+ @Override public void onLocation(LocationEvent event) {
606
+ sendEvent(EVENT_WATCHPOSITION, mapToWritableMap(event.toMap()));
630
607
  }
631
608
  @Override public void onError(Integer error) {
632
- failure.invoke(error);
609
+ response.reject(error.toString());
633
610
  }
634
611
  });
635
612
 
@@ -639,68 +616,64 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
639
616
  if (options.hasKey("desiredAccuracy")) { builder.setDesiredAccuracy(options.getInt("desiredAccuracy")); }
640
617
 
641
618
  getAdapter().watchPosition(builder.build());
642
- success.invoke();
619
+ response.resolve(true);
643
620
  }
644
621
  @ReactMethod
645
- public void stopWatchPosition(final Callback success, final Callback failure) {
622
+ public void stopWatchPosition(final Promise response) {
646
623
  getAdapter().stopWatchPosition(new TSCallback() {
647
624
  @Override public void onSuccess() {
648
- success.invoke();
625
+ response.resolve(true);
649
626
  }
650
627
  @Override public void onFailure(String error) {
651
- failure.invoke(error);
628
+ response.reject(error);
652
629
  }
653
630
  });
654
631
  }
655
632
  @ReactMethod
656
- public void getOdometer(Callback success, Callback failure) {
657
- success.invoke(getAdapter().getOdometer());
633
+ public void getOdometer(final Promise response) {
634
+ response.resolve(getAdapter().getOdometer());
658
635
  }
659
636
  @ReactMethod
660
- public void setOdometer(Float value, final Callback success, final Callback failure) {
637
+ public void setOdometer(Double value, final Promise response) {
661
638
  getAdapter().setOdometer(value, new TSLocationCallback() {
662
- @Override public void onLocation(TSLocation location) {
663
- try {
664
- success.invoke(jsonToMap(location.toJson()));
665
- } catch (JSONException e) {
666
- failure.invoke(e.getMessage());
667
- }
639
+ @Override public void onLocation(LocationEvent event) {
640
+ response.resolve(mapToWritableMap(event.toMap()));
668
641
  }
669
642
  @Override public void onError(Integer errorCode) {
670
- failure.invoke((Integer) errorCode);
643
+ response.reject(errorCode.toString());
671
644
  }
672
645
  });
673
646
  }
674
647
  @ReactMethod
675
- public void addGeofence(ReadableMap options, final Callback success, final Callback failure) {
648
+ public void addGeofence(ReadableMap options, final Promise response) {
676
649
  try {
677
650
  getAdapter().addGeofence(buildGeofence(options), new TSCallback() {
678
- @Override public void onSuccess() { success.invoke(); }
679
- @Override public void onFailure(String error) { failure.invoke(error); }
651
+ @Override public void onSuccess() { response.resolve(true); }
652
+ @Override public void onFailure(String error) { response.reject(error); }
680
653
  });
681
654
  } catch (TSGeofence.Exception e) {
682
- failure.invoke(e.getMessage());
655
+ response.reject(e.getMessage());
683
656
  }
684
657
  }
685
658
 
686
659
  @ReactMethod
687
- public void addGeofences(ReadableArray data, final Callback success, final Callback failure) {
660
+ public void addGeofences(ReadableArray data, final Promise response) {
688
661
  List<TSGeofence> geofences = new ArrayList<TSGeofence>();
689
662
  for (int n=0;n<data.size();n++) {
690
663
  try {
691
664
  geofences.add(buildGeofence(data.getMap(n)));
692
665
  } catch (TSGeofence.Exception e) {
693
- failure.invoke(e.getMessage());
666
+ response.reject(e.getMessage());
694
667
  return;
695
668
  }
696
669
  }
697
670
 
698
671
  getAdapter().addGeofences(geofences, new TSCallback() {
699
672
  @Override public void onSuccess() {
700
- success.invoke();
673
+ response.resolve(true);
701
674
  }
702
675
  @Override public void onFailure(String error) {
703
- failure.invoke(error);
676
+ response.reject(error);
704
677
  }
705
678
  });
706
679
  }
@@ -736,83 +709,73 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
736
709
  }
737
710
 
738
711
  @ReactMethod
739
- public void removeGeofence(String identifier, final Callback success, final Callback failure) {
712
+ public void removeGeofence(String identifier, final Promise response) {
740
713
  getAdapter().removeGeofence(identifier, new TSCallback() {
741
714
  @Override public void onSuccess() {
742
- success.invoke();
715
+ response.resolve(true);
743
716
  }
744
717
  @Override public void onFailure(String error) {
745
- failure.invoke(error);
718
+ response.reject(error);
746
719
  }
747
720
  });
748
721
  }
749
722
 
750
723
  @ReactMethod
751
- public void removeGeofences(final Callback success, final Callback failure) {
724
+ public void removeGeofences(final Promise response) {
752
725
  // TODO allow JS api to delete a list-of-geofences.
753
726
  // TODO accept WritableArray geofences from Client js API, allowing to remove a set of geofences
754
727
  List<String> identifiers = new ArrayList<>();
755
728
  getAdapter().removeGeofences(identifiers, new TSCallback() {
756
729
  @Override public void onSuccess() {
757
- success.invoke();
730
+ response.resolve(true);
758
731
  }
759
732
  @Override public void onFailure(String error) {
760
- failure.invoke(error);
733
+ response.reject(error);
761
734
  }
762
735
  });
763
736
  }
764
737
 
765
738
  @ReactMethod
766
- public void getGeofences(final Callback success, final Callback failure) {
739
+ public void getGeofences(final Promise response) {
767
740
  getAdapter().getGeofences(new TSGetGeofencesCallback() {
768
741
  @Override public void onSuccess(List<TSGeofence> geofences) {
769
- try {
770
- WritableArray rs = new WritableNativeArray();
771
- for (TSGeofence geofence : geofences) {
772
- rs.pushMap(jsonToMap(geofence.toJson()));
773
- }
774
- success.invoke(rs);
775
- } catch (JSONException e) {
776
- e.printStackTrace();
777
- failure.invoke(e.getMessage());
742
+ WritableArray rs = new WritableNativeArray();
743
+ for (TSGeofence geofence : geofences) {
744
+ rs.pushMap(mapToWritableMap(geofence.toMap()));
778
745
  }
746
+ response.resolve(rs);
779
747
  }
780
- @Override public void onFailure(String error) { failure.invoke(error); }
748
+ @Override public void onFailure(String error) { response.reject(error); }
781
749
  });
782
750
  }
783
751
 
784
752
  @ReactMethod
785
- public void getGeofence(String identifier, final Callback success, final Callback failure) {
753
+ public void getGeofence(String identifier, final Promise response) {
786
754
  getAdapter().getGeofence(identifier, new TSGetGeofenceCallback() {
787
755
  @Override public void onSuccess(TSGeofence geofence) {
788
- try {
789
- success.invoke(jsonToMap(geofence.toJson()));
790
- } catch (JSONException e) {
791
- e.printStackTrace();
792
- failure.invoke(e.getMessage());
793
- }
756
+ response.resolve(mapToWritableMap(geofence.toMap()));
794
757
  }
795
758
  @Override public void onFailure(String error) {
796
- failure.invoke(error);
759
+ response.reject(error);
797
760
  }
798
761
  });
799
762
  }
800
763
 
801
764
  @ReactMethod
802
- public void geofenceExists(String identifier, final Callback callback) {
765
+ public void geofenceExists(String identifier, final Promise response) {
803
766
  getAdapter().geofenceExists(identifier, new TSGeofenceExistsCallback() {
804
767
  @Override public void onResult(boolean exists) {
805
- callback.invoke(exists);
768
+ response.resolve(exists);
806
769
  }
807
770
  });
808
771
  }
809
772
 
810
773
  // TODO Rename #beginBackgroundTask -> #startBackgroundTask
811
774
  @ReactMethod
812
- public void beginBackgroundTask(final Callback success, Callback failure) {
775
+ public void beginBackgroundTask(final Promise response) {
813
776
  getAdapter().startBackgroundTask(new TSBackgroundTaskCallback() {
814
777
  @Override public void onStart(int taskId) {
815
- success.invoke(taskId);
778
+ response.resolve(taskId);
816
779
  }
817
780
  @Override public void onCancel(int taskId) { } // NO IMPLEMENTATION
818
781
  });
@@ -820,115 +783,111 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
820
783
 
821
784
  // TODO Rename #finish -> #stopBackgroundTask
822
785
  @ReactMethod
823
- public void finish(int taskId, Callback success, Callback failure) {
786
+ public void finish(int taskId, Promise response) {
824
787
  getAdapter().stopBackgroundTask(taskId);
825
- success.invoke(taskId);
788
+ response.resolve(taskId);
826
789
  }
827
790
 
828
791
  /**
829
792
  * Called by user's registered HeadlessTask when they call BackgroundGeolocation.finishHeadlessTask(event.taskId)
830
- * @param taskId
831
- * @param success
832
- * @param failure
793
+ * @param taskId*
833
794
  */
834
795
  @ReactMethod
835
- public void finishHeadlessTask(int taskId, Callback success, Callback failure) {
796
+ public void finishHeadlessTask(int taskId, Promise response) {
836
797
  EventBus eventBus = EventBus.getDefault();
837
798
  if (!eventBus.hasSubscriberForEvent(HeadlessEvent.class)) {
838
799
  // This shouldn't happen. In order for this method to even be called, it MUST have been executed from within the consumer's
839
800
  // registered HeadlessTask. In order for that headless-task to have even be called, HeadlessEvent MUST have been registered with EventBus.
840
801
  String message = "finishHeadlessTask failed to find an EventBus subscriber for HeadlessEvent";
841
- TSLog.error(TSLog.warn(message));
842
- failure.invoke(message);
802
+ TSLog.e(TSLog.warn(message));
803
+ response.reject(message);
843
804
  return;
844
805
  }
845
806
  FinishHeadlessTaskEvent event = new FinishHeadlessTaskEvent(getReactApplicationContext(), taskId);
846
807
  eventBus.post(event);
847
- success.invoke();
808
+ response.resolve(true);
848
809
  }
849
810
 
850
811
  @ReactMethod
851
- public void getTransistorToken(String orgname, String username, String url, final Callback success, final Callback failure) {
812
+ public void getTransistorToken(String orgname, String username, String url, final Promise response) {
852
813
 
853
814
  TransistorAuthorizationToken.findOrCreate(getReactApplicationContext(), orgname, username, url, new TransistorAuthorizationToken.Callback() {
854
815
  @Override public void onSuccess(TransistorAuthorizationToken token) {
855
- try {
856
- success.invoke(jsonToMap(token.toJson()));
857
- } catch (JSONException e) {
858
- failure.invoke(e.getMessage());
859
- }
816
+ response.resolve(mapToWritableMap(token.toMap()));
860
817
  }
861
818
  @Override public void onFailure(String error) {
862
819
  WritableMap params = new WritableNativeMap();
863
820
  params.putString("status", error);
864
821
  params.putString("message", error);
865
- failure.invoke(params);
822
+ response.reject(error);
866
823
  }
867
824
  });
868
825
  }
869
826
 
870
827
  @ReactMethod
871
- public void destroyTransistorToken(String url, final Callback success, final Callback failure) {
828
+ public void destroyTransistorToken(String url, final Promise response) {
872
829
  TransistorAuthorizationToken.destroyTokenForUrl(getReactApplicationContext(), url, new TSCallback() {
873
830
  @Override public void onSuccess() {
874
- success.invoke(true);
831
+ response.resolve(true);
875
832
  }
876
833
  @Override public void onFailure(String error) {
877
- failure.invoke(error);
834
+ response.reject(error);
878
835
  }
879
836
  });
880
837
  }
881
838
 
882
839
  @ReactMethod
883
- public void playSound(String soundId) {
840
+ public void playSound(String soundId, Promise response) {
884
841
  getAdapter().startTone(soundId);
842
+ response.resolve(true);
885
843
  }
886
844
 
887
845
  @ReactMethod
888
- public void getLog(ReadableMap params, final Callback success, final Callback failure) {
846
+ public void getLog(ReadableMap params, final Promise response) {
889
847
  SQLQuery query = parseSQLQuery(params);
890
848
 
891
849
  TSLog.getLog(query, new TSGetLogCallback() {
892
850
  @Override public void onSuccess(String log) {
893
- success.invoke(log);
851
+ response.resolve(log);
894
852
  }
895
853
  @Override public void onFailure(String error) {
896
- failure.invoke(error);
854
+ response.reject(error);
897
855
  }
898
856
  });
899
857
  }
900
858
 
901
859
  @ReactMethod
902
- public void emailLog(String email, ReadableMap params, final Callback success, final Callback failure) {
860
+ public void emailLog(String email, ReadableMap params, final Promise response) {
903
861
  SQLQuery query = parseSQLQuery(params);
904
862
 
905
863
  TSLog.emailLog(getCurrentActivity(), email, query, new TSEmailLogCallback() {
906
864
  @Override public void onSuccess() {
907
- success.invoke();
865
+ response.resolve(true);
908
866
  }
909
867
  @Override public void onFailure(String error) {
910
- failure.invoke(error);
868
+ response.reject(error);
911
869
  }
912
870
  });
913
871
  }
914
872
 
915
873
  @ReactMethod
916
- public void uploadLog(String url, ReadableMap params, final Callback success, final Callback failure) {
874
+ public void uploadLog(String url, ReadableMap params, final Promise response) {
917
875
  SQLQuery query = parseSQLQuery(params);
918
876
 
919
877
  TSLog.uploadLog(getReactApplicationContext(), url, query, new TSCallback() {
920
878
  @Override public void onSuccess() {
921
- success.invoke();
879
+ response.resolve(true);
922
880
  }
923
881
  @Override public void onFailure(String error) {
924
- failure.invoke(error);
882
+ response.reject(error);
925
883
  }
926
884
  });
927
885
  }
928
886
 
929
887
  @ReactMethod
930
- public void log(String level, String message) throws JSONException {
888
+ public void log(String level, String message, Promise response) throws JSONException {
931
889
  TSLog.log(level, message);
890
+ response.resolve(true);
932
891
  }
933
892
 
934
893
  private SQLQuery parseSQLQuery(ReadableMap params) {
@@ -951,7 +910,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
951
910
  }
952
911
 
953
912
  @ReactMethod
954
- public void getSensors(Callback success, Callback error) {
913
+ public void getSensors(Promise response) {
955
914
  Sensors sensors = Sensors.getInstance(getReactApplicationContext());
956
915
  WritableMap params = new WritableNativeMap();
957
916
  params.putString("platform", "android");
@@ -959,11 +918,11 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
959
918
  params.putBoolean("magnetometer", sensors.hasMagnetometer());
960
919
  params.putBoolean("gyroscope", sensors.hasGyroscope());
961
920
  params.putBoolean("significant_motion", sensors.hasSignificantMotion());
962
- success.invoke(params);
921
+ response.resolve(params);
963
922
  }
964
923
 
965
924
  @ReactMethod
966
- public void getDeviceInfo(Callback success, Callback error) {
925
+ public void getDeviceInfo(Promise response) {
967
926
  DeviceInfo deviceInfo = DeviceInfo.getInstance(getReactApplicationContext());
968
927
 
969
928
  WritableMap params = new WritableNativeMap();
@@ -972,72 +931,67 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
972
931
  params.putString("version", deviceInfo.getVersion());
973
932
  params.putString("platform", deviceInfo.getPlatform());
974
933
  params.putString("framework", "react-native");
975
- success.invoke(params);
934
+ response.resolve(params);
976
935
  }
977
936
 
978
937
  @ReactMethod
979
- public void isPowerSaveMode(Callback success, Callback error) {
980
- success.invoke(getAdapter().isPowerSaveMode());
938
+ public void isPowerSaveMode(Promise response) {
939
+ response.resolve(getAdapter().isPowerSaveMode());
981
940
  }
982
941
 
983
942
  @ReactMethod
984
- public void isIgnoringBatteryOptimizations(Callback success, Callback failure) {
943
+ public void isIgnoringBatteryOptimizations(Promise response) {
985
944
  boolean isIgnoring = getAdapter().isIgnoringBatteryOptimizations();
986
- success.invoke(isIgnoring);
945
+ response.resolve(isIgnoring);
987
946
  }
988
947
 
989
948
  @ReactMethod
990
- public void requestSettings(ReadableMap args, Callback success, Callback failure) throws JSONException {
949
+ public void requestSettings(ReadableMap args, Promise response) throws JSONException {
991
950
  String action = args.getString("action");
992
951
  DeviceSettingsRequest request = getAdapter().requestSettings(action);
993
-
994
952
  if (request != null) {
995
- success.invoke(jsonToMap(request.toJson()));
953
+ response.resolve(mapToWritableMap(request.toMap()));
996
954
  } else {
997
- failure.invoke("Failed to find " + action + " screen for device " + Build.MANUFACTURER + " " + Build.MODEL + "@" + Build.VERSION.RELEASE);
955
+ response.reject("Failed to find " + action + " screen for device " + Build.MANUFACTURER + " " + Build.MODEL + "@" + Build.VERSION.RELEASE);
998
956
  }
999
957
  }
1000
958
 
1001
959
  @ReactMethod
1002
- public void showSettings(ReadableMap args, Callback success, Callback failure) {
960
+ public void showSettings(ReadableMap args, Promise response) {
1003
961
  String action = args.getString("action");
1004
962
  boolean didShow = getAdapter().showSettings(action);
1005
963
  if (didShow) {
1006
- success.invoke();
964
+ response.resolve(true);
1007
965
  } else {
1008
- failure.invoke("Failed to find " + action + " screen for device " + Build.MANUFACTURER + " " + Build.MODEL + "@" + Build.VERSION.RELEASE);
966
+ response.reject("Failed to find " + action + " screen for device " + Build.MANUFACTURER + " " + Build.MODEL + "@" + Build.VERSION.RELEASE);
1009
967
  }
1010
968
  }
1011
969
 
1012
970
  @ReactMethod
1013
- public void getProviderState(Callback success, Callback error) {
1014
- try {
1015
- success.invoke(jsonToMap(getAdapter().getProviderState().toJson()));
1016
- } catch (JSONException e) {
1017
- error.invoke(e.getMessage());
1018
- }
971
+ public void getProviderState(Promise response) {
972
+ response.resolve(mapToWritableMap(getAdapter().getProviderState().toMap()));
1019
973
  }
1020
974
 
1021
975
  @ReactMethod
1022
- public void requestPermission(final Callback success, final Callback error) {
976
+ public void requestPermission(final Promise response) {
1023
977
  getAdapter().requestPermission(new TSRequestPermissionCallback() {
1024
978
  @Override public void onSuccess(int status) {
1025
- success.invoke(status);
979
+ response.resolve(status);
1026
980
  }
1027
981
  @Override public void onFailure(int status) {
1028
- success.invoke(status);
982
+ response.reject("Permission request failed with status: " + status);
1029
983
  }
1030
984
  });
1031
985
  }
1032
986
 
1033
987
  @ReactMethod
1034
- public void requestTemporaryFullAccuracy(String purpose, final Callback success, final Callback failure) {
988
+ public void requestTemporaryFullAccuracy(String purpose, final Promise response) {
1035
989
  getAdapter().requestTemporaryFullAccuracy(purpose, new TSRequestPermissionCallback() {
1036
990
  @Override public void onSuccess(int accuracyAuthorization) {
1037
- success.invoke(accuracyAuthorization);
991
+ response.resolve(accuracyAuthorization);
1038
992
  }
1039
993
  @Override public void onFailure(int accuracyAuthorization) {
1040
- success.invoke(accuracyAuthorization);
994
+ response.reject("Temporary full accuracy request failed with status: " + accuracyAuthorization);
1041
995
  }
1042
996
  });
1043
997
  }
@@ -1062,7 +1016,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
1062
1016
  private void onLocationError(Integer code) {
1063
1017
  WritableMap params = new WritableNativeMap();
1064
1018
  params.putInt("error", code);
1065
- sendEvent(BackgroundGeolocation.EVENT_LOCATION, params);
1019
+ sendEvent(EventName.LOCATION, params);
1066
1020
  }
1067
1021
 
1068
1022
  private void handlePlayServicesConnectError(Integer errorCode) {
@@ -1074,15 +1028,95 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
1074
1028
  }
1075
1029
 
1076
1030
  private void sendEvent(String eventName, WritableMap params) {
1077
- getReactApplicationContext().getJSModule(RCTNativeAppEventEmitter.class).emit(eventName, params);
1031
+ getReactApplicationContext()
1032
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
1033
+ .emit(eventName, params);
1078
1034
  }
1079
1035
 
1080
1036
  private void sendEvent(String eventName, String result) {
1081
- getReactApplicationContext().getJSModule(RCTNativeAppEventEmitter.class).emit(eventName, result);
1037
+ getReactApplicationContext()
1038
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
1039
+ .emit(eventName, result);
1082
1040
  }
1083
1041
 
1084
1042
  private void sendEvent(String eventName, Boolean result) {
1085
- getReactApplicationContext().getJSModule(RCTNativeAppEventEmitter.class).emit(eventName, result);
1043
+ getReactApplicationContext()
1044
+ .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
1045
+ .emit(eventName, result);
1046
+ }
1047
+
1048
+ @SuppressWarnings("unchecked")
1049
+ public static WritableMap mapToWritableMap(Map<String, ?> src) {
1050
+ WritableMap map = new WritableNativeMap();
1051
+ if (src == null) {
1052
+ return map;
1053
+ }
1054
+
1055
+ for (Map.Entry<String, ?> entry : src.entrySet()) {
1056
+ String key = entry.getKey();
1057
+ Object value = entry.getValue();
1058
+
1059
+ if (value == null) {
1060
+ map.putNull(key);
1061
+ } else if (value instanceof Boolean) {
1062
+ map.putBoolean(key, (Boolean) value);
1063
+ } else if (value instanceof Integer) {
1064
+ map.putInt(key, (Integer) value);
1065
+ } else if (value instanceof Long) {
1066
+ map.putDouble(key, ((Long) value).doubleValue());
1067
+ } else if (value instanceof Float) {
1068
+ map.putDouble(key, ((Float) value).doubleValue());
1069
+ } else if (value instanceof Double) {
1070
+ map.putDouble(key, (Double) value);
1071
+ } else if (value instanceof String) {
1072
+ map.putString(key, (String) value);
1073
+ } else if (value instanceof Map) {
1074
+ map.putMap(key, mapToWritableMap((Map<String, ?>) value));
1075
+ } else if (value instanceof Iterable) {
1076
+ map.putArray(key, iterableToWritableArray((Iterable<Object>) value));
1077
+ } else if (value.getClass().isArray()) {
1078
+ List<Object> list = Arrays.asList((Object[]) value);
1079
+ map.putArray(key, iterableToWritableArray(list));
1080
+ } else {
1081
+ map.putString(key, value.toString());
1082
+ }
1083
+ }
1084
+
1085
+ return map;
1086
+ }
1087
+
1088
+ private static WritableArray iterableToWritableArray(Iterable<Object> src) {
1089
+ WritableArray array = new WritableNativeArray();
1090
+ if (src == null) return array;
1091
+
1092
+ for (Object value : src) {
1093
+ if (value == null) {
1094
+ array.pushNull();
1095
+ } else if (value instanceof Boolean) {
1096
+ array.pushBoolean((Boolean) value);
1097
+ } else if (value instanceof Integer) {
1098
+ array.pushInt((Integer) value);
1099
+ } else if (value instanceof Long) {
1100
+ array.pushDouble(((Long) value).doubleValue());
1101
+ } else if (value instanceof Float) {
1102
+ array.pushDouble(((Float) value).doubleValue());
1103
+ } else if (value instanceof Double) {
1104
+ array.pushDouble((Double) value);
1105
+ } else if (value instanceof String) {
1106
+ array.pushString((String) value);
1107
+ } else if (value instanceof Map) {
1108
+ array.pushMap(mapToWritableMap((Map<String, Object>) value));
1109
+ } else if (value instanceof Iterable) {
1110
+ array.pushArray(iterableToWritableArray((Iterable<Object>) value));
1111
+ } else if (value.getClass().isArray()) {
1112
+ List<Object> list = Arrays.asList((Object[]) value);
1113
+ array.pushArray(iterableToWritableArray(list));
1114
+ } else {
1115
+ array.pushString(value.toString());
1116
+ }
1117
+ }
1118
+
1119
+ return array;
1086
1120
  }
1087
1121
 
1088
1122
  public static WritableMap jsonToMap(JSONObject jsonObject) throws JSONException {
@@ -1227,12 +1261,7 @@ public class RNBackgroundGeolocationModule extends ReactContextBaseJavaModule im
1227
1261
  }
1228
1262
 
1229
1263
  private WritableMap getState() {
1230
- try {
1231
- return jsonToMap(TSConfig.getInstance(getReactApplicationContext()).toJson());
1232
- } catch (JSONException e) {
1233
- e.printStackTrace();
1234
- return null;
1235
- }
1264
+ return mapToWritableMap(TSConfig.getInstance(getReactApplicationContext()).toMap(false));
1236
1265
  }
1237
1266
 
1238
1267
  private BackgroundGeolocation getAdapter() {