@josuelmm/cordova-background-geolocation 2.3.5

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 (239) hide show
  1. package/.npmignore +23 -0
  2. package/CHANGELOG.md +787 -0
  3. package/CONTRIBUTORS.md +15 -0
  4. package/HISTORY.md +734 -0
  5. package/LICENSE +191 -0
  6. package/README.md +125 -0
  7. package/RELEASE.MD +5 -0
  8. package/android/CDVBackgroundGeolocation/src/main/AndroidManifest.xml +23 -0
  9. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/HandlerWrapper.java +18 -0
  10. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/JavaScriptInterface.java +22 -0
  11. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/JsEvaluator.java +133 -0
  12. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/JsFunctionCallFormatter.java +37 -0
  13. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/WebViewWrapper.java +71 -0
  14. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/CallJavaResultInterface.java +8 -0
  15. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/HandlerWrapperInterface.java +5 -0
  16. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/JsCallback.java +10 -0
  17. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/JsEvaluatorInterface.java +18 -0
  18. package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/WebViewWrapperInterface.java +14 -0
  19. package/android/CDVBackgroundGeolocation/src/main/java/com/marianhello/bgloc/cordova/ConfigMapper.java +148 -0
  20. package/android/CDVBackgroundGeolocation/src/main/java/com/marianhello/bgloc/cordova/PluginRegistry.java +25 -0
  21. package/android/CDVBackgroundGeolocation/src/main/java/com/marianhello/bgloc/cordova/headless/JsEvaluatorTaskRunner.java +53 -0
  22. package/android/CDVBackgroundGeolocation/src/main/java/com/tenforwardconsulting/bgloc/cordova/BackgroundGeolocationPlugin.java +603 -0
  23. package/android/CDVBackgroundGeolocation/src/main/res/values/strings.xml +4 -0
  24. package/android/CDVBackgroundGeolocation/src/test/java/com/marianhello/ConfigMapperTest.java +208 -0
  25. package/android/common/src/androidTest/java/com/marianhello/bgloc/BackgroundGeolocationFacadeTest.java +45 -0
  26. package/android/common/src/androidTest/java/com/marianhello/bgloc/BatchManagerTest.java +570 -0
  27. package/android/common/src/androidTest/java/com/marianhello/bgloc/ConfigTest.java +76 -0
  28. package/android/common/src/androidTest/java/com/marianhello/bgloc/ContentProviderLocationDAOTest.java +437 -0
  29. package/android/common/src/androidTest/java/com/marianhello/bgloc/DBLogReaderTest.java +95 -0
  30. package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationContentProviderTest.java +159 -0
  31. package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationServiceProxyTest.java +161 -0
  32. package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationServiceTest.java +247 -0
  33. package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteConfigurationDAOTest.java +200 -0
  34. package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteLocationDAOTest.java +457 -0
  35. package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteLocationDAOThreadTest.java +96 -0
  36. package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteOpenHelperTest.java +225 -0
  37. package/android/common/src/androidTest/java/com/marianhello/bgloc/TestPluginDelegate.java +46 -0
  38. package/android/common/src/androidTest/java/com/marianhello/bgloc/TestResourceResolver.java +14 -0
  39. package/android/common/src/androidTest/java/com/marianhello/bgloc/provider/MockLocationProvider.java +50 -0
  40. package/android/common/src/androidTest/java/com/marianhello/bgloc/provider/TestLocationProviderFactory.java +17 -0
  41. package/android/common/src/androidTest/java/com/marianhello/bgloc/sqlite/SQLiteOpenHelper10.java +92 -0
  42. package/android/common/src/androidTest/java/com/marianhello/bgloc/test/LocationProviderTestCase.java +107 -0
  43. package/android/common/src/androidTest/java/com/marianhello/bgloc/test/TestConstants.java +5 -0
  44. package/android/common/src/main/AndroidManifest.xml +72 -0
  45. package/android/common/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java +523 -0
  46. package/android/common/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java +59 -0
  47. package/android/common/src/main/java/com/marianhello/bgloc/Config.java +652 -0
  48. package/android/common/src/main/java/com/marianhello/bgloc/ConnectivityListener.java +5 -0
  49. package/android/common/src/main/java/com/marianhello/bgloc/HttpPostService.java +224 -0
  50. package/android/common/src/main/java/com/marianhello/bgloc/LocationManager.java +138 -0
  51. package/android/common/src/main/java/com/marianhello/bgloc/PluginDelegate.java +19 -0
  52. package/android/common/src/main/java/com/marianhello/bgloc/PluginException.java +38 -0
  53. package/android/common/src/main/java/com/marianhello/bgloc/PostLocationTask.java +188 -0
  54. package/android/common/src/main/java/com/marianhello/bgloc/ResourceResolver.java +55 -0
  55. package/android/common/src/main/java/com/marianhello/bgloc/data/AbstractLocationTemplate.java +69 -0
  56. package/android/common/src/main/java/com/marianhello/bgloc/data/ArrayListLocationTemplate.java +88 -0
  57. package/android/common/src/main/java/com/marianhello/bgloc/data/BackgroundActivity.java +108 -0
  58. package/android/common/src/main/java/com/marianhello/bgloc/data/BackgroundLocation.java +994 -0
  59. package/android/common/src/main/java/com/marianhello/bgloc/data/ConfigurationDAO.java +13 -0
  60. package/android/common/src/main/java/com/marianhello/bgloc/data/DAOFactory.java +17 -0
  61. package/android/common/src/main/java/com/marianhello/bgloc/data/HashMapLocationTemplate.java +82 -0
  62. package/android/common/src/main/java/com/marianhello/bgloc/data/LocationDAO.java +22 -0
  63. package/android/common/src/main/java/com/marianhello/bgloc/data/LocationTemplate.java +12 -0
  64. package/android/common/src/main/java/com/marianhello/bgloc/data/LocationTemplateFactory.java +65 -0
  65. package/android/common/src/main/java/com/marianhello/bgloc/data/LocationTransform.java +19 -0
  66. package/android/common/src/main/java/com/marianhello/bgloc/data/provider/ContentProviderLocationDAO.java +395 -0
  67. package/android/common/src/main/java/com/marianhello/bgloc/data/provider/LocationContentProvider.java +321 -0
  68. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationContract.java +76 -0
  69. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationDAO.java +160 -0
  70. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationContract.java +112 -0
  71. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationDAO.java +506 -0
  72. package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java +151 -0
  73. package/android/common/src/main/java/com/marianhello/bgloc/headless/AbstractTaskRunner.java +15 -0
  74. package/android/common/src/main/java/com/marianhello/bgloc/headless/ActivityTask.java +48 -0
  75. package/android/common/src/main/java/com/marianhello/bgloc/headless/JsCallback.java +10 -0
  76. package/android/common/src/main/java/com/marianhello/bgloc/headless/LocationTask.java +60 -0
  77. package/android/common/src/main/java/com/marianhello/bgloc/headless/StationaryTask.java +25 -0
  78. package/android/common/src/main/java/com/marianhello/bgloc/headless/Task.java +8 -0
  79. package/android/common/src/main/java/com/marianhello/bgloc/headless/TaskRunner.java +5 -0
  80. package/android/common/src/main/java/com/marianhello/bgloc/headless/TaskRunnerFactory.java +8 -0
  81. package/android/common/src/main/java/com/marianhello/bgloc/provider/AbstractLocationProvider.java +171 -0
  82. package/android/common/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java +282 -0
  83. package/android/common/src/main/java/com/marianhello/bgloc/provider/DistanceFilterLocationProvider.java +610 -0
  84. package/android/common/src/main/java/com/marianhello/bgloc/provider/LocationProvider.java +32 -0
  85. package/android/common/src/main/java/com/marianhello/bgloc/provider/LocationProviderFactory.java +47 -0
  86. package/android/common/src/main/java/com/marianhello/bgloc/provider/ProviderDelegate.java +12 -0
  87. package/android/common/src/main/java/com/marianhello/bgloc/provider/RawLocationProvider.java +145 -0
  88. package/android/common/src/main/java/com/marianhello/bgloc/service/LocationService.java +16 -0
  89. package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceImpl.java +749 -0
  90. package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceInfo.java +6 -0
  91. package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceInfoImpl.java +41 -0
  92. package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceIntentBuilder.java +203 -0
  93. package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceProxy.java +130 -0
  94. package/android/common/src/main/java/com/marianhello/bgloc/sync/AccountHelper.java +39 -0
  95. package/android/common/src/main/java/com/marianhello/bgloc/sync/Authenticator.java +68 -0
  96. package/android/common/src/main/java/com/marianhello/bgloc/sync/AuthenticatorService.java +28 -0
  97. package/android/common/src/main/java/com/marianhello/bgloc/sync/BatchManager.java +278 -0
  98. package/android/common/src/main/java/com/marianhello/bgloc/sync/NotificationHelper.java +148 -0
  99. package/android/common/src/main/java/com/marianhello/bgloc/sync/SyncAdapter.java +249 -0
  100. package/android/common/src/main/java/com/marianhello/bgloc/sync/SyncService.java +68 -0
  101. package/android/common/src/main/java/com/marianhello/logging/DBLogReader.java +203 -0
  102. package/android/common/src/main/java/com/marianhello/logging/LogEntry.java +99 -0
  103. package/android/common/src/main/java/com/marianhello/logging/LoggerManager.java +70 -0
  104. package/android/common/src/main/java/com/marianhello/logging/UncaughtExceptionLogger.java +36 -0
  105. package/android/common/src/main/java/com/marianhello/utils/CloneHelper.java +22 -0
  106. package/android/common/src/main/java/com/marianhello/utils/Convert.java +56 -0
  107. package/android/common/src/main/java/com/marianhello/utils/TextUtils.java +72 -0
  108. package/android/common/src/main/java/com/marianhello/utils/ToneGenerator.java +68 -0
  109. package/android/common/src/main/java/org/apache/commons/io/Charsets.java +153 -0
  110. package/android/common/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java +344 -0
  111. package/android/common/src/main/java/org/chromium/content/browser/ThreadUtils.java +134 -0
  112. package/android/common/src/main/java/ru/andremoniy/sqlbuilder/SqlExpression.java +398 -0
  113. package/android/common/src/main/java/ru/andremoniy/sqlbuilder/SqlSelectStatement.java +671 -0
  114. package/android/common/src/main/java/ru/andremoniy/sqlbuilder/SqlStatement.java +29 -0
  115. package/android/common/src/main/java/ru/andremoniy/utils/TextUtils.java +61 -0
  116. package/android/common/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
  117. package/android/common/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
  118. package/android/common/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
  119. package/android/common/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
  120. package/android/common/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
  121. package/android/common/src/main/res/values/strings.xml +4 -0
  122. package/android/common/src/main/res/xml/authenticator.xml +7 -0
  123. package/android/common/src/main/res/xml/syncadapter.xml +9 -0
  124. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/ArrayListLocationTemplateTest.java +82 -0
  125. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/BackgroundLocationTest.java +128 -0
  126. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/ConfigTest.java +191 -0
  127. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/DBLogReaderTest.java +37 -0
  128. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/HashMapLocationTemplateTest.java +216 -0
  129. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/HttpPostServiceTest.java +223 -0
  130. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/LocationTemplateFactoryTest.java +50 -0
  131. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/PostLocationTaskTest.java +180 -0
  132. package/android/common/src/test/java/com/marianhello/backgroundgeolocation/TestHelper.java +16 -0
  133. package/android/dependencies.gradle +13 -0
  134. package/ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.h +41 -0
  135. package/ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.m +526 -0
  136. package/ios/common/BackgroundGeolocation/CocoaLumberjack.h +1945 -0
  137. package/ios/common/BackgroundGeolocation/CocoaLumberjack.m +5255 -0
  138. package/ios/common/BackgroundGeolocation/FMDB.h +2357 -0
  139. package/ios/common/BackgroundGeolocation/FMDB.m +2672 -0
  140. package/ios/common/BackgroundGeolocation/FMDBLogger.h +42 -0
  141. package/ios/common/BackgroundGeolocation/FMDBLogger.m +264 -0
  142. package/ios/common/BackgroundGeolocation/INTULocationManager/INTUHeadingRequest.h +41 -0
  143. package/ios/common/BackgroundGeolocation/INTULocationManager/INTUHeadingRequest.m +68 -0
  144. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager+Internal.h +33 -0
  145. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager.h +178 -0
  146. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager.m +1025 -0
  147. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequest.h +103 -0
  148. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequest.m +238 -0
  149. package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequestDefines.h +163 -0
  150. package/ios/common/BackgroundGeolocation/INTULocationManager/INTURequestIDGenerator.h +39 -0
  151. package/ios/common/BackgroundGeolocation/INTULocationManager/INTURequestIDGenerator.m +37 -0
  152. package/ios/common/BackgroundGeolocation/MAURAbstractLocationProvider.h +51 -0
  153. package/ios/common/BackgroundGeolocation/MAURAbstractLocationProvider.m +53 -0
  154. package/ios/common/BackgroundGeolocation/MAURActivity.h +23 -0
  155. package/ios/common/BackgroundGeolocation/MAURActivity.m +52 -0
  156. package/ios/common/BackgroundGeolocation/MAURActivityLocationProvider.h +18 -0
  157. package/ios/common/BackgroundGeolocation/MAURActivityLocationProvider.m +202 -0
  158. package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.h +60 -0
  159. package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +638 -0
  160. package/ios/common/BackgroundGeolocation/MAURBackgroundSync.h +34 -0
  161. package/ios/common/BackgroundGeolocation/MAURBackgroundSync.m +185 -0
  162. package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.h +25 -0
  163. package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.m +105 -0
  164. package/ios/common/BackgroundGeolocation/MAURConfig.h +74 -0
  165. package/ios/common/BackgroundGeolocation/MAURConfig.m +485 -0
  166. package/ios/common/BackgroundGeolocation/MAURConfigurationContract.h +49 -0
  167. package/ios/common/BackgroundGeolocation/MAURConfigurationContract.m +51 -0
  168. package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.h +20 -0
  169. package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.m +514 -0
  170. package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.h +17 -0
  171. package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.m +97 -0
  172. package/ios/common/BackgroundGeolocation/MAURLocation.h +59 -0
  173. package/ios/common/BackgroundGeolocation/MAURLocation.m +349 -0
  174. package/ios/common/BackgroundGeolocation/MAURLocationContract.h +34 -0
  175. package/ios/common/BackgroundGeolocation/MAURLocationContract.m +35 -0
  176. package/ios/common/BackgroundGeolocation/MAURLocationManager.h +53 -0
  177. package/ios/common/BackgroundGeolocation/MAURLocationManager.m +287 -0
  178. package/ios/common/BackgroundGeolocation/MAURLogReader.h +26 -0
  179. package/ios/common/BackgroundGeolocation/MAURLogReader.m +122 -0
  180. package/ios/common/BackgroundGeolocation/MAURLogging.h +19 -0
  181. package/ios/common/BackgroundGeolocation/MAURPostLocationTask.h +40 -0
  182. package/ios/common/BackgroundGeolocation/MAURPostLocationTask.m +250 -0
  183. package/ios/common/BackgroundGeolocation/MAURProviderDelegate.h +52 -0
  184. package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.h +18 -0
  185. package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.m +129 -0
  186. package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.h +26 -0
  187. package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.m +278 -0
  188. package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.h +57 -0
  189. package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.m +93 -0
  190. package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.h +38 -0
  191. package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.m +380 -0
  192. package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.h +32 -0
  193. package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.m +276 -0
  194. package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.h +20 -0
  195. package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.m +62 -0
  196. package/ios/common/BackgroundGeolocation/Reachability.h +102 -0
  197. package/ios/common/BackgroundGeolocation/Reachability.m +475 -0
  198. package/ios/common/BackgroundGeolocation/SOMotionDetector/CHANGELOG.md +2 -0
  199. package/ios/common/BackgroundGeolocation/SOMotionDetector/LICENSE +21 -0
  200. package/ios/common/BackgroundGeolocation/SOMotionDetector/README.md +135 -0
  201. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOLocationManager.h +80 -0
  202. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOLocationManager.m +147 -0
  203. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionActivity.h +30 -0
  204. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionActivity.m +42 -0
  205. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionDetector.h +99 -0
  206. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionDetector.m +327 -0
  207. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOStepDetector.h +44 -0
  208. package/ios/common/BackgroundGeolocation/SOMotionDetector/SOStepDetector.m +94 -0
  209. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/README.md +170 -0
  210. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/ext/NSString+ZIMString.h +55 -0
  211. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/ext/NSString+ZIMString.m +47 -0
  212. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlDataManipulationCommand.h +27 -0
  213. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlExpression.h +250 -0
  214. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlExpression.m +259 -0
  215. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlSelectStatement.h +360 -0
  216. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlSelectStatement.m +427 -0
  217. package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlStatement.h +37 -0
  218. package/ios/common/BackgroundGeolocation.xcodeproj/project.pbxproj +760 -0
  219. package/ios/common/BackgroundGeolocationTests/Info.plist +24 -0
  220. package/ios/common/BackgroundGeolocationTests/MAURBackgroundLocationTest.m +185 -0
  221. package/ios/common/BackgroundGeolocationTests/MAURConfigTest.m +161 -0
  222. package/ios/common/BackgroundGeolocationTests/MAURGeolocationOpenHelperTest.m +102 -0
  223. package/ios/common/BackgroundGeolocationTests/MAURLocationTest.m +216 -0
  224. package/ios/common/BackgroundGeolocationTests/MAURLocationUploaderTest.m +55 -0
  225. package/ios/common/BackgroundGeolocationTests/MAURLogReaderTest.m +43 -0
  226. package/ios/common/BackgroundGeolocationTests/MAURSQLiteConfigurationDAOTest.m +102 -0
  227. package/ios/common/BackgroundGeolocationTests/MAURSQLiteHelperTest.m +41 -0
  228. package/ios/common/BackgroundGeolocationTests/MAURSQLiteLocationDAOTests.m +240 -0
  229. package/ios/common/BackgroundGeolocationTests/MAURSQLiteLocationDAOThreadTest.m +84 -0
  230. package/ios/common/BackgroundGeolocationTests/MAURSQLiteOpenHelperTest.m +144 -0
  231. package/ios/common/CONTRIBUTORS.md +10 -0
  232. package/ios/common/LICENSE +191 -0
  233. package/ios/common/README.md +7 -0
  234. package/ios/common/scripts/xcode-refactor.js +184 -0
  235. package/package.json +44 -0
  236. package/plugin.xml +355 -0
  237. package/www/BackgroundGeolocation.d.ts +910 -0
  238. package/www/BackgroundGeolocation.js +247 -0
  239. package/www/radio.js +177 -0
@@ -0,0 +1,603 @@
1
+ /*
2
+ According to apache license
3
+
4
+ This is fork of christocracy cordova-plugin-background-geolocation plugin
5
+ https://github.com/christocracy/cordova-plugin-background-geolocation
6
+
7
+ Differences to original version:
8
+
9
+ 1. new methods isLocationEnabled, mMessageReciever, handleMessage
10
+ */
11
+
12
+ package com.tenforwardconsulting.bgloc.cordova;
13
+
14
+ import android.app.Activity;
15
+ import android.app.Application;
16
+ import android.content.Context;
17
+
18
+ import com.marianhello.bgloc.BackgroundGeolocationFacade;
19
+ import com.marianhello.bgloc.Config;
20
+ import com.marianhello.bgloc.PluginDelegate;
21
+ import com.marianhello.bgloc.PluginException;
22
+ import com.marianhello.bgloc.cordova.ConfigMapper;
23
+ import com.marianhello.bgloc.cordova.PluginRegistry;
24
+ import com.marianhello.bgloc.cordova.headless.JsEvaluatorTaskRunner;
25
+ import com.marianhello.bgloc.data.BackgroundActivity;
26
+ import com.marianhello.bgloc.data.BackgroundLocation;
27
+ import com.marianhello.logging.LogEntry;
28
+ import com.marianhello.logging.LoggerManager;
29
+
30
+ import org.apache.cordova.CallbackContext;
31
+ import org.apache.cordova.CordovaPlugin;
32
+ import org.apache.cordova.PluginResult;
33
+ import org.json.JSONArray;
34
+ import org.json.JSONException;
35
+ import org.json.JSONObject;
36
+
37
+ import java.util.Collection;
38
+
39
+ public class BackgroundGeolocationPlugin extends CordovaPlugin implements PluginDelegate {
40
+
41
+ public static final String LOCATION_EVENT = "location";
42
+ public static final String STATIONARY_EVENT = "stationary";
43
+ public static final String ACTIVITY_EVENT = "activity";
44
+ public static final String FOREGROUND_EVENT = "foreground";
45
+ public static final String BACKGROUND_EVENT = "background";
46
+ public static final String AUTHORIZATION_EVENT = "authorization";
47
+ public static final String START_EVENT = "start";
48
+ public static final String STOP_EVENT = "stop";
49
+ public static final String ABORT_REQUESTED_EVENT = "abort_requested";
50
+ public static final String HTTP_AUTHORIZATION_EVENT = "http_authorization";
51
+
52
+ public static final String ACTION_START = "start";
53
+ public static final String ACTION_STOP = "stop";
54
+ public static final String ACTION_CONFIGURE = "configure";
55
+ public static final String ACTION_SWITCH_MODE = "switchMode";
56
+ public static final String ACTION_LOCATION_ENABLED_CHECK = "isLocationEnabled";
57
+ public static final String ACTION_SHOW_LOCATION_SETTINGS = "showLocationSettings";
58
+ public static final String ACTION_SHOW_APP_SETTINGS = "showAppSettings";
59
+ public static final String ACTION_GET_STATIONARY = "getStationaryLocation";
60
+ public static final String ACTION_GET_ALL_LOCATIONS = "getLocations";
61
+ public static final String ACTION_GET_VALID_LOCATIONS = "getValidLocations";
62
+ public static final String ACTION_GET_VALID_LOCATIONS_AND_DELETE = "getValidLocationsAndDelete";
63
+ public static final String ACTION_DELETE_LOCATION = "deleteLocation";
64
+ public static final String ACTION_DELETE_ALL_LOCATIONS = "deleteAllLocations";
65
+ public static final String ACTION_GET_CURRENT_LOCATION = "getCurrentLocation";
66
+ public static final String ACTION_GET_CONFIG = "getConfig";
67
+ public static final String ACTION_GET_LOG_ENTRIES = "getLogEntries";
68
+ public static final String ACTION_CHECK_STATUS = "checkStatus";
69
+ public static final String ACTION_REGISTER_EVENT_LISTENER = "addEventListener";
70
+ public static final String ACTION_START_TASK = "startTask";
71
+ public static final String ACTION_END_TASK = "endTask";
72
+ public static final String ACTION_REGISTER_HEADLESS_TASK = "registerHeadlessTask";
73
+ public static final String ACTION_FORCE_SYNC = "forceSync";
74
+
75
+ private BackgroundGeolocationFacade facade;
76
+
77
+ private CallbackContext callbackContext;
78
+
79
+ private org.slf4j.Logger logger;
80
+
81
+ public static class ErrorPluginResult {
82
+ public static PluginResult from(String message, int code) {
83
+ JSONObject json = new JSONObject();
84
+ try {
85
+ json.put("code", code);
86
+ json.put("message", message);
87
+ } catch (JSONException e) {
88
+ // not interested
89
+ }
90
+ return new PluginResult(PluginResult.Status.ERROR, json);
91
+ }
92
+
93
+ public static PluginResult from(String message, Throwable cause, int code) {
94
+ JSONObject json = new JSONObject();
95
+ try {
96
+ json.put("code", code);
97
+ json.put("message", message);
98
+ json.put("cause", from(cause));
99
+ } catch (JSONException e) {
100
+ // not interested
101
+ }
102
+ return new PluginResult(PluginResult.Status.ERROR, json);
103
+ }
104
+
105
+ public static PluginResult from(PluginException e) {
106
+ JSONObject json = new JSONObject();
107
+ try {
108
+ json.put("code", e.getCode());
109
+ json.put("message", e.getMessage());
110
+ if (e.getCause() != null) {
111
+ json.put("cause", from(e.getCause()));
112
+ }
113
+ } catch (JSONException ex) {
114
+ // not interested
115
+ }
116
+
117
+ return new PluginResult(PluginResult.Status.ERROR, json);
118
+ }
119
+
120
+ private static JSONObject from(Throwable e) {
121
+ JSONObject error = new JSONObject();
122
+ try {
123
+ error.put("message", e.getMessage());
124
+ } catch (JSONException e1) {
125
+ // not interested
126
+ }
127
+ return error;
128
+ }
129
+ }
130
+
131
+ @Override
132
+ protected void pluginInitialize() {
133
+ super.pluginInitialize();
134
+
135
+ logger = LoggerManager.getLogger(BackgroundGeolocationPlugin.class);
136
+ facade = new BackgroundGeolocationFacade(this.getContext(), this);
137
+ facade.resume();
138
+ }
139
+
140
+ public boolean execute(String action, final JSONArray data, final CallbackContext callbackContext) {
141
+ Context context = getContext();
142
+
143
+ if (ACTION_REGISTER_EVENT_LISTENER.equals(action)) {
144
+ logger.debug("Registering event listeners");
145
+ this.callbackContext = callbackContext;
146
+
147
+ return true;
148
+ }
149
+ else if (ACTION_START.equals(action)) {
150
+ runOnWebViewThread(new Runnable() {
151
+ public void run() {
152
+ facade.start();
153
+ callbackContext.success();
154
+ }
155
+ });
156
+
157
+ return true;
158
+ } else if (ACTION_STOP.equals(action)) {
159
+ runOnWebViewThread(new Runnable() {
160
+ public void run() {
161
+ facade.stop();
162
+ callbackContext.success();
163
+ }
164
+ });
165
+
166
+ return true;
167
+ } else if (ACTION_SWITCH_MODE.equals(action)) {
168
+ try {
169
+ int mode = data.getInt(0);
170
+ facade.switchMode(mode);
171
+ } catch (JSONException e) {
172
+ logger.error("Switch mode error: {}", e.getMessage());
173
+ sendError(new PluginException(e.getMessage(), PluginException.JSON_ERROR));
174
+ }
175
+
176
+ return true;
177
+ } else if (ACTION_CONFIGURE.equals(action)) {
178
+ runOnWebViewThread(new Runnable() {
179
+ public void run() {
180
+ try {
181
+ Config config = ConfigMapper.fromJSONObject(data.getJSONObject(0));
182
+ facade.configure(config);
183
+ callbackContext.success();
184
+ } catch (JSONException e) {
185
+ logger.error("Configuration error: {}", e.getMessage());
186
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Configuration error", e, PluginException.CONFIGURE_ERROR));
187
+ } catch (PluginException e) {
188
+ logger.error("Configuration error: {}", e.getMessage());
189
+ callbackContext.sendPluginResult(ErrorPluginResult.from(e));
190
+ }
191
+ }
192
+ });
193
+
194
+ return true;
195
+ } else if (ACTION_LOCATION_ENABLED_CHECK.equals(action)) {
196
+ logger.debug("Location services enabled check");
197
+ try {
198
+ callbackContext.success(facade.locationServicesEnabled() ? 1 : 0);
199
+ } catch (PluginException e) {
200
+ logger.error("Location service checked failed: {}", e.getMessage());
201
+ callbackContext.sendPluginResult(ErrorPluginResult.from(e));
202
+ }
203
+
204
+ return true;
205
+ } else if (ACTION_SHOW_LOCATION_SETTINGS.equals(action)) {
206
+ BackgroundGeolocationFacade.showLocationSettings(context);
207
+
208
+ return true;
209
+ } else if (ACTION_SHOW_APP_SETTINGS.equals(action)) {
210
+ BackgroundGeolocationFacade.showAppSettings(context);
211
+
212
+ return true;
213
+ } else if (ACTION_GET_STATIONARY.equals(action)) {
214
+ try {
215
+ BackgroundLocation stationaryLocation = facade.getStationaryLocation();
216
+ if (stationaryLocation != null) {
217
+ callbackContext.success(stationaryLocation.toJSONObject());
218
+ } else {
219
+ callbackContext.success();
220
+ }
221
+ } catch (JSONException e) {
222
+ logger.error("Getting stationary location failed: {}", e.getMessage());
223
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Getting stationary location failed", e, PluginException.JSON_ERROR));
224
+ }
225
+
226
+ return true;
227
+ } else if (ACTION_GET_ALL_LOCATIONS.equals(action)) {
228
+ runOnWebViewThread(new Runnable() {
229
+ public void run() {
230
+ try {
231
+ callbackContext.success(getAllLocations());
232
+ } catch (JSONException e) {
233
+ logger.error("Getting all locations failed: {}", e.getMessage());
234
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Converting locations to JSON failed", e, PluginException.JSON_ERROR));
235
+ }
236
+ }
237
+ });
238
+
239
+ return true;
240
+ } else if (ACTION_GET_VALID_LOCATIONS.equals(action)) {
241
+ runOnWebViewThread(new Runnable() {
242
+ public void run() {
243
+ try {
244
+ callbackContext.success(getValidLocations());
245
+ } catch (JSONException e) {
246
+ logger.error("Getting valid locations failed: {}", e.getMessage());
247
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Converting locations to JSON failed", e, PluginException.JSON_ERROR));
248
+ }
249
+ }
250
+ });
251
+
252
+ return true;
253
+ } else if (ACTION_GET_VALID_LOCATIONS_AND_DELETE.equals(action)) {
254
+ runOnWebViewThread(new Runnable() {
255
+ public void run() {
256
+ try {
257
+ callbackContext.success(getValidLocationsAndDelete());
258
+ } catch (JSONException e) {
259
+ logger.error("Getting valid locations and delete failed: {}", e.getMessage());
260
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Converting locations to JSON failed", e, PluginException.JSON_ERROR));
261
+ }
262
+ }
263
+ });
264
+
265
+ return true;
266
+ } else if (ACTION_DELETE_LOCATION.equals(action)) {
267
+ runOnWebViewThread(new Runnable() {
268
+ public void run() {
269
+ try {
270
+ Long locationId = data.getLong(0);
271
+ facade.deleteLocation(locationId);
272
+ callbackContext.success();
273
+ } catch (JSONException e) {
274
+ logger.error("Delete location failed: {}", e.getMessage());
275
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Delete location failed", e, PluginException.JSON_ERROR));
276
+ }
277
+ }
278
+ });
279
+
280
+ return true;
281
+ } else if (ACTION_DELETE_ALL_LOCATIONS.equals(action)) {
282
+ runOnWebViewThread(new Runnable() {
283
+ public void run() {
284
+ facade.deleteAllLocations();
285
+ callbackContext.success();
286
+ }
287
+ });
288
+
289
+ return true;
290
+ } else if (ACTION_GET_CURRENT_LOCATION.equals(action)) {
291
+ runOnWebViewThread(new Runnable() {
292
+ @Override
293
+ public void run() {
294
+ int timeout = data.optInt(0, Integer.MAX_VALUE);
295
+ long maximumAge = data.optLong(1, Long.MAX_VALUE);
296
+ boolean enableHighAccuracy = data.optBoolean(2, false);
297
+ try {
298
+ BackgroundLocation location = facade.getCurrentLocation(timeout, maximumAge, enableHighAccuracy);
299
+ callbackContext.success(location.toJSONObject());
300
+ } catch (JSONException e) {
301
+ callbackContext.sendPluginResult(ErrorPluginResult.from(e.getMessage(), 2));
302
+ } catch (PluginException e) {
303
+ callbackContext.sendPluginResult(ErrorPluginResult.from(e));
304
+ }
305
+ }
306
+ });
307
+
308
+ return true;
309
+ } else if (ACTION_GET_CONFIG.equals(action)) {
310
+ runOnWebViewThread(new Runnable() {
311
+ public void run() {
312
+ try {
313
+ Config config = facade.getConfig();
314
+ callbackContext.success(ConfigMapper.toJSONObject(config));
315
+ } catch (JSONException e) {
316
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Error getting config", e, PluginException.JSON_ERROR));
317
+ }
318
+ }
319
+ });
320
+
321
+ return true;
322
+ } else if (ACTION_GET_LOG_ENTRIES.equals(action)) {
323
+ runOnWebViewThread(new Runnable() {
324
+ public void run() {
325
+ try {
326
+ int limit = data.getInt(0);
327
+ int offset = data.getInt(1);
328
+ String minLevel = data.getString(2);
329
+ callbackContext.success(getLogs(limit, offset, minLevel));
330
+ } catch (Exception e) {
331
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Getting logs failed", e, PluginException.SERVICE_ERROR));
332
+ }
333
+ }
334
+ });
335
+
336
+ return true;
337
+ } else if (ACTION_CHECK_STATUS.equals(action)) {
338
+ runOnWebViewThread(new Runnable() {
339
+ public void run() {
340
+ try {
341
+ callbackContext.success(checkStatus());
342
+ } catch (Exception e) {
343
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Checking status failed", e, PluginException.SERVICE_ERROR));
344
+ }
345
+ }
346
+ });
347
+
348
+ return true;
349
+ } else if (ACTION_START_TASK.equals(action)) {
350
+ callbackContext.success(1);
351
+ return true;
352
+ } else if (ACTION_END_TASK.equals(action)) {
353
+ callbackContext.success();
354
+ return true;
355
+ } else if (ACTION_REGISTER_HEADLESS_TASK.equals(action)) {
356
+ logger.debug("Registering headless task");
357
+ try {
358
+ PluginRegistry.getInstance().registerHeadlessTask(data.getString(0));
359
+ facade.registerHeadlessTask(JsEvaluatorTaskRunner.class.getName());
360
+ } catch (JSONException e) {
361
+ callbackContext.sendPluginResult(ErrorPluginResult.from("Registering headless task failed", e, PluginException.JSON_ERROR));
362
+ }
363
+ return true;
364
+ } else if (ACTION_FORCE_SYNC.equals(action)) {
365
+ logger.debug("Forced location sync requested");
366
+ facade.forceSync();
367
+ return true;
368
+ }
369
+
370
+ return false;
371
+ }
372
+
373
+ /**
374
+ * Called when the system is about to start resuming a previous activity.
375
+ *
376
+ * @param multitasking Flag indicating if multitasking is turned on for app
377
+ */
378
+ public void onPause(boolean multitasking) {
379
+ logger.info("App will be paused multitasking={}", multitasking);
380
+ facade.pause();
381
+ sendEvent(BACKGROUND_EVENT);
382
+ }
383
+
384
+ /**
385
+ * Called when the activity will start interacting with the user.
386
+ *
387
+ * @param multitasking Flag indicating if multitasking is turned on for app
388
+ */
389
+ public void onResume(boolean multitasking) {
390
+ logger.info("App will be resumed multitasking={}", multitasking);
391
+ facade.resume();
392
+ sendEvent(FOREGROUND_EVENT);
393
+ }
394
+
395
+ /**
396
+ * Called when the activity is becoming visible to the user.
397
+ */
398
+ public void onStart() {
399
+ logger.info("App is visible");
400
+ }
401
+
402
+ /**
403
+ * Called when the activity is no longer visible to the user.
404
+ */
405
+ public void onStop() {
406
+ logger.info("App is no longer visible");
407
+ }
408
+
409
+ /**
410
+ * The final call you receive before your activity is destroyed.
411
+ * Checks to see if it should turn off
412
+ */
413
+ @Override
414
+ public void onDestroy() {
415
+ logger.info("Destroying plugin");
416
+ facade.destroy();
417
+ super.onDestroy();
418
+ }
419
+
420
+ public Activity getActivity() {
421
+ return cordova.getActivity();
422
+ }
423
+
424
+ public Context getContext() {
425
+ return getActivity().getApplicationContext();
426
+ }
427
+
428
+ protected Application getApplication() {
429
+ return getActivity().getApplication();
430
+ }
431
+
432
+ private void sendEvent(String name) {
433
+ if (callbackContext == null) {
434
+ return;
435
+ }
436
+ JSONObject event = new JSONObject();
437
+ try {
438
+ event.put("name", name);
439
+ PluginResult result = new PluginResult(PluginResult.Status.OK, event);
440
+ result.setKeepCallback(true);
441
+ callbackContext.sendPluginResult(result);
442
+ } catch (JSONException e) {
443
+ logger.error("Error sending event {}: {}", name, e.getMessage());
444
+ }
445
+ }
446
+
447
+ private void sendEvent(String name, JSONObject payload) {
448
+ if (callbackContext == null) {
449
+ return;
450
+ }
451
+ JSONObject event = new JSONObject();
452
+ try {
453
+ event.put("name", name);
454
+ event.put("payload", payload);
455
+ PluginResult result = new PluginResult(PluginResult.Status.OK, event);
456
+ result.setKeepCallback(true);
457
+ callbackContext.sendPluginResult(result);
458
+ } catch (JSONException e) {
459
+ logger.error("Error sending event {}: {}", name, e.getMessage());
460
+ }
461
+ }
462
+
463
+ private void sendEvent(String name, Integer payload) {
464
+ if (callbackContext == null) {
465
+ return;
466
+ }
467
+ JSONObject event = new JSONObject();
468
+ try {
469
+ event.put("name", name);
470
+ event.put("payload", payload);
471
+ PluginResult result = new PluginResult(PluginResult.Status.OK, event);
472
+ result.setKeepCallback(true);
473
+ callbackContext.sendPluginResult(result);
474
+ } catch (JSONException e) {
475
+ logger.error("Error sending event {}: {}", name, e.getMessage());
476
+ }
477
+ }
478
+
479
+ private void sendError(PluginException e) {
480
+ if (callbackContext == null) {
481
+ return;
482
+ }
483
+ PluginResult result = ErrorPluginResult.from(e);
484
+ result.setKeepCallback(true);
485
+ callbackContext.sendPluginResult(result);
486
+ }
487
+
488
+ private void runOnUiThread(Runnable runnable) {
489
+ getActivity().runOnUiThread(runnable);
490
+ }
491
+
492
+ private void runOnWebViewThread(Runnable runnable) {
493
+ cordova.getThreadPool().execute(runnable);
494
+ }
495
+
496
+ private JSONArray getAllLocations() throws JSONException {
497
+ JSONArray jsonLocationsArray = new JSONArray();
498
+ Collection<BackgroundLocation> locations = facade.getLocations();
499
+ for (BackgroundLocation location : locations) {
500
+ jsonLocationsArray.put(location.toJSONObjectWithId());
501
+ }
502
+ return jsonLocationsArray;
503
+ }
504
+
505
+ private JSONArray getValidLocations() throws JSONException {
506
+ JSONArray jsonLocationsArray = new JSONArray();
507
+ Collection<BackgroundLocation> locations = facade.getValidLocations();
508
+ for (BackgroundLocation location : locations) {
509
+ jsonLocationsArray.put(location.toJSONObjectWithId());
510
+ }
511
+ return jsonLocationsArray;
512
+ }
513
+
514
+ private JSONArray getValidLocationsAndDelete() throws JSONException {
515
+ JSONArray jsonLocationsArray = new JSONArray();
516
+ Collection<BackgroundLocation> locations = facade.getValidLocationsAndDelete();
517
+ for (BackgroundLocation location : locations) {
518
+ jsonLocationsArray.put(location.toJSONObjectWithId());
519
+ }
520
+ return jsonLocationsArray;
521
+ }
522
+
523
+ private JSONArray getLogs(Integer limit, int offset, String minLevel) throws Exception {
524
+ JSONArray jsonLogsArray = new JSONArray();
525
+ Collection<LogEntry> logEntries = facade.getLogEntries(limit, offset, minLevel);
526
+ for (LogEntry logEntry : logEntries) {
527
+ jsonLogsArray.put(logEntry.toJSONObject());
528
+ }
529
+ return jsonLogsArray;
530
+ }
531
+
532
+ private JSONObject checkStatus() throws JSONException, PluginException {
533
+ JSONObject json = new JSONObject();
534
+ json.put("isRunning", facade.isRunning());
535
+ json.put("hasPermissions", facade.hasPermissions()); //@Deprecated
536
+ json.put("locationServicesEnabled", facade.locationServicesEnabled());
537
+ json.put("authorization", facade.getAuthorizationStatus());
538
+
539
+ return json;
540
+ }
541
+
542
+ @Override
543
+ public void onAuthorizationChanged(int authStatus) {
544
+ sendEvent(AUTHORIZATION_EVENT, authStatus);
545
+ }
546
+
547
+ @Override
548
+ public void onLocationChanged(BackgroundLocation location) {
549
+ try {
550
+ sendEvent(LOCATION_EVENT, location.toJSONObjectWithId());
551
+ } catch (JSONException e) {
552
+ logger.error("Error converting location to json: {}", e.getMessage());
553
+ sendError(new PluginException(e.getMessage(), PluginException.JSON_ERROR));
554
+ }
555
+ }
556
+
557
+ @Override
558
+ public void onStationaryChanged(BackgroundLocation location) {
559
+ try {
560
+ sendEvent(STATIONARY_EVENT, location.toJSONObjectWithId());
561
+ } catch (JSONException e) {
562
+ logger.error("Error converting location to json: {}", e.getMessage());
563
+ sendError(new PluginException(e.getMessage(), PluginException.JSON_ERROR));
564
+ }
565
+ }
566
+
567
+ @Override
568
+ public void onActivityChanged(BackgroundActivity activity) {
569
+ try {
570
+ sendEvent(ACTIVITY_EVENT, activity.toJSONObject());
571
+ } catch (JSONException e) {
572
+ logger.error("Error converting activity to json: {}", e.getMessage());
573
+ sendError(new PluginException(e.getMessage(), PluginException.JSON_ERROR));
574
+ }
575
+ }
576
+
577
+ @Override
578
+ public void onServiceStatusChanged(int status) {
579
+ switch (status) {
580
+ case BackgroundGeolocationFacade.SERVICE_STARTED:
581
+ sendEvent(START_EVENT);
582
+ return;
583
+ case BackgroundGeolocationFacade.SERVICE_STOPPED:
584
+ sendEvent(STOP_EVENT);
585
+ return;
586
+ }
587
+ }
588
+
589
+ @Override
590
+ public void onAbortRequested() {
591
+ sendEvent(ABORT_REQUESTED_EVENT, 0);
592
+ }
593
+
594
+ @Override
595
+ public void onHttpAuthorization() {
596
+ sendEvent(HTTP_AUTHORIZATION_EVENT);
597
+ }
598
+
599
+ @Override
600
+ public void onError(PluginException e) {
601
+ sendError(e);
602
+ }
603
+ }
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <resources>
3
+ <string name="app_name">app_name</string>
4
+ </resources>