@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.
- package/.npmignore +23 -0
- package/CHANGELOG.md +787 -0
- package/CONTRIBUTORS.md +15 -0
- package/HISTORY.md +734 -0
- package/LICENSE +191 -0
- package/README.md +125 -0
- package/RELEASE.MD +5 -0
- package/android/CDVBackgroundGeolocation/src/main/AndroidManifest.xml +23 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/HandlerWrapper.java +18 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/JavaScriptInterface.java +22 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/JsEvaluator.java +133 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/JsFunctionCallFormatter.java +37 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/WebViewWrapper.java +71 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/CallJavaResultInterface.java +8 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/HandlerWrapperInterface.java +5 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/JsCallback.java +10 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/JsEvaluatorInterface.java +18 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/evgenii/jsevaluator/interfaces/WebViewWrapperInterface.java +14 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/marianhello/bgloc/cordova/ConfigMapper.java +148 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/marianhello/bgloc/cordova/PluginRegistry.java +25 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/marianhello/bgloc/cordova/headless/JsEvaluatorTaskRunner.java +53 -0
- package/android/CDVBackgroundGeolocation/src/main/java/com/tenforwardconsulting/bgloc/cordova/BackgroundGeolocationPlugin.java +603 -0
- package/android/CDVBackgroundGeolocation/src/main/res/values/strings.xml +4 -0
- package/android/CDVBackgroundGeolocation/src/test/java/com/marianhello/ConfigMapperTest.java +208 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/BackgroundGeolocationFacadeTest.java +45 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/BatchManagerTest.java +570 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/ConfigTest.java +76 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/ContentProviderLocationDAOTest.java +437 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/DBLogReaderTest.java +95 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationContentProviderTest.java +159 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationServiceProxyTest.java +161 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/LocationServiceTest.java +247 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteConfigurationDAOTest.java +200 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteLocationDAOTest.java +457 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteLocationDAOThreadTest.java +96 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/SQLiteOpenHelperTest.java +225 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/TestPluginDelegate.java +46 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/TestResourceResolver.java +14 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/provider/MockLocationProvider.java +50 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/provider/TestLocationProviderFactory.java +17 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/sqlite/SQLiteOpenHelper10.java +92 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/test/LocationProviderTestCase.java +107 -0
- package/android/common/src/androidTest/java/com/marianhello/bgloc/test/TestConstants.java +5 -0
- package/android/common/src/main/AndroidManifest.xml +72 -0
- package/android/common/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java +523 -0
- package/android/common/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java +59 -0
- package/android/common/src/main/java/com/marianhello/bgloc/Config.java +652 -0
- package/android/common/src/main/java/com/marianhello/bgloc/ConnectivityListener.java +5 -0
- package/android/common/src/main/java/com/marianhello/bgloc/HttpPostService.java +224 -0
- package/android/common/src/main/java/com/marianhello/bgloc/LocationManager.java +138 -0
- package/android/common/src/main/java/com/marianhello/bgloc/PluginDelegate.java +19 -0
- package/android/common/src/main/java/com/marianhello/bgloc/PluginException.java +38 -0
- package/android/common/src/main/java/com/marianhello/bgloc/PostLocationTask.java +188 -0
- package/android/common/src/main/java/com/marianhello/bgloc/ResourceResolver.java +55 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/AbstractLocationTemplate.java +69 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/ArrayListLocationTemplate.java +88 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/BackgroundActivity.java +108 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/BackgroundLocation.java +994 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/ConfigurationDAO.java +13 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/DAOFactory.java +17 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/HashMapLocationTemplate.java +82 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/LocationDAO.java +22 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/LocationTemplate.java +12 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/LocationTemplateFactory.java +65 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/LocationTransform.java +19 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/provider/ContentProviderLocationDAO.java +395 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/provider/LocationContentProvider.java +321 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationContract.java +76 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationDAO.java +160 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationContract.java +112 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationDAO.java +506 -0
- package/android/common/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java +151 -0
- package/android/common/src/main/java/com/marianhello/bgloc/headless/AbstractTaskRunner.java +15 -0
- package/android/common/src/main/java/com/marianhello/bgloc/headless/ActivityTask.java +48 -0
- package/android/common/src/main/java/com/marianhello/bgloc/headless/JsCallback.java +10 -0
- package/android/common/src/main/java/com/marianhello/bgloc/headless/LocationTask.java +60 -0
- package/android/common/src/main/java/com/marianhello/bgloc/headless/StationaryTask.java +25 -0
- package/android/common/src/main/java/com/marianhello/bgloc/headless/Task.java +8 -0
- package/android/common/src/main/java/com/marianhello/bgloc/headless/TaskRunner.java +5 -0
- package/android/common/src/main/java/com/marianhello/bgloc/headless/TaskRunnerFactory.java +8 -0
- package/android/common/src/main/java/com/marianhello/bgloc/provider/AbstractLocationProvider.java +171 -0
- package/android/common/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java +282 -0
- package/android/common/src/main/java/com/marianhello/bgloc/provider/DistanceFilterLocationProvider.java +610 -0
- package/android/common/src/main/java/com/marianhello/bgloc/provider/LocationProvider.java +32 -0
- package/android/common/src/main/java/com/marianhello/bgloc/provider/LocationProviderFactory.java +47 -0
- package/android/common/src/main/java/com/marianhello/bgloc/provider/ProviderDelegate.java +12 -0
- package/android/common/src/main/java/com/marianhello/bgloc/provider/RawLocationProvider.java +145 -0
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationService.java +16 -0
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceImpl.java +749 -0
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceInfo.java +6 -0
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceInfoImpl.java +41 -0
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceIntentBuilder.java +203 -0
- package/android/common/src/main/java/com/marianhello/bgloc/service/LocationServiceProxy.java +130 -0
- package/android/common/src/main/java/com/marianhello/bgloc/sync/AccountHelper.java +39 -0
- package/android/common/src/main/java/com/marianhello/bgloc/sync/Authenticator.java +68 -0
- package/android/common/src/main/java/com/marianhello/bgloc/sync/AuthenticatorService.java +28 -0
- package/android/common/src/main/java/com/marianhello/bgloc/sync/BatchManager.java +278 -0
- package/android/common/src/main/java/com/marianhello/bgloc/sync/NotificationHelper.java +148 -0
- package/android/common/src/main/java/com/marianhello/bgloc/sync/SyncAdapter.java +249 -0
- package/android/common/src/main/java/com/marianhello/bgloc/sync/SyncService.java +68 -0
- package/android/common/src/main/java/com/marianhello/logging/DBLogReader.java +203 -0
- package/android/common/src/main/java/com/marianhello/logging/LogEntry.java +99 -0
- package/android/common/src/main/java/com/marianhello/logging/LoggerManager.java +70 -0
- package/android/common/src/main/java/com/marianhello/logging/UncaughtExceptionLogger.java +36 -0
- package/android/common/src/main/java/com/marianhello/utils/CloneHelper.java +22 -0
- package/android/common/src/main/java/com/marianhello/utils/Convert.java +56 -0
- package/android/common/src/main/java/com/marianhello/utils/TextUtils.java +72 -0
- package/android/common/src/main/java/com/marianhello/utils/ToneGenerator.java +68 -0
- package/android/common/src/main/java/org/apache/commons/io/Charsets.java +153 -0
- package/android/common/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java +344 -0
- package/android/common/src/main/java/org/chromium/content/browser/ThreadUtils.java +134 -0
- package/android/common/src/main/java/ru/andremoniy/sqlbuilder/SqlExpression.java +398 -0
- package/android/common/src/main/java/ru/andremoniy/sqlbuilder/SqlSelectStatement.java +671 -0
- package/android/common/src/main/java/ru/andremoniy/sqlbuilder/SqlStatement.java +29 -0
- package/android/common/src/main/java/ru/andremoniy/utils/TextUtils.java +61 -0
- package/android/common/src/main/res/mipmap-hdpi/ic_launcher.png +0 -0
- package/android/common/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/android/common/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/android/common/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/android/common/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/android/common/src/main/res/values/strings.xml +4 -0
- package/android/common/src/main/res/xml/authenticator.xml +7 -0
- package/android/common/src/main/res/xml/syncadapter.xml +9 -0
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/ArrayListLocationTemplateTest.java +82 -0
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/BackgroundLocationTest.java +128 -0
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/ConfigTest.java +191 -0
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/DBLogReaderTest.java +37 -0
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/HashMapLocationTemplateTest.java +216 -0
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/HttpPostServiceTest.java +223 -0
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/LocationTemplateFactoryTest.java +50 -0
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/PostLocationTaskTest.java +180 -0
- package/android/common/src/test/java/com/marianhello/backgroundgeolocation/TestHelper.java +16 -0
- package/android/dependencies.gradle +13 -0
- package/ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.h +41 -0
- package/ios/CDVBackgroundGeolocation/CDVBackgroundGeolocation.m +526 -0
- package/ios/common/BackgroundGeolocation/CocoaLumberjack.h +1945 -0
- package/ios/common/BackgroundGeolocation/CocoaLumberjack.m +5255 -0
- package/ios/common/BackgroundGeolocation/FMDB.h +2357 -0
- package/ios/common/BackgroundGeolocation/FMDB.m +2672 -0
- package/ios/common/BackgroundGeolocation/FMDBLogger.h +42 -0
- package/ios/common/BackgroundGeolocation/FMDBLogger.m +264 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTUHeadingRequest.h +41 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTUHeadingRequest.m +68 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager+Internal.h +33 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager.h +178 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationManager.m +1025 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequest.h +103 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequest.m +238 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTULocationRequestDefines.h +163 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTURequestIDGenerator.h +39 -0
- package/ios/common/BackgroundGeolocation/INTULocationManager/INTURequestIDGenerator.m +37 -0
- package/ios/common/BackgroundGeolocation/MAURAbstractLocationProvider.h +51 -0
- package/ios/common/BackgroundGeolocation/MAURAbstractLocationProvider.m +53 -0
- package/ios/common/BackgroundGeolocation/MAURActivity.h +23 -0
- package/ios/common/BackgroundGeolocation/MAURActivity.m +52 -0
- package/ios/common/BackgroundGeolocation/MAURActivityLocationProvider.h +18 -0
- package/ios/common/BackgroundGeolocation/MAURActivityLocationProvider.m +202 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.h +60 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +638 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundSync.h +34 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundSync.m +185 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.h +25 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.m +105 -0
- package/ios/common/BackgroundGeolocation/MAURConfig.h +74 -0
- package/ios/common/BackgroundGeolocation/MAURConfig.m +485 -0
- package/ios/common/BackgroundGeolocation/MAURConfigurationContract.h +49 -0
- package/ios/common/BackgroundGeolocation/MAURConfigurationContract.m +51 -0
- package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.h +20 -0
- package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.m +514 -0
- package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.h +17 -0
- package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.m +97 -0
- package/ios/common/BackgroundGeolocation/MAURLocation.h +59 -0
- package/ios/common/BackgroundGeolocation/MAURLocation.m +349 -0
- package/ios/common/BackgroundGeolocation/MAURLocationContract.h +34 -0
- package/ios/common/BackgroundGeolocation/MAURLocationContract.m +35 -0
- package/ios/common/BackgroundGeolocation/MAURLocationManager.h +53 -0
- package/ios/common/BackgroundGeolocation/MAURLocationManager.m +287 -0
- package/ios/common/BackgroundGeolocation/MAURLogReader.h +26 -0
- package/ios/common/BackgroundGeolocation/MAURLogReader.m +122 -0
- package/ios/common/BackgroundGeolocation/MAURLogging.h +19 -0
- package/ios/common/BackgroundGeolocation/MAURPostLocationTask.h +40 -0
- package/ios/common/BackgroundGeolocation/MAURPostLocationTask.m +250 -0
- package/ios/common/BackgroundGeolocation/MAURProviderDelegate.h +52 -0
- package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.h +18 -0
- package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.m +129 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.h +26 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.m +278 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.h +57 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.m +93 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.h +38 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.m +380 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.h +32 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.m +276 -0
- package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.h +20 -0
- package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.m +62 -0
- package/ios/common/BackgroundGeolocation/Reachability.h +102 -0
- package/ios/common/BackgroundGeolocation/Reachability.m +475 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/CHANGELOG.md +2 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/LICENSE +21 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/README.md +135 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/SOLocationManager.h +80 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/SOLocationManager.m +147 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionActivity.h +30 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionActivity.m +42 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionDetector.h +99 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/SOMotionDetector.m +327 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/SOStepDetector.h +44 -0
- package/ios/common/BackgroundGeolocation/SOMotionDetector/SOStepDetector.m +94 -0
- package/ios/common/BackgroundGeolocation/SQLQueryBuilder/README.md +170 -0
- package/ios/common/BackgroundGeolocation/SQLQueryBuilder/ext/NSString+ZIMString.h +55 -0
- package/ios/common/BackgroundGeolocation/SQLQueryBuilder/ext/NSString+ZIMString.m +47 -0
- package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlDataManipulationCommand.h +27 -0
- package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlExpression.h +250 -0
- package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlExpression.m +259 -0
- package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlSelectStatement.h +360 -0
- package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlSelectStatement.m +427 -0
- package/ios/common/BackgroundGeolocation/SQLQueryBuilder/sql/ZIMSqlStatement.h +37 -0
- package/ios/common/BackgroundGeolocation.xcodeproj/project.pbxproj +760 -0
- package/ios/common/BackgroundGeolocationTests/Info.plist +24 -0
- package/ios/common/BackgroundGeolocationTests/MAURBackgroundLocationTest.m +185 -0
- package/ios/common/BackgroundGeolocationTests/MAURConfigTest.m +161 -0
- package/ios/common/BackgroundGeolocationTests/MAURGeolocationOpenHelperTest.m +102 -0
- package/ios/common/BackgroundGeolocationTests/MAURLocationTest.m +216 -0
- package/ios/common/BackgroundGeolocationTests/MAURLocationUploaderTest.m +55 -0
- package/ios/common/BackgroundGeolocationTests/MAURLogReaderTest.m +43 -0
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteConfigurationDAOTest.m +102 -0
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteHelperTest.m +41 -0
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteLocationDAOTests.m +240 -0
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteLocationDAOThreadTest.m +84 -0
- package/ios/common/BackgroundGeolocationTests/MAURSQLiteOpenHelperTest.m +144 -0
- package/ios/common/CONTRIBUTORS.md +10 -0
- package/ios/common/LICENSE +191 -0
- package/ios/common/README.md +7 -0
- package/ios/common/scripts/xcode-refactor.js +184 -0
- package/package.json +44 -0
- package/plugin.xml +355 -0
- package/www/BackgroundGeolocation.d.ts +910 -0
- package/www/BackgroundGeolocation.js +247 -0
- package/www/radio.js +177 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
dependencies {
|
|
2
|
+
// logback
|
|
3
|
+
implementation 'com.github.tony19:logback-android:1.1.1-9'
|
|
4
|
+
implementation 'org.slf4j:slf4j-api:1.7.21'
|
|
5
|
+
// android-permissions
|
|
6
|
+
implementation 'io.github.nishkarsh:android-permissions:2.1.8'
|
|
7
|
+
// promises
|
|
8
|
+
implementation 'com.github.jparkie:promise:1.0.3'
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
android {
|
|
12
|
+
useLibrary 'org.apache.http.legacy'
|
|
13
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
//
|
|
2
|
+
// CDVBackgroundGeolocation.h
|
|
3
|
+
//
|
|
4
|
+
// Created by Marian Hello on 04/06/16.
|
|
5
|
+
// Version 2.0.0
|
|
6
|
+
//
|
|
7
|
+
// According to apache license
|
|
8
|
+
//
|
|
9
|
+
// This is class is using code from christocracy cordova-plugin-background-geolocation plugin
|
|
10
|
+
// https://github.com/christocracy/cordova-plugin-background-geolocation
|
|
11
|
+
|
|
12
|
+
#import <UserNotifications/UserNotifications.h>
|
|
13
|
+
#import <Cordova/CDVPlugin.h>
|
|
14
|
+
#import "MAURProviderDelegate.h"
|
|
15
|
+
|
|
16
|
+
@interface CDVBackgroundGeolocation : CDVPlugin <MAURProviderDelegate, UNUserNotificationCenterDelegate>
|
|
17
|
+
|
|
18
|
+
- (void) configure:(CDVInvokedUrlCommand*)command;
|
|
19
|
+
- (void) start:(CDVInvokedUrlCommand*)command;
|
|
20
|
+
- (void) stop:(CDVInvokedUrlCommand*)command;
|
|
21
|
+
- (void) getConfig:(CDVInvokedUrlCommand*)command;
|
|
22
|
+
- (void) checkStatus:(CDVInvokedUrlCommand*)command;
|
|
23
|
+
- (void) switchMode:(CDVInvokedUrlCommand*)command;
|
|
24
|
+
- (void) isLocationEnabled:(CDVInvokedUrlCommand*)command;
|
|
25
|
+
- (void) showAppSettings:(CDVInvokedUrlCommand*)command;
|
|
26
|
+
- (void) showLocationSettings:(CDVInvokedUrlCommand*)command;
|
|
27
|
+
- (void) getStationaryLocation:(CDVInvokedUrlCommand *)command;
|
|
28
|
+
- (void) getLocations:(CDVInvokedUrlCommand*)command;
|
|
29
|
+
- (void) getValidLocations:(CDVInvokedUrlCommand*)command;
|
|
30
|
+
- (void) getValidLocationsAndDelete:(CDVInvokedUrlCommand*)command;
|
|
31
|
+
- (void) deleteLocation:(CDVInvokedUrlCommand*)command;
|
|
32
|
+
- (void) deleteAllLocations:(CDVInvokedUrlCommand*)command;
|
|
33
|
+
- (void) getCurrentLocation:(CDVInvokedUrlCommand*)command;
|
|
34
|
+
- (void) getLogEntries:(CDVInvokedUrlCommand*)command;
|
|
35
|
+
- (void) startTask:(CDVInvokedUrlCommand*)command;
|
|
36
|
+
- (void) endTask:(CDVInvokedUrlCommand*)command;
|
|
37
|
+
- (void) forceSync:(CDVInvokedUrlCommand*)command;
|
|
38
|
+
- (void) addEventListener:(CDVInvokedUrlCommand*)command;
|
|
39
|
+
- (void) removeEventListener:(CDVInvokedUrlCommand*)command;
|
|
40
|
+
|
|
41
|
+
@end
|
|
@@ -0,0 +1,526 @@
|
|
|
1
|
+
//
|
|
2
|
+
// CDVBackgroundGeolocation.h
|
|
3
|
+
//
|
|
4
|
+
// Created by Marian Hello on 04/06/16.
|
|
5
|
+
// Version 2.0.0
|
|
6
|
+
//
|
|
7
|
+
// According to apache license
|
|
8
|
+
//
|
|
9
|
+
// This is class is using code from christocracy cordova-plugin-background-geolocation plugin
|
|
10
|
+
// https://github.com/christocracy/cordova-plugin-background-geolocation
|
|
11
|
+
|
|
12
|
+
#import "CDVBackgroundGeolocation.h"
|
|
13
|
+
#import "MAURConfig.h"
|
|
14
|
+
#import "MAURBackgroundGeolocationFacade.h"
|
|
15
|
+
#import "MAURBackgroundTaskManager.h"
|
|
16
|
+
|
|
17
|
+
static NSString * const TAG = @"CDVBackgroundGeolocation";
|
|
18
|
+
|
|
19
|
+
@implementation CDVBackgroundGeolocation {
|
|
20
|
+
NSString *callbackId;
|
|
21
|
+
MAURConfig *config;
|
|
22
|
+
MAURBackgroundGeolocationFacade* facade;
|
|
23
|
+
|
|
24
|
+
API_AVAILABLE(ios(10.0))
|
|
25
|
+
__weak id<UNUserNotificationCenterDelegate> prevNotificationDelegate;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
- (void)pluginInitialize
|
|
29
|
+
{
|
|
30
|
+
|
|
31
|
+
facade = [[MAURBackgroundGeolocationFacade alloc] init];
|
|
32
|
+
facade.delegate = self;
|
|
33
|
+
|
|
34
|
+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppPause:) name:UIApplicationDidEnterBackgroundNotification object:nil];
|
|
35
|
+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppResume:) name:UIApplicationWillEnterForegroundNotification object:nil];
|
|
36
|
+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onFinishLaunching:) name:UIApplicationDidFinishLaunchingNotification object:nil];
|
|
37
|
+
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onAppTerminate:) name:UIApplicationWillTerminateNotification object:nil];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* configure plugin
|
|
42
|
+
* @param {Number} stationaryRadius
|
|
43
|
+
* @param {Number} distanceFilter
|
|
44
|
+
* @param {Number} locationTimeout
|
|
45
|
+
*/
|
|
46
|
+
- (void) configure:(CDVInvokedUrlCommand*)command
|
|
47
|
+
{
|
|
48
|
+
NSLog(@"%@ #%@", TAG, @"configure");
|
|
49
|
+
[self.commandDelegate runInBackground:^{
|
|
50
|
+
config = [MAURConfig fromDictionary:[command.arguments objectAtIndex:0]];
|
|
51
|
+
|
|
52
|
+
NSError *error = nil;
|
|
53
|
+
CDVPluginResult* result = nil;
|
|
54
|
+
if ([facade configure:config error:&error]) {
|
|
55
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
|
|
56
|
+
} else {
|
|
57
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:[self errorToDictionary:error]];
|
|
58
|
+
}
|
|
59
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
60
|
+
}];
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Turn on background geolocation
|
|
65
|
+
* in case of failure it calls error callback from configure method
|
|
66
|
+
* may fire two callback when location services are disabled and when authorization failed
|
|
67
|
+
*/
|
|
68
|
+
- (void) start:(CDVInvokedUrlCommand*)command
|
|
69
|
+
{
|
|
70
|
+
NSLog(@"%@ #%@", TAG, @"start");
|
|
71
|
+
[self.commandDelegate runInBackground:^{
|
|
72
|
+
NSError *error = nil;
|
|
73
|
+
|
|
74
|
+
[facade start:&error];
|
|
75
|
+
if (error == nil) {
|
|
76
|
+
[self sendEvent:@"start"];
|
|
77
|
+
} else {
|
|
78
|
+
[self sendError:error];
|
|
79
|
+
}
|
|
80
|
+
CDVPluginResult* result = nil;
|
|
81
|
+
if ([facade configure:config error:&error]) {
|
|
82
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
|
|
83
|
+
} else {
|
|
84
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:[self errorToDictionary:error]];
|
|
85
|
+
}
|
|
86
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
87
|
+
}];
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Turn it off
|
|
92
|
+
*/
|
|
93
|
+
- (void) stop:(CDVInvokedUrlCommand*)command
|
|
94
|
+
{
|
|
95
|
+
NSLog(@"%@ #%@", TAG, @"stop");
|
|
96
|
+
[self.commandDelegate runInBackground:^{
|
|
97
|
+
NSError *error = nil;
|
|
98
|
+
|
|
99
|
+
[facade stop:&error];
|
|
100
|
+
if (error == nil) {
|
|
101
|
+
[self sendEvent:@"stop"];
|
|
102
|
+
} else {
|
|
103
|
+
[self sendError:error];
|
|
104
|
+
}
|
|
105
|
+
CDVPluginResult* result = nil;
|
|
106
|
+
if ([facade configure:config error:&error]) {
|
|
107
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
|
|
108
|
+
} else {
|
|
109
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:[self errorToDictionary:error]];
|
|
110
|
+
}
|
|
111
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
112
|
+
}];
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Change
|
|
117
|
+
* @param {Number} operation mode BACKGROUND/FOREGROUND
|
|
118
|
+
*/
|
|
119
|
+
- (void) switchMode:(CDVInvokedUrlCommand *)command
|
|
120
|
+
{
|
|
121
|
+
NSLog(@"%@ #%@", TAG, @"switchMode");
|
|
122
|
+
[self.commandDelegate runInBackground:^{
|
|
123
|
+
MAUROperationalMode mode = [[command.arguments objectAtIndex: 0] intValue];
|
|
124
|
+
[facade switchMode:mode];
|
|
125
|
+
}];
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
- (void) getConfig:(CDVInvokedUrlCommand*)command
|
|
129
|
+
{
|
|
130
|
+
NSLog(@"%@ #%@", TAG, @"getConfig");
|
|
131
|
+
[self.commandDelegate runInBackground:^{
|
|
132
|
+
MAURConfig *config = [facade getConfig];
|
|
133
|
+
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[config toDictionary]];
|
|
134
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
135
|
+
}];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
- (void) checkStatus:(CDVInvokedUrlCommand *)command
|
|
139
|
+
{
|
|
140
|
+
NSLog(@"%@ #%@", TAG, @"checkStatus");
|
|
141
|
+
[self.commandDelegate runInBackground:^{
|
|
142
|
+
BOOL isRunning = [facade isStarted];
|
|
143
|
+
BOOL locationServicesEnabled = [facade locationServicesEnabled];
|
|
144
|
+
NSInteger authorizationStatus = [facade authorizationStatus];
|
|
145
|
+
|
|
146
|
+
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:3];
|
|
147
|
+
[dict setObject:[NSNumber numberWithBool:isRunning] forKey:@"isRunning"];
|
|
148
|
+
[dict setObject:[NSNumber numberWithBool:locationServicesEnabled] forKey:@"hasPermissions"]; // @deprecated
|
|
149
|
+
[dict setObject:[NSNumber numberWithBool:locationServicesEnabled] forKey:@"locationServicesEnabled"];
|
|
150
|
+
[dict setObject:[NSNumber numberWithInteger:authorizationStatus] forKey:@"authorization"];
|
|
151
|
+
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:dict];
|
|
152
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
153
|
+
}];
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Fetches current stationaryLocation
|
|
158
|
+
*/
|
|
159
|
+
- (void) getStationaryLocation:(CDVInvokedUrlCommand *)command
|
|
160
|
+
{
|
|
161
|
+
NSLog(@"%@ #%@", TAG, @"getStationaryLocation");
|
|
162
|
+
[self.commandDelegate runInBackground:^{
|
|
163
|
+
CDVPluginResult* result = nil;
|
|
164
|
+
|
|
165
|
+
MAURLocation* stationaryLocation = [facade getStationaryLocation];
|
|
166
|
+
if (stationaryLocation) {
|
|
167
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[stationaryLocation toDictionary]];
|
|
168
|
+
} else {
|
|
169
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:NO];
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
173
|
+
}];
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
- (void) isLocationEnabled:(CDVInvokedUrlCommand*)command
|
|
177
|
+
{
|
|
178
|
+
NSLog(@"%@ #%@", TAG, @"isLocationEnabled");
|
|
179
|
+
[self.commandDelegate runInBackground:^{
|
|
180
|
+
BOOL isLocationEnabled = [facade locationServicesEnabled];
|
|
181
|
+
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsBool:isLocationEnabled];
|
|
182
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
183
|
+
}];
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
- (void) showAppSettings:(CDVInvokedUrlCommand*)command
|
|
187
|
+
{
|
|
188
|
+
NSLog(@"%@ #%@", TAG, @"showAppSettings");
|
|
189
|
+
[self.commandDelegate runInBackground:^{
|
|
190
|
+
[facade showAppSettings];
|
|
191
|
+
}];
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
- (void) showLocationSettings:(CDVInvokedUrlCommand*)command
|
|
195
|
+
{
|
|
196
|
+
NSLog(@"%@ #%@", TAG, @"showLocationSettings");
|
|
197
|
+
[self.commandDelegate runInBackground:^{
|
|
198
|
+
[facade showLocationSettings];
|
|
199
|
+
}];
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
- (void) getLocations:(CDVInvokedUrlCommand*)command
|
|
203
|
+
{
|
|
204
|
+
NSLog(@"%@ #%@", TAG, @"getLocations");
|
|
205
|
+
[self.commandDelegate runInBackground:^{
|
|
206
|
+
NSArray *locations = [facade getLocations];
|
|
207
|
+
NSMutableArray* dictionaryLocations = [[NSMutableArray alloc] initWithCapacity:[locations count]];
|
|
208
|
+
for (MAURLocation* location in locations) {
|
|
209
|
+
[dictionaryLocations addObject:[location toDictionaryWithId]];
|
|
210
|
+
}
|
|
211
|
+
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:dictionaryLocations];
|
|
212
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
213
|
+
}];
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
- (void) getValidLocations:(CDVInvokedUrlCommand*)command
|
|
217
|
+
{
|
|
218
|
+
NSLog(@"%@ #%@", TAG, @"getValidLocations");
|
|
219
|
+
[self.commandDelegate runInBackground:^{
|
|
220
|
+
NSArray *locations = [facade getValidLocations];
|
|
221
|
+
NSMutableArray* dictionaryLocations = [[NSMutableArray alloc] initWithCapacity:[locations count]];
|
|
222
|
+
for (MAURLocation* location in locations) {
|
|
223
|
+
[dictionaryLocations addObject:[location toDictionaryWithId]];
|
|
224
|
+
}
|
|
225
|
+
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:dictionaryLocations];
|
|
226
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
227
|
+
}];
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
- (void) getValidLocationsAndDelete:(CDVInvokedUrlCommand*)command
|
|
231
|
+
{
|
|
232
|
+
NSLog(@"%@ #%@", TAG, @"getValidLocationsAndDelete");
|
|
233
|
+
[self.commandDelegate runInBackground:^{
|
|
234
|
+
NSArray *locations = [facade getValidLocationsAndDelete];
|
|
235
|
+
NSMutableArray* dictionaryLocations = [[NSMutableArray alloc] initWithCapacity:[locations count]];
|
|
236
|
+
for (MAURLocation* location in locations) {
|
|
237
|
+
[dictionaryLocations addObject:[location toDictionaryWithId]];
|
|
238
|
+
}
|
|
239
|
+
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:dictionaryLocations];
|
|
240
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
241
|
+
}];
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
- (void) deleteLocation:(CDVInvokedUrlCommand*)command
|
|
245
|
+
{
|
|
246
|
+
NSLog(@"%@ #%@", TAG, @"deleteLocation");
|
|
247
|
+
[self.commandDelegate runInBackground:^{
|
|
248
|
+
NSError *error = nil;
|
|
249
|
+
int locationId = [[command.arguments objectAtIndex: 0] intValue];
|
|
250
|
+
BOOL success = [facade deleteLocation:[[NSNumber alloc] initWithInt:locationId] error:&error];
|
|
251
|
+
CDVPluginResult* result;
|
|
252
|
+
if (success) {
|
|
253
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
|
|
254
|
+
} else {
|
|
255
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:[self errorToDictionary:error]];
|
|
256
|
+
}
|
|
257
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
258
|
+
}];
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
- (void) deleteAllLocations:(CDVInvokedUrlCommand*)command
|
|
262
|
+
{
|
|
263
|
+
NSLog(@"%@ #%@", TAG, @"deleteAllLocations");
|
|
264
|
+
[self.commandDelegate runInBackground:^{
|
|
265
|
+
NSError *error = nil;
|
|
266
|
+
BOOL success = [facade deleteAllLocations:&error];
|
|
267
|
+
CDVPluginResult* result;
|
|
268
|
+
if (success) {
|
|
269
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
|
|
270
|
+
} else {
|
|
271
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:[self errorToDictionary:error]];
|
|
272
|
+
}
|
|
273
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
274
|
+
}];
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
- (void) getCurrentLocation:(CDVInvokedUrlCommand*)command
|
|
278
|
+
{
|
|
279
|
+
NSLog(@"%@ #%@", TAG, @"getCurrentLocation");
|
|
280
|
+
[self.commandDelegate runInBackground:^{
|
|
281
|
+
NSError *error = nil;
|
|
282
|
+
NSArray *args = command.arguments;
|
|
283
|
+
int timeout = [args objectAtIndex: 0] == [NSNull null] ? INT_MAX : [[args objectAtIndex: 0] intValue];
|
|
284
|
+
long maximumAge = [args objectAtIndex: 1] == [NSNull null] ? LONG_MAX : [[args objectAtIndex: 1] longValue];
|
|
285
|
+
BOOL enableHighAccuracy = [args objectAtIndex: 2] == [NSNull null] ? NO : [[args objectAtIndex: 2] boolValue];
|
|
286
|
+
|
|
287
|
+
MAURLocation *location = [facade getCurrentLocation:timeout maximumAge:maximumAge enableHighAccuracy:enableHighAccuracy error:&error];
|
|
288
|
+
CDVPluginResult* result;
|
|
289
|
+
if (location != nil) {
|
|
290
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:[location toDictionary]];
|
|
291
|
+
} else {
|
|
292
|
+
result = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:[self errorToDictionary:error]];
|
|
293
|
+
}
|
|
294
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
295
|
+
}];
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
- (void) getLogEntries:(CDVInvokedUrlCommand*)command
|
|
299
|
+
{
|
|
300
|
+
NSLog(@"%@ #%@", TAG, @"getLogEntries");
|
|
301
|
+
[self.commandDelegate runInBackground:^{
|
|
302
|
+
NSArray *args = command.arguments;
|
|
303
|
+
NSInteger limit = [args objectAtIndex: 0] == [NSNull null]
|
|
304
|
+
? 0 : [[args objectAtIndex: 0] integerValue];
|
|
305
|
+
NSInteger entryId = [args objectAtIndex: 1] == [NSNull null]
|
|
306
|
+
? 0 : [[args objectAtIndex: 1] integerValue];
|
|
307
|
+
NSString *minLogLevel = [args objectAtIndex: 2] == [NSNull null]
|
|
308
|
+
? @"DEBUG" : [args objectAtIndex: 2];
|
|
309
|
+
|
|
310
|
+
NSArray *logs = [facade getLogEntries:limit fromLogEntryId:entryId minLogLevelFromString:minLogLevel];
|
|
311
|
+
CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsArray:logs];
|
|
312
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
313
|
+
}];
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
- (void) startTask:(CDVInvokedUrlCommand*)command
|
|
317
|
+
{
|
|
318
|
+
NSUInteger taskKey = [[MAURBackgroundTaskManager sharedTasks] beginTask];
|
|
319
|
+
CDVPluginResult *result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsNSUInteger:taskKey];
|
|
320
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
- (void) endTask:(CDVInvokedUrlCommand*)command
|
|
324
|
+
{
|
|
325
|
+
int taskKey = [[command.arguments objectAtIndex: 0] intValue];
|
|
326
|
+
[[MAURBackgroundTaskManager sharedTasks] endTaskWithKey:taskKey];
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
- (void) forceSync:(CDVInvokedUrlCommand*)command
|
|
330
|
+
{
|
|
331
|
+
[facade forceSync];
|
|
332
|
+
CDVPluginResult *result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
|
|
333
|
+
[self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
- (void) addEventListener:(CDVInvokedUrlCommand*)command
|
|
337
|
+
{
|
|
338
|
+
callbackId = command.callbackId;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
- (void) removeEventListener:(CDVInvokedUrlCommand*)command
|
|
342
|
+
{
|
|
343
|
+
callbackId = nil;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
-(void) sendEvent:(NSString*)name
|
|
347
|
+
{
|
|
348
|
+
if (callbackId == nil) {
|
|
349
|
+
return;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
NSDictionary *message = [[NSDictionary alloc] initWithObjectsAndKeys:[NSString stringWithFormat:@"%@", name], @"name", nil];
|
|
353
|
+
CDVPluginResult* cordovaResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:message];
|
|
354
|
+
[cordovaResult setKeepCallbackAsBool:YES];
|
|
355
|
+
[self.commandDelegate sendPluginResult:cordovaResult callbackId:callbackId];
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
-(void) sendEvent:(NSString*)name resultAsNumber:(NSNumber*)result
|
|
359
|
+
{
|
|
360
|
+
if (callbackId == nil) {
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
NSDictionary *message = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
365
|
+
[NSString stringWithFormat:@"%@", name], @"name",
|
|
366
|
+
result, @"payload",
|
|
367
|
+
nil];
|
|
368
|
+
CDVPluginResult* cordovaResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:message];
|
|
369
|
+
[cordovaResult setKeepCallbackAsBool:YES];
|
|
370
|
+
[self.commandDelegate sendPluginResult:cordovaResult callbackId:callbackId];
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
-(void) sendEvent:(NSString*)name result:(id)result
|
|
374
|
+
{
|
|
375
|
+
if (callbackId == nil) {
|
|
376
|
+
return;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
NSDictionary *message = [[NSDictionary alloc] initWithObjectsAndKeys:
|
|
380
|
+
[NSString stringWithFormat:@"%@", name], @"name",
|
|
381
|
+
result, @"payload",
|
|
382
|
+
nil];
|
|
383
|
+
CDVPluginResult* cordovaResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:message];
|
|
384
|
+
[cordovaResult setKeepCallbackAsBool:YES];
|
|
385
|
+
[self.commandDelegate sendPluginResult:cordovaResult callbackId:callbackId];
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
- (void) sendError:(NSError*)error
|
|
389
|
+
{
|
|
390
|
+
NSLog(@"%@ #%@", TAG, @"onError");
|
|
391
|
+
if (callbackId == nil) {
|
|
392
|
+
return;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
CDVPluginResult* cordovaResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR messageAsDictionary:[self errorToDictionary:error]];
|
|
396
|
+
[cordovaResult setKeepCallbackAsBool:YES];
|
|
397
|
+
[self.commandDelegate sendPluginResult:cordovaResult callbackId:callbackId];
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
- (NSDictionary*) errorToDictionary:(NSError*)error
|
|
401
|
+
{
|
|
402
|
+
NSDictionary *userInfo = [error userInfo];
|
|
403
|
+
NSString *errorMessage = [error localizedDescription];
|
|
404
|
+
if (errorMessage == nil) {
|
|
405
|
+
errorMessage = [[userInfo objectForKey:NSUnderlyingErrorKey] localizedDescription];
|
|
406
|
+
}
|
|
407
|
+
return @{ @"code": [NSNumber numberWithLong:error.code], @"message": errorMessage};
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
- (void) onAuthorizationChanged:(MAURLocationAuthorizationStatus)authStatus
|
|
411
|
+
{
|
|
412
|
+
NSLog(@"%@ #%@", TAG, @"onAuthorizationChanged");
|
|
413
|
+
[self sendEvent:@"authorization" resultAsNumber:[NSNumber numberWithInt:authStatus]];
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
- (void) onLocationChanged:(MAURLocation*)location
|
|
417
|
+
{
|
|
418
|
+
NSLog(@"%@ #%@", TAG, @"onLocationChanged");
|
|
419
|
+
[self sendEvent:@"location" result:[location toDictionaryWithId]];
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
- (void) onStationaryChanged:(MAURLocation*)location
|
|
423
|
+
{
|
|
424
|
+
NSLog(@"%@ #%@", TAG, @"onStationaryChanged");
|
|
425
|
+
[self sendEvent:@"stationary" result:[location toDictionaryWithId]];
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
- (void) onLocationPause
|
|
429
|
+
{
|
|
430
|
+
NSLog(@"%@ %@", TAG, @"location updates paused");
|
|
431
|
+
[self sendEvent:@"stop"];
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
- (void) onLocationResume
|
|
435
|
+
{
|
|
436
|
+
NSLog(@"%@ %@", TAG, @"location updates resumed");
|
|
437
|
+
[self sendEvent:@"start"];
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
- (void) onActivityChanged:(MAURActivity *)activity
|
|
441
|
+
{
|
|
442
|
+
NSLog(@"%@ #%@", TAG, @"onActivityChanged");
|
|
443
|
+
[self sendEvent:@"activity" result:[activity toDictionary]];
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
- (void) onError:(NSError*)error
|
|
447
|
+
{
|
|
448
|
+
NSLog(@"%@ #%@", TAG, @"onError");
|
|
449
|
+
[self sendError:error];
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
-(void) onAppResume:(NSNotification *)notification
|
|
453
|
+
{
|
|
454
|
+
NSLog(@"%@ %@", TAG, @"resumed");
|
|
455
|
+
[facade switchMode:MAURForegroundMode];
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
-(void) onAppPause:(NSNotification *)notification
|
|
459
|
+
{
|
|
460
|
+
NSLog(@"%@ %@", TAG, @"paused");
|
|
461
|
+
[facade switchMode:MAURBackgroundMode];
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
-(void) onAbortRequested
|
|
465
|
+
{
|
|
466
|
+
NSLog(@"%@ %@", TAG, @"abort requested by the server");
|
|
467
|
+
[self sendEvent:@"abort_requested"];
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
- (void) onHttpAuthorization {
|
|
471
|
+
NSLog(@"%@ %@", TAG, @"http authorization requested by the server");
|
|
472
|
+
[self sendEvent:@"http_authorization"];
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/**@
|
|
476
|
+
* on UIApplicationDidFinishLaunchingNotification
|
|
477
|
+
*/
|
|
478
|
+
-(void) onFinishLaunching:(NSNotification *)notification
|
|
479
|
+
{
|
|
480
|
+
NSDictionary *dict = [notification userInfo];
|
|
481
|
+
MAURConfig *config = [facade getConfig];
|
|
482
|
+
|
|
483
|
+
if (config.isDebugging)
|
|
484
|
+
{
|
|
485
|
+
if (@available(iOS 10, *))
|
|
486
|
+
{
|
|
487
|
+
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
|
|
488
|
+
prevNotificationDelegate = center.delegate;
|
|
489
|
+
center.delegate = self;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
if ([dict objectForKey:UIApplicationLaunchOptionsLocationKey]) {
|
|
494
|
+
NSLog(@"%@ %@", TAG, @"started by system on location event.");
|
|
495
|
+
if (![config stopOnTerminate]) {
|
|
496
|
+
[facade start:nil];
|
|
497
|
+
[facade switchMode:MAURBackgroundMode];
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
- (void)userNotificationCenter:(UNUserNotificationCenter *)center
|
|
503
|
+
willPresentNotification:(UNNotification *)notification
|
|
504
|
+
withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler
|
|
505
|
+
{
|
|
506
|
+
if (prevNotificationDelegate && [prevNotificationDelegate respondsToSelector:@selector(userNotificationCenter:willPresentNotification:withCompletionHandler:)])
|
|
507
|
+
{
|
|
508
|
+
// Give other delegates (like FCM) the chance to process this notification
|
|
509
|
+
|
|
510
|
+
[prevNotificationDelegate userNotificationCenter:center willPresentNotification:notification withCompletionHandler:^(UNNotificationPresentationOptions options) {
|
|
511
|
+
completionHandler(UNNotificationPresentationOptionAlert);
|
|
512
|
+
}];
|
|
513
|
+
}
|
|
514
|
+
else
|
|
515
|
+
{
|
|
516
|
+
completionHandler(UNNotificationPresentationOptionAlert);
|
|
517
|
+
}
|
|
518
|
+
}
|
|
519
|
+
|
|
520
|
+
-(void) onAppTerminate:(NSNotification *)notification
|
|
521
|
+
{
|
|
522
|
+
NSLog(@"%@ %@", TAG, @"appTerminate");
|
|
523
|
+
[facade onAppTerminate];
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
@end
|