Check for exact alarm permission

pull/2260/head
Alex Baker 1 year ago
parent d477dfb448
commit 97e1b75781

@ -10,6 +10,7 @@ import androidx.work.*
import androidx.work.ExistingWorkPolicy.APPEND_OR_REPLACE
import androidx.work.ExistingWorkPolicy.REPLACE
import com.todoroo.andlib.utility.AndroidUtilities
import com.todoroo.andlib.utility.AndroidUtilities.atLeastS
import com.todoroo.andlib.utility.DateUtilities
import com.todoroo.astrid.data.Task
import kotlinx.coroutines.Dispatchers
@ -158,7 +159,9 @@ class WorkManagerImpl constructor(
}
} else {
val pendingIntent = notificationPendingIntent
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, time, pendingIntent)
if (!atLeastS() || alarmManager.canScheduleExactAlarms()) {
alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, time, pendingIntent)
}
}
}

@ -1,11 +1,14 @@
package org.tasks.scheduling;
import android.annotation.SuppressLint;
import static com.todoroo.andlib.utility.AndroidUtilities.atLeastS;
import android.app.PendingIntent;
import android.content.Context;
import dagger.hilt.android.qualifiers.ApplicationContext;
import javax.inject.Inject;
import dagger.hilt.android.qualifiers.ApplicationContext;
public class AlarmManager {
private final android.app.AlarmManager alarmManager;
@ -19,9 +22,10 @@ public class AlarmManager {
alarmManager.cancel(pendingIntent);
}
@SuppressLint("NewApi")
public void wakeup(long time, PendingIntent pendingIntent) {
alarmManager.setExactAndAllowWhileIdle(
android.app.AlarmManager.RTC_WAKEUP, time, pendingIntent);
if (!atLeastS() || alarmManager.canScheduleExactAlarms()) {
alarmManager.setExactAndAllowWhileIdle(
android.app.AlarmManager.RTC_WAKEUP, time, pendingIntent);
}
}
}

Loading…
Cancel
Save