react-native-background-geolocation 4.3.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 (214) hide show
  1. package/.github/stale.yml +41 -0
  2. package/CHANGELOG.md +1131 -0
  3. package/LICENSE +22 -0
  4. package/README.md +292 -0
  5. package/RNBackgroundGeolocation.podspec +27 -0
  6. package/android/.idea/compiler.xml +22 -0
  7. package/android/.idea/copyright/profiles_settings.xml +3 -0
  8. package/android/.idea/encodings.xml +6 -0
  9. package/android/.idea/gradle.xml +12 -0
  10. package/android/.idea/misc.xml +4 -0
  11. package/android/.idea/modules.xml +8 -0
  12. package/android/.idea/runConfigurations.xml +12 -0
  13. package/android/RNBackgroundGeolocation.iml +119 -0
  14. package/android/android.iml +20 -0
  15. package/android/app.gradle +22 -0
  16. package/android/build.gradle +62 -0
  17. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.aar +0 -0
  18. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.aar.md5 +1 -0
  19. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.aar.sha1 +1 -0
  20. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.aar.sha256 +1 -0
  21. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.aar.sha512 +1 -0
  22. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.pom +9 -0
  23. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.pom.md5 +1 -0
  24. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.pom.sha1 +1 -0
  25. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.pom.sha256 +1 -0
  26. package/android/libs/com/transistorsoft/tslocationmanager/3.1.33/tslocationmanager-3.1.33.pom.sha512 +1 -0
  27. package/android/libs/com/transistorsoft/tslocationmanager/maven-metadata.xml +14 -0
  28. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.aar +0 -0
  29. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.aar.md5 +1 -0
  30. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.aar.sha1 +1 -0
  31. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.aar.sha256 +1 -0
  32. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.aar.sha512 +1 -0
  33. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.pom +9 -0
  34. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.pom.md5 +1 -0
  35. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.pom.sha1 +1 -0
  36. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.pom.sha256 +1 -0
  37. package/android/libs/com/transistorsoft/tslocationmanager-reverse/3.1.33/tslocationmanager-reverse-3.1.33.pom.sha512 +1 -0
  38. package/android/libs/com/transistorsoft/tslocationmanager-reverse/maven-metadata.xml +14 -0
  39. package/android/proguard-rules.pro +30 -0
  40. package/android/react-native-background-geolocation-android.iml +229 -0
  41. package/android/src/main/AndroidManifest.xml +6 -0
  42. package/android/src/main/java/com/transistorsoft/rnbackgroundgeolocation/HeadlessTask.java +171 -0
  43. package/android/src/main/java/com/transistorsoft/rnbackgroundgeolocation/RNBackgroundGeolocation.java +33 -0
  44. package/android/src/main/java/com/transistorsoft/rnbackgroundgeolocation/RNBackgroundGeolocationModule.java +1261 -0
  45. package/android/src/main/res/values/strings.xml +3 -0
  46. package/ios/RNBackgroundGeolocation/RNBackgroundGeolocation.h +22 -0
  47. package/ios/RNBackgroundGeolocation/RNBackgroundGeolocation.m +754 -0
  48. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/Info.plist +57 -0
  49. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/AtomicBoolean.h +18 -0
  50. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/ConfigModule.h +21 -0
  51. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/HttpRequest.h +21 -0
  52. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/HttpResponse.h +29 -0
  53. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/LocationManager.h +55 -0
  54. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/LogQuery.h +13 -0
  55. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/SOMotionDetector.h +140 -0
  56. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/SQLQuery.h +34 -0
  57. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +16 -0
  58. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSAuthorization.h +37 -0
  59. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +17 -0
  60. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSCallback.h +18 -0
  61. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSConfig.h +304 -0
  62. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +17 -0
  63. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +43 -0
  64. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSDeviceInfo.h +24 -0
  65. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +15 -0
  66. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSGeofence.h +50 -0
  67. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSGeofenceEvent.h +60 -0
  68. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSGeofenceManager.h +50 -0
  69. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +17 -0
  70. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +18 -0
  71. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSHttpEvent.h +19 -0
  72. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSHttpService.h +58 -0
  73. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSLocation.h +101 -0
  74. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSLocationManager.h +312 -0
  75. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +14 -0
  76. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +20 -0
  77. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSReachability.h +106 -0
  78. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSSchedule.h +40 -0
  79. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSScheduleEvent.h +18 -0
  80. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +41 -0
  81. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +31 -0
  82. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Info.plist +0 -0
  83. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/Modules/module.modulemap +6 -0
  84. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_armv7/TSLocationManager.framework/TSLocationManager +0 -0
  85. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/AtomicBoolean.h +18 -0
  86. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/ConfigModule.h +21 -0
  87. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/HttpRequest.h +21 -0
  88. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/HttpResponse.h +29 -0
  89. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/LocationManager.h +55 -0
  90. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/LogQuery.h +13 -0
  91. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/SOMotionDetector.h +140 -0
  92. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/SQLQuery.h +34 -0
  93. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +16 -0
  94. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSAuthorization.h +37 -0
  95. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +17 -0
  96. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSCallback.h +18 -0
  97. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSConfig.h +304 -0
  98. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +17 -0
  99. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +43 -0
  100. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSDeviceInfo.h +24 -0
  101. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +15 -0
  102. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofence.h +50 -0
  103. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofenceEvent.h +60 -0
  104. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofenceManager.h +50 -0
  105. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +17 -0
  106. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +18 -0
  107. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSHttpEvent.h +19 -0
  108. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSHttpService.h +58 -0
  109. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSLocation.h +101 -0
  110. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSLocationManager.h +312 -0
  111. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +14 -0
  112. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +20 -0
  113. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSReachability.h +106 -0
  114. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSSchedule.h +40 -0
  115. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSScheduleEvent.h +18 -0
  116. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +41 -0
  117. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +31 -0
  118. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Info.plist +0 -0
  119. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/Modules/module.modulemap +6 -0
  120. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/TSLocationManager +0 -0
  121. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeDirectory +0 -0
  122. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeRequirements +0 -0
  123. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeRequirements-1 +0 -0
  124. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeResources +612 -0
  125. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_i386_x86_64-simulator/TSLocationManager.framework/_CodeSignature/CodeSignature +0 -0
  126. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/AtomicBoolean.h +18 -0
  127. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/ConfigModule.h +21 -0
  128. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/HttpRequest.h +21 -0
  129. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/HttpResponse.h +29 -0
  130. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/LocationManager.h +55 -0
  131. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/LogQuery.h +13 -0
  132. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/SOMotionDetector.h +140 -0
  133. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/SQLQuery.h +34 -0
  134. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSActivityChangeEvent.h +16 -0
  135. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSAuthorization.h +37 -0
  136. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSAuthorizationEvent.h +17 -0
  137. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSCallback.h +18 -0
  138. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSConfig.h +304 -0
  139. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSConnectivityChangeEvent.h +17 -0
  140. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSCurrentPositionRequest.h +43 -0
  141. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSDeviceInfo.h +24 -0
  142. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSEnabledChangeEvent.h +15 -0
  143. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofence.h +50 -0
  144. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofenceEvent.h +60 -0
  145. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofenceManager.h +50 -0
  146. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSGeofencesChangeEvent.h +17 -0
  147. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHeartbeatEvent.h +18 -0
  148. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHttpEvent.h +19 -0
  149. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSHttpService.h +58 -0
  150. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSLocation.h +101 -0
  151. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSLocationManager.h +312 -0
  152. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSPowerSaveChangeEvent.h +14 -0
  153. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSProviderChangeEvent.h +20 -0
  154. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSReachability.h +106 -0
  155. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSSchedule.h +40 -0
  156. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSScheduleEvent.h +18 -0
  157. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TSWatchPositionRequest.h +41 -0
  158. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Headers/TransistorAuthorizationToken.h +31 -0
  159. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Modules/module.modulemap +6 -0
  160. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/Resources/Info.plist +50 -0
  161. package/ios/RNBackgroundGeolocation/TSLocationManager.xcframework/ios-arm64_x86_64-maccatalyst/TSLocationManager.framework/TSLocationManager +0 -0
  162. package/ios/RNBackgroundGeolocation.xcodeproj/project.pbxproj +341 -0
  163. package/ios/RNBackgroundGeolocation.xcodeproj/project.xcworkspace/contents.xcworkspacedata +7 -0
  164. package/ios/RNBackgroundGeolocation.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +8 -0
  165. package/ios/RNBackgroundGeolocation.xcodeproj/project.xcworkspace/xcshareddata/RNBackgroundGeolocation.xccheckout +41 -0
  166. package/ios/RNBackgroundGeolocation.xcodeproj/project.xcworkspace/xcuserdata/chris.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  167. package/ios/RNBackgroundGeolocation.xcodeproj/xcuserdata/chris.xcuserdatad/xcschemes/Build.xcscheme +80 -0
  168. package/ios/RNBackgroundGeolocation.xcodeproj/xcuserdata/chris.xcuserdatad/xcschemes/RNBackgroundGeolocation.xcscheme +113 -0
  169. package/ios/RNBackgroundGeolocation.xcodeproj/xcuserdata/chris.xcuserdatad/xcschemes/xcschememanagement.plist +37 -0
  170. package/ios/RNBackgroundGeolocationTests/Info.plist +24 -0
  171. package/package.json +54 -0
  172. package/react-native.config.js +20 -0
  173. package/scripts/cp-declarations +53 -0
  174. package/scripts/declare-module +3 -0
  175. package/scripts/docs-index.html +4 -0
  176. package/scripts/generate-docs +23 -0
  177. package/scripts/postlink.js +146 -0
  178. package/scripts/postunlink.js +128 -0
  179. package/scripts/tsconfig.json +21 -0
  180. package/scripts/xcode-helpers.js +171 -0
  181. package/src/DeviceSettings.js +52 -0
  182. package/src/Events.js +17 -0
  183. package/src/Logger.js +90 -0
  184. package/src/NativeModule.js +528 -0
  185. package/src/TransistorAuthorizationToken.js +73 -0
  186. package/src/declarations/BackgroundGeolocation.d.ts +1601 -0
  187. package/src/declarations/interfaces/Authorization.d.ts +156 -0
  188. package/src/declarations/interfaces/AuthorizationEvent.d.ts +30 -0
  189. package/src/declarations/interfaces/Config.d.ts +2437 -0
  190. package/src/declarations/interfaces/ConnectivityChangeEvent.d.ts +18 -0
  191. package/src/declarations/interfaces/CurrentPositionRequest.d.ts +45 -0
  192. package/src/declarations/interfaces/DeviceInfo.d.ts +33 -0
  193. package/src/declarations/interfaces/DeviceSettings.d.ts +223 -0
  194. package/src/declarations/interfaces/Geofence.d.ts +255 -0
  195. package/src/declarations/interfaces/GeofenceEvent.d.ts +30 -0
  196. package/src/declarations/interfaces/GeofencesChangeEvent.d.ts +22 -0
  197. package/src/declarations/interfaces/HeartbeatEvent.d.ts +20 -0
  198. package/src/declarations/interfaces/HttpEvent.d.ts +313 -0
  199. package/src/declarations/interfaces/Location.d.ts +216 -0
  200. package/src/declarations/interfaces/LocationAuthorizationAlert.d.ts +41 -0
  201. package/src/declarations/interfaces/Logger.d.ts +359 -0
  202. package/src/declarations/interfaces/MotionActivityEvent.d.ts +31 -0
  203. package/src/declarations/interfaces/MotionChangeEvent.d.ts +15 -0
  204. package/src/declarations/interfaces/Notification.d.ts +484 -0
  205. package/src/declarations/interfaces/PermissionRationale.d.ts +31 -0
  206. package/src/declarations/interfaces/ProviderChangeEvent.d.ts +74 -0
  207. package/src/declarations/interfaces/SQLQuery.d.ts +60 -0
  208. package/src/declarations/interfaces/Sensors.d.ts +31 -0
  209. package/src/declarations/interfaces/State.d.ts +51 -0
  210. package/src/declarations/interfaces/TransistorAuthorizationToken.d.ts +63 -0
  211. package/src/declarations/interfaces/WatchPositionRequest.d.ts +45 -0
  212. package/src/declarations/types.d.ts +170 -0
  213. package/src/index.d.ts +1 -0
  214. package/src/index.js +822 -0
@@ -0,0 +1,3 @@
1
+ <resources>
2
+ <string name="app_name">RNBackgroundGeolocation</string>
3
+ </resources>
@@ -0,0 +1,22 @@
1
+ //
2
+ // RNBackgroundGeolocation.h
3
+ // RNBackgroundGeolocation
4
+ //
5
+ // Created by Christopher Scott on 2015-04-19.
6
+ // Copyright (c) 2015 Transistor Software. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import <CoreLocation/CoreLocation.h>
11
+ #import <UIKit/UIKit.h>
12
+ #import <AudioToolbox/AudioToolbox.h>
13
+ #import <TSLocationManager/TSLocationManager.h>
14
+ #import <React/RCTEventEmitter.h>
15
+ #import <React/RCTInvalidating.h>
16
+
17
+ @interface RNBackgroundGeolocation : RCTEventEmitter <RCTInvalidating>
18
+
19
+ @property (nonatomic, strong) TSLocationManager* locationManager;
20
+
21
+ @end
22
+
@@ -0,0 +1,754 @@
1
+ //
2
+ // RNBackgroundGeolocation.m
3
+ // RNBackgroundGeolocation
4
+ //
5
+ // Created by Christopher Scott on 2015-04-19.
6
+ // Copyright (c) 2015 Transistor Software. All rights reserved.
7
+ //
8
+ #import "RNBackgroundGeolocation.h"
9
+ #import <Foundation/Foundation.h>
10
+ #import <CoreLocation/CoreLocation.h>
11
+ #import <UIKit/UIKit.h>
12
+
13
+
14
+ static NSString *const TS_LOCATION_MANAGER_TAG = @"TSLocationManager";
15
+
16
+ static NSString *const EVENT_LOCATION = @"location";
17
+ static NSString *const EVENT_WATCHPOSITION = @"watchposition";
18
+ static NSString *const EVENT_PROVIDERCHANGE = @"providerchange";
19
+ static NSString *const EVENT_MOTIONCHANGE = @"motionchange";
20
+ static NSString *const EVENT_ACTIVITYCHANGE = @"activitychange";
21
+ static NSString *const EVENT_GEOFENCESCHANGE = @"geofenceschange";
22
+ static NSString *const EVENT_HTTP = @"http";
23
+ static NSString *const EVENT_SCHEDULE = @"schedule";
24
+ static NSString *const EVENT_GEOFENCE = @"geofence";
25
+ static NSString *const EVENT_HEARTBEAT = @"heartbeat";
26
+ static NSString *const EVENT_POWERSAVECHANGE = @"powersavechange";
27
+ static NSString *const EVENT_CONNECTIVITYCHANGE = @"connectivitychange";
28
+ static NSString *const EVENT_ENABLEDCHANGE = @"enabledchange";
29
+ static NSString *const EVENT_NOTIFICATIONACTION = @"notificationaction";
30
+ static NSString *const EVENT_AUTHORIZATION = @"authorization";
31
+
32
+ @implementation RNBackgroundGeolocation {
33
+ NSMutableDictionary *listeners;
34
+ BOOL ready;
35
+ void(^onLocation)(TSLocation*);
36
+ void(^onLocationError)(NSError*);
37
+ void(^onMotionChange)(TSLocation*);
38
+ void(^onActivityChange)(TSActivityChangeEvent*);
39
+ void(^onHeartbeat)(TSHeartbeatEvent*);
40
+ void(^onGeofence)(TSGeofenceEvent*);
41
+ void(^onGeofencesChange)(TSGeofencesChangeEvent*);
42
+ void(^onHttp)(TSHttpEvent*);
43
+ void(^onProviderChange)(TSProviderChangeEvent*);
44
+ void(^onSchedule)(TSScheduleEvent*);
45
+ void(^onPowerSaveChange)(TSPowerSaveChangeEvent*);
46
+ void(^onConnectivityChange)(TSConnectivityChangeEvent*);
47
+ void(^onEnabledChange)(TSEnabledChangeEvent*);
48
+ void(^onAuthorization)(TSAuthorizationEvent*);
49
+ }
50
+
51
+ @synthesize locationManager;
52
+
53
+ RCT_EXPORT_MODULE();
54
+
55
+ +(BOOL)requiresMainQueueSetup
56
+ {
57
+ return YES;
58
+ }
59
+
60
+ /**
61
+ * Create TSLocationManager instance
62
+ */
63
+ -(instancetype)init
64
+ {
65
+ self = [super init];
66
+ if (self) {
67
+ ready = NO;
68
+
69
+ __typeof(self) __weak me = self;
70
+
71
+ // Build event-listener blocks
72
+ onLocation = ^void(TSLocation *location) {
73
+ [me sendEvent:EVENT_LOCATION body:[location toDictionary]];
74
+ };
75
+ onLocationError = ^void(NSError *error) {
76
+ [me sendEvent:EVENT_LOCATION body: @{@"error":@(error.code)}];
77
+ };
78
+ onMotionChange = ^void(TSLocation *location) {
79
+ [me sendEvent:EVENT_MOTIONCHANGE body:@{@"isMoving":@(location.isMoving), @"location":[location toDictionary]}];
80
+ };
81
+ onActivityChange = ^void(TSActivityChangeEvent *event) {
82
+ NSDictionary *params = @{@"activity": event.activity, @"confidence": @(event.confidence)};
83
+ [me sendEvent:EVENT_ACTIVITYCHANGE body:params];
84
+ };
85
+ onHeartbeat = ^void(TSHeartbeatEvent *event) {
86
+ [me sendEvent:EVENT_HEARTBEAT body:@{@"location":[event.location toDictionary]}];
87
+ };
88
+ onGeofence = ^void(TSGeofenceEvent *event) {
89
+ NSMutableDictionary *params = [[event toDictionary] mutableCopy];
90
+ [params setObject:[event.location toDictionary] forKey:@"location"];
91
+ [me sendEvent:EVENT_GEOFENCE body:params];
92
+ };
93
+ onGeofencesChange = ^void(TSGeofencesChangeEvent *event) {
94
+ [me sendEvent:EVENT_GEOFENCESCHANGE body:[event toDictionary]];
95
+ };
96
+ onHttp = ^void(TSHttpEvent *response) {
97
+ NSDictionary *params = @{@"success": @(response.isSuccess), @"status": @(response.statusCode), @"responseText":response.responseText};
98
+ [me sendEvent:EVENT_HTTP body:params];
99
+ };
100
+ onProviderChange = ^void(TSProviderChangeEvent *event) {
101
+ [me sendEvent:EVENT_PROVIDERCHANGE body:[event toDictionary]];
102
+ };
103
+ onSchedule = ^void(TSScheduleEvent *event) {
104
+ [me sendEvent:EVENT_SCHEDULE body:event.state];
105
+ };
106
+ onPowerSaveChange = ^void(TSPowerSaveChangeEvent *event) {
107
+ [me sendEvent:EVENT_POWERSAVECHANGE body:@(event.isPowerSaveMode)];
108
+ };
109
+ onConnectivityChange = ^void(TSConnectivityChangeEvent *event) {
110
+ NSDictionary *params = @{@"connected":@(event.hasConnection)};
111
+ [me sendEvent:EVENT_CONNECTIVITYCHANGE body:params];
112
+ };
113
+ onEnabledChange = ^void(TSEnabledChangeEvent *event) {
114
+ [me sendEvent:EVENT_ENABLEDCHANGE body:@(event.enabled)];
115
+ };
116
+ onAuthorization = ^void(TSAuthorizationEvent *event) {
117
+ [me sendEvent:EVENT_AUTHORIZATION body:[event toDictionary]];
118
+ };
119
+
120
+ // EventEmitter listener-counts
121
+ listeners = [NSMutableDictionary new];
122
+
123
+ // TSLocationManager instance
124
+ locationManager = [TSLocationManager sharedInstance];
125
+
126
+ // Provide reference to rootViewController for #emailLog method.
127
+ UIViewController *root = [[[[UIApplication sharedApplication] delegate] window] rootViewController];
128
+ locationManager.viewController = root;
129
+ }
130
+
131
+ return self;
132
+ }
133
+
134
+ - (NSArray<NSString *> *)supportedEvents {
135
+ return @[
136
+ EVENT_LOCATION,
137
+ EVENT_PROVIDERCHANGE,
138
+ EVENT_MOTIONCHANGE,
139
+ EVENT_ACTIVITYCHANGE,
140
+ EVENT_GEOFENCESCHANGE,
141
+ EVENT_POWERSAVECHANGE,
142
+ EVENT_HTTP,
143
+ EVENT_SCHEDULE,
144
+ EVENT_GEOFENCE,
145
+ EVENT_HEARTBEAT,
146
+ EVENT_WATCHPOSITION,
147
+ EVENT_CONNECTIVITYCHANGE,
148
+ EVENT_ENABLEDCHANGE,
149
+ EVENT_NOTIFICATIONACTION,
150
+ EVENT_AUTHORIZATION
151
+ ];
152
+ }
153
+
154
+ RCT_EXPORT_METHOD(registerPlugin:(NSString*)pluginName)
155
+ {
156
+ TSConfig *config = [TSConfig sharedInstance];
157
+ [config registerPlugin:pluginName];
158
+ }
159
+
160
+ RCT_EXPORT_METHOD(reset:(NSDictionary*)params success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
161
+ {
162
+ TSConfig *config = [TSConfig sharedInstance];
163
+ if ([[params allKeys] count] > 0) {
164
+ [config reset:YES];
165
+ [config updateWithDictionary:params];
166
+ } else {
167
+ [config reset];
168
+ }
169
+ success(@[[config toDictionary]]);
170
+ }
171
+
172
+ /**
173
+ * configure plugin
174
+ */
175
+ RCT_EXPORT_METHOD(ready:(NSDictionary*)params success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
176
+ {
177
+ if (ready) {
178
+ [locationManager log:@"warn" message:@"#ready already called. Redirecting to #setConfig"];
179
+ TSConfig *config = [TSConfig sharedInstance];
180
+ [config updateWithDictionary:params];
181
+ success(@[[config toDictionary]]);
182
+ return;
183
+ }
184
+ ready = YES;
185
+ dispatch_async(dispatch_get_main_queue(), ^{
186
+ TSConfig *config = [TSConfig sharedInstance];
187
+ if (config.isFirstBoot) {
188
+ [config updateWithDictionary:params];
189
+ } else {
190
+ BOOL reset = (params[@"reset"]) ? [params[@"reset"] boolValue] : YES;
191
+ if (reset) {
192
+ [config reset:YES];
193
+ [config updateWithDictionary:params];
194
+ } else if ([params objectForKey:@"authorization"]) {
195
+ [config updateWithBlock:^(TSConfigBuilder *builder) {
196
+ builder.authorization = [TSAuthorization createWithDictionary:[params objectForKey:@"authorization"]];
197
+ }];
198
+ }
199
+ }
200
+ [self.locationManager ready];
201
+ success(@[[config toDictionary]]);
202
+ });
203
+ }
204
+
205
+ /**
206
+ * configure plugin
207
+ * @deprecated in favour of #ready
208
+ */
209
+ RCT_EXPORT_METHOD(configure:(NSDictionary*)params success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
210
+ {
211
+ dispatch_async(dispatch_get_main_queue(), ^{
212
+ TSConfig *config = [TSConfig sharedInstance];
213
+ [self.locationManager configure:params];
214
+ success(@[[config toDictionary]]);
215
+ });
216
+ }
217
+
218
+ RCT_EXPORT_METHOD(addEventListener:(NSString*)event)
219
+ {
220
+ @synchronized(listeners) {
221
+ if ([listeners objectForKey:event]) {
222
+ // Increment listener-count for this event
223
+ NSInteger count = [[listeners objectForKey:event] integerValue];
224
+ count++;
225
+ [listeners setObject:@(count) forKey:event];
226
+ } else {
227
+ // First listener for this event
228
+ [listeners setObject:@(1) forKey:event];
229
+
230
+ if ([event isEqualToString:EVENT_LOCATION]) {
231
+ [locationManager onLocation:onLocation failure:onLocationError];
232
+ } else if ([event isEqualToString:EVENT_MOTIONCHANGE]) {
233
+ [locationManager onMotionChange:onMotionChange];
234
+ } else if ([event isEqualToString:EVENT_ACTIVITYCHANGE]) {
235
+ [locationManager onActivityChange:onActivityChange];
236
+ } else if ([event isEqualToString:EVENT_HEARTBEAT]) {
237
+ [locationManager onHeartbeat:onHeartbeat];
238
+ } else if ([event isEqualToString:EVENT_GEOFENCE]) {
239
+ [locationManager onGeofence:onGeofence];
240
+ } else if ([event isEqualToString:EVENT_GEOFENCESCHANGE]) {
241
+ [locationManager onGeofencesChange:onGeofencesChange];
242
+ } else if ([event isEqualToString:EVENT_HTTP]) {
243
+ [locationManager onHttp:onHttp];
244
+ } else if ([event isEqualToString:EVENT_PROVIDERCHANGE]) {
245
+ [locationManager onProviderChange:onProviderChange];
246
+ } else if ([event isEqualToString:EVENT_SCHEDULE]) {
247
+ [locationManager onSchedule:onSchedule];
248
+ } else if ([event isEqualToString:EVENT_POWERSAVECHANGE]) {
249
+ [locationManager onPowerSaveChange:onPowerSaveChange];
250
+ } else if ([event isEqualToString:EVENT_CONNECTIVITYCHANGE]) {
251
+ [locationManager onConnectivityChange:onConnectivityChange];
252
+ } else if ([event isEqualToString:EVENT_ENABLEDCHANGE]) {
253
+ [locationManager onEnabledChange:onEnabledChange];
254
+ } else if ([event isEqualToString:EVENT_AUTHORIZATION]) {
255
+ [[TSHttpService sharedInstance] onAuthorization:onAuthorization];
256
+ } else if ([event isEqualToString:EVENT_NOTIFICATIONACTION]) {
257
+ // No iOS implementation.
258
+ }
259
+ }
260
+ }
261
+ }
262
+
263
+ RCT_EXPORT_METHOD(removeListener:(NSString*)event)
264
+ {
265
+ @synchronized(listeners) {
266
+ if ([listeners objectForKey:event]) {
267
+ // Decrement listener-count for this event.
268
+ NSInteger count = [[listeners objectForKey:event] integerValue];
269
+ count--;
270
+ if (count > 0) {
271
+ [listeners setObject:@(count) forKey:event];
272
+ } else {
273
+ // No more listeners: tell TSLocationManager to removeListeners for this event.
274
+ [locationManager removeListeners];
275
+ [listeners removeObjectForKey:event];
276
+ }
277
+ }
278
+ }
279
+ }
280
+
281
+ RCT_EXPORT_METHOD(removeAllListeners:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
282
+ {
283
+ @synchronized(listeners) { [listeners removeAllObjects]; }
284
+ [locationManager removeListeners];
285
+ success(@[]);
286
+ }
287
+
288
+
289
+ RCT_EXPORT_METHOD(setConfig:(NSDictionary*)params success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
290
+ {
291
+ TSConfig *config = [TSConfig sharedInstance];
292
+ [config updateWithDictionary:params];
293
+ success(@[[config toDictionary]]);
294
+ }
295
+
296
+ -(NSDictionary*)getState
297
+ {
298
+ return [locationManager getState];
299
+ }
300
+
301
+ RCT_EXPORT_METHOD(getState:(RCTResponseSenderBlock)callback failure:(RCTResponseSenderBlock)failure)
302
+ {
303
+ NSDictionary *state = [locationManager getState];
304
+ callback(@[state]);
305
+ }
306
+
307
+ /**
308
+ * Turn on background geolocation
309
+ */
310
+ RCT_EXPORT_METHOD(start:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
311
+ {
312
+ dispatch_async(dispatch_get_main_queue(), ^{
313
+ [self.locationManager start];
314
+ success(@[[self.locationManager getState]]);
315
+ });
316
+ }
317
+ /**
318
+ * Turn it off
319
+ */
320
+ RCT_EXPORT_METHOD(stop:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
321
+ {
322
+ [locationManager stop];
323
+ success(@[[locationManager getState]]);
324
+ }
325
+
326
+ /**
327
+ * Start schedule
328
+ */
329
+ RCT_EXPORT_METHOD(startSchedule:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
330
+ {
331
+ dispatch_async(dispatch_get_main_queue(), ^{
332
+ [self.locationManager startSchedule];
333
+ success(@[[self.locationManager getState]]);
334
+ });
335
+ }
336
+
337
+ /**
338
+ * Stop schedule
339
+ */
340
+ RCT_EXPORT_METHOD(stopSchedule:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
341
+ {
342
+ dispatch_async(dispatch_get_main_queue(), ^{
343
+ [self.locationManager stopSchedule];
344
+ success(@[[self.locationManager getState]]);
345
+ });
346
+ }
347
+
348
+ /**
349
+ * Start schedule
350
+ */
351
+ RCT_EXPORT_METHOD(startGeofences:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
352
+ {
353
+ dispatch_async(dispatch_get_main_queue(), ^{
354
+ TSConfig *config = [TSConfig sharedInstance];
355
+ [self.locationManager startGeofences];
356
+ success(@[[config toDictionary]]);
357
+ });
358
+ }
359
+
360
+ /**
361
+ * Change pace to moving/stopped
362
+ * @param {Boolean} isMoving
363
+ */
364
+ RCT_EXPORT_METHOD(changePace:(BOOL)moving success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
365
+ {
366
+ [locationManager changePace:moving];
367
+ success(@[]);
368
+ }
369
+
370
+ RCT_EXPORT_METHOD(beginBackgroundTask:(RCTResponseSenderBlock)callback failure:(RCTResponseSenderBlock)failure)
371
+ {
372
+ callback(@[@([locationManager createBackgroundTask])]);
373
+ }
374
+ /**
375
+ * Called by js to signify the end of a background-geolocation event
376
+ */
377
+ RCT_EXPORT_METHOD(finish:(int)taskId success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
378
+ {
379
+ [locationManager stopBackgroundTask:taskId];
380
+ success(@[@(taskId)]);
381
+ }
382
+
383
+ RCT_EXPORT_METHOD(getCurrentPosition:(NSDictionary*)options success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
384
+ {
385
+ TSCurrentPositionRequest *request = [[TSCurrentPositionRequest alloc] initWithSuccess:^(TSLocation *location) {
386
+ success(@[[location toDictionary]]);
387
+ } failure:^(NSError *error) {
388
+ failure(@[@(error.code)]);
389
+ }];
390
+
391
+ if (options[@"timeout"]) {
392
+ request.timeout = [options[@"timeout"] doubleValue];
393
+ }
394
+ if (options[@"maximumAge"]) {
395
+ request.maximumAge = [options[@"maximumAge"] doubleValue];
396
+ }
397
+ if (options[@"persist"]) {
398
+ request.persist = [options[@"persist"] boolValue];
399
+ }
400
+ if (options[@"samples"]) {
401
+ request.samples = [options[@"samples"] intValue];
402
+ }
403
+ if (options[@"desiredAccuracy"]) {
404
+ request.desiredAccuracy = [options[@"desiredAccuracy"] doubleValue];
405
+ }
406
+ if (options[@"extras"]) {
407
+ request.extras = options[@"extras"];
408
+ }
409
+ [locationManager getCurrentPosition:request];
410
+ }
411
+
412
+ RCT_EXPORT_METHOD(watchPosition:(NSDictionary*)options success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
413
+ {
414
+ TSWatchPositionRequest *request = [[TSWatchPositionRequest alloc] initWithSuccess:^(TSLocation *location) {
415
+ [self sendEvent:EVENT_WATCHPOSITION body:[location toDictionary]];
416
+ } failure:^(NSError *error) {
417
+
418
+ }];
419
+
420
+ if (options[@"interval"]) { request.interval = [options[@"interval"] doubleValue]; }
421
+ if (options[@"desiredAccuracy"]) { request.desiredAccuracy = [options[@"desiredAccuracy"] doubleValue]; }
422
+ if (options[@"persist"]) { request.persist = [options[@"persist"] boolValue]; }
423
+ if (options[@"extras"]) { request.extras = options[@"extras"]; }
424
+ if (options[@"timeout"]) { request.timeout = [options[@"timeout"] doubleValue]; }
425
+
426
+ [locationManager watchPosition:request];
427
+ success(@[]);
428
+ }
429
+
430
+ RCT_EXPORT_METHOD(stopWatchPosition:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
431
+ {
432
+ [locationManager stopWatchPosition];
433
+ success(@[]);
434
+ }
435
+
436
+ RCT_EXPORT_METHOD(getLocations:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
437
+ {
438
+ [locationManager getLocations:^(NSArray* records) {
439
+ success(@[records]);
440
+ } failure:^(NSString* error) {
441
+ failure(@[error]);
442
+ }];
443
+ }
444
+
445
+ RCT_EXPORT_METHOD(sync:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
446
+ {
447
+ [locationManager sync:^(NSArray* records) {
448
+ success(@[records]);
449
+ } failure:^(NSError* error) {
450
+ failure(@[@(error.code)]);
451
+ }];
452
+ }
453
+
454
+ RCT_EXPORT_METHOD(getGeofences:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
455
+ {
456
+ [locationManager getGeofences:^(NSArray* geofences) {
457
+ NSMutableArray *result = [NSMutableArray new];
458
+ for (TSGeofence *geofence in geofences) { [result addObject:[geofence toDictionary]]; }
459
+ success(@[result]);
460
+ } failure:^(NSString* error) {
461
+ failure(@[error]);
462
+ }];
463
+ }
464
+
465
+ RCT_EXPORT_METHOD(getGeofence:(NSString*)identifier success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
466
+ {
467
+ [locationManager getGeofence:identifier success:^(TSGeofence* geofence) {
468
+ success(@[[geofence toDictionary]]);
469
+ } failure:^(NSString* error) {
470
+ failure(@[error]);
471
+ }];
472
+ }
473
+
474
+ RCT_EXPORT_METHOD(geofenceExists:(NSString*)identifier callback:(RCTResponseSenderBlock)callback)
475
+ {
476
+ [locationManager geofenceExists:identifier callback:^(BOOL exists) {
477
+ callback(@[@(exists)]);
478
+ }];
479
+ }
480
+
481
+ RCT_EXPORT_METHOD(addGeofence:(NSDictionary*)params success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
482
+ {
483
+ TSGeofence *geofence = [self buildGeofence:params];
484
+ if (!geofence) {
485
+ NSString *error = [NSString stringWithFormat:@"Invalid geofence data: %@", params];
486
+ failure(@[error]);
487
+ return;
488
+ }
489
+ [locationManager addGeofence:geofence success:^{
490
+ success(@[]);
491
+ } failure:^(NSString *error) {
492
+ failure(@[error]);
493
+ }];
494
+ }
495
+
496
+ RCT_EXPORT_METHOD(addGeofences:(NSArray*) data success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
497
+ {
498
+ NSMutableArray *geofences = [NSMutableArray new];
499
+ for (NSDictionary *params in data) {
500
+ TSGeofence *geofence = [self buildGeofence:params];
501
+ if (geofence != nil) {
502
+ [geofences addObject:geofence];
503
+ } else {
504
+ NSString *error = [NSString stringWithFormat:@"Invalid geofence data: %@", params];
505
+ failure(@[error]);
506
+ return;
507
+ }
508
+ }
509
+ [locationManager addGeofences:geofences success:^{
510
+ success(@[]);
511
+ } failure:^(NSString *error) {
512
+ failure(@[error]);
513
+ }];
514
+ }
515
+
516
+ -(TSGeofence*) buildGeofence:(NSDictionary*)params {
517
+ if (!params[@"identifier"] || !params[@"radius"] || !params[@"latitude"] || !params[@"longitude"]) {
518
+ return nil;
519
+ }
520
+ return [[TSGeofence alloc] initWithIdentifier: params[@"identifier"]
521
+ radius: [params[@"radius"] doubleValue]
522
+ latitude: [params[@"latitude"] doubleValue]
523
+ longitude: [params[@"longitude"] doubleValue]
524
+ notifyOnEntry: (params[@"notifyOnEntry"]) ? [params[@"notifyOnEntry"] boolValue] : NO
525
+ notifyOnExit: (params[@"notifyOnExit"]) ? [params[@"notifyOnExit"] boolValue] : NO
526
+ notifyOnDwell: (params[@"notifyOnDwell"]) ? [params[@"notifyOnDwell"] boolValue] : NO
527
+ loiteringDelay: (params[@"loiteringDelay"]) ? [params[@"loiteringDelay"] doubleValue] : 0
528
+ extras: params[@"extras"]];
529
+ }
530
+
531
+ RCT_EXPORT_METHOD(removeGeofence:(NSString*)identifier success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
532
+ {
533
+ [locationManager removeGeofence:identifier success:^{
534
+ success(@[]);
535
+ } failure:^(NSString* error) {
536
+ failure(@[error]);
537
+ }];
538
+ }
539
+
540
+ RCT_EXPORT_METHOD(removeGeofences:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
541
+ {
542
+ NSArray *geofences = @[];
543
+ [locationManager removeGeofences:geofences success:^{
544
+ success(@[]);
545
+ } failure:^(NSString* error) {
546
+ failure(@[error]);
547
+ }];
548
+ }
549
+
550
+ RCT_EXPORT_METHOD(getOdometer:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
551
+ {
552
+ NSNumber *distance = @([locationManager getOdometer]);
553
+ success(@[distance]);
554
+ }
555
+
556
+ RCT_EXPORT_METHOD(setOdometer:(double)value success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
557
+ {
558
+ TSCurrentPositionRequest *request = [[TSCurrentPositionRequest alloc] initWithSuccess:^(TSLocation *location) {
559
+ success(@[[location toDictionary]]);
560
+ } failure:^(NSError *error) {
561
+ failure(@[@(error.code)]);
562
+ }];
563
+ [locationManager setOdometer:value request:request];
564
+ }
565
+
566
+ RCT_EXPORT_METHOD(destroyLocations:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
567
+ {
568
+ BOOL result = [locationManager destroyLocations];
569
+ if (result) {
570
+ success(@[]);
571
+ } else {
572
+ failure(@[]);
573
+ }
574
+ }
575
+
576
+ RCT_EXPORT_METHOD(destroyLocation:(NSString*)uuid success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
577
+ {
578
+ [locationManager destroyLocation:uuid success:^{
579
+ success(@[]);
580
+ } failure:^(NSString* error) {
581
+ failure(@[error]);
582
+ }];
583
+ }
584
+
585
+ RCT_EXPORT_METHOD(getCount:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
586
+ {
587
+ int count = [locationManager getCount];
588
+ if (count >= 0) {
589
+ success(@[@(count)]);
590
+ } else {
591
+ failure(@[]);
592
+ }
593
+ }
594
+
595
+ RCT_EXPORT_METHOD(insertLocation:(NSDictionary*)params success:(RCTResponseSenderBlock)successCallback failure:(RCTResponseSenderBlock)failureCallback)
596
+ {
597
+ [locationManager insertLocation: params success:^(NSString* uuid) {
598
+ successCallback(@[uuid]);
599
+ } failure:^(NSString* error) {
600
+ failureCallback(@[error]);
601
+ }];
602
+ }
603
+
604
+ RCT_EXPORT_METHOD(getLog:(NSDictionary*)params success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
605
+ {
606
+ LogQuery *query = [[LogQuery alloc] initWithDictionary:params];
607
+ [locationManager getLog:query success:^(NSString* log) {
608
+ success(@[log]);
609
+ } failure:^(NSString* error) {
610
+ failure(@[error]);
611
+ }];
612
+ }
613
+
614
+ RCT_EXPORT_METHOD(destroyLog:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
615
+ {
616
+ BOOL result = [locationManager destroyLog];
617
+ if (result) {
618
+ success(@[@(result)]);
619
+ } else {
620
+ failure(@[@(result)]);
621
+ }
622
+ }
623
+
624
+ RCT_EXPORT_METHOD(emailLog:(NSString*)email query:(NSDictionary*)params success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
625
+ {
626
+ LogQuery *query = [[LogQuery alloc] initWithDictionary:params];
627
+ [locationManager emailLog:email query:query success:^{
628
+ success(@[@(YES)]);
629
+ } failure:^(NSString* error) {
630
+ failure(@[error]);
631
+ }];
632
+ }
633
+
634
+ RCT_EXPORT_METHOD(uploadLog:(NSString*)url query:(NSDictionary*)params success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
635
+ {
636
+ LogQuery *query = [[LogQuery alloc] initWithDictionary:params];
637
+ [locationManager uploadLog:url query:query success:^{
638
+ success(@[@(YES)]);
639
+ } failure:^(NSString* error) {
640
+ failure(@[error]);
641
+ }];
642
+ }
643
+
644
+
645
+ RCT_EXPORT_METHOD(log:(NSString*)level message:(NSString*)message)
646
+ {
647
+ [locationManager log:level message:message];
648
+ }
649
+
650
+ RCT_EXPORT_METHOD(getSensors:(RCTResponseSenderBlock)successCallback failure:(RCTResponseSenderBlock)failureCallback)
651
+ {
652
+ NSDictionary *sensors = @{
653
+ @"platform": @"ios",
654
+ @"accelerometer": @([locationManager isAccelerometerAvailable]),
655
+ @"gyroscope": @([locationManager isGyroAvailable]),
656
+ @"magnetometer": @([locationManager isMagnetometerAvailable]),
657
+ @"motion_hardware": @([locationManager isMotionHardwareAvailable])
658
+ };
659
+ successCallback(@[sensors]);
660
+ }
661
+
662
+ RCT_EXPORT_METHOD(getDeviceInfo:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure) {
663
+ TSDeviceInfo *deviceInfo = [TSDeviceInfo sharedInstance];
664
+ success(@[[deviceInfo toDictionary:@"react-native"]]);
665
+ }
666
+
667
+ RCT_EXPORT_METHOD(isPowerSaveMode:(RCTResponseSenderBlock)successCallback failure:(RCTResponseSenderBlock)failure)
668
+ {
669
+ BOOL isPowerSaveMode = [locationManager isPowerSaveMode];
670
+ successCallback(@[@(isPowerSaveMode)]);
671
+ }
672
+
673
+ RCT_EXPORT_METHOD(isIgnoringBatteryOptimizations:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
674
+ {
675
+ success(@[@(NO)]);
676
+ }
677
+
678
+ RCT_EXPORT_METHOD(requestSettings:(NSDictionary*)args success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
679
+ {
680
+ failure(@[@"No iOS Implementation"]);
681
+ }
682
+
683
+ RCT_EXPORT_METHOD(showSettings:(NSDictionary*)args success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure)
684
+ {
685
+ failure(@[@"No iOS Implementation"]);
686
+ }
687
+
688
+ RCT_EXPORT_METHOD(getProviderState:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure) {
689
+ TSProviderChangeEvent *event = [locationManager getProviderState];
690
+ success(@[[event toDictionary]]);
691
+ }
692
+
693
+ RCT_EXPORT_METHOD(requestPermission:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure) {
694
+ [locationManager requestPermission:^(NSNumber *status) {
695
+ success(@[status]);
696
+ } failure:^(NSNumber *status) {
697
+ failure(@[status]);
698
+ }];
699
+ }
700
+
701
+ RCT_EXPORT_METHOD(requestTemporaryFullAccuracy:(NSString*)purpose success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure) {
702
+ [locationManager requestTemporaryFullAccuracy:purpose success:^(NSInteger accuracyAuthorization) {
703
+ success(@[@(accuracyAuthorization)]);
704
+ } failure:^(NSError *error) {
705
+ failure(error.userInfo[@"NSDebugDescription"]);
706
+ }];
707
+ }
708
+
709
+ RCT_EXPORT_METHOD(getTransistorToken:(NSString*)orgname username:(NSString*)username url:(NSString*)url success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure) {
710
+
711
+ [TransistorAuthorizationToken findOrCreateWithOrg:orgname
712
+ username:username
713
+ url:url
714
+ framework:@"react-native"
715
+ success:^(TransistorAuthorizationToken *token) {
716
+ success(@[[token toDictionary]]);
717
+ } failure:^(NSError *error) {
718
+ failure(@[@{@"status":@(error.code), @"message":error.localizedDescription}]);
719
+ }];
720
+ }
721
+
722
+ RCT_EXPORT_METHOD(destroyTransistorToken:(NSString*)url success:(RCTResponseSenderBlock)success failure:(RCTResponseSenderBlock)failure) {
723
+ [TransistorAuthorizationToken destroyWithUrl:url];
724
+ success(@[@(YES)]);
725
+ }
726
+
727
+ RCT_EXPORT_METHOD(playSound:(int)soundId)
728
+ {
729
+ [locationManager playSound: soundId];
730
+ }
731
+
732
+ -(void) sendEvent:(NSString*)event body:(id)body
733
+ {
734
+ [self sendEventWithName:event body:body];
735
+ }
736
+
737
+ - (void)invalidate
738
+ {
739
+ @synchronized(listeners) { [listeners removeAllObjects]; }
740
+ [locationManager removeListeners];
741
+ dispatch_async(dispatch_get_main_queue(), ^{
742
+ [self.locationManager stopWatchPosition];
743
+ });
744
+ }
745
+
746
+ - (void)dealloc
747
+ {
748
+ @synchronized(listeners) { [listeners removeAllObjects]; }
749
+ [locationManager removeListeners];
750
+ locationManager = nil;
751
+ }
752
+
753
+
754
+ @end