@josuelmm/capacitor-background-geolocation 1.0.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/JosuelmmCapacitorBackgroundGeolocation.podspec +34 -0
- package/LICENSE +17 -0
- package/NOTICE.md +32 -0
- package/Package.swift +45 -0
- package/README.md +402 -0
- package/android/build.gradle +79 -0
- package/android/proguard-rules.pro +1 -0
- package/android/src/main/AndroidManifest.xml +83 -0
- package/android/src/main/java/com/evgenii/jsevaluator/HandlerWrapper.java +18 -0
- package/android/src/main/java/com/evgenii/jsevaluator/JavaScriptInterface.java +22 -0
- package/android/src/main/java/com/evgenii/jsevaluator/JsEvaluator.java +133 -0
- package/android/src/main/java/com/evgenii/jsevaluator/JsFunctionCallFormatter.java +37 -0
- package/android/src/main/java/com/evgenii/jsevaluator/WebViewWrapper.java +71 -0
- package/android/src/main/java/com/evgenii/jsevaluator/interfaces/CallJavaResultInterface.java +8 -0
- package/android/src/main/java/com/evgenii/jsevaluator/interfaces/HandlerWrapperInterface.java +5 -0
- package/android/src/main/java/com/evgenii/jsevaluator/interfaces/JsCallback.java +10 -0
- package/android/src/main/java/com/evgenii/jsevaluator/interfaces/JsEvaluatorInterface.java +18 -0
- package/android/src/main/java/com/evgenii/jsevaluator/interfaces/WebViewWrapperInterface.java +14 -0
- package/android/src/main/java/com/josuelmm/capacitor/backgroundgeolocation/BackgroundGeolocationPlugin.java +898 -0
- package/android/src/main/java/com/josuelmm/capacitor/backgroundgeolocation/ConfigMapper.java +303 -0
- package/android/src/main/java/com/josuelmm/capacitor/backgroundgeolocation/HeadlessTaskRegistry.java +34 -0
- package/android/src/main/java/com/josuelmm/capacitor/backgroundgeolocation/JsEvaluatorTaskRunner.java +63 -0
- package/android/src/main/java/com/marianhello/bgloc/BackgroundGeolocationFacade.java +699 -0
- package/android/src/main/java/com/marianhello/bgloc/BootCompletedReceiver.java +103 -0
- package/android/src/main/java/com/marianhello/bgloc/Config.java +1155 -0
- package/android/src/main/java/com/marianhello/bgloc/ConnectivityListener.java +5 -0
- package/android/src/main/java/com/marianhello/bgloc/HttpPostService.java +362 -0
- package/android/src/main/java/com/marianhello/bgloc/LocationManager.java +138 -0
- package/android/src/main/java/com/marianhello/bgloc/PluginDelegate.java +45 -0
- package/android/src/main/java/com/marianhello/bgloc/PluginException.java +38 -0
- package/android/src/main/java/com/marianhello/bgloc/PostLocationTask.java +238 -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 +1088 -0
- package/android/src/main/java/com/marianhello/bgloc/data/ConfigJsonMapper.java +211 -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 +27 -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 +71 -0
- package/android/src/main/java/com/marianhello/bgloc/data/LocationTransform.java +19 -0
- package/android/src/main/java/com/marianhello/bgloc/data/SessionLocationDAO.java +18 -0
- package/android/src/main/java/com/marianhello/bgloc/data/provider/ContentProviderLocationDAO.java +406 -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 +94 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteConfigurationDAO.java +227 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationContract.java +122 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteLocationDAO.java +550 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteOpenHelper.java +189 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteSessionContract.java +74 -0
- package/android/src/main/java/com/marianhello/bgloc/data/sqlite/SQLiteSessionLocationDAO.java +169 -0
- package/android/src/main/java/com/marianhello/bgloc/driving/DrivingEventsDetector.java +265 -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 +60 -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/http/UrlTemplateResolver.java +115 -0
- package/android/src/main/java/com/marianhello/bgloc/oem/BatteryOemHelper.java +214 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/AbstractLocationProvider.java +218 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/ActivityRecognitionLocationProvider.java +385 -0
- package/android/src/main/java/com/marianhello/bgloc/provider/DistanceFilterLocationProvider.java +685 -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 +175 -0
- package/android/src/main/java/com/marianhello/bgloc/sensor/SensorFusionDetector.java +199 -0
- package/android/src/main/java/com/marianhello/bgloc/service/LocationService.java +16 -0
- package/android/src/main/java/com/marianhello/bgloc/service/LocationServiceImpl.java +1531 -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 +156 -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 +311 -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 +301 -0
- package/android/src/main/java/com/marianhello/bgloc/sync/SyncService.java +68 -0
- package/android/src/main/java/com/marianhello/logging/DBLogReader.java +208 -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/mipmap-hdpi/ic_launcher.png +0 -0
- package/android/src/main/res/mipmap-mdpi/ic_launcher.png +0 -0
- package/android/src/main/res/mipmap-xhdpi/ic_launcher.png +0 -0
- package/android/src/main/res/mipmap-xxhdpi/ic_launcher.png +0 -0
- package/android/src/main/res/mipmap-xxxhdpi/ic_launcher.png +0 -0
- package/android/src/main/res/values/strings.xml +15 -0
- package/android/src/main/res/xml/authenticator.xml +7 -0
- package/android/src/main/res/xml/syncadapter.xml +9 -0
- package/dist/esm/definitions.d.ts +1052 -0
- package/dist/esm/definitions.js +142 -0
- package/dist/esm/definitions.js.map +1 -0
- package/dist/esm/index.d.ts +8 -0
- package/dist/esm/index.js +23 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/web.d.ts +92 -0
- package/dist/esm/web.js +242 -0
- package/dist/esm/web.js.map +1 -0
- package/dist/plugin.cjs.js +415 -0
- package/dist/plugin.cjs.js.map +1 -0
- package/dist/plugin.js +418 -0
- package/dist/plugin.js.map +1 -0
- package/ios/Sources/BackgroundGeolocationPlugin/BackgroundGeolocationPlugin-Bridging-Header.h +18 -0
- package/ios/Sources/BackgroundGeolocationPlugin/BackgroundGeolocationPlugin.m +52 -0
- package/ios/Sources/BackgroundGeolocationPlugin/BackgroundGeolocationPlugin.swift +750 -0
- package/ios/Tests/BackgroundGeolocationPluginTests/BackgroundGeolocationPluginTests.swift +12 -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 +340 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.h +88 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundGeolocationFacade.m +1193 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundSync.h +46 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundSync.m +283 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.h +25 -0
- package/ios/common/BackgroundGeolocation/MAURBackgroundTaskManager.m +105 -0
- package/ios/common/BackgroundGeolocation/MAURConfig.h +99 -0
- package/ios/common/BackgroundGeolocation/MAURConfig.m +636 -0
- package/ios/common/BackgroundGeolocation/MAURConfigurationContract.h +53 -0
- package/ios/common/BackgroundGeolocation/MAURConfigurationContract.m +54 -0
- package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.h +20 -0
- package/ios/common/BackgroundGeolocation/MAURDistanceFilterLocationProvider.m +550 -0
- package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.h +17 -0
- package/ios/common/BackgroundGeolocation/MAURGeolocationOpenHelper.m +124 -0
- package/ios/common/BackgroundGeolocation/MAURLocation.h +73 -0
- package/ios/common/BackgroundGeolocation/MAURLocation.m +392 -0
- package/ios/common/BackgroundGeolocation/MAURLocationContract.h +38 -0
- package/ios/common/BackgroundGeolocation/MAURLocationContract.m +39 -0
- package/ios/common/BackgroundGeolocation/MAURLocationManager.h +53 -0
- package/ios/common/BackgroundGeolocation/MAURLocationManager.m +305 -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 +53 -0
- package/ios/common/BackgroundGeolocation/MAURPostLocationTask.m +367 -0
- package/ios/common/BackgroundGeolocation/MAURProviderDelegate.h +52 -0
- package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.h +18 -0
- package/ios/common/BackgroundGeolocation/MAURRawLocationProvider.m +138 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.h +26 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteConfigurationDAO.m +335 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.h +57 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteHelper.m +93 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.h +52 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteLocationDAO.m +520 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.h +32 -0
- package/ios/common/BackgroundGeolocation/MAURSQLiteOpenHelper.m +276 -0
- package/ios/common/BackgroundGeolocation/MAURSensorFusionDetector.h +41 -0
- package/ios/common/BackgroundGeolocation/MAURSensorFusionDetector.m +137 -0
- package/ios/common/BackgroundGeolocation/MAURSessionLocationContract.h +29 -0
- package/ios/common/BackgroundGeolocation/MAURSessionLocationContract.m +31 -0
- package/ios/common/BackgroundGeolocation/MAURSessionLocationDAO.h +25 -0
- package/ios/common/BackgroundGeolocation/MAURSessionLocationDAO.m +153 -0
- package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.h +20 -0
- package/ios/common/BackgroundGeolocation/MAURUncaughtExceptionLogger.m +62 -0
- package/ios/common/BackgroundGeolocation/MAURUrlTemplateResolver.h +31 -0
- package/ios/common/BackgroundGeolocation/MAURUrlTemplateResolver.m +107 -0
- package/ios/common/BackgroundGeolocation/Reachability.h +102 -0
- package/ios/common/BackgroundGeolocation/Reachability.m +475 -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/module.modulemap +16 -0
- package/package.json +82 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
package com.marianhello.bgloc.data.sqlite;
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import android.content.Context;
|
|
5
|
+
import android.database.SQLException;
|
|
6
|
+
import android.database.sqlite.SQLiteDatabase;
|
|
7
|
+
import android.util.Log;
|
|
8
|
+
|
|
9
|
+
import com.marianhello.bgloc.data.sqlite.SQLiteLocationContract.LocationEntry;
|
|
10
|
+
import com.marianhello.bgloc.data.sqlite.SQLiteConfigurationContract.ConfigurationEntry;
|
|
11
|
+
import com.marianhello.bgloc.data.sqlite.SQLiteSessionContract.SessionEntry;
|
|
12
|
+
|
|
13
|
+
import java.util.ArrayList;
|
|
14
|
+
|
|
15
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteConfigurationContract.ConfigurationEntry.SQL_CREATE_CONFIG_TABLE;
|
|
16
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteConfigurationContract.ConfigurationEntry.SQL_DROP_CONFIG_TABLE;
|
|
17
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteLocationContract.LocationEntry.SQL_CREATE_LOCATION_TABLE;
|
|
18
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteLocationContract.LocationEntry.SQL_CREATE_LOCATION_TABLE_BATCH_ID_IDX;
|
|
19
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteLocationContract.LocationEntry.SQL_CREATE_LOCATION_TABLE_TIME_IDX;
|
|
20
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteLocationContract.LocationEntry.SQL_DROP_LOCATION_TABLE;
|
|
21
|
+
|
|
22
|
+
public class SQLiteOpenHelper extends android.database.sqlite.SQLiteOpenHelper {
|
|
23
|
+
private static final String TAG = SQLiteOpenHelper.class.getName();
|
|
24
|
+
public static final String SQLITE_DATABASE_NAME = "cordova_bg_geolocation.db";
|
|
25
|
+
public static final int DATABASE_VERSION = 22;
|
|
26
|
+
|
|
27
|
+
public static final String TEXT_TYPE = " TEXT";
|
|
28
|
+
public static final String INTEGER_TYPE = " INTEGER";
|
|
29
|
+
public static final String REAL_TYPE = " REAL";
|
|
30
|
+
public static final String COMMA_SEP = ",";
|
|
31
|
+
|
|
32
|
+
private static SQLiteOpenHelper instance;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Get SqliteOpenHelper instance (singleton)
|
|
36
|
+
*
|
|
37
|
+
* Use the application context, which will ensure that you
|
|
38
|
+
* don't accidentally leak an Activity's context.
|
|
39
|
+
* See this article for more information: http://bit.ly/6LRzfx
|
|
40
|
+
*
|
|
41
|
+
* @param context
|
|
42
|
+
* @return
|
|
43
|
+
*/
|
|
44
|
+
public static synchronized SQLiteOpenHelper getHelper(Context context) {
|
|
45
|
+
if (instance == null)
|
|
46
|
+
instance = new SQLiteOpenHelper(context.getApplicationContext());
|
|
47
|
+
|
|
48
|
+
return instance;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Constructor
|
|
53
|
+
*
|
|
54
|
+
* NOTE: Intended to use only for testing purposes.
|
|
55
|
+
* Use factory method getHelper instead.
|
|
56
|
+
*
|
|
57
|
+
* @param context
|
|
58
|
+
*/
|
|
59
|
+
public SQLiteOpenHelper(Context context) {
|
|
60
|
+
super(context, SQLITE_DATABASE_NAME, null, DATABASE_VERSION);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@Override
|
|
64
|
+
public void onCreate(SQLiteDatabase db) {
|
|
65
|
+
Log.d(TAG, "Creating db: " + this.getDatabaseName());
|
|
66
|
+
execAndLogSql(db, SQL_CREATE_LOCATION_TABLE);
|
|
67
|
+
execAndLogSql(db, SQL_CREATE_CONFIG_TABLE);
|
|
68
|
+
execAndLogSql(db, SQL_CREATE_LOCATION_TABLE_TIME_IDX);
|
|
69
|
+
execAndLogSql(db, SQL_CREATE_LOCATION_TABLE_BATCH_ID_IDX);
|
|
70
|
+
execAndLogSql(db, SessionEntry.SQL_CREATE_SESSION_TABLE);
|
|
71
|
+
execAndLogSql(db, SessionEntry.SQL_CREATE_SESSION_TABLE_TIME_IDX);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
@Override
|
|
75
|
+
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
|
76
|
+
Log.d(this.getClass().getName(), "Upgrading database oldVersion: " + oldVersion + " newVersion: " + newVersion);
|
|
77
|
+
|
|
78
|
+
ArrayList<String> alterSql = new ArrayList<String>();
|
|
79
|
+
switch (oldVersion) {
|
|
80
|
+
case 10:
|
|
81
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
82
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_STATUS + INTEGER_TYPE);
|
|
83
|
+
alterSql.add(SQL_CREATE_LOCATION_TABLE_TIME_IDX);
|
|
84
|
+
alterSql.add(SQL_DROP_CONFIG_TABLE);
|
|
85
|
+
alterSql.add(SQL_CREATE_CONFIG_TABLE);
|
|
86
|
+
case 11:
|
|
87
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
88
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_RADIUS + REAL_TYPE);
|
|
89
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
90
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_HAS_ACCURACY + INTEGER_TYPE);
|
|
91
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
92
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_HAS_SPEED + INTEGER_TYPE);
|
|
93
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
94
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_HAS_BEARING + INTEGER_TYPE);
|
|
95
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
96
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_HAS_ALTITUDE + INTEGER_TYPE);
|
|
97
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
98
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_HAS_RADIUS + INTEGER_TYPE);
|
|
99
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
100
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_BATCH_START_MILLIS + INTEGER_TYPE);
|
|
101
|
+
alterSql.add(SQL_CREATE_LOCATION_TABLE_BATCH_ID_IDX);
|
|
102
|
+
alterSql.add("UPDATE " + LocationEntry.TABLE_NAME +
|
|
103
|
+
" SET " + LocationEntry.COLUMN_NAME_HAS_ACCURACY + "= 1," +
|
|
104
|
+
LocationEntry.COLUMN_NAME_HAS_SPEED + "= 1," +
|
|
105
|
+
LocationEntry.COLUMN_NAME_HAS_BEARING + "= 1," +
|
|
106
|
+
LocationEntry.COLUMN_NAME_HAS_ALTITUDE + "= 1," +
|
|
107
|
+
LocationEntry.COLUMN_NAME_HAS_RADIUS + "= 1"
|
|
108
|
+
);
|
|
109
|
+
case 12:
|
|
110
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
111
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_TEMPLATE + TEXT_TYPE);
|
|
112
|
+
case 13:
|
|
113
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
114
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_MOCK_FLAGS + INTEGER_TYPE);
|
|
115
|
+
case 14:
|
|
116
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
117
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_NOTIFICATIONS_ENABLED + INTEGER_TYPE);
|
|
118
|
+
case 15:
|
|
119
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
120
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_VERTICAL_ACCURACY + REAL_TYPE);
|
|
121
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
122
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_HAS_VERTICAL_ACCURACY + INTEGER_TYPE);
|
|
123
|
+
alterSql.add("UPDATE " + LocationEntry.TABLE_NAME +
|
|
124
|
+
" SET " + LocationEntry.COLUMN_NAME_VERTICAL_ACCURACY + "= -1," +
|
|
125
|
+
LocationEntry.COLUMN_NAME_HAS_VERTICAL_ACCURACY + "= 0");
|
|
126
|
+
case 16:
|
|
127
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
128
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_NOTIF_SYNC_TITLE + TEXT_TYPE);
|
|
129
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
130
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_NOTIF_SYNC_TEXT + TEXT_TYPE);
|
|
131
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
132
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_NOTIF_SYNC_COMPLETED + TEXT_TYPE);
|
|
133
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
134
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_NOTIF_SYNC_FAILED + TEXT_TYPE);
|
|
135
|
+
case 17:
|
|
136
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
137
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_SYNC_ENABLED + INTEGER_TYPE);
|
|
138
|
+
case 18:
|
|
139
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
140
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_SHOW_TIME + INTEGER_TYPE);
|
|
141
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
142
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_SHOW_DISTANCE + INTEGER_TYPE);
|
|
143
|
+
case 19:
|
|
144
|
+
alterSql.add(SessionEntry.SQL_CREATE_SESSION_TABLE);
|
|
145
|
+
alterSql.add(SessionEntry.SQL_CREATE_SESSION_TABLE_TIME_IDX);
|
|
146
|
+
case 20:
|
|
147
|
+
// v4.4.1: store the full Config as a single JSON blob so future-added fields
|
|
148
|
+
// do not require a per-field schema bump.
|
|
149
|
+
alterSql.add("ALTER TABLE " + ConfigurationEntry.TABLE_NAME +
|
|
150
|
+
" ADD COLUMN " + ConfigurationEntry.COLUMN_NAME_CONFIG_JSON + TEXT_TYPE);
|
|
151
|
+
case 21:
|
|
152
|
+
// v4.5.0: persist driving events / battery / isCharging on each location so
|
|
153
|
+
// they survive the sync queue (POST failure → SQLite → background sync).
|
|
154
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
155
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_EVENTS_JSON + TEXT_TYPE);
|
|
156
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
157
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_BATTERY_LEVEL + INTEGER_TYPE);
|
|
158
|
+
alterSql.add("ALTER TABLE " + LocationEntry.TABLE_NAME +
|
|
159
|
+
" ADD COLUMN " + LocationEntry.COLUMN_NAME_IS_CHARGING + INTEGER_TYPE);
|
|
160
|
+
|
|
161
|
+
break; // DO NOT FORGET TO MOVE DOWN BREAK ON DB UPGRADE!!!
|
|
162
|
+
default:
|
|
163
|
+
onDowngrade(db, 0, 0);
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
for (String sql : alterSql) {
|
|
168
|
+
execAndLogSql(db, sql);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
@Override
|
|
173
|
+
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
|
|
174
|
+
// we don't support db downgrade yet, instead we drop table and start over
|
|
175
|
+
execAndLogSql(db, SQL_DROP_LOCATION_TABLE);
|
|
176
|
+
execAndLogSql(db, SQL_DROP_CONFIG_TABLE);
|
|
177
|
+
execAndLogSql(db, SessionEntry.SQL_DROP_SESSION_TABLE);
|
|
178
|
+
onCreate(db);
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
public void execAndLogSql(SQLiteDatabase db, String sql) {
|
|
182
|
+
Log.d(TAG, sql);
|
|
183
|
+
try {
|
|
184
|
+
db.execSQL(sql);
|
|
185
|
+
} catch (SQLException e) {
|
|
186
|
+
Log.e(TAG, "Error executing sql: " + e.getMessage());
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
package com.marianhello.bgloc.data.sqlite;
|
|
2
|
+
|
|
3
|
+
import android.provider.BaseColumns;
|
|
4
|
+
|
|
5
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteOpenHelper.COMMA_SEP;
|
|
6
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteOpenHelper.INTEGER_TYPE;
|
|
7
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteOpenHelper.REAL_TYPE;
|
|
8
|
+
import static com.marianhello.bgloc.data.sqlite.SQLiteOpenHelper.TEXT_TYPE;
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Contract for the "session" location table.
|
|
12
|
+
* Stores all locations for the current recording session (route).
|
|
13
|
+
* Cleared on startSession() and clearSession(); not cleared when sync succeeds.
|
|
14
|
+
*/
|
|
15
|
+
public final class SQLiteSessionContract {
|
|
16
|
+
|
|
17
|
+
public SQLiteSessionContract() {}
|
|
18
|
+
|
|
19
|
+
public static abstract class SessionEntry implements BaseColumns {
|
|
20
|
+
public static final String TABLE_NAME = "location_session";
|
|
21
|
+
public static final String COLUMN_NAME_NULLABLE = "NULLHACK";
|
|
22
|
+
public static final String COLUMN_NAME_TIME = "time";
|
|
23
|
+
public static final String COLUMN_NAME_ACCURACY = "accuracy";
|
|
24
|
+
public static final String COLUMN_NAME_VERTICAL_ACCURACY = "vertical_accuracy";
|
|
25
|
+
public static final String COLUMN_NAME_SPEED = "speed";
|
|
26
|
+
public static final String COLUMN_NAME_BEARING = "bearing";
|
|
27
|
+
public static final String COLUMN_NAME_ALTITUDE = "altitude";
|
|
28
|
+
public static final String COLUMN_NAME_LATITUDE = "latitude";
|
|
29
|
+
public static final String COLUMN_NAME_LONGITUDE = "longitude";
|
|
30
|
+
public static final String COLUMN_NAME_RADIUS = "radius";
|
|
31
|
+
public static final String COLUMN_NAME_HAS_ACCURACY = "has_accuracy";
|
|
32
|
+
public static final String COLUMN_NAME_HAS_VERTICAL_ACCURACY = "has_vertical_accuracy";
|
|
33
|
+
public static final String COLUMN_NAME_HAS_SPEED = "has_speed";
|
|
34
|
+
public static final String COLUMN_NAME_HAS_BEARING = "has_bearing";
|
|
35
|
+
public static final String COLUMN_NAME_HAS_ALTITUDE = "has_altitude";
|
|
36
|
+
public static final String COLUMN_NAME_HAS_RADIUS = "has_radius";
|
|
37
|
+
public static final String COLUMN_NAME_PROVIDER = "provider";
|
|
38
|
+
public static final String COLUMN_NAME_LOCATION_PROVIDER = "service_provider";
|
|
39
|
+
public static final String COLUMN_NAME_STATUS = "valid";
|
|
40
|
+
public static final String COLUMN_NAME_BATCH_START_MILLIS = "batch_start";
|
|
41
|
+
public static final String COLUMN_NAME_MOCK_FLAGS = "mock_flags";
|
|
42
|
+
|
|
43
|
+
public static final String SQL_CREATE_SESSION_TABLE =
|
|
44
|
+
"CREATE TABLE " + SessionEntry.TABLE_NAME + " (" +
|
|
45
|
+
SessionEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
|
|
46
|
+
SessionEntry.COLUMN_NAME_TIME + INTEGER_TYPE + COMMA_SEP +
|
|
47
|
+
SessionEntry.COLUMN_NAME_ACCURACY + REAL_TYPE + COMMA_SEP +
|
|
48
|
+
SessionEntry.COLUMN_NAME_VERTICAL_ACCURACY + REAL_TYPE + COMMA_SEP +
|
|
49
|
+
SessionEntry.COLUMN_NAME_SPEED + REAL_TYPE + COMMA_SEP +
|
|
50
|
+
SessionEntry.COLUMN_NAME_BEARING + REAL_TYPE + COMMA_SEP +
|
|
51
|
+
SessionEntry.COLUMN_NAME_ALTITUDE + REAL_TYPE + COMMA_SEP +
|
|
52
|
+
SessionEntry.COLUMN_NAME_LATITUDE + REAL_TYPE + COMMA_SEP +
|
|
53
|
+
SessionEntry.COLUMN_NAME_LONGITUDE + REAL_TYPE + COMMA_SEP +
|
|
54
|
+
SessionEntry.COLUMN_NAME_RADIUS + REAL_TYPE + COMMA_SEP +
|
|
55
|
+
SessionEntry.COLUMN_NAME_HAS_ACCURACY + INTEGER_TYPE + COMMA_SEP +
|
|
56
|
+
SessionEntry.COLUMN_NAME_HAS_VERTICAL_ACCURACY + INTEGER_TYPE + COMMA_SEP +
|
|
57
|
+
SessionEntry.COLUMN_NAME_HAS_SPEED + INTEGER_TYPE + COMMA_SEP +
|
|
58
|
+
SessionEntry.COLUMN_NAME_HAS_BEARING + INTEGER_TYPE + COMMA_SEP +
|
|
59
|
+
SessionEntry.COLUMN_NAME_HAS_ALTITUDE + INTEGER_TYPE + COMMA_SEP +
|
|
60
|
+
SessionEntry.COLUMN_NAME_HAS_RADIUS + INTEGER_TYPE + COMMA_SEP +
|
|
61
|
+
SessionEntry.COLUMN_NAME_PROVIDER + TEXT_TYPE + COMMA_SEP +
|
|
62
|
+
SessionEntry.COLUMN_NAME_LOCATION_PROVIDER + INTEGER_TYPE + COMMA_SEP +
|
|
63
|
+
SessionEntry.COLUMN_NAME_STATUS + INTEGER_TYPE + COMMA_SEP +
|
|
64
|
+
SessionEntry.COLUMN_NAME_BATCH_START_MILLIS + INTEGER_TYPE + COMMA_SEP +
|
|
65
|
+
SessionEntry.COLUMN_NAME_MOCK_FLAGS + INTEGER_TYPE +
|
|
66
|
+
" )";
|
|
67
|
+
|
|
68
|
+
public static final String SQL_DROP_SESSION_TABLE =
|
|
69
|
+
"DROP TABLE IF EXISTS " + SessionEntry.TABLE_NAME;
|
|
70
|
+
|
|
71
|
+
public static final String SQL_CREATE_SESSION_TABLE_TIME_IDX =
|
|
72
|
+
"CREATE INDEX session_time_idx ON " + SessionEntry.TABLE_NAME + " (" + SessionEntry.COLUMN_NAME_TIME + ")";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
package com.marianhello.bgloc.data.sqlite;
|
|
2
|
+
|
|
3
|
+
import android.content.ContentValues;
|
|
4
|
+
import android.content.Context;
|
|
5
|
+
import android.database.Cursor;
|
|
6
|
+
import android.database.sqlite.SQLiteDatabase;
|
|
7
|
+
import com.marianhello.bgloc.data.BackgroundLocation;
|
|
8
|
+
import com.marianhello.bgloc.data.SessionLocationDAO;
|
|
9
|
+
|
|
10
|
+
import java.util.ArrayList;
|
|
11
|
+
import java.util.Collection;
|
|
12
|
+
|
|
13
|
+
public class SQLiteSessionLocationDAO implements SessionLocationDAO {
|
|
14
|
+
|
|
15
|
+
private static final String PREFS_NAME = "bgloc_session";
|
|
16
|
+
private static final String KEY_SESSION_ACTIVE = "session_active";
|
|
17
|
+
|
|
18
|
+
private final SQLiteDatabase db;
|
|
19
|
+
private final Context context;
|
|
20
|
+
|
|
21
|
+
public SQLiteSessionLocationDAO(Context context) {
|
|
22
|
+
this.context = context.getApplicationContext();
|
|
23
|
+
SQLiteOpenHelper helper = SQLiteOpenHelper.getHelper(this.context);
|
|
24
|
+
this.db = helper.getWritableDatabase();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@Override
|
|
28
|
+
public void startSession() {
|
|
29
|
+
db.delete(SQLiteSessionContract.SessionEntry.TABLE_NAME, null, null);
|
|
30
|
+
setSessionActive(true);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@Override
|
|
34
|
+
public void clearSession() {
|
|
35
|
+
db.delete(SQLiteSessionContract.SessionEntry.TABLE_NAME, null, null);
|
|
36
|
+
setSessionActive(false);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
@Override
|
|
40
|
+
public boolean isSessionActive() {
|
|
41
|
+
return context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
|
|
42
|
+
.getBoolean(KEY_SESSION_ACTIVE, false);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
private void setSessionActive(boolean active) {
|
|
46
|
+
context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE)
|
|
47
|
+
.edit()
|
|
48
|
+
.putBoolean(KEY_SESSION_ACTIVE, active)
|
|
49
|
+
.apply();
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
@Override
|
|
53
|
+
public void persistSessionLocation(BackgroundLocation location) {
|
|
54
|
+
if (!isSessionActive() || location == null) return;
|
|
55
|
+
ContentValues values = getContentValues(location);
|
|
56
|
+
db.insertOrThrow(SQLiteSessionContract.SessionEntry.TABLE_NAME,
|
|
57
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_NULLABLE, values);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
@Override
|
|
61
|
+
public Collection<BackgroundLocation> getSessionLocations() {
|
|
62
|
+
Collection<BackgroundLocation> locations = new ArrayList<>();
|
|
63
|
+
String orderBy = SQLiteSessionContract.SessionEntry.COLUMN_NAME_TIME + " ASC";
|
|
64
|
+
Cursor cursor = null;
|
|
65
|
+
try {
|
|
66
|
+
cursor = db.query(
|
|
67
|
+
SQLiteSessionContract.SessionEntry.TABLE_NAME,
|
|
68
|
+
queryColumns(),
|
|
69
|
+
null, null, null, null, orderBy);
|
|
70
|
+
while (cursor.moveToNext()) {
|
|
71
|
+
locations.add(hydrate(cursor));
|
|
72
|
+
}
|
|
73
|
+
} finally {
|
|
74
|
+
if (cursor != null) cursor.close();
|
|
75
|
+
}
|
|
76
|
+
return locations;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@Override
|
|
80
|
+
public int getSessionLocationsCount() {
|
|
81
|
+
Cursor cursor = null;
|
|
82
|
+
try {
|
|
83
|
+
cursor = db.rawQuery("SELECT COUNT(*) FROM " + SQLiteSessionContract.SessionEntry.TABLE_NAME, null);
|
|
84
|
+
return cursor.moveToFirst() ? cursor.getInt(0) : 0;
|
|
85
|
+
} finally {
|
|
86
|
+
if (cursor != null) cursor.close();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
private BackgroundLocation hydrate(Cursor c) {
|
|
91
|
+
BackgroundLocation l = new BackgroundLocation(c.getString(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_PROVIDER)));
|
|
92
|
+
l.setTime(c.getLong(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_TIME)));
|
|
93
|
+
if (c.getInt(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_ACCURACY)) == 1) {
|
|
94
|
+
l.setAccuracy(c.getFloat(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_ACCURACY)));
|
|
95
|
+
}
|
|
96
|
+
if (c.getInt(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_VERTICAL_ACCURACY)) == 1) {
|
|
97
|
+
l.setVerticalAccuracy(c.getFloat(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_VERTICAL_ACCURACY)));
|
|
98
|
+
}
|
|
99
|
+
if (c.getInt(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_SPEED)) == 1) {
|
|
100
|
+
l.setSpeed(c.getFloat(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_SPEED)));
|
|
101
|
+
}
|
|
102
|
+
if (c.getInt(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_BEARING)) == 1) {
|
|
103
|
+
l.setBearing(c.getFloat(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_BEARING)));
|
|
104
|
+
}
|
|
105
|
+
if (c.getInt(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_ALTITUDE)) == 1) {
|
|
106
|
+
l.setAltitude(c.getDouble(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_ALTITUDE)));
|
|
107
|
+
}
|
|
108
|
+
if (c.getInt(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_RADIUS)) == 1) {
|
|
109
|
+
l.setRadius(c.getFloat(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_RADIUS)));
|
|
110
|
+
}
|
|
111
|
+
l.setLatitude(c.getDouble(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_LATITUDE)));
|
|
112
|
+
l.setLongitude(c.getDouble(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_LONGITUDE)));
|
|
113
|
+
l.setLocationProvider(c.getInt(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_LOCATION_PROVIDER)));
|
|
114
|
+
l.setLocationId(c.getLong(c.getColumnIndex(SQLiteSessionContract.SessionEntry._ID)));
|
|
115
|
+
l.setMockFlags(c.getInt(c.getColumnIndex(SQLiteSessionContract.SessionEntry.COLUMN_NAME_MOCK_FLAGS)));
|
|
116
|
+
return l;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
private ContentValues getContentValues(BackgroundLocation l) {
|
|
120
|
+
ContentValues values = new ContentValues();
|
|
121
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_PROVIDER, l.getProvider());
|
|
122
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_TIME, l.getTime());
|
|
123
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_ACCURACY, l.getAccuracy());
|
|
124
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_VERTICAL_ACCURACY, l.getVerticalAccuracy());
|
|
125
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_SPEED, l.getSpeed());
|
|
126
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_BEARING, l.getBearing());
|
|
127
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_ALTITUDE, l.getAltitude());
|
|
128
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_RADIUS, l.getRadius());
|
|
129
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_LATITUDE, l.getLatitude());
|
|
130
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_LONGITUDE, l.getLongitude());
|
|
131
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_ACCURACY, l.hasAccuracy() ? 1 : 0);
|
|
132
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_VERTICAL_ACCURACY, l.hasVerticalAccuracy() ? 1 : 0);
|
|
133
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_SPEED, l.hasSpeed() ? 1 : 0);
|
|
134
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_BEARING, l.hasBearing() ? 1 : 0);
|
|
135
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_ALTITUDE, l.hasAltitude() ? 1 : 0);
|
|
136
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_RADIUS, l.hasRadius() ? 1 : 0);
|
|
137
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_LOCATION_PROVIDER, l.getLocationProvider());
|
|
138
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_STATUS, 0);
|
|
139
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_BATCH_START_MILLIS, 0L);
|
|
140
|
+
values.put(SQLiteSessionContract.SessionEntry.COLUMN_NAME_MOCK_FLAGS, l.getMockFlags());
|
|
141
|
+
return values;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
private String[] queryColumns() {
|
|
145
|
+
return new String[]{
|
|
146
|
+
SQLiteSessionContract.SessionEntry._ID,
|
|
147
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_PROVIDER,
|
|
148
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_TIME,
|
|
149
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_ACCURACY,
|
|
150
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_VERTICAL_ACCURACY,
|
|
151
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_SPEED,
|
|
152
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_BEARING,
|
|
153
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_ALTITUDE,
|
|
154
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_RADIUS,
|
|
155
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_LATITUDE,
|
|
156
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_LONGITUDE,
|
|
157
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_ACCURACY,
|
|
158
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_VERTICAL_ACCURACY,
|
|
159
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_SPEED,
|
|
160
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_BEARING,
|
|
161
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_ALTITUDE,
|
|
162
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_HAS_RADIUS,
|
|
163
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_LOCATION_PROVIDER,
|
|
164
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_STATUS,
|
|
165
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_BATCH_START_MILLIS,
|
|
166
|
+
SQLiteSessionContract.SessionEntry.COLUMN_NAME_MOCK_FLAGS
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
}
|