mirror of https://github.com/tasks/tasks
Remove RecurringIntervalIntentService
parent
2bfc46f32b
commit
993c41b197
@ -1,31 +0,0 @@
|
||||
package org.tasks.scheduling;
|
||||
|
||||
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastS;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext;
|
||||
|
||||
public class AlarmManager {
|
||||
|
||||
private final android.app.AlarmManager alarmManager;
|
||||
|
||||
@Inject
|
||||
public AlarmManager(@ApplicationContext Context context) {
|
||||
alarmManager = (android.app.AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
||||
}
|
||||
|
||||
public void cancel(PendingIntent pendingIntent) {
|
||||
alarmManager.cancel(pendingIntent);
|
||||
}
|
||||
|
||||
public void wakeup(long time, PendingIntent pendingIntent) {
|
||||
if (!atLeastS() || alarmManager.canScheduleExactAlarms()) {
|
||||
alarmManager.setExactAndAllowWhileIdle(
|
||||
android.app.AlarmManager.RTC_WAKEUP, time, pendingIntent);
|
||||
}
|
||||
}
|
||||
}
|
@ -1,36 +0,0 @@
|
||||
package org.tasks.scheduling
|
||||
|
||||
import android.app.PendingIntent
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Intent
|
||||
import org.tasks.injection.InjectingJobIntentService
|
||||
import org.tasks.time.DateTimeUtils
|
||||
import timber.log.Timber
|
||||
import javax.inject.Inject
|
||||
|
||||
abstract class RecurringIntervalIntentService : InjectingJobIntentService() {
|
||||
@Inject lateinit var alarmManager: AlarmManager
|
||||
|
||||
override suspend fun doWork(intent: Intent) {
|
||||
val interval = intervalMillis()
|
||||
if (interval <= 0) {
|
||||
Timber.d("service disabled")
|
||||
return
|
||||
}
|
||||
val now = DateTimeUtils.currentTimeMillis()
|
||||
val nextRun = now + interval
|
||||
Timber.d("running now [nextRun=${DateTimeUtils.printTimestamp(nextRun)}]")
|
||||
run()
|
||||
val pendingIntent = PendingIntent.getBroadcast(
|
||||
this,
|
||||
0,
|
||||
Intent(this, broadcastClass),
|
||||
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
|
||||
)
|
||||
alarmManager.wakeup(nextRun, pendingIntent)
|
||||
}
|
||||
|
||||
abstract val broadcastClass: Class<out BroadcastReceiver>
|
||||
abstract suspend fun run()
|
||||
abstract fun intervalMillis(): Long
|
||||
}
|
Loading…
Reference in New Issue