Remove RecurringIntervalIntentService

pull/2533/head
Alex Baker 8 months ago
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…
Cancel
Save