convert ConnectivityMonitorService to JobIntentService #1426

This commit is contained in:
Hans-Christoph Steiner 2018-04-24 17:09:33 +02:00
parent 07ada4e6b2
commit 34ac465438
2 changed files with 12 additions and 10 deletions

View File

@ -280,6 +280,7 @@
android:exported="false"/> android:exported="false"/>
<service <service
android:name=".net.ConnectivityMonitorService" android:name=".net.ConnectivityMonitorService"
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="false"/> android:exported="false"/>
<service android:name=".localrepo.SwapService"/> <service android:name=".localrepo.SwapService"/>
<service <service

View File

@ -1,6 +1,5 @@
package org.fdroid.fdroid.net; package org.fdroid.fdroid.net;
import android.app.IntentService;
import android.content.BroadcastReceiver; import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@ -8,16 +7,18 @@ import android.content.IntentFilter;
import android.net.ConnectivityManager; import android.net.ConnectivityManager;
import android.net.NetworkInfo; import android.net.NetworkInfo;
import android.os.Build; import android.os.Build;
import android.support.annotation.NonNull;
import android.support.v4.app.JobIntentService;
import com.nostra13.universalimageloader.core.ImageLoader; import com.nostra13.universalimageloader.core.ImageLoader;
import org.fdroid.fdroid.FDroidApp; import org.fdroid.fdroid.FDroidApp;
import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.Preferences;
/** /**
* An {@link IntentService} subclass for tracking whether there is metered or * An {@link JobIntentService} subclass for tracking whether there is metered or
* unmetered internet available, based on * unmetered internet available, based on
* {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION} * {@link android.net.ConnectivityManager#CONNECTIVITY_ACTION}
*/ */
public class ConnectivityMonitorService extends IntentService { public class ConnectivityMonitorService extends JobIntentService {
public static final String TAG = "ConnectivityMonitorServ"; public static final String TAG = "ConnectivityMonitorServ";
public static final int FLAG_NET_UNAVAILABLE = 0; public static final int FLAG_NET_UNAVAILABLE = 0;
@ -33,10 +34,10 @@ public class ConnectivityMonitorService extends IntentService {
} }
}; };
public ConnectivityMonitorService() { /**
super("ConnectivityMonitorService"); * Register the {@link BroadcastReceiver} which also starts this
} * {@code Service} since it is a sticky broadcast.
*/
public static void registerAndStart(Context context) { public static void registerAndStart(Context context) {
context.registerReceiver(CONNECTIVITY_RECEIVER, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); context.registerReceiver(CONNECTIVITY_RECEIVER, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
} }
@ -44,7 +45,7 @@ public class ConnectivityMonitorService extends IntentService {
public static void start(Context context) { public static void start(Context context) {
Intent intent = new Intent(context, ConnectivityMonitorService.class); Intent intent = new Intent(context, ConnectivityMonitorService.class);
intent.setAction(ACTION_START); intent.setAction(ACTION_START);
context.startService(intent); enqueueWork(context, ConnectivityMonitorService.class, 0x982ae7b, intent);
} }
/** /**
@ -77,8 +78,8 @@ public class ConnectivityMonitorService extends IntentService {
} }
@Override @Override
protected void onHandleIntent(Intent intent) { protected void onHandleWork(@NonNull Intent intent) {
if (intent != null && ACTION_START.equals(intent.getAction())) { if (ACTION_START.equals(intent.getAction())) {
FDroidApp.networkState = getNetworkState(this); FDroidApp.networkState = getNetworkState(this);
ImageLoader.getInstance().denyNetworkDownloads(!Preferences.get().isBackgroundDownloadAllowed()); ImageLoader.getInstance().denyNetworkDownloads(!Preferences.get().isBackgroundDownloadAllowed());
} }