mirror of https://github.com/tasks/tasks
Use android-job to schedule refresh
parent
ce89959c07
commit
70f64ee9e6
@ -1,32 +0,0 @@
|
|||||||
package org.tasks.jobs;
|
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.support.annotation.NonNull;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import org.tasks.analytics.Tracker;
|
|
||||||
import org.tasks.injection.InjectingJobIntentService;
|
|
||||||
import timber.log.Timber;
|
|
||||||
|
|
||||||
public abstract class Job extends InjectingJobIntentService {
|
|
||||||
|
|
||||||
@Inject Tracker tracker;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onHandleWork(@NonNull Intent intent) {
|
|
||||||
super.onHandleWork(intent);
|
|
||||||
|
|
||||||
Timber.d("onHandleIntent(%s)", intent);
|
|
||||||
|
|
||||||
try {
|
|
||||||
run();
|
|
||||||
} catch (Exception e) {
|
|
||||||
tracker.reportException(e);
|
|
||||||
} finally {
|
|
||||||
scheduleNext();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract void run();
|
|
||||||
|
|
||||||
protected abstract void scheduleNext();
|
|
||||||
}
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
package org.tasks.jobs;
|
|
||||||
|
|
||||||
public abstract class MidnightJob extends Job {
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,41 +0,0 @@
|
|||||||
package org.tasks.jobs;
|
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
|
||||||
import android.content.Context;
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.support.v4.app.JobIntentService;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import org.tasks.LocalBroadcastManager;
|
|
||||||
import org.tasks.injection.IntentServiceComponent;
|
|
||||||
|
|
||||||
public class MidnightRefreshJob extends MidnightJob {
|
|
||||||
|
|
||||||
public static final String TAG = "job_midnight_refresh";
|
|
||||||
@Inject LocalBroadcastManager localBroadcastManager;
|
|
||||||
@Inject JobManager jobManager;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void run() {
|
|
||||||
localBroadcastManager.broadcastRefresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void scheduleNext() {
|
|
||||||
jobManager.scheduleMidnightRefresh();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void inject(IntentServiceComponent component) {
|
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class Broadcast extends BroadcastReceiver {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceive(Context context, Intent intent) {
|
|
||||||
JobIntentService
|
|
||||||
.enqueueWork(context, MidnightRefreshJob.class, JobManager.JOB_ID_MIDNIGHT_REFRESH,
|
|
||||||
intent);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,40 +1,27 @@
|
|||||||
package org.tasks.jobs;
|
package org.tasks.jobs;
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.support.annotation.NonNull;
|
||||||
import android.content.Context;
|
import com.evernote.android.job.Job;
|
||||||
import android.content.Intent;
|
|
||||||
import android.support.v4.app.JobIntentService;
|
|
||||||
import javax.inject.Inject;
|
|
||||||
import org.tasks.LocalBroadcastManager;
|
import org.tasks.LocalBroadcastManager;
|
||||||
import org.tasks.injection.IntentServiceComponent;
|
|
||||||
import org.tasks.scheduling.RefreshScheduler;
|
import org.tasks.scheduling.RefreshScheduler;
|
||||||
|
|
||||||
public class RefreshJob extends Job {
|
public class RefreshJob extends Job {
|
||||||
|
|
||||||
public static final String TAG = "job_refresh";
|
public static final String TAG = "job_refresh";
|
||||||
@Inject RefreshScheduler refreshScheduler;
|
|
||||||
@Inject LocalBroadcastManager localBroadcastManager;
|
|
||||||
|
|
||||||
@Override
|
private final RefreshScheduler refreshScheduler;
|
||||||
protected void inject(IntentServiceComponent component) {
|
private final LocalBroadcastManager localBroadcastManager;
|
||||||
component.inject(this);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
RefreshJob(RefreshScheduler refreshScheduler, LocalBroadcastManager localBroadcastManager) {
|
||||||
protected void run() {
|
this.refreshScheduler = refreshScheduler;
|
||||||
localBroadcastManager.broadcastRefresh();
|
this.localBroadcastManager = localBroadcastManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
protected void scheduleNext() {
|
protected Result onRunJob(@NonNull Params params) {
|
||||||
|
localBroadcastManager.broadcastRefresh();
|
||||||
refreshScheduler.scheduleNext();
|
refreshScheduler.scheduleNext();
|
||||||
}
|
return Result.SUCCESS;
|
||||||
|
|
||||||
public static class Broadcast extends BroadcastReceiver {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onReceive(Context context, Intent intent) {
|
|
||||||
JobIntentService.enqueueWork(context, RefreshJob.class, JobManager.JOB_ID_REFRESH, intent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue