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.
- package/NitroBackgroundGeolocation.podspec +29 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +133 -0
- package/android/src/main/AndroidManifest.xml +65 -0
- package/android/src/main/cpp/cpp-adapter.cpp +11 -0
- package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/ConfigMapper.kt +332 -0
- package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/HeadlessTaskRegistry.kt +23 -0
- package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/HeadlessTaskService.kt +66 -0
- package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/NitroBackgroundGeolocation.kt +538 -0
- package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/NitroBackgroundGeolocationPackage.kt +22 -0
- package/android/src/main/java/com/margelo/nitro/nitrobackgroundgeolocation/ReactNativeHeadlessTaskRunner.kt +62 -0
- package/android/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java +542 -0
- package/android/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java +59 -0
- package/android/src/main/java/com/marianhello/bgloc/Config.java +652 -0
- package/android/src/main/java/com/marianhello/bgloc/ConnectivityListener.java +5 -0
- package/android/src/main/java/com/marianhello/bgloc/HttpPostService.java +168 -0
- package/android/src/main/java/com/marianhello/bgloc/LocationManager.java +138 -0
- package/android/src/main/java/com/marianhello/bgloc/PluginDelegate.java +19 -0
- package/android/src/main/java/com/marianhello/bgloc/PluginException.java +38 -0
- package/android/src/main/java/com/marianhello/bgloc/PostLocationTask.java +186 -0
- package/android/src/main/java/com/marianhello/bgloc/ResourceResolver.java +55 -0
- package/android/src/main/java/com/marianhello/bgloc/data/AbstractLocationTemplate.java +69 -0
- package/android/src/main/java/com/marianhello/bgloc/data/ArrayListLocationTemplate.java +88 -0
- package/android/src/main/java/com/marianhello/bgloc/data/BackgroundActivity.java +108 -0
- package/android/src/main/java/com/marianhello/bgloc/data/BackgroundLocation.java +994 -0
- package/android/src/main/java/com/marianhello/bgloc/data/ConfigurationDAO.java +13 -0
- package/android/src/main/java/com/marianhello/bgloc/data/DAOFactory.java +17 -0
- package/android/src/main/java/com/marianhello/bgloc/data/HashMapLocationTemplate.java +82 -0
- package/android/src/main/java/com/marianhello/bgloc/data/LocationDAO.java +22 -0
- package/android/src/main/java/com/marianhello/bgloc/data/LocationTemplate.java +12 -0
- package/android/src/main/java/com/marianhello/bgloc/data/LocationTemplateFactory.java +65 -0
- package/android/src/main/java/com/marianhello/bgloc/data/LocationTransform.java +19 -0
- package/android/src/main/java/com/marianhello/bgloc/data/provider/ContentProviderLocationDAO.java +395 -0
- package/android/src/main/java/com/marianhello/bgloc/data/provider/LocationContentProvider.java +321 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationContract.java +76 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationDAO.java +160 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationContract.java +112 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationDAO.java +506 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java +151 -0
- package/android/src/main/java/com/marianhello/bgloc/headless/AbstractTaskRunner.java +15 -0
- package/android/src/main/java/com/marianhello/bgloc/headless/ActivityTask.java +48 -0
- package/android/src/main/java/com/marianhello/bgloc/headless/JsCallback.java +10 -0
- package/android/src/main/java/com/marianhello/bgloc/headless/LocationTask.java +61 -0
- package/android/src/main/java/com/marianhello/bgloc/headless/StationaryTask.java +25 -0
- package/android/src/main/java/com/marianhello/bgloc/headless/Task.java +8 -0
- package/android/src/main/java/com/marianhello/bgloc/headless/TaskRunner.java +5 -0
- package/android/src/main/java/com/marianhello/bgloc/headless/TaskRunnerFactory.java +8 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/AbstractLocationProvider.java +171 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java +280 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/DistanceFilterLocationProvider.java +586 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/LocationProvider.java +32 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/LocationProviderFactory.java +47 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/ProviderDelegate.java +12 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/RawLocationProvider.java +142 -0
- package/android/src/main/java/com/marianhello/bgloc/service/LocationService.java +17 -0
- package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceImpl.java +760 -0
- package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceInfo.java +6 -0
- package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceInfoImpl.java +41 -0
- package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceIntentBuilder.java +203 -0
- package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceProxy.java +140 -0
- package/android/src/main/java/com/marianhello/bgloc/sync/AccountHelper.java +39 -0
- package/android/src/main/java/com/marianhello/bgloc/sync/Authenticator.java +68 -0
- package/android/src/main/java/com/marianhello/bgloc/sync/AuthenticatorService.java +28 -0
- package/android/src/main/java/com/marianhello/bgloc/sync/BatchManager.java +246 -0
- package/android/src/main/java/com/marianhello/bgloc/sync/NotificationHelper.java +148 -0
- package/android/src/main/java/com/marianhello/bgloc/sync/SyncAdapter.java +233 -0
- package/android/src/main/java/com/marianhello/bgloc/sync/SyncService.java +68 -0
- package/android/src/main/java/com/marianhello/logging/DBLogReader.java +203 -0
- package/android/src/main/java/com/marianhello/logging/LogEntry.java +99 -0
- package/android/src/main/java/com/marianhello/logging/LoggerManager.java +70 -0
- package/android/src/main/java/com/marianhello/logging/UncaughtExceptionLogger.java +36 -0
- package/android/src/main/java/com/marianhello/utils/CloneHelper.java +22 -0
- package/android/src/main/java/com/marianhello/utils/Convert.java +56 -0
- package/android/src/main/java/com/marianhello/utils/TextUtils.java +72 -0
- package/android/src/main/java/com/marianhello/utils/ToneGenerator.java +68 -0
- package/android/src/main/java/org/apache/commons/io/Charsets.java +153 -0
- package/android/src/main/java/org/apache/commons/io/input/ReversedLinesFileReader.java +344 -0
- package/android/src/main/java/org/chromium/content/browser/ThreadUtils.java +134 -0
- package/android/src/main/java/ru/andremoniy/sqlbuilder/SqlExpression.java +398 -0
- package/android/src/main/java/ru/andremoniy/sqlbuilder/SqlSelectStatement.java +671 -0
- package/android/src/main/java/ru/andremoniy/sqlbuilder/SqlStatement.java +29 -0
- package/android/src/main/java/ru/andremoniy/utils/TextUtils.java +61 -0
- package/android/src/main/res/values/strings.xml +6 -0
- package/android/src/main/res/xml/authenticator.xml +7 -0
- package/android/src/main/res/xml/syncadapter.xml +9 -0
- package/app.plugin.js +64 -0
- package/ios/NitroBackgroundGeolocation.swift +719 -0
- package/ios/NitroBackgroundGeolocationBootstrap.m +98 -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 +62 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +650 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundSync.h +34 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundSync.m +184 -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 +523 -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 +308 -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 +218 -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 +474 -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/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/lib/module/NitroBackgroundGeolocation.nitro.js +172 -0
- package/lib/module/NitroBackgroundGeolocation.nitro.js.map +1 -0
- package/lib/module/headless.js +72 -0
- package/lib/module/headless.js.map +1 -0
- package/lib/module/index.js +60 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NitroBackgroundGeolocation.nitro.d.ts +616 -0
- package/lib/typescript/src/NitroBackgroundGeolocation.nitro.d.ts.map +1 -0
- package/lib/typescript/src/headless.d.ts +40 -0
- package/lib/typescript/src/headless.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +8 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/nitro.json +23 -0
- package/nitrogen/generated/android/c++/JActivity.hpp +61 -0
- package/nitrogen/generated/android/c++/JAuthorizationStatus.hpp +61 -0
- package/nitrogen/generated/android/c++/JBackgroundGeolocationError.hpp +61 -0
- package/nitrogen/generated/android/c++/JConfigureOptions.hpp +179 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +75 -0
- package/nitrogen/generated/android/c++/JFunc_void_Activity.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_AuthorizationStatus.hpp +77 -0
- package/nitrogen/generated/android/c++/JFunc_void_BackgroundGeolocationError.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_Location.hpp +78 -0
- package/nitrogen/generated/android/c++/JFunc_void_StationaryLocation.hpp +78 -0
- package/nitrogen/generated/android/c++/JHybridNitroBackgroundGeolocationSpec.cpp +530 -0
- package/nitrogen/generated/android/c++/JHybridNitroBackgroundGeolocationSpec.hpp +90 -0
- package/nitrogen/generated/android/c++/JLocation.hpp +105 -0
- package/nitrogen/generated/android/c++/JLocationAccuracy.hpp +64 -0
- package/nitrogen/generated/android/c++/JLocationOptions.hpp +65 -0
- package/nitrogen/generated/android/c++/JLocationProvider.hpp +61 -0
- package/nitrogen/generated/android/c++/JLogEntry.hpp +73 -0
- package/nitrogen/generated/android/c++/JNativeLogLevel.hpp +67 -0
- package/nitrogen/generated/android/c++/JServiceStatus.hpp +66 -0
- package/nitrogen/generated/android/c++/JStationaryLocation.hpp +109 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_AnyMap.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_AnyMap.hpp +71 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Boolean.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Boolean.hpp +69 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Double.hpp +69 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_LocationAccuracy.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_LocationAccuracy.hpp +71 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_LocationProvider.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_LocationProvider.hpp +71 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Map_String__String_.cpp +33 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_Map_String__String_.hpp +77 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_String.cpp +26 -0
- package/nitrogen/generated/android/c++/JVariant_NullType_String.hpp +70 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Activity.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/AuthorizationStatus.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/BackgroundGeolocationError.kt +56 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/ConfigureOptions.kt +182 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_Activity.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_AuthorizationStatus.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_BackgroundGeolocationError.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_Location.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Func_void_StationaryLocation.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/HybridNitroBackgroundGeolocationSpec.kt +218 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Location.kt +111 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/LocationAccuracy.kt +25 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/LocationOptions.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/LocationProvider.kt +24 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/LogEntry.kt +71 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/NativeLogLevel.kt +26 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/ServiceStatus.kt +61 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/StationaryLocation.kt +116 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_AnyMap.kt +63 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_Boolean.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_Double.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_LocationAccuracy.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_LocationProvider.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_Map_String__String_.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/Variant_NullType_String.kt +62 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/nitrobackgroundgeolocation/nitrobackgroundgeolocationOnLoad.kt +35 -0
- package/nitrogen/generated/android/nitrobackgroundgeolocation+autolinking.cmake +88 -0
- package/nitrogen/generated/android/nitrobackgroundgeolocation+autolinking.gradle +27 -0
- package/nitrogen/generated/android/nitrobackgroundgeolocationOnLoad.cpp +66 -0
- package/nitrogen/generated/android/nitrobackgroundgeolocationOnLoad.hpp +34 -0
- package/nitrogen/generated/ios/NitroBackgroundGeolocation+autolinking.rb +62 -0
- package/nitrogen/generated/ios/NitroBackgroundGeolocation-Swift-Cxx-Bridge.cpp +129 -0
- package/nitrogen/generated/ios/NitroBackgroundGeolocation-Swift-Cxx-Bridge.hpp +911 -0
- package/nitrogen/generated/ios/NitroBackgroundGeolocation-Swift-Cxx-Umbrella.hpp +88 -0
- package/nitrogen/generated/ios/NitroBackgroundGeolocationAutolinking.mm +33 -0
- package/nitrogen/generated/ios/NitroBackgroundGeolocationAutolinking.swift +26 -0
- package/nitrogen/generated/ios/c++/HybridNitroBackgroundGeolocationSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridNitroBackgroundGeolocationSpecSwift.hpp +335 -0
- package/nitrogen/generated/ios/swift/Activity.swift +34 -0
- package/nitrogen/generated/ios/swift/AuthorizationStatus.swift +44 -0
- package/nitrogen/generated/ios/swift/BackgroundGeolocationError.swift +34 -0
- package/nitrogen/generated/ios/swift/ConfigureOptions.swift +1037 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_Activity.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_AuthorizationStatus.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_BackgroundGeolocationError.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_ConfigureOptions.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_Location.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_ServiceStatus.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_StationaryLocation.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__optional_StationaryLocation_.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_Location_.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_LogEntry_.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridNitroBackgroundGeolocationSpec.swift +82 -0
- package/nitrogen/generated/ios/swift/HybridNitroBackgroundGeolocationSpec_cxx.swift +675 -0
- package/nitrogen/generated/ios/swift/Location.swift +89 -0
- package/nitrogen/generated/ios/swift/LocationAccuracy.swift +48 -0
- package/nitrogen/generated/ios/swift/LocationOptions.swift +78 -0
- package/nitrogen/generated/ios/swift/LocationProvider.swift +44 -0
- package/nitrogen/generated/ios/swift/LogEntry.swift +49 -0
- package/nitrogen/generated/ios/swift/NativeLogLevel.swift +52 -0
- package/nitrogen/generated/ios/swift/ServiceStatus.swift +39 -0
- package/nitrogen/generated/ios/swift/StationaryLocation.swift +94 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_AnyMap.swift +30 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_Bool.swift +30 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_Dictionary_String__String_.swift +30 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_Double.swift +30 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_LocationAccuracy.swift +30 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_LocationProvider.swift +30 -0
- package/nitrogen/generated/ios/swift/Variant_NullType_String.swift +30 -0
- package/nitrogen/generated/shared/c++/Activity.hpp +87 -0
- package/nitrogen/generated/shared/c++/AuthorizationStatus.hpp +63 -0
- package/nitrogen/generated/shared/c++/BackgroundGeolocationError.hpp +87 -0
- package/nitrogen/generated/shared/c++/ConfigureOptions.hpp +197 -0
- package/nitrogen/generated/shared/c++/HybridNitroBackgroundGeolocationSpec.cpp +48 -0
- package/nitrogen/generated/shared/c++/HybridNitroBackgroundGeolocationSpec.hpp +121 -0
- package/nitrogen/generated/shared/c++/Location.hpp +131 -0
- package/nitrogen/generated/shared/c++/LocationAccuracy.hpp +69 -0
- package/nitrogen/generated/shared/c++/LocationOptions.hpp +91 -0
- package/nitrogen/generated/shared/c++/LocationProvider.hpp +63 -0
- package/nitrogen/generated/shared/c++/LogEntry.hpp +99 -0
- package/nitrogen/generated/shared/c++/NativeLogLevel.hpp +65 -0
- package/nitrogen/generated/shared/c++/ServiceStatus.hpp +92 -0
- package/nitrogen/generated/shared/c++/StationaryLocation.hpp +135 -0
- package/package.json +112 -0
- package/react-native.config.js +10 -0
- package/src/NitroBackgroundGeolocation.nitro.ts +656 -0
- package/src/headless.ts +91 -0
- package/src/index.tsx +100 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MAURBackgroundSync.m
|
|
3
|
+
//
|
|
4
|
+
// Created by Marian Hello on 07/07/16.
|
|
5
|
+
// Copyright © 2016 mauron85. All rights reserved.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import "UIKit/UIKit.h"
|
|
9
|
+
#import "MAURLogging.h"
|
|
10
|
+
#import "MAURBackgroundSync.h"
|
|
11
|
+
#import "MAURSQLiteLocationDAO.h"
|
|
12
|
+
|
|
13
|
+
@interface MAURBackgroundSync () <NSURLSessionDelegate, NSURLSessionTaskDelegate>
|
|
14
|
+
{
|
|
15
|
+
NSURLSession *urlSession;
|
|
16
|
+
NSMutableArray *tasks;
|
|
17
|
+
}
|
|
18
|
+
@end
|
|
19
|
+
|
|
20
|
+
@implementation MAURBackgroundSync
|
|
21
|
+
|
|
22
|
+
- (instancetype) init
|
|
23
|
+
{
|
|
24
|
+
if(!(self = [super init])) return nil;
|
|
25
|
+
|
|
26
|
+
NSURLSessionConfiguration *conf = [NSURLSessionConfiguration backgroundSessionConfiguration:@"com.marianhello.session"];
|
|
27
|
+
conf.allowsCellularAccess = YES;
|
|
28
|
+
urlSession = [NSURLSession sessionWithConfiguration:conf delegate:self delegateQueue:[NSOperationQueue mainQueue]];
|
|
29
|
+
|
|
30
|
+
return self;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
- (void)start
|
|
34
|
+
{
|
|
35
|
+
__block UIBackgroundTaskIdentifier bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
|
|
36
|
+
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
|
|
37
|
+
}];
|
|
38
|
+
|
|
39
|
+
[urlSession getTasksWithCompletionHandler:^(NSArray *dataTasks, NSArray *uploadTasks, NSArray *downloadTasks) {
|
|
40
|
+
for(NSURLSessionUploadTask *task in uploadTasks) {
|
|
41
|
+
DDLogInfo(@"Restored upload task %zu for %@", (unsigned long)task.taskIdentifier, task.originalRequest.URL);
|
|
42
|
+
[tasks addObject:task];
|
|
43
|
+
[task resume];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
|
|
47
|
+
}];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
- (void)cancel
|
|
51
|
+
{
|
|
52
|
+
for(NSURLSessionTask *task in tasks) {
|
|
53
|
+
[task cancel];
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
- (void) sync:(NSString * _Nonnull)url withTemplate:(id)locationTemplate withHttpHeaders:(NSMutableDictionary * _Nullable)httpHeaders
|
|
58
|
+
{
|
|
59
|
+
MAURSQLiteLocationDAO* locationDAO = [MAURSQLiteLocationDAO sharedInstance];
|
|
60
|
+
NSArray *locations = [locationDAO getLocationsForSync];
|
|
61
|
+
|
|
62
|
+
NSMutableArray *jsonArray = [[NSMutableArray alloc] initWithCapacity:[locations count]];
|
|
63
|
+
for (MAURLocation *location in locations) {
|
|
64
|
+
[jsonArray addObject:[location toResultFromTemplate:locationTemplate]];
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
NSError *error = nil;
|
|
68
|
+
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonArray options:0 error:&error];
|
|
69
|
+
|
|
70
|
+
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
|
|
71
|
+
dateFormatter.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
|
|
72
|
+
dateFormatter.dateFormat = @"yyyyMMdd_HHmms";
|
|
73
|
+
dateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0];
|
|
74
|
+
NSString *fileName = [NSString stringWithFormat:@"locations_%@.json", [dateFormatter stringFromDate:[NSDate date]]];
|
|
75
|
+
NSURL *jsonUrl = [NSURL fileURLWithPath:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] stringByAppendingPathComponent:fileName]];
|
|
76
|
+
[jsonData writeToFile:jsonUrl.path atomically:NO];
|
|
77
|
+
uint64_t bytesTotalForThisFile = [[[NSFileManager defaultManager] attributesOfItemAtPath:jsonUrl.path error:nil] fileSize];
|
|
78
|
+
|
|
79
|
+
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:url]];
|
|
80
|
+
[request setHTTPMethod:@"POST"];
|
|
81
|
+
[request setValue:[NSString stringWithFormat:@"%llu", bytesTotalForThisFile] forHTTPHeaderField:@"Content-Length"];
|
|
82
|
+
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
|
|
83
|
+
|
|
84
|
+
if (httpHeaders != nil) {
|
|
85
|
+
for(id key in httpHeaders) {
|
|
86
|
+
id value = [httpHeaders objectForKey:key];
|
|
87
|
+
[request addValue:value forHTTPHeaderField:key];
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
NSURLSessionTask *task = [urlSession uploadTaskWithRequest:request fromFile:jsonUrl];
|
|
91
|
+
task.taskDescription = fileName;
|
|
92
|
+
[tasks addObject:task];
|
|
93
|
+
DDLogInfo(@"Started upload for %@ as task %zu/%@/%@", jsonUrl.lastPathComponent, (unsigned long)task.taskIdentifier, task.taskDescription, task);
|
|
94
|
+
[task resume];
|
|
95
|
+
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// http://stackoverflow.com/a/572623/48125
|
|
99
|
+
NSString *stringFromFileSize(unsigned long long theSize)
|
|
100
|
+
{
|
|
101
|
+
double floatSize = theSize;
|
|
102
|
+
if (theSize<1023)
|
|
103
|
+
return([NSString stringWithFormat:@"%lli bytes",theSize]);
|
|
104
|
+
floatSize = floatSize / 1024;
|
|
105
|
+
if (floatSize<1023)
|
|
106
|
+
return([NSString stringWithFormat:@"%1.1f KB",floatSize]);
|
|
107
|
+
floatSize = floatSize / 1024;
|
|
108
|
+
if (floatSize<1023)
|
|
109
|
+
return([NSString stringWithFormat:@"%1.1f MB",floatSize]);
|
|
110
|
+
floatSize = floatSize / 1024;
|
|
111
|
+
|
|
112
|
+
return([NSString stringWithFormat:@"%1.1f GB",floatSize]);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
- (NSString*)status
|
|
116
|
+
{
|
|
117
|
+
int64_t sent = 0, toSend = 0;
|
|
118
|
+
for(NSURLSessionUploadTask *task in tasks) {
|
|
119
|
+
sent += task.countOfBytesSent;
|
|
120
|
+
toSend += task.countOfBytesExpectedToSend;
|
|
121
|
+
}
|
|
122
|
+
return [NSString stringWithFormat:@"%@ being uploaded (%@ of %@)\nFiles on disk: %@",
|
|
123
|
+
[tasks valueForKeyPath:@"taskDescription"],
|
|
124
|
+
stringFromFileSize(sent),
|
|
125
|
+
stringFromFileSize(toSend),
|
|
126
|
+
|
|
127
|
+
[[NSFileManager defaultManager]
|
|
128
|
+
contentsOfDirectoryAtPath:NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]
|
|
129
|
+
error:NULL]
|
|
130
|
+
];
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
#pragma mark -
|
|
135
|
+
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(nullable NSError *)error
|
|
136
|
+
{
|
|
137
|
+
NSInteger statusCode = [(NSHTTPURLResponse *)task.response statusCode];
|
|
138
|
+
|
|
139
|
+
DDLogInfo(@"Finished uploading task %zu %@: %@ %@, HTTP %ld", (unsigned long)[task taskIdentifier], task.originalRequest.URL, error ?: @"Success", task.response, (long)statusCode);
|
|
140
|
+
|
|
141
|
+
[tasks removeObject:task];
|
|
142
|
+
NSURL *fullPath = [NSURL fileURLWithPath:[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0] stringByAppendingPathComponent:task.taskDescription]];
|
|
143
|
+
[[NSFileManager defaultManager] removeItemAtURL:fullPath error:NULL];
|
|
144
|
+
|
|
145
|
+
if (statusCode == 285)
|
|
146
|
+
{
|
|
147
|
+
// Okay, but we don't need to continue sending these
|
|
148
|
+
DDLogDebug(@"Locations were uploaded to the server, and received an \"HTTP 285 Updates Not Required\"");
|
|
149
|
+
|
|
150
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
151
|
+
if (_delegate && [_delegate respondsToSelector:@selector(backgroundSyncRequestedAbortUpdates:)])
|
|
152
|
+
{
|
|
153
|
+
[_delegate backgroundSyncRequestedAbortUpdates:self];
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (statusCode == 401)
|
|
159
|
+
{
|
|
160
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
161
|
+
if (_delegate && [_delegate respondsToSelector:@selector(backgroundSyncHttpAuthorizationUpdates:)])
|
|
162
|
+
{
|
|
163
|
+
[_delegate backgroundSyncHttpAuthorizationUpdates:self];
|
|
164
|
+
}
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
|
|
170
|
+
{
|
|
171
|
+
DDLogInfo(@"Response:: %@", [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
- (void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(nullable NSError *)error
|
|
175
|
+
{
|
|
176
|
+
DDLogError(@"Autosync failed :( %@", error);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
- (void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session
|
|
180
|
+
{
|
|
181
|
+
DDLogInfo(@"finished events for bg session");
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
@end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MAURBackgroundTaskManager.h
|
|
3
|
+
// BackgroundGeolocation
|
|
4
|
+
//
|
|
5
|
+
// Created by Joel and Vomako (http://stackoverflow.com/a/27664620)
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#ifndef MAURBackgroundTaskManager_h
|
|
9
|
+
#define MAURBackgroundTaskManager_h
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
#endif /* MAURBackgroundTaskManager_h */
|
|
13
|
+
|
|
14
|
+
typedef void (^CompletionBlock)(void);
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@interface MAURBackgroundTaskManager : NSObject
|
|
18
|
+
|
|
19
|
+
+ (id) sharedTasks;
|
|
20
|
+
|
|
21
|
+
- (NSUInteger)beginTask;
|
|
22
|
+
- (NSUInteger)beginTaskWithCompletionHandler:(CompletionBlock)_completion;
|
|
23
|
+
- (void)endTaskWithKey:(NSUInteger)_key;
|
|
24
|
+
|
|
25
|
+
@end
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MAURBackgroundTaskManager.m
|
|
3
|
+
// BackgroundGeolocation
|
|
4
|
+
//
|
|
5
|
+
// Created by Joel and Vomako (http://stackoverflow.com/a/27664620)
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#import <UIKit/UIKit.h>
|
|
9
|
+
#import "MAURBackgroundTaskManager.h"
|
|
10
|
+
|
|
11
|
+
@interface MAURBackgroundTaskManager()
|
|
12
|
+
|
|
13
|
+
@property NSUInteger taskKeyCounter;
|
|
14
|
+
@property NSMutableDictionary *dictTaskIdentifiers;
|
|
15
|
+
@property NSMutableDictionary *dictTaskCompletionBlocks;
|
|
16
|
+
|
|
17
|
+
@end
|
|
18
|
+
|
|
19
|
+
@implementation MAURBackgroundTaskManager
|
|
20
|
+
|
|
21
|
+
+ (id)sharedTasks {
|
|
22
|
+
static MAURBackgroundTaskManager *sharedTasks = nil;
|
|
23
|
+
static dispatch_once_t onceToken;
|
|
24
|
+
dispatch_once(&onceToken, ^{
|
|
25
|
+
sharedTasks = [[self alloc] init];
|
|
26
|
+
});
|
|
27
|
+
return sharedTasks;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
- (id)init
|
|
31
|
+
{
|
|
32
|
+
self = [super init];
|
|
33
|
+
if (self) {
|
|
34
|
+
|
|
35
|
+
[self setTaskKeyCounter:0];
|
|
36
|
+
[self setDictTaskIdentifiers:[NSMutableDictionary dictionary]];
|
|
37
|
+
[self setDictTaskCompletionBlocks:[NSMutableDictionary dictionary]];
|
|
38
|
+
}
|
|
39
|
+
return self;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
- (NSUInteger)beginTask
|
|
43
|
+
{
|
|
44
|
+
return [self beginTaskWithCompletionHandler:nil];
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
- (NSUInteger)beginTaskWithCompletionHandler:(CompletionBlock)_completion;
|
|
48
|
+
{
|
|
49
|
+
//read the counter and increment it
|
|
50
|
+
NSUInteger taskKey;
|
|
51
|
+
@synchronized(self) {
|
|
52
|
+
|
|
53
|
+
taskKey = self.taskKeyCounter;
|
|
54
|
+
self.taskKeyCounter++;
|
|
55
|
+
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
//tell the OS to start a task that should continue in the background if needed
|
|
59
|
+
NSUInteger taskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
|
|
60
|
+
[self endTaskWithKey:taskKey];
|
|
61
|
+
}];
|
|
62
|
+
|
|
63
|
+
//add this task identifier to the active task dictionary
|
|
64
|
+
[self.dictTaskIdentifiers setObject:[NSNumber numberWithUnsignedLong:taskId] forKey:[NSNumber numberWithUnsignedLong:taskKey]];
|
|
65
|
+
|
|
66
|
+
//store the completion block (if any)
|
|
67
|
+
if (_completion) [self.dictTaskCompletionBlocks setObject:_completion forKey:[NSNumber numberWithUnsignedLong:taskKey]];
|
|
68
|
+
|
|
69
|
+
//return the dictionary key
|
|
70
|
+
return taskKey;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
- (void)endTaskWithKey:(NSUInteger)_key
|
|
74
|
+
{
|
|
75
|
+
@synchronized(self.dictTaskCompletionBlocks) {
|
|
76
|
+
|
|
77
|
+
//see if this task has a completion block
|
|
78
|
+
CompletionBlock completion = [self.dictTaskCompletionBlocks objectForKey:[NSNumber numberWithUnsignedLong:_key]];
|
|
79
|
+
if (completion) {
|
|
80
|
+
|
|
81
|
+
//run the completion block and remove it from the completion block dictionary
|
|
82
|
+
completion();
|
|
83
|
+
[self.dictTaskCompletionBlocks removeObjectForKey:[NSNumber numberWithUnsignedLong:_key]];
|
|
84
|
+
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@synchronized(self.dictTaskIdentifiers) {
|
|
90
|
+
|
|
91
|
+
//see if this task has been ended yet
|
|
92
|
+
NSNumber *taskId = [self.dictTaskIdentifiers objectForKey:[NSNumber numberWithUnsignedLong:_key]];
|
|
93
|
+
if (taskId) {
|
|
94
|
+
|
|
95
|
+
//end the task and remove it from the active task dictionary
|
|
96
|
+
[[UIApplication sharedApplication] endBackgroundTask:[taskId unsignedLongValue]];
|
|
97
|
+
[self.dictTaskIdentifiers removeObjectForKey:[NSNumber numberWithUnsignedLong:_key]];
|
|
98
|
+
|
|
99
|
+
NSLog(@"Task ended");
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
//
|
|
2
|
+
// MAURConfig.h
|
|
3
|
+
// BackgroundGeolocation
|
|
4
|
+
//
|
|
5
|
+
// Created by Marian Hello on 11/06/16.
|
|
6
|
+
//
|
|
7
|
+
|
|
8
|
+
#ifndef MAURConfig_h
|
|
9
|
+
#define MAURConfig_h
|
|
10
|
+
|
|
11
|
+
#import <Foundation/Foundation.h>
|
|
12
|
+
#import <CoreLocation/CoreLocation.h>
|
|
13
|
+
|
|
14
|
+
enum {
|
|
15
|
+
DISTANCE_FILTER_PROVIDER = 0,
|
|
16
|
+
ACTIVITY_PROVIDER = 1,
|
|
17
|
+
RAW_PROVIDER = 2
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
@interface MAURConfig : NSObject <NSCopying>
|
|
21
|
+
|
|
22
|
+
@property NSNumber *stationaryRadius;
|
|
23
|
+
@property NSNumber *distanceFilter;
|
|
24
|
+
@property NSNumber *desiredAccuracy;
|
|
25
|
+
@property NSNumber *_debug;
|
|
26
|
+
@property NSString *activityType;
|
|
27
|
+
@property NSNumber *activitiesInterval;
|
|
28
|
+
@property NSNumber *_stopOnTerminate;
|
|
29
|
+
@property NSString *url;
|
|
30
|
+
@property NSString *syncUrl;
|
|
31
|
+
@property NSNumber *syncThreshold;
|
|
32
|
+
@property NSMutableDictionary* httpHeaders;
|
|
33
|
+
@property NSNumber *_saveBatteryOnBackground;
|
|
34
|
+
@property NSNumber *maxLocations;
|
|
35
|
+
@property NSNumber *_pauseLocationUpdates;
|
|
36
|
+
@property NSNumber *locationProvider;
|
|
37
|
+
@property NSObject *_template;
|
|
38
|
+
|
|
39
|
+
- (instancetype) initWithDefaults;
|
|
40
|
+
+ (instancetype) fromDictionary:(NSDictionary*)config;
|
|
41
|
+
+ (instancetype) merge:(MAURConfig*)config withConfig:(MAURConfig*)newConfig;
|
|
42
|
+
+ (NSDictionary*) getDefaultTemplate;
|
|
43
|
+
|
|
44
|
+
- (BOOL) hasStationaryRadius;
|
|
45
|
+
- (BOOL) hasDistanceFilter;
|
|
46
|
+
- (BOOL) hasDesiredAccuracy;
|
|
47
|
+
- (BOOL) hasDebug;
|
|
48
|
+
- (BOOL) hasActivityType;
|
|
49
|
+
- (BOOL) hasStopOnTerminate;
|
|
50
|
+
- (BOOL) hasUrl;
|
|
51
|
+
- (BOOL) hasValidUrl;
|
|
52
|
+
- (BOOL) hasSyncUrl;
|
|
53
|
+
- (BOOL) hasValidSyncUrl;
|
|
54
|
+
- (BOOL) hasSyncThreshold;
|
|
55
|
+
- (BOOL) hasHttpHeaders;
|
|
56
|
+
- (BOOL) hasSaveBatteryOnBackground;
|
|
57
|
+
- (BOOL) hasMaxLocations;
|
|
58
|
+
- (BOOL) hasPauseLocationUpdates;
|
|
59
|
+
- (BOOL) hasLocationProvider;
|
|
60
|
+
- (BOOL) hasTemplate;
|
|
61
|
+
- (BOOL) hasActivitiesInterval;
|
|
62
|
+
- (BOOL) isDebugging;
|
|
63
|
+
- (BOOL) stopOnTerminate;
|
|
64
|
+
- (BOOL) saveBatteryOnBackground;
|
|
65
|
+
- (BOOL) pauseLocationUpdates;
|
|
66
|
+
- (CLActivityType) decodeActivityType;
|
|
67
|
+
- (NSInteger) decodeDesiredAccuracy;
|
|
68
|
+
- (NSString*) getHttpHeadersAsString:(NSError * __autoreleasing *)outError;
|
|
69
|
+
- (NSString*) getTemplateAsString:(NSError * __autoreleasing *)outError;
|
|
70
|
+
- (NSDictionary*) toDictionary;
|
|
71
|
+
|
|
72
|
+
@end;
|
|
73
|
+
|
|
74
|
+
#endif /* MAURConfig_h */
|