diff --git a/gpslogger/build.gradle b/gpslogger/build.gradle index 86d63c623..8f5f7cbb5 100644 --- a/gpslogger/build.gradle +++ b/gpslogger/build.gradle @@ -146,14 +146,9 @@ dependencies { //Progress button implementation 'com.github.dmytrodanylyk.android-process-button:library:1.0.4' - //Android Priority Jobqueue - implementation ('com.birbit:android-priority-jobqueue:2.0.1'){ - exclude group: 'com.google.android', module: 'android' - } - //Android's WorkManager implementation 'androidx.work:work-runtime:2.9.0' - // It needs Gson + // We need to use Gson to help with WorkManager limitations implementation 'com.google.code.gson:gson:2.10.1' //Event bus diff --git a/gpslogger/src/main/java/com/mendhak/gpslogger/common/AppSettings.java b/gpslogger/src/main/java/com/mendhak/gpslogger/common/AppSettings.java index 2b07d3074..b3ebd6266 100644 --- a/gpslogger/src/main/java/com/mendhak/gpslogger/common/AppSettings.java +++ b/gpslogger/src/main/java/com/mendhak/gpslogger/common/AppSettings.java @@ -21,9 +21,7 @@ import android.app.Application; -import com.birbit.android.jobqueue.JobManager; -import com.birbit.android.jobqueue.config.Configuration; -import com.birbit.android.jobqueue.log.CustomLogger; + import com.mendhak.gpslogger.BuildConfig; import com.mendhak.gpslogger.common.slf4j.Logs; import de.greenrobot.event.EventBus; @@ -31,7 +29,7 @@ public class AppSettings extends Application { - private static JobManager jobManager; + private static AppSettings instance; private static Logger LOG; @@ -50,25 +48,10 @@ public void onCreate() { EventBus.builder().logNoSubscriberMessages(false).sendNoSubscriberEvent(false).installDefaultEventBus(); LOG.debug("EventBus configured"); - //Configure the Job Queue - Configuration config = new Configuration.Builder(getInstance()) - .networkUtil(new WifiNetworkUtil(getInstance())) - .consumerKeepAlive(60) - .minConsumerCount(0) - .maxConsumerCount(1) -// .customLogger(jobQueueLogger) - .build(); - jobManager = new JobManager(config); - LOG.debug("Job Queue configured"); - } - /** - * Returns a configured Job Queue Manager - */ - public static JobManager getJobManager() { - return jobManager; } + public AppSettings() { instance = this; } @@ -81,35 +64,4 @@ public static AppSettings getInstance() { } - private final CustomLogger jobQueueLogger = new CustomLogger() { - @Override - public boolean isDebugEnabled() { - return BuildConfig.DEBUG; - } - - @Override - public void d(String text, Object... args) { - - LOG.debug(String.format(text, args)); - } - - @Override - public void e(Throwable t, String text, Object... args) { - LOG.error(String.format(text, args), t); - } - - @Override - public void e(String text, Object... args) { - - LOG.error(String.format(text, args)); - } - - @Override - public void v(String text, Object... args) { - LOG.debug(String.format(text,args)); - } - }; - - - } diff --git a/gpslogger/src/main/java/com/mendhak/gpslogger/common/WifiNetworkUtil.java b/gpslogger/src/main/java/com/mendhak/gpslogger/common/WifiNetworkUtil.java deleted file mode 100644 index cc2c2b1d9..000000000 --- a/gpslogger/src/main/java/com/mendhak/gpslogger/common/WifiNetworkUtil.java +++ /dev/null @@ -1,135 +0,0 @@ -/* - * Copyright (C) 2016 mendhak - * - * This file is part of GPSLogger for Android. - * - * GPSLogger for Android is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * GPSLogger for Android is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GPSLogger for Android. If not, see . - */ - -package com.mendhak.gpslogger.common; - - -import android.annotation.TargetApi; -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.net.ConnectivityManager; -import android.net.Network; -import android.net.NetworkCapabilities; -import android.net.NetworkInfo; -import android.net.NetworkRequest; -import android.os.Build; -import android.os.PowerManager; - -import com.birbit.android.jobqueue.network.NetworkEventProvider; -import com.birbit.android.jobqueue.network.NetworkUtil; - -/** - * default implementation for network Utility to observe network events - */ -public class WifiNetworkUtil implements NetworkUtil, NetworkEventProvider { - private Listener listener; - public WifiNetworkUtil(Context context) { - context = context.getApplicationContext(); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - listenForIdle(context); - } - listenNetworkViaConnectivityManager(context); - } else { - context.registerReceiver(new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - dispatchNetworkChange(context); - } - }, getNetworkIntentFilter()); - } - } - - @TargetApi(23) - private void listenNetworkViaConnectivityManager(final Context context) { - ConnectivityManager cm = (ConnectivityManager) context - .getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkRequest request = new NetworkRequest.Builder() - .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) - .addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED) - .build(); - cm.registerNetworkCallback(request, new ConnectivityManager.NetworkCallback() { - @Override - public void onAvailable(Network network) { - dispatchNetworkChange(context); - } - }); - } - - @TargetApi(23) - private void listenForIdle(Context context) { - context.registerReceiver(new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - dispatchNetworkChange(context); - } - }, new IntentFilter(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED)); - } - - void dispatchNetworkChange(Context context) { - if(listener == null) {//shall not be but just be safe - return; - } - //http://developer.android.com/reference/android/net/ConnectivityManager.html#EXTRA_NETWORK_INFO - //Since NetworkInfo can vary based on UID, applications should always obtain network information - // through getActiveNetworkInfo() or getAllNetworkInfo(). - listener.onNetworkChange(getNetworkStatus(context)); - } - - @Override - public int getNetworkStatus(Context context) { - if (Systems.isDozing(context)) { - return NetworkUtil.DISCONNECTED; - } - ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); - NetworkInfo netInfo = cm.getActiveNetworkInfo(); - if (netInfo == null) { - return NetworkUtil.DISCONNECTED; - } - - boolean isWifiRequired = PreferenceHelper.getInstance().shouldAutoSendOnWifiOnly(); - boolean isDeviceOnWifi = true; - - if(isWifiRequired){ - isDeviceOnWifi = (netInfo.getType() == ConnectivityManager.TYPE_WIFI); - } - - if ( netInfo.isConnected() && isDeviceOnWifi){ - return NetworkUtil.UNMETERED; - } - - return NetworkUtil.METERED; - } - - @TargetApi(23) - private static IntentFilter getNetworkIntentFilter() { - IntentFilter networkIntentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { - networkIntentFilter.addAction(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED); - } - return networkIntentFilter; - } - - @Override - public void setListener(Listener listener) { - this.listener = listener; - } -} \ No newline at end of file diff --git a/gpslogger/src/main/java/com/mendhak/gpslogger/senders/sftp/SFTPManager.java b/gpslogger/src/main/java/com/mendhak/gpslogger/senders/sftp/SFTPManager.java index ec6fb68e0..582ab578c 100644 --- a/gpslogger/src/main/java/com/mendhak/gpslogger/senders/sftp/SFTPManager.java +++ b/gpslogger/src/main/java/com/mendhak/gpslogger/senders/sftp/SFTPManager.java @@ -3,9 +3,6 @@ import androidx.work.OneTimeWorkRequest; import androidx.work.WorkManager; -import com.birbit.android.jobqueue.CancelResult; -import com.birbit.android.jobqueue.JobManager; -import com.birbit.android.jobqueue.TagConstraint; import com.mendhak.gpslogger.common.AppSettings; import com.mendhak.gpslogger.common.PreferenceHelper; import com.mendhak.gpslogger.common.Strings;