MCPcopy Create free account
hub / github.com/M66B/FairEmail / snooze

Method snooze

app/src/main/java/eu/faircode/email/EntityMessage.java:722–760  ·  view source on GitHub ↗
(Context context, long id, Long wakeup)

Source from the content-addressed store, hash-verified

720 }
721
722 static void snooze(Context context, long id, Long wakeup) {
723 if (wakeup != null && wakeup != Long.MAX_VALUE) {
724 /*
725 java.lang.IllegalStateException: Maximum limit of concurrent alarms 500 reached for uid: u0a601, callingPackage: eu.faircode.email
726 at android.os.Parcel.createExceptionOrNull(Parcel.java:2433)
727 at android.os.Parcel.createException(Parcel.java:2409)
728 at android.os.Parcel.readException(Parcel.java:2392)
729 at android.os.Parcel.readException(Parcel.java:2334)
730 at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:359)
731 at android.app.AlarmManager.setImpl(AlarmManager.java:947)
732 at android.app.AlarmManager.setImpl(AlarmManager.java:907)
733 at android.app.AlarmManager.setExactAndAllowWhileIdle(AlarmManager.java:1175)
734 at androidx.core.app.AlarmManagerCompat$Api23Impl.setExactAndAllowWhileIdle(Unknown Source:0)
735 at androidx.core.app.AlarmManagerCompat.setExactAndAllowWhileIdle(SourceFile:2)
736 at eu.faircode.email.AlarmManagerCompatEx.setAndAllowWhileIdle(SourceFile:2)
737 at eu.faircode.email.EntityMessage.snooze(SourceFile:7)
738 */
739 DB db = DB.getInstance(context);
740 int count = db.message().getSnoozedCount();
741 Log.i("Snoozed=" + count + "/" + MAX_SNOOZED);
742 if (count > MAX_SNOOZED)
743 throw new IllegalArgumentException(
744 String.format("Due to Android limitations, no more than %d messages can be snoozed or delayed", MAX_SNOOZED));
745 }
746
747 Intent snoozed = new Intent(context, ServiceSynchronize.class);
748 snoozed.setAction("unsnooze:" + id);
749 PendingIntent pi = PendingIntentCompat.getForegroundService(
750 context, ServiceSynchronize.PI_UNSNOOZE, snoozed, PendingIntent.FLAG_UPDATE_CURRENT);
751
752 AlarmManager am = Helper.getSystemService(context, AlarmManager.class);
753 if (wakeup == null || wakeup == Long.MAX_VALUE) {
754 Log.i("Cancel snooze id=" + id);
755 am.cancel(pi);
756 } else {
757 Log.i("Set snooze id=" + id + " wakeup=" + new Date(wakeup));
758 AlarmManagerCompatEx.setAndAllowWhileIdle(context, am, AlarmManager.RTC_WAKEUP, wakeup, pi);
759 }
760 }
761
762 static String getSwipeType(Long type) {
763 if (type == null)

Callers 10

delegateMethod · 0.95
onSyncMethod · 0.95
onExecuteMethod · 0.95
onExecuteMethod · 0.95
onActionHideMethod · 0.95
onActionSnoozeMethod · 0.95
onSnoozeMethod · 0.95
onExecuteMethod · 0.95
queueMethod · 0.95
cleanupMethod · 0.95

Calls 10

getInstanceMethod · 0.95
messageMethod · 0.95
iMethod · 0.95
getForegroundServiceMethod · 0.95
getSystemServiceMethod · 0.95
setAndAllowWhileIdleMethod · 0.95
getSnoozedCountMethod · 0.80
setActionMethod · 0.80
formatMethod · 0.45
cancelMethod · 0.45

Tested by

no test coverage detected