mirror of
https://github.com/oxen-io/session-android.git
synced 2025-10-26 11:21:55 +00:00
Move directory refresh from a service over to a job.
// FREEBIE
This commit is contained in:
@@ -8,6 +8,8 @@ import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.util.Log;
|
||||
|
||||
import org.thoughtcrime.securesms.ApplicationContext;
|
||||
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
|
||||
public class DirectoryRefreshListener extends BroadcastReceiver {
|
||||
@@ -41,9 +43,9 @@ public class DirectoryRefreshListener extends BroadcastReceiver {
|
||||
|
||||
if (time <= System.currentTimeMillis()) {
|
||||
if (time != 0) {
|
||||
Intent serviceIntent = new Intent(context, DirectoryRefreshService.class);
|
||||
serviceIntent.setAction(DirectoryRefreshService.REFRESH_ACTION);
|
||||
context.startService(serviceIntent);
|
||||
ApplicationContext.getInstance(context)
|
||||
.getJobManager()
|
||||
.add(new DirectoryRefreshJob(context));
|
||||
}
|
||||
|
||||
time = System.currentTimeMillis() + INTERVAL;
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
package org.thoughtcrime.securesms.service;
|
||||
|
||||
import android.app.Service;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.IBinder;
|
||||
import android.os.PowerManager;
|
||||
import android.util.Log;
|
||||
|
||||
import org.thoughtcrime.securesms.util.DirectoryHelper;
|
||||
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
public class DirectoryRefreshService extends Service {
|
||||
|
||||
public static final String REFRESH_ACTION = "org.whispersystems.whisperpush.REFRESH_ACTION";
|
||||
|
||||
private static final Executor executor = Executors.newSingleThreadExecutor();
|
||||
|
||||
@Override
|
||||
public int onStartCommand (Intent intent, int flags, int startId) {
|
||||
if (REFRESH_ACTION.equals(intent.getAction())) {
|
||||
handleRefreshAction();
|
||||
}
|
||||
return START_NOT_STICKY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IBinder onBind(Intent intent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
private void handleRefreshAction() {
|
||||
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
|
||||
PowerManager.WakeLock wakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "Directory Refresh");
|
||||
wakeLock.acquire();
|
||||
|
||||
executor.execute(new RefreshRunnable(wakeLock));
|
||||
}
|
||||
|
||||
private class RefreshRunnable implements Runnable {
|
||||
private final PowerManager.WakeLock wakeLock;
|
||||
private final Context context;
|
||||
|
||||
public RefreshRunnable(PowerManager.WakeLock wakeLock) {
|
||||
this.wakeLock = wakeLock;
|
||||
this.context = DirectoryRefreshService.this.getApplicationContext();
|
||||
}
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
Log.w("DirectoryRefreshService", "Refreshing directory...");
|
||||
|
||||
DirectoryHelper.refreshDirectory(context);
|
||||
|
||||
Log.w("DirectoryRefreshService", "Directory refresh complete...");
|
||||
} finally {
|
||||
if (wakeLock != null && wakeLock.isHeld())
|
||||
wakeLock.release();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user