From 6444092d3ad6f755d15dd85c56505977a00b488d Mon Sep 17 00:00:00 2001 From: Phillip Hsu Date: Tue, 28 Feb 2017 18:01:08 -0800 Subject: [PATCH] Marshall and unmarshall Timers passed to and from AsyncTimersTableUpdateHandler, TimerRingtoneService, and TimesUpActivity. --- .../com/philliphsu/clock2/ringtone/TimesUpActivity.java | 6 ++++++ .../clock2/ringtone/playback/TimerRingtoneService.java | 6 ++++++ .../clock2/timers/data/AsyncTimersTableUpdateHandler.java | 4 ++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/philliphsu/clock2/ringtone/TimesUpActivity.java b/app/src/main/java/com/philliphsu/clock2/ringtone/TimesUpActivity.java index df7535b..62d9462 100644 --- a/app/src/main/java/com/philliphsu/clock2/ringtone/TimesUpActivity.java +++ b/app/src/main/java/com/philliphsu/clock2/ringtone/TimesUpActivity.java @@ -20,6 +20,7 @@ import android.app.Notification; import android.app.NotificationManager; import android.content.Intent; import android.os.Bundle; +import android.os.Parcelable; import android.os.SystemClock; import android.support.v4.app.NotificationCompat; import android.view.ViewGroup; @@ -129,6 +130,11 @@ public class TimesUpActivity extends RingtoneActivity { postExpiredTimerNote(); } + @Override + protected Parcelable.Creator getParcelableCreator() { + return Timer.CREATOR; + } + private void postExpiredTimerNote() { Notification note = new NotificationCompat.Builder(this) .setContentTitle(getString(R.string.timer_expired)) diff --git a/app/src/main/java/com/philliphsu/clock2/ringtone/playback/TimerRingtoneService.java b/app/src/main/java/com/philliphsu/clock2/ringtone/playback/TimerRingtoneService.java index dfad04f..d0a4482 100644 --- a/app/src/main/java/com/philliphsu/clock2/ringtone/playback/TimerRingtoneService.java +++ b/app/src/main/java/com/philliphsu/clock2/ringtone/playback/TimerRingtoneService.java @@ -19,6 +19,7 @@ package com.philliphsu.clock2.ringtone.playback; import android.app.Notification; import android.content.Intent; import android.net.Uri; +import android.os.Parcelable; import android.preference.PreferenceManager; import android.provider.Settings; import android.support.v4.app.NotificationCompat; @@ -121,4 +122,9 @@ public class TimerRingtoneService extends RingtoneService { getString(R.string.key_timer_silence_after), "15"); return Integer.parseInt(value); } + + @Override + protected Parcelable.Creator getParcelableCreator() { + return Timer.CREATOR; + } } diff --git a/app/src/main/java/com/philliphsu/clock2/timers/data/AsyncTimersTableUpdateHandler.java b/app/src/main/java/com/philliphsu/clock2/timers/data/AsyncTimersTableUpdateHandler.java index 78602c8..51ad648 100644 --- a/app/src/main/java/com/philliphsu/clock2/timers/data/AsyncTimersTableUpdateHandler.java +++ b/app/src/main/java/com/philliphsu/clock2/timers/data/AsyncTimersTableUpdateHandler.java @@ -27,6 +27,7 @@ import com.philliphsu.clock2.timers.Timer; import com.philliphsu.clock2.list.ScrollHandler; import com.philliphsu.clock2.timers.TimerNotificationService; import com.philliphsu.clock2.ringtone.TimesUpActivity; +import com.philliphsu.clock2.util.ParcelableUtil; /** * Created by Phillip Hsu on 8/2/2016. @@ -75,8 +76,7 @@ public final class AsyncTimersTableUpdateHandler extends AsyncDatabaseTableUpdat // TODO: Consider changing to just a long id param private PendingIntent createTimesUpIntent(Timer timer) { Intent intent = new Intent(getContext(), TimesUpActivity.class); -// intent.putExtra(TimesUpActivity.EXTRA_ITEM_ID, timer.getId()); - intent.putExtra(TimesUpActivity.EXTRA_RINGING_OBJECT, timer); + intent.putExtra(TimesUpActivity.EXTRA_RINGING_OBJECT, ParcelableUtil.marshall(timer)); // There's no point to determining whether to retrieve a previous instance, because // we chose to ignore it since we had issues with NPEs. TODO: Perhaps these issues // were caused by you using the same reference variable for every Intent/PI that