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.