react-native-nitro-background-geolocation 0.1.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 (306) hide show
  1. package/NitroBackgroundGeolocation.podspec +29 -0
  2. package/android/CMakeLists.txt +24 -0
  3. package/android/build.gradle +133 -0
  4. package/android/src/main/AndroidManifest.xml +65 -0
  5. package/android/src/main/cpp/cpp-adapter.cpp +11 -0
  6. package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/ConfigMapper.kt +332 -0
  7. package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/HeadlessTaskRegistry.kt +23 -0
  8. package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/HeadlessTaskService.kt +66 -0
  9. package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/NitroBackgroundGeolocation.kt +538 -0
  10. package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/NitroBackgroundGeolocationPackage.kt +22 -0
  11. package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/ReactNativeHeadlessTaskRunner.kt +62 -0
  12. package/android/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java +542 -0
  13. package/android/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java +59 -0
  14. package/android/src/main/java/com/marianhello/bgloc/Config.java +652 -0
  15. package/android/src/main/java/com/marianhello/bgloc/ConnectivityListener.java +5 -0
  16. package/android/src/main/java/com/marianhello/bgloc/HttpPostService.java +168 -0
  17. package/android/src/main/java/com/marianhello/bgloc/LocationManager.java +138 -0
  18. package/android/src/main/java/com/marianhello/bgloc/PluginDelegate.java +19 -0
  19. package/android/src/main/java/com/marianhello/bgloc/PluginException.java +38 -0
  20. package/android/src/main/java/com/marianhello/bgloc/PostLocationTask.java +186 -0
  21. package/android/src/main/java/com/marianhello/bgloc/ResourceResolver.java +55 -0
  22. package/android/src/main/java/com/marianhello/bgloc/data/AbstractLocationTemplate.java +69 -0
  23. package/android/src/main/java/com/marianhello/bgloc/data/ArrayListLocationTemplate.java +88 -0
  24. package/android/src/main/java/com/marianhello/bgloc/data/BackgroundActivity.java +108 -0
  25. package/android/src/main/java/com/marianhello/bgloc/data/BackgroundLocation.java +994 -0
  26. package/android/src/main/java/com/marianhello/bgloc/data/ConfigurationDAO.java +13 -0
  27. package/android/src/main/java/com/marianhello/bgloc/data/DAOFactory.java +17 -0
  28. package/android/src/main/java/com/marianhello/bgloc/data/HashMapLocationTemplate.java +82 -0
  29. package/android/src/main/java/com/marianhello/bgloc/data/LocationDAO.java +22 -0
  30. package/android/src/main/java/com/marianhello/bgloc/data/LocationTemplate.java +12 -0
  31. package/android/src/main/java/com/marianhello/bgloc/data/LocationTemplateFactory.java +65 -0
  32. package/android/src/main/java/com/marianhello/bgloc/data/LocationTransform.java +19 -0
  33. package/android/src/main/java/com/marianhello/bgloc/data/provider/ContentProviderLocationDAO.java +395 -0
  34. package/android/src/main/java/com/marianhello/bgloc/data/provider/LocationContentProvider.java +321 -0
  35. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationContract.java +76 -0
  36. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationDAO.java +160 -0
  37. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationContract.java +112 -0
  38. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationDAO.java +506 -0
  39. package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java +151 -0
  40. package/android/src/main/java/com/marianhello/bgloc/headless/AbstractTaskRunner.java +15 -0
  41. package/android/src/main/java/com/marianhello/bgloc/headless/ActivityTask.java +48 -0
  42. package/android/src/main/java/com/marianhello/bgloc/headless/JsCallback.java +10 -0
  43. package/android/src/main/java/com/marianhello/bgloc/headless/LocationTask.java +61 -0
  44. package/android/src/main/java/com/marianhello/bgloc/headless/StationaryTask.java +25 -0
  45. package/android/src/main/java/com/marianhello/bgloc/headless/Task.java +8 -0
  46. package/android/src/main/java/com/marianhello/bgloc/headless/TaskRunner.java +5 -0
  47. package/android/src/main/java/com/marianhello/bgloc/headless/TaskRunnerFactory.java +8 -0
  48. package/android/src/main/java/com/marianhello/bgloc/provider/AbstractLocationProvider.java +171 -0
  49. package/android/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java +280 -0
  50. package/android/src/main/java/com/marianhello/bgloc/provider/DistanceFilterLocationProvider.java +586 -0
  51. package/android/src/main/java/com/marianhello/bgloc/provider/LocationProvider.java +32 -0
  52. package/android/src/main/java/com/marianhello/bgloc/provider/LocationProviderFactory.java +47 -0
  53. package/android/src/main/java/com/marianhello/bgloc/provider/ProviderDelegate.java +12 -0
  54. package/android/src/main/java/com/marianhello/bgloc/provider/RawLocationProvider.java +142 -0
  55. package/android/src/main/java/com/marianhello/bgloc/service/LocationService.java +17 -0
  56. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceImpl.java +760 -0
  57. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceInfo.java +6 -0
  58. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceInfoImpl.java +41 -0
  59. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceIntentBuilder.java +203 -0
  60. package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceProxy.java +140 -0
  61. package/android/src/main/java/com/marianhello/bgloc/sync/AccountHelper.java +39 -0
  62. package/android/src/main/java/com/marianhello/bgloc/sync/Authenticator.java +68 -0
  63. package/android/src/main/java/com/marianhello/bgloc/sync/AuthenticatorService.java +28 -0
  64. package/android/src/main/java/com/marianhello/bgloc/sync/BatchManager.java +246 -0
  65. package/android/src/main/java/com/marianhello/bgloc/sync/NotificationHelper.java +148 -0
  66. package/android/src/main/java/com/marianhello/bgloc/sync/SyncAdapter.java +233 -0
  67. package/android/src/main/java/com/marianhello/bgloc/sync/SyncService.java +68 -0
  68. package/android/src/main/java/com/marianhello/logging/DBLogReader.java +203 -0
  69. package/android/src/main/java/com/marianhello/logging/LogEntry.java +99 -0
  70. package/android/src/main/java/com/marianhello/logging/LoggerManager.java +70 -0
  71. package/android/src/main/java/com/marianhello/logging/UncaughtExceptionLogger.java +36 -0
  72. package/android/src/main/java/com/marianhello/utils/CloneHelper.java +22 -0
  73. package/android/src/main/java/com/marianhello/utils/Convert.java +56 -0
  74. package/android/src/main/java/com/marianhello/utils/TextUtils.java +72 -0
  75. package/android/src/main/java/com/marianhello/utils/ToneGenerator.java +68 -0
  76. package/android/src/main/java/org/apache/commons/io/Charsets.java +153 -0
  77. package/android/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java +344 -0
  78. package/android/src/main/java/org/chromium/content/browser/ThreadUtils.java +134 -0
  79. package/android/src/main/java/ru/andremoniy/sqlbuilder/SqlExpression.java +398 -0
  80. package/android/src/main/java/ru/andremoniy/sqlbuilder/SqlSelectStatement.java +671 -0
  81. package/android/src/main/java/ru/andremoniy/sqlbuilder/SqlStatement.java +29 -0
  82. package/android/src/main/java/ru/andremoniy/utils/TextUtils.java +61 -0
  83. package/android/src/main/res/values/strings.xml +6 -0
  84. package/android/src/main/res/xml/authenticator.xml +7 -0
  85. package/android/src/main/res/xml/syncadapter.xml +9 -0
  86. package/app.plugin.js +64 -0
  87. package/ios/NitroBackgroundGeolocation.swift +719 -0
  88. package/ios/NitroBackgroundGeolocationBootstrap.m +98 -0
  89. package/ios/common/BackgroundGeolocation/CocoaLumberjack.h +1945 -0
  90. package/ios/common/BackgroundGeolocation/CocoaLumberjack.m +5255 -0
  91. package/ios/common/BackgroundGeolocation/FMDB.h +2357 -0
  92. package/ios/common/BackgroundGeolocation/FMDB.m +2672 -0
  93. package/ios/common/BackgroundGeolocation/FMDBLogger.h +42 -0
  94. package/ios/common/BackgroundGeolocation/FMDBLogger.m +264 -0
  95. package/ios/common/BackgroundGeolocation/INTULocationManager/INTUHeadingRequest.h +41 -0
  96. package/ios/common/BackgroundGeolocation/INTULocationManager/INTUHeadingRequest.m +68 -0
  97. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager+Internal.h +33 -0
  98. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager.h +178 -0
  99. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager.m +1025 -0
  100. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequest.h +103 -0
  101. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequest.m +238 -0
  102. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequestDefines.h +163 -0
  103. package/ios/common/BackgroundGeolocation/INTULocationManager/INTURequestIDGenerator.h +39 -0
  104. package/ios/common/BackgroundGeolocation/INTULocationManager/INTURequestIDGenerator.m +37 -0
  105. package/ios/common/BackgroundGeolocation/MAURAbstractLocationProvider.h +51 -0
  106. package/ios/common/BackgroundGeolocation/MAURAbstractLocationProvider.m +53 -0
  107. package/ios/common/BackgroundGeolocation/MAURActivity.h +23 -0
  108. package/ios/common/BackgroundGeolocation/MAURActivity.m +52 -0
  109. package/ios/common/BackgroundGeolocation/MAURActivityLocationProvider.h +18 -0
  110. package/ios/common/BackgroundGeolocation/MAURActivityLocationProvider.m +202 -0
  111. package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.h +62 -0
  112. package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +650 -0
  113. package/ios/common/BackgroundGeolocation/MAURBackgroundSync.h +34 -0
  114. package/ios/common/BackgroundGeolocation/MAURBackgroundSync.m +184 -0
  115. package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.h +25 -0
  116. package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.m +105 -0
  117. package/ios/common/BackgroundGeolocation/MAURConfig.h +74 -0
  118. package/ios/common/BackgroundGeolocation/MAURConfig.m +485 -0
  119. package/ios/common/BackgroundGeolocation/MAURConfigurationContract.h +49 -0
  120. package/ios/common/BackgroundGeolocation/MAURConfigurationContract.m +51 -0
  121. package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.h +20 -0
  122. package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.m +523 -0
  123. package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.h +17 -0
  124. package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.m +97 -0
  125. package/ios/common/BackgroundGeolocation/MAURLocation.h +59 -0
  126. package/ios/common/BackgroundGeolocation/MAURLocation.m +349 -0
  127. package/ios/common/BackgroundGeolocation/MAURLocationContract.h +34 -0
  128. package/ios/common/BackgroundGeolocation/MAURLocationContract.m +35 -0
  129. package/ios/common/BackgroundGeolocation/MAURLocationManager.h +53 -0
  130. package/ios/common/BackgroundGeolocation/MAURLocationManager.m +308 -0
  131. package/ios/common/BackgroundGeolocation/MAURLogReader.h +26 -0
  132. package/ios/common/BackgroundGeolocation/MAURLogReader.m +122 -0
  133. package/ios/common/BackgroundGeolocation/MAURLogging.h +19 -0
  134. package/ios/common/BackgroundGeolocation/MAURPostLocationTask.h +40 -0
  135. package/ios/common/BackgroundGeolocation/MAURPostLocationTask.m +218 -0
  136. package/ios/common/BackgroundGeolocation/MAURProviderDelegate.h +52 -0
  137. package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.h +18 -0
  138. package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.m +129 -0
  139. package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.h +26 -0
  140. package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.m +278 -0
  141. package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.h +57 -0
  142. package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.m +93 -0
  143. package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.h +38 -0
  144. package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.m +380 -0
  145. package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.h +32 -0
  146. package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.m +276 -0
  147. package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.h +20 -0
  148. package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.m +62 -0
  149. package/ios/common/BackgroundGeolocation/Reachability.h +102 -0
  150. package/ios/common/BackgroundGeolocation/Reachability.m +474 -0
  151. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOLocationManager.h +80 -0
  152. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOLocationManager.m +147 -0
  153. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionActivity.h +30 -0
  154. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionActivity.m +42 -0
  155. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionDetector.h +99 -0
  156. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionDetector.m +327 -0
  157. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOStepDetector.h +44 -0
  158. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOStepDetector.m +94 -0
  159. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/ext/NSString+ZIMString.h +55 -0
  160. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/ext/NSString+ZIMString.m +47 -0
  161. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlDataManipulationCommand.h +27 -0
  162. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlExpression.h +250 -0
  163. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlExpression.m +259 -0
  164. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlSelectStatement.h +360 -0
  165. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlSelectStatement.m +427 -0
  166. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlStatement.h +37 -0
  167. package/lib/module/NitroBackgroundGeolocation.nitro.js +172 -0
  168. package/lib/module/NitroBackgroundGeolocation.nitro.js.map +1 -0
  169. package/lib/module/headless.js +72 -0
  170. package/lib/module/headless.js.map +1 -0
  171. package/lib/module/index.js +60 -0
  172. package/lib/module/index.js.map +1 -0
  173. package/lib/module/package.json +1 -0
  174. package/lib/typescript/package.json +1 -0
  175. package/lib/typescript/src/NitroBackgroundGeolocation.nitro.d.ts +616 -0
  176. package/lib/typescript/src/NitroBackgroundGeolocation.nitro.d.ts.map +1 -0
  177. package/lib/typescript/src/headless.d.ts +40 -0
  178. package/lib/typescript/src/headless.d.ts.map +1 -0
  179. package/lib/typescript/src/index.d.ts +8 -0
  180. package/lib/typescript/src/index.d.ts.map +1 -0
  181. package/nitro.json +23 -0
  182. package/nitrogen/generated/android/c++/JActivity.hpp +61 -0
  183. package/nitrogen/generated/android/c++/JAuthorizationStatus.hpp +61 -0
  184. package/nitrogen/generated/android/c++/JBackgroundGeolocationError.hpp +61 -0
  185. package/nitrogen/generated/android/c++/JConfigureOptions.hpp +179 -0
  186. package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
  187. package/nitrogen/generated/android/c++/JFunc_void_Activity.hpp +78 -0
  188. package/nitrogen/generated/android/c++/JFunc_void_AuthorizationStatus.hpp +77 -0
  189. package/nitrogen/generated/android/c++/JFunc_void_BackgroundGeolocationError.hpp +78 -0
  190. package/nitrogen/generated/android/c++/JFunc_void_Location.hpp +78 -0
  191. package/nitrogen/generated/android/c++/JFunc_void_StationaryLocation.hpp +78 -0
  192. package/nitrogen/generated/android/c++/JHybridNitroBackgroundGeolocationSpec.cpp +530 -0
  193. package/nitrogen/generated/android/c++/JHybridNitroBackgroundGeolocationSpec.hpp +90 -0
  194. package/nitrogen/generated/android/c++/JLocation.hpp +105 -0
  195. package/nitrogen/generated/android/c++/JLocationAccuracy.hpp +64 -0
  196. package/nitrogen/generated/android/c++/JLocationOptions.hpp +65 -0
  197. package/nitrogen/generated/android/c++/JLocationProvider.hpp +61 -0
  198. package/nitrogen/generated/android/c++/JLogEntry.hpp +73 -0
  199. package/nitrogen/generated/android/c++/JNativeLogLevel.hpp +67 -0
  200. package/nitrogen/generated/android/c++/JServiceStatus.hpp +66 -0
  201. package/nitrogen/generated/android/c++/JStationaryLocation.hpp +109 -0
  202. package/nitrogen/generated/android/c++/JVariant_NullType_AnyMap.cpp +26 -0
  203. package/nitrogen/generated/android/c++/JVariant_NullType_AnyMap.hpp +71 -0
  204. package/nitrogen/generated/android/c++/JVariant_NullType_Boolean.cpp +26 -0
  205. package/nitrogen/generated/android/c++/JVariant_NullType_Boolean.hpp +69 -0
  206. package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
  207. package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
  208. package/nitrogen/generated/android/c++/JVariant_NullType_LocationAccuracy.cpp +26 -0
  209. package/nitrogen/generated/android/c++/JVariant_NullType_LocationAccuracy.hpp +71 -0
  210. package/nitrogen/generated/android/c++/JVariant_NullType_LocationProvider.cpp +26 -0
  211. package/nitrogen/generated/android/c++/JVariant_NullType_LocationProvider.hpp +71 -0
  212. package/nitrogen/generated/android/c++/JVariant_NullType_Map_String__String_.cpp +33 -0
  213. package/nitrogen/generated/android/c++/JVariant_NullType_Map_String__String_.hpp +77 -0
  214. package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +26 -0
  215. package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +70 -0
  216. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Activity.kt +56 -0
  217. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/AuthorizationStatus.kt +24 -0
  218. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/BackgroundGeolocationError.kt +56 -0
  219. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/ConfigureOptions.kt +182 -0
  220. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void.kt +80 -0
  221. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_Activity.kt +80 -0
  222. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_AuthorizationStatus.kt +80 -0
  223. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_BackgroundGeolocationError.kt +80 -0
  224. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_Location.kt +80 -0
  225. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_StationaryLocation.kt +80 -0
  226. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/HybridNitroBackgroundGeolocationSpec.kt +218 -0
  227. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Location.kt +111 -0
  228. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/LocationAccuracy.kt +25 -0
  229. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/LocationOptions.kt +61 -0
  230. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/LocationProvider.kt +24 -0
  231. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/LogEntry.kt +71 -0
  232. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/NativeLogLevel.kt +26 -0
  233. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/ServiceStatus.kt +61 -0
  234. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/StationaryLocation.kt +116 -0
  235. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_AnyMap.kt +63 -0
  236. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_Boolean.kt +62 -0
  237. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_Double.kt +62 -0
  238. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_LocationAccuracy.kt +62 -0
  239. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_LocationProvider.kt +62 -0
  240. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_Map_String__String_.kt +62 -0
  241. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_String.kt +62 -0
  242. package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/nitrobackgroundgeolocationOnLoad.kt +35 -0
  243. package/nitrogen/generated/android/nitrobackgroundgeolocation+autolinking.cmake +88 -0
  244. package/nitrogen/generated/android/nitrobackgroundgeolocation+autolinking.gradle +27 -0
  245. package/nitrogen/generated/android/nitrobackgroundgeolocationOnLoad.cpp +66 -0
  246. package/nitrogen/generated/android/nitrobackgroundgeolocationOnLoad.hpp +34 -0
  247. package/nitrogen/generated/ios/NitroBackgroundGeolocation+autolinking.rb +62 -0
  248. package/nitrogen/generated/ios/NitroBackgroundGeolocation-Swift-Cxx-Bridge.cpp +129 -0
  249. package/nitrogen/generated/ios/NitroBackgroundGeolocation-Swift-Cxx-Bridge.hpp +911 -0
  250. package/nitrogen/generated/ios/NitroBackgroundGeolocation-Swift-Cxx-Umbrella.hpp +88 -0
  251. package/nitrogen/generated/ios/NitroBackgroundGeolocationAutolinking.mm +33 -0
  252. package/nitrogen/generated/ios/NitroBackgroundGeolocationAutolinking.swift +26 -0
  253. package/nitrogen/generated/ios/c++/HybridNitroBackgroundGeolocationSpecSwift.cpp +11 -0
  254. package/nitrogen/generated/ios/c++/HybridNitroBackgroundGeolocationSpecSwift.hpp +335 -0
  255. package/nitrogen/generated/ios/swift/Activity.swift +34 -0
  256. package/nitrogen/generated/ios/swift/AuthorizationStatus.swift +44 -0
  257. package/nitrogen/generated/ios/swift/BackgroundGeolocationError.swift +34 -0
  258. package/nitrogen/generated/ios/swift/ConfigureOptions.swift +1037 -0
  259. package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
  260. package/nitrogen/generated/ios/swift/Func_void_Activity.swift +46 -0
  261. package/nitrogen/generated/ios/swift/Func_void_AuthorizationStatus.swift +46 -0
  262. package/nitrogen/generated/ios/swift/Func_void_BackgroundGeolocationError.swift +46 -0
  263. package/nitrogen/generated/ios/swift/Func_void_ConfigureOptions.swift +46 -0
  264. package/nitrogen/generated/ios/swift/Func_void_Location.swift +46 -0
  265. package/nitrogen/generated/ios/swift/Func_void_ServiceStatus.swift +46 -0
  266. package/nitrogen/generated/ios/swift/Func_void_StationaryLocation.swift +46 -0
  267. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
  268. package/nitrogen/generated/ios/swift/Func_void_std__optional_StationaryLocation_.swift +46 -0
  269. package/nitrogen/generated/ios/swift/Func_void_std__vector_Location_.swift +46 -0
  270. package/nitrogen/generated/ios/swift/Func_void_std__vector_LogEntry_.swift +46 -0
  271. package/nitrogen/generated/ios/swift/HybridNitroBackgroundGeolocationSpec.swift +82 -0
  272. package/nitrogen/generated/ios/swift/HybridNitroBackgroundGeolocationSpec_cxx.swift +675 -0
  273. package/nitrogen/generated/ios/swift/Location.swift +89 -0
  274. package/nitrogen/generated/ios/swift/LocationAccuracy.swift +48 -0
  275. package/nitrogen/generated/ios/swift/LocationOptions.swift +78 -0
  276. package/nitrogen/generated/ios/swift/LocationProvider.swift +44 -0
  277. package/nitrogen/generated/ios/swift/LogEntry.swift +49 -0
  278. package/nitrogen/generated/ios/swift/NativeLogLevel.swift +52 -0
  279. package/nitrogen/generated/ios/swift/ServiceStatus.swift +39 -0
  280. package/nitrogen/generated/ios/swift/StationaryLocation.swift +94 -0
  281. package/nitrogen/generated/ios/swift/Variant_NullType_AnyMap.swift +30 -0
  282. package/nitrogen/generated/ios/swift/Variant_NullType_Bool.swift +30 -0
  283. package/nitrogen/generated/ios/swift/Variant_NullType_Dictionary_String__String_.swift +30 -0
  284. package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +30 -0
  285. package/nitrogen/generated/ios/swift/Variant_NullType_LocationAccuracy.swift +30 -0
  286. package/nitrogen/generated/ios/swift/Variant_NullType_LocationProvider.swift +30 -0
  287. package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +30 -0
  288. package/nitrogen/generated/shared/c++/Activity.hpp +87 -0
  289. package/nitrogen/generated/shared/c++/AuthorizationStatus.hpp +63 -0
  290. package/nitrogen/generated/shared/c++/BackgroundGeolocationError.hpp +87 -0
  291. package/nitrogen/generated/shared/c++/ConfigureOptions.hpp +197 -0
  292. package/nitrogen/generated/shared/c++/HybridNitroBackgroundGeolocationSpec.cpp +48 -0
  293. package/nitrogen/generated/shared/c++/HybridNitroBackgroundGeolocationSpec.hpp +121 -0
  294. package/nitrogen/generated/shared/c++/Location.hpp +131 -0
  295. package/nitrogen/generated/shared/c++/LocationAccuracy.hpp +69 -0
  296. package/nitrogen/generated/shared/c++/LocationOptions.hpp +91 -0
  297. package/nitrogen/generated/shared/c++/LocationProvider.hpp +63 -0
  298. package/nitrogen/generated/shared/c++/LogEntry.hpp +99 -0
  299. package/nitrogen/generated/shared/c++/NativeLogLevel.hpp +65 -0
  300. package/nitrogen/generated/shared/c++/ServiceStatus.hpp +92 -0
  301. package/nitrogen/generated/shared/c++/StationaryLocation.hpp +135 -0
  302. package/package.json +112 -0
  303. package/react-native.config.js +10 -0
  304. package/src/NitroBackgroundGeolocation.nitro.ts +656 -0
  305. package/src/headless.ts +91 -0
  306. package/src/index.tsx +100 -0
@@ -0,0 +1,278 @@
1
+ //
2
+ // MAURSQLiteConfigurationDAO.m
3
+ // BackgroundGeolocation
4
+ //
5
+ // Created by Marian Hello on 01/12/2017.
6
+ // Copyright © 2017 mauron85. All rights reserved.
7
+ //
8
+
9
+ #import <sqlite3.h>
10
+ #import <CoreLocation/CoreLocation.h>
11
+ #import "MAURSQLiteHelper.h"
12
+ #import "MAURGeolocationOpenHelper.h"
13
+ #import "MAURSQLiteConfigurationDAO.h"
14
+ #import "MAURConfigurationContract.h"
15
+ #import "MAURConfig.h"
16
+
17
+ @implementation MAURSQLiteConfigurationDAO {
18
+ FMDatabaseQueue* queue;
19
+ MAURGeolocationOpenHelper *helper;
20
+ }
21
+
22
+ #pragma mark Singleton Methods
23
+
24
+ + (instancetype) sharedInstance
25
+ {
26
+ static MAURSQLiteConfigurationDAO *instance = nil;
27
+ static dispatch_once_t onceToken;
28
+ dispatch_once(&onceToken, ^{
29
+ instance = [[self alloc] init];
30
+ });
31
+
32
+ return instance;
33
+ }
34
+
35
+ - (id) init {
36
+ if (self = [super init]) {
37
+ helper = [[MAURGeolocationOpenHelper alloc] init];
38
+ queue = [helper getWritableDatabase];
39
+ }
40
+ return self;
41
+ }
42
+
43
+ - (BOOL) persistConfiguration:(MAURConfig*)config
44
+ {
45
+ __block BOOL success = NO;
46
+
47
+ NSError *error = nil;
48
+
49
+ NSString *httpHeadersString = [config getHttpHeadersAsString:&error];
50
+ if (error != nil) {
51
+ NSLog(@"Http headers serialization error: %@", error);
52
+ return false;
53
+ }
54
+
55
+ NSString *templateString = [config getTemplateAsString:&error];
56
+ if (error != nil) {
57
+ NSLog(@"Template serialization error: %@", error);
58
+ return false;
59
+ }
60
+
61
+ NSString *sql = @"INSERT OR REPLACE INTO " @CC_TABLE_NAME @" ("
62
+ @CC_COLUMN_NAME_ID
63
+ @COMMA_SEP @CC_COLUMN_NAME_RADIUS
64
+ @COMMA_SEP @CC_COLUMN_NAME_DISTANCE_FILTER
65
+ @COMMA_SEP @CC_COLUMN_NAME_DESIRED_ACCURACY
66
+ @COMMA_SEP @CC_COLUMN_NAME_DEBUG
67
+ @COMMA_SEP @CC_COLUMN_NAME_ACTIVITY_TYPE
68
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_TITLE
69
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_TEXT
70
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_ICON_LARGE
71
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_ICON_SMALL
72
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_COLOR
73
+ @COMMA_SEP @CC_COLUMN_NAME_STOP_TERMINATE
74
+ @COMMA_SEP @CC_COLUMN_NAME_START_BOOT
75
+ @COMMA_SEP @CC_COLUMN_NAME_START_FOREGROUND
76
+ @COMMA_SEP @CC_COLUMN_NAME_STOP_ON_STILL
77
+ @COMMA_SEP @CC_COLUMN_NAME_LOCATION_PROVIDER
78
+ @COMMA_SEP @CC_COLUMN_NAME_INTERVAL
79
+ @COMMA_SEP @CC_COLUMN_NAME_FASTEST_INTERVAL
80
+ @COMMA_SEP @CC_COLUMN_NAME_ACTIVITIES_INTERVAL
81
+ @COMMA_SEP @CC_COLUMN_NAME_URL
82
+ @COMMA_SEP @CC_COLUMN_NAME_SYNC_URL
83
+ @COMMA_SEP @CC_COLUMN_NAME_SYNC_THRESHOLD
84
+ @COMMA_SEP @CC_COLUMN_NAME_HEADERS
85
+ @COMMA_SEP @CC_COLUMN_NAME_SAVE_BATTERY
86
+ @COMMA_SEP @CC_COLUMN_NAME_MAX_LOCATIONS
87
+ @COMMA_SEP @CC_COLUMN_NAME_PAUSE_LOCATION_UPDATES
88
+ @COMMA_SEP @CC_COLUMN_NAME_TEMPLATE
89
+ @COMMA_SEP @CC_COLUMN_NAME_LAST_UPDATED_AT
90
+ @") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,DateTime('now'))";
91
+
92
+ [queue inDatabase:^(FMDatabase *database) {
93
+ success = [database executeUpdate:sql,
94
+ @(1), // config id
95
+ [config hasStationaryRadius] ? config.stationaryRadius : @CC_COLUMN_NAME_NULLABLE,
96
+ [config hasDistanceFilter] ? config.distanceFilter : @CC_COLUMN_NAME_NULLABLE,
97
+ [config hasDesiredAccuracy] ? config.desiredAccuracy : @CC_COLUMN_NAME_NULLABLE,
98
+ [config hasDebug] ? config._debug : @CC_COLUMN_NAME_NULLABLE,
99
+ [config hasActivityType] ? config.activityType : @CC_COLUMN_NAME_NULLABLE,
100
+ [NSNull null], // unsupported notificationTitle
101
+ [NSNull null], // unsupported notificationText
102
+ [NSNull null], // unsupported notificationIconLarge
103
+ [NSNull null], // unsupported notificationIconSmall
104
+ [NSNull null], // unsupported notificationIconColor
105
+ [config hasStopOnTerminate] ? config._stopOnTerminate : @CC_COLUMN_NAME_NULLABLE,
106
+ [NSNull null], // unsupported startOnBoot,
107
+ [NSNull null], // unsupported startForeground
108
+ [NSNull null], // unsupported stopOnStillActivity
109
+ [config hasLocationProvider] ? config.locationProvider : @CC_COLUMN_NAME_NULLABLE,
110
+ [NSNull null], // unsupported interval
111
+ [NSNull null], // unsupported fastestInterval
112
+ [config hasActivitiesInterval] ? config.activitiesInterval : @CC_COLUMN_NAME_NULLABLE,
113
+ [config hasUrl] ? config.url : @CC_COLUMN_NAME_NULLABLE,
114
+ [config hasSyncUrl] ? config.syncUrl : @CC_COLUMN_NAME_NULLABLE,
115
+ [config hasSyncThreshold] ? config.syncThreshold : @CC_COLUMN_NAME_NULLABLE,
116
+ (httpHeadersString != nil) ? httpHeadersString : @CC_COLUMN_NAME_NULLABLE,
117
+ [config hasSaveBatteryOnBackground] ? config._saveBatteryOnBackground : @CC_COLUMN_NAME_NULLABLE,
118
+ [config hasMaxLocations] ? config.maxLocations : @CC_COLUMN_NAME_NULLABLE,
119
+ [config hasPauseLocationUpdates] ? config._pauseLocationUpdates : @CC_COLUMN_NAME_NULLABLE,
120
+ (templateString != nil) ? templateString : @CC_COLUMN_NAME_NULLABLE
121
+ ];
122
+
123
+ if (success) {
124
+ NSLog(@"Configuration persisted succesfuly");
125
+ } else {
126
+ NSLog(@"Persisting configuration has failed code: %d: message: %@", [database lastErrorCode], [database lastErrorMessage]);
127
+ }
128
+ }];
129
+
130
+ return success;
131
+ }
132
+
133
+ - (MAURConfig*) retrieveConfiguration
134
+ {
135
+ __block MAURConfig *config = nil;
136
+
137
+ NSString *sql = @"SELECT "
138
+ CC_COLUMN_NAME_ID
139
+ @COMMA_SEP @CC_COLUMN_NAME_RADIUS
140
+ @COMMA_SEP @CC_COLUMN_NAME_DISTANCE_FILTER
141
+ @COMMA_SEP @CC_COLUMN_NAME_DESIRED_ACCURACY
142
+ @COMMA_SEP @CC_COLUMN_NAME_DEBUG
143
+ @COMMA_SEP @CC_COLUMN_NAME_ACTIVITY_TYPE
144
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_TITLE
145
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_TEXT
146
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_ICON_LARGE
147
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_ICON_SMALL
148
+ @COMMA_SEP @CC_COLUMN_NAME_NOTIF_COLOR
149
+ @COMMA_SEP @CC_COLUMN_NAME_STOP_TERMINATE
150
+ @COMMA_SEP @CC_COLUMN_NAME_START_BOOT
151
+ @COMMA_SEP @CC_COLUMN_NAME_START_FOREGROUND
152
+ @COMMA_SEP @CC_COLUMN_NAME_STOP_ON_STILL
153
+ @COMMA_SEP @CC_COLUMN_NAME_LOCATION_PROVIDER
154
+ @COMMA_SEP @CC_COLUMN_NAME_INTERVAL
155
+ @COMMA_SEP @CC_COLUMN_NAME_FASTEST_INTERVAL
156
+ @COMMA_SEP @CC_COLUMN_NAME_ACTIVITIES_INTERVAL
157
+ @COMMA_SEP @CC_COLUMN_NAME_URL
158
+ @COMMA_SEP @CC_COLUMN_NAME_SYNC_URL
159
+ @COMMA_SEP @CC_COLUMN_NAME_SYNC_THRESHOLD
160
+ @COMMA_SEP @CC_COLUMN_NAME_HEADERS
161
+ @COMMA_SEP @CC_COLUMN_NAME_SAVE_BATTERY
162
+ @COMMA_SEP @CC_COLUMN_NAME_MAX_LOCATIONS
163
+ @COMMA_SEP @CC_COLUMN_NAME_PAUSE_LOCATION_UPDATES
164
+ @COMMA_SEP @CC_COLUMN_NAME_TEMPLATE
165
+ @" FROM " @CC_TABLE_NAME @" WHERE " @CC_COLUMN_NAME_ID @" = 1";
166
+
167
+ [queue inDatabase:^(FMDatabase *database) {
168
+ FMResultSet *rs = [database executeQuery:sql];
169
+ while([rs next]) {
170
+ config = [[MAURConfig alloc] init];
171
+ if ([self isNonNull:rs columnIndex:1]) {
172
+ config.stationaryRadius = [NSNumber numberWithInt:[rs intForColumnIndex:1]];
173
+ }
174
+ if ([self isNonNull:rs columnIndex:2]) {
175
+ config.distanceFilter = [NSNumber numberWithInt:[rs intForColumnIndex:2]];
176
+ }
177
+ if ([self isNonNull:rs columnIndex:3]) {
178
+ config.desiredAccuracy = [NSNumber numberWithInt:[rs intForColumnIndex:3]];
179
+ }
180
+ if ([self isNonNull:rs columnIndex:4]) {
181
+ config._debug = [NSNumber numberWithBool:[rs intForColumnIndex:4] == 1 ? YES : NO];
182
+ }
183
+ if ([self isNonNull:rs columnIndex:5]) {
184
+ config.activityType = [rs stringForColumnIndex:5];
185
+ }
186
+ if ([self isNonNull:rs columnIndex:11]) {
187
+ config._stopOnTerminate = [NSNumber numberWithBool:[rs intForColumnIndex:11] == 1 ? YES : NO];
188
+ }
189
+ if ([self isNonNull:rs columnIndex:15]) {
190
+ config.locationProvider = [NSNumber numberWithInt:[rs intForColumnIndex:15]];
191
+ }
192
+ if ([self isNonNull:rs columnIndex:18]) {
193
+ config.activitiesInterval = [NSNumber numberWithInt:[rs intForColumnIndex:18]];
194
+ }
195
+ if ([self isNonNull:rs columnIndex:19]) {
196
+ config.url = [rs stringForColumnIndex:19];
197
+ }
198
+ if ([self isNonNull:rs columnIndex:20]) {
199
+ config.syncUrl = [rs stringForColumnIndex:20];
200
+ }
201
+ if ([self isNonNull:rs columnIndex:21]) {
202
+ config.syncThreshold = [NSNumber numberWithInt:[rs intForColumnIndex:21]];
203
+ }
204
+ if ([self isNonNull:rs columnIndex:22]) {
205
+ NSString *httpHeadersString = [rs stringForColumnIndex:22];
206
+ if (httpHeadersString != nil) {
207
+ NSData *jsonHttpHeaders = [httpHeadersString dataUsingEncoding:NSUTF8StringEncoding];
208
+ config.httpHeaders = [NSJSONSerialization JSONObjectWithData:jsonHttpHeaders options:0 error:nil];
209
+ }
210
+ }
211
+ if ([self isNonNull:rs columnIndex:23]) {
212
+ config._saveBatteryOnBackground = [NSNumber numberWithBool:[rs intForColumnIndex:23] == 1 ? YES : NO];
213
+ }
214
+ if ([self isNonNull:rs columnIndex:24]) {
215
+ config.maxLocations = [NSNumber numberWithInt:[rs intForColumnIndex:24]];
216
+ }
217
+ if ([self isNonNull:rs columnIndex:25]) {
218
+ config._pauseLocationUpdates = [NSNumber numberWithBool:[rs intForColumnIndex:25] == 1 ? YES : NO];
219
+ }
220
+ if ([self isNonNull:rs columnIndex:26]) {
221
+ NSString *templateAsString = [rs stringForColumnIndex:26];
222
+ if (templateAsString != nil) {
223
+ NSData *jsonTemplate = [templateAsString dataUsingEncoding:NSUTF8StringEncoding];
224
+ config._template = [NSJSONSerialization JSONObjectWithData:jsonTemplate options:0 error:nil];
225
+ }
226
+ }
227
+ }
228
+
229
+ [rs close];
230
+ }];
231
+
232
+ return config;
233
+ }
234
+
235
+ - (BOOL) clearDatabase
236
+ {
237
+ __block BOOL success;
238
+
239
+ [queue inDatabase:^(FMDatabase *database) {
240
+ NSString *sql = [NSString stringWithFormat: @"DELETE FROM %@", @CC_TABLE_NAME];
241
+ if (![database executeStatements:sql]) {
242
+ NSLog(@"%@ failed code: %d: message: %@", sql, [database lastErrorCode], [database lastErrorMessage]);
243
+ success = NO;
244
+ } else {
245
+ success = YES;
246
+ }
247
+ }];
248
+
249
+ return success;
250
+ }
251
+
252
+ - (NSString*) getDatabaseName
253
+ {
254
+ return [helper getDatabaseName];
255
+ }
256
+
257
+ - (NSString*) getDatabasePath
258
+ {
259
+ return [helper getDatabasePath];
260
+ }
261
+
262
+ - (BOOL) isNonNull:(FMResultSet*)resultSet columnIndex:(int)index
263
+ {
264
+ if (![[resultSet stringForColumnIndex:index] isEqualToString:@CC_COLUMN_NAME_NULLABLE]) {
265
+ return YES;
266
+ }
267
+
268
+ return NO;
269
+ }
270
+
271
+ - (void) dealloc {
272
+ [helper close];
273
+ [queue close];
274
+ helper = nil;
275
+ queue = nil;
276
+ }
277
+
278
+ @end
@@ -0,0 +1,57 @@
1
+ //
2
+ // MAURSQLiteHelper.h
3
+ // BackgroundGeolocation
4
+ //
5
+ // Created by Marian Hello on 23/06/16.
6
+ // Copyright © 2016 mauron85. All rights reserved.
7
+ //
8
+
9
+ #ifndef MAURSQLiteHelper_h
10
+ #define MAURSQLiteHelper_h
11
+
12
+ #import <Foundation/Foundation.h>
13
+
14
+ #define COMMA_SEP ","
15
+ #define SPACE_SEP " "
16
+ #define EQ_BIND "= ?"
17
+
18
+ static NSString * const Domain = @"SQLiteHelper";
19
+
20
+ typedef NS_ENUM(NSInteger, SQLType) {
21
+ kReal = 0, kInteger = 1, kText = 2, kDateTime = 3
22
+ };
23
+
24
+
25
+ @interface SQLColumnType : NSObject
26
+ {
27
+ @protected enum SQLType type;
28
+ }
29
+
30
+
31
+ @property enum SQLType type;
32
+ + (SQLColumnType*) sqlColumnWithType:(SQLType)type;
33
+ - (NSString*) asString;
34
+ @end
35
+
36
+
37
+ @interface SQLPrimaryKeyColumnType : SQLColumnType
38
+ + (SQLColumnType*) sqlColumnWithType:(SQLType)type;
39
+ - (NSString*) asString;
40
+ @end
41
+
42
+
43
+ @interface SQLPrimaryKeyAutoIncColumnType : SQLColumnType
44
+ + (SQLColumnType*) sqlColumnWithType:(SQLType)type;
45
+ - (NSString*) asString;
46
+ @end
47
+
48
+
49
+ typedef NSArray<NSDictionary<NSString*, SQLColumnType*>*> SQLColumns;
50
+
51
+
52
+ @interface MAURSQLiteHelper : NSObject
53
+ + (NSString*) createTableSqlStatement:(NSString*)tableName columns:(SQLColumns*)columns;
54
+ @end
55
+
56
+
57
+ #endif /* MAURSQLiteHelper_h */
@@ -0,0 +1,93 @@
1
+ //
2
+ // MAURSQLiteHelper.m
3
+ // BackgroundGeolocation
4
+ //
5
+ // Created by Marian Hello on 23/06/16.
6
+ // Copyright © 2016 mauron85. All rights reserved.
7
+ //
8
+
9
+ #import <Foundation/Foundation.h>
10
+ #import "MAURSQLiteHelper.h"
11
+
12
+ @implementation SQLColumnType
13
+
14
+ @synthesize type;
15
+
16
+ + (SQLColumnType*) sqlColumnWithType:(SQLType)type
17
+ {
18
+ SQLColumnType *instance = [[SQLColumnType alloc] init];
19
+ instance.type = type;
20
+ return instance;
21
+ }
22
+
23
+ - (NSString*) asString
24
+ {
25
+ switch (type) {
26
+ case kReal:
27
+ return @"REAL";
28
+ case kText:
29
+ return @"TEXT";
30
+ case kInteger:
31
+ return @"INTEGER";
32
+ case kDateTime:
33
+ return @"DATETIME";
34
+ }
35
+ }
36
+ @end
37
+
38
+
39
+ @implementation SQLPrimaryKeyColumnType : SQLColumnType
40
+ + (SQLColumnType*) sqlColumnWithType:(SQLType)type
41
+ {
42
+ SQLPrimaryKeyAutoIncColumnType *instance = [[SQLPrimaryKeyAutoIncColumnType alloc] init];
43
+ instance.type = type;
44
+ return instance;
45
+ }
46
+
47
+ - (NSString*) asString
48
+ {
49
+ return [NSString stringWithFormat:@"%@ PRIMARY KEY", [super asString]];
50
+ }
51
+ @end
52
+
53
+
54
+ @implementation SQLPrimaryKeyAutoIncColumnType : SQLColumnType
55
+ + (SQLColumnType*) sqlColumnWithType:(SQLType)type
56
+ {
57
+ SQLPrimaryKeyAutoIncColumnType *instance = [[SQLPrimaryKeyAutoIncColumnType alloc] init];
58
+ instance.type = type;
59
+ return instance;
60
+ }
61
+
62
+ - (NSString*) asString
63
+ {
64
+ return [NSString stringWithFormat:@"%@ PRIMARY KEY AUTOINCREMENT", [super asString]];
65
+ }
66
+ @end
67
+
68
+
69
+ @implementation MAURSQLiteHelper
70
+
71
+ + (NSString*) createTableSqlStatement:(NSString*)tableName columns:(SQLColumns*)columns
72
+ {
73
+ NSMutableArray *sql = [NSMutableArray arrayWithObject: @"CREATE TABLE IF NOT EXISTS"];
74
+ [sql addObjectsFromArray: @[tableName, @"("]];
75
+ NSEnumerator *enumerator = [columns objectEnumerator];
76
+ id column = [enumerator nextObject];
77
+ while (nil != column) {
78
+ NSString *columnName = [column objectForKey: @"name"];
79
+ SQLColumnType *columnType = [column objectForKey: @"type"];
80
+ id nextColumn = [enumerator nextObject];
81
+ if (nil != nextColumn) {
82
+ [sql addObjectsFromArray: @[columnName, [columnType asString], @COMMA_SEP]];
83
+ } else {
84
+ [sql addObjectsFromArray: @[columnName, [columnType asString]]];
85
+ }
86
+ column = nextColumn;
87
+ }
88
+ [sql addObject: @");"];
89
+
90
+ return [sql componentsJoinedByString: @SPACE_SEP];
91
+ }
92
+
93
+ @end
@@ -0,0 +1,38 @@
1
+ //
2
+ // MAURSQLiteLocationDAO.h
3
+ // BackgroundGeolocation
4
+ //
5
+ // Created by Marian Hello on 10/06/16.
6
+ //
7
+
8
+ #ifndef MAURSQLiteLocationDAO_h
9
+ #define MAURSQLiteLocationDAO_h
10
+
11
+ #import <Foundation/Foundation.h>
12
+ #import "FMDB.h"
13
+ #import "MAURLocation.h"
14
+
15
+ @class Location;
16
+
17
+ @interface MAURSQLiteLocationDAO : NSObject
18
+
19
+ + (instancetype) sharedInstance;
20
+ - (id) init NS_UNAVAILABLE;
21
+ - (NSArray<MAURLocation*>*) getAllLocations;
22
+ - (NSArray<MAURLocation*>*) getLocationsForSync;
23
+ - (NSArray<MAURLocation*>*) getValidLocations;
24
+ - (NSNumber*) getLocationsForSyncCount;
25
+ - (NSNumber*) persistLocation:(MAURLocation*)location;
26
+ - (NSNumber*) persistLocation:(MAURLocation*)location limitRows:(NSInteger)maxRows;
27
+ - (BOOL) deleteLocation:(NSNumber*)locationId error:(NSError * __autoreleasing *)outError;
28
+ - (BOOL) deleteAllLocations:(NSError * __autoreleasing *)outError;
29
+ - (BOOL) clearDatabase;
30
+ - (NSString*) getDatabaseName;
31
+ - (NSString*) getDatabasePath;
32
+ // private
33
+ - (NSString*) getLocationSelectString;
34
+ - (MAURLocation*) convertToLocation:(FMResultSet*)rs;
35
+
36
+ @end
37
+
38
+ #endif /* MAURSQLiteLocationDAO_h */