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