diff --git a/wiglewifiwardriving/build.gradle b/wiglewifiwardriving/build.gradle index 658fc7bb..f3fb8f4b 100644 --- a/wiglewifiwardriving/build.gradle +++ b/wiglewifiwardriving/build.gradle @@ -57,10 +57,10 @@ ext { dependencies { implementation "androidx.legacy:legacy-support-v4:1.0.0" implementation "androidx.legacy:legacy-support-core-utils:1.0.0" - implementation "androidx.core:core:1.6.0" - implementation "androidx.appcompat:appcompat:1.4.2" - implementation "com.google.android.material:material:1.6.0" - implementation "com.google.android.gms:play-services-maps:18.1.0" + implementation "androidx.core:core:1.13.1" + implementation "androidx.appcompat:appcompat:1.7.0" + implementation "com.google.android.material:material:1.12.0" + implementation "com.google.android.gms:play-services-maps:18.2.0" implementation 'com.google.android.gms:play-services-vision:20.1.3' implementation 'com.google.code.gson:gson:2.8.9' implementation 'org.slf4j:slf4j-android:1.7.19' diff --git a/wiglewifiwardriving/src/main/AndroidManifest.xml b/wiglewifiwardriving/src/main/AndroidManifest.xml index ac89a0ec..7e79f6b3 100644 --- a/wiglewifiwardriving/src/main/AndroidManifest.xml +++ b/wiglewifiwardriving/src/main/AndroidManifest.xml @@ -32,6 +32,7 @@ + @@ -302,7 +303,7 @@ = Build.VERSION_CODES.R) { + Logging.info("service startForeground version R+"); + startForeground(NOTIFICATION_ID, notification, + ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION | ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC); + } else { + Logging.info("service startForeground"); + startForeground(NOTIFICATION_ID, notification); + } } } catch (Exception ex) { Logging.error("notification service error: ", ex); diff --git a/wiglewifiwardriving/src/main/java/net/wigle/wigleandroid/db/DatabaseHelper.java b/wiglewifiwardriving/src/main/java/net/wigle/wigleandroid/db/DatabaseHelper.java index 81656cc1..42015e04 100644 --- a/wiglewifiwardriving/src/main/java/net/wigle/wigleandroid/db/DatabaseHelper.java +++ b/wiglewifiwardriving/src/main/java/net/wigle/wigleandroid/db/DatabaseHelper.java @@ -52,11 +52,14 @@ import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteStatement; import android.location.Location; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.Process; +import androidx.annotation.WorkerThread; + import com.google.android.gms.maps.model.LatLng; /** @@ -72,7 +75,9 @@ public final class DatabaseHelper extends Thread { private static final int LEVEL_CHANGE = 5; private static final String DATABASE_NAME = "wiglewifi"+SQL_EXT; private static final String EXTERNAL_DATABASE_PATH = FileUtility.getSDPath(); - private static final int DB_PRIORITY = Process.THREAD_PRIORITY_BACKGROUND; + private static final int DB_PRIORITY = Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE ? + /*Process.THREAD_PRIORITY_BACKGROUND |*/ Process.THREAD_PRIORITY_DEFAULT : + Process.THREAD_PRIORITY_BACKGROUND; private static final Object TRANS_LOCK = new Object(); private static final long QUEUE_CULL_TIMEOUT = 10000L; @@ -162,8 +167,8 @@ public final class DatabaseHelper extends Thread { private SQLiteDatabase db; - private static final int MAX_QUEUE = 512; - private static final int MAX_DRAIN = 512; // seems to work fine slurping the whole darn thing + private static final int MAX_QUEUE = Build.VERSION_CODES.R >= Build.VERSION.SDK_INT ? 768 : 512; + private static final int MAX_DRAIN = MAX_QUEUE; private static final String ERROR = "error"; private static final String EXCEPTION = "exception"; private final Context context; @@ -713,6 +718,7 @@ public boolean addObservation( final Network network, final Location location, f return false; } + @WorkerThread private boolean addObservation( final Network network, final int level, final Location location, final boolean newForRun, final boolean frequencyChanged, final boolean typeMorphed ) { diff --git a/wiglewifiwardriving/src/main/java/net/wigle/wigleandroid/listener/GNSSListener.java b/wiglewifiwardriving/src/main/java/net/wigle/wigleandroid/listener/GNSSListener.java index c7b6bdbb..6c86b168 100644 --- a/wiglewifiwardriving/src/main/java/net/wigle/wigleandroid/listener/GNSSListener.java +++ b/wiglewifiwardriving/src/main/java/net/wigle/wigleandroid/listener/GNSSListener.java @@ -282,7 +282,7 @@ else if ( newOK && NETWORK_PROVIDER.equals( newLocation.getProvider() ) ) { } else if (prevLocation == null || prevLocation.getTime() < currentLocation.getTime()) { // initialize previous location prevLocation = currentLocation; - } else if (prevLocation != null){ + } else if (prevLocation != null) { if (currentLocation.getTime() != prevLocation.getTime()) { Logging.warn("Location timestamp (" + currentLocation.getTime() + ") < previous location timestamp (" + prevLocation.getTime() + ")"); //ALIBI: we're ignoring this rather than trying to slot it in only because we'd need an in-memory or DB route otherwise.