Marshall and unmarshall Alarms passed to and from UpcomingAlarmReceiver.
This commit is contained in:
parent
e68ac72629
commit
dd4c6d417b
@ -29,6 +29,7 @@ import com.philliphsu.clock2.R;
|
|||||||
import com.philliphsu.clock2.alarms.Alarm;
|
import com.philliphsu.clock2.alarms.Alarm;
|
||||||
import com.philliphsu.clock2.alarms.misc.AlarmController;
|
import com.philliphsu.clock2.alarms.misc.AlarmController;
|
||||||
import com.philliphsu.clock2.util.ContentIntentUtils;
|
import com.philliphsu.clock2.util.ContentIntentUtils;
|
||||||
|
import com.philliphsu.clock2.util.ParcelableUtil;
|
||||||
|
|
||||||
import static android.app.PendingIntent.FLAG_ONE_SHOT;
|
import static android.app.PendingIntent.FLAG_ONE_SHOT;
|
||||||
import static com.philliphsu.clock2.util.TimeFormatUtils.formatTime;
|
import static com.philliphsu.clock2.util.TimeFormatUtils.formatTime;
|
||||||
@ -45,7 +46,9 @@ public class UpcomingAlarmReceiver extends BroadcastReceiver {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(final Context context, final Intent intent) {
|
public void onReceive(final Context context, final Intent intent) {
|
||||||
final Alarm alarm = intent.getParcelableExtra(EXTRA_ALARM);
|
final byte[] alarmBytes = intent.getByteArrayExtra(EXTRA_ALARM);
|
||||||
|
// Unmarshall the bytes into a parcel and create our Alarm with it.
|
||||||
|
final Alarm alarm = ParcelableUtil.unmarshall(alarmBytes, Alarm.CREATOR);
|
||||||
if (alarm == null) {
|
if (alarm == null) {
|
||||||
throw new IllegalStateException("No alarm received");
|
throw new IllegalStateException("No alarm received");
|
||||||
}
|
}
|
||||||
@ -84,7 +87,7 @@ public class UpcomingAlarmReceiver extends BroadcastReceiver {
|
|||||||
|
|
||||||
Intent dismissIntent = new Intent(context, UpcomingAlarmReceiver.class)
|
Intent dismissIntent = new Intent(context, UpcomingAlarmReceiver.class)
|
||||||
.setAction(ACTION_DISMISS_NOW)
|
.setAction(ACTION_DISMISS_NOW)
|
||||||
.putExtra(EXTRA_ALARM, alarm);
|
.putExtra(EXTRA_ALARM, ParcelableUtil.marshall(alarm));
|
||||||
PendingIntent piDismiss = PendingIntent.getBroadcast(context, (int) id, dismissIntent, FLAG_ONE_SHOT);
|
PendingIntent piDismiss = PendingIntent.getBroadcast(context, (int) id, dismissIntent, FLAG_ONE_SHOT);
|
||||||
Notification note = new NotificationCompat.Builder(context)
|
Notification note = new NotificationCompat.Builder(context)
|
||||||
.setSmallIcon(R.drawable.ic_alarm_24dp)
|
.setSmallIcon(R.drawable.ic_alarm_24dp)
|
||||||
|
|||||||
@ -36,6 +36,7 @@ import com.philliphsu.clock2.ringtone.playback.AlarmRingtoneService;
|
|||||||
import com.philliphsu.clock2.util.ContentIntentUtils;
|
import com.philliphsu.clock2.util.ContentIntentUtils;
|
||||||
import com.philliphsu.clock2.util.DelayedSnackbarHandler;
|
import com.philliphsu.clock2.util.DelayedSnackbarHandler;
|
||||||
import com.philliphsu.clock2.util.DurationUtils;
|
import com.philliphsu.clock2.util.DurationUtils;
|
||||||
|
import com.philliphsu.clock2.util.ParcelableUtil;
|
||||||
|
|
||||||
import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
|
import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
|
||||||
import static android.app.PendingIntent.FLAG_NO_CREATE;
|
import static android.app.PendingIntent.FLAG_NO_CREATE;
|
||||||
@ -213,7 +214,7 @@ public final class AlarmController {
|
|||||||
public void removeUpcomingAlarmNotification(Alarm a) {
|
public void removeUpcomingAlarmNotification(Alarm a) {
|
||||||
Intent intent = new Intent(mAppContext, UpcomingAlarmReceiver.class)
|
Intent intent = new Intent(mAppContext, UpcomingAlarmReceiver.class)
|
||||||
.setAction(UpcomingAlarmReceiver.ACTION_CANCEL_NOTIFICATION)
|
.setAction(UpcomingAlarmReceiver.ACTION_CANCEL_NOTIFICATION)
|
||||||
.putExtra(UpcomingAlarmReceiver.EXTRA_ALARM, a);
|
.putExtra(UpcomingAlarmReceiver.EXTRA_ALARM, ParcelableUtil.marshall(a));
|
||||||
mAppContext.sendBroadcast(intent);
|
mAppContext.sendBroadcast(intent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,7 +239,7 @@ public final class AlarmController {
|
|||||||
|
|
||||||
private PendingIntent notifyUpcomingAlarmIntent(Alarm alarm, boolean retrievePrevious) {
|
private PendingIntent notifyUpcomingAlarmIntent(Alarm alarm, boolean retrievePrevious) {
|
||||||
Intent intent = new Intent(mAppContext, UpcomingAlarmReceiver.class)
|
Intent intent = new Intent(mAppContext, UpcomingAlarmReceiver.class)
|
||||||
.putExtra(UpcomingAlarmReceiver.EXTRA_ALARM, alarm);
|
.putExtra(UpcomingAlarmReceiver.EXTRA_ALARM, ParcelableUtil.marshall(alarm));
|
||||||
if (alarm.isSnoozed()) {
|
if (alarm.isSnoozed()) {
|
||||||
intent.setAction(UpcomingAlarmReceiver.ACTION_SHOW_SNOOZING);
|
intent.setAction(UpcomingAlarmReceiver.ACTION_SHOW_SNOOZING);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user