Fix content intent of upcoming alarm and snoozing notifications to scroll to and expand alarm when clicked

This commit is contained in:
Phillip Hsu 2016-09-28 18:33:05 -07:00
parent 879f2ef1e3
commit 2103f48d1e

View File

@ -12,9 +12,8 @@ import com.philliphsu.clock2.MainActivity;
import com.philliphsu.clock2.R; 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.alarms.ui.AlarmsFragment; import com.philliphsu.clock2.util.ContentIntentUtils;
import static android.app.PendingIntent.FLAG_CANCEL_CURRENT;
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;
@ -71,21 +70,11 @@ public class UpcomingAlarmReceiver extends BroadcastReceiver {
.setAction(ACTION_DISMISS_NOW) .setAction(ACTION_DISMISS_NOW)
.putExtra(EXTRA_ALARM, alarm); .putExtra(EXTRA_ALARM, alarm);
PendingIntent piDismiss = PendingIntent.getBroadcast(context, (int) id, dismissIntent, FLAG_ONE_SHOT); PendingIntent piDismiss = PendingIntent.getBroadcast(context, (int) id, dismissIntent, FLAG_ONE_SHOT);
Intent contentIntent = new Intent(context, MainActivity.class)
// http://stackoverflow.com/a/3128418/5055032
// "For some unspecified reason, extras will be delivered only if you've set some action"
// This ONLY applies to PendingIntents...
// And for another unspecified reason, this dummy action must NOT be the same value
// as another PendingIntent's dummy action.
.setAction("abc")
.putExtra(MainActivity.EXTRA_SHOW_PAGE, MainActivity.PAGE_ALARMS)
.putExtra(AlarmsFragment.EXTRA_SCROLL_TO_ALARM_ID, id);
PendingIntent piContent = PendingIntent.getActivity(context, (int) id, contentIntent, FLAG_CANCEL_CURRENT);
Notification note = new NotificationCompat.Builder(context) Notification note = new NotificationCompat.Builder(context)
.setSmallIcon(R.drawable.ic_alarm_24dp) .setSmallIcon(R.drawable.ic_alarm_24dp)
.setContentTitle(title) .setContentTitle(title)
.setContentText(text) .setContentText(text)
.setContentIntent(piContent) .setContentIntent(ContentIntentUtils.create(context, MainActivity.PAGE_ALARMS, id))
.addAction(R.drawable.ic_dismiss_alarm_24dp, context.getString(R.string.dismiss_now), piDismiss) .addAction(R.drawable.ic_dismiss_alarm_24dp, context.getString(R.string.dismiss_now), piDismiss)
.build(); .build();
nm.notify(TAG, (int) id, note); nm.notify(TAG, (int) id, note);