diff options
Diffstat (limited to 'src/com/android/deskclock/data/TimerNotificationBuilder.java')
-rw-r--r-- | src/com/android/deskclock/data/TimerNotificationBuilder.java | 77 |
1 files changed, 10 insertions, 67 deletions
diff --git a/src/com/android/deskclock/data/TimerNotificationBuilder.java b/src/com/android/deskclock/data/TimerNotificationBuilder.java index 6bc9c12fa..e3aa3017a 100644 --- a/src/com/android/deskclock/data/TimerNotificationBuilder.java +++ b/src/com/android/deskclock/data/TimerNotificationBuilder.java @@ -24,7 +24,6 @@ import static android.text.format.DateUtils.SECOND_IN_MILLIS; import static com.android.deskclock.NotificationUtils.FIRING_NOTIFICATION_CHANNEL_ID; import static com.android.deskclock.NotificationUtils.TIMER_MODEL_NOTIFICATION_CHANNEL_ID; -import android.annotation.TargetApi; import android.app.AlarmManager; import android.app.Notification; import android.app.PendingIntent; @@ -36,7 +35,9 @@ import android.os.SystemClock; import android.text.TextUtils; import android.widget.RemoteViews; +import androidx.annotation.DrawableRes; import androidx.core.app.NotificationCompat; +import androidx.core.app.NotificationManagerCompat; import androidx.core.content.ContextCompat; import com.android.deskclock.AlarmUtils; @@ -161,55 +162,14 @@ class TimerNotificationBuilder { .setSortKey(nm.getTimerNotificationSortKey()) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) .setStyle(new NotificationCompat.DecoratedCustomViewStyle()) - .setColor(ContextCompat.getColor(context, R.color.default_background)); + .setColor(ContextCompat.getColor(context, R.color.default_background)) + .setCustomContentView(buildChronometer(pname, base, running, stateText)) + .setGroup(nm.getTimerNotificationGroupKey()); for (Action action : actions) { notification.addAction(action); } - if (Utils.isNOrLater()) { - notification.setCustomContentView(buildChronometer(pname, base, running, stateText)) - .setGroup(nm.getTimerNotificationGroupKey()); - } else { - final CharSequence contentTextPreN; - if (count == 1) { - contentTextPreN = TimerStringFormatter.formatTimeRemaining(context, - timer.getRemainingTime(), false); - } else if (running) { - final String timeRemaining = TimerStringFormatter.formatTimeRemaining(context, - timer.getRemainingTime(), false); - contentTextPreN = context.getString(R.string.next_timer_notif, timeRemaining); - } else { - contentTextPreN = context.getString(R.string.all_timers_stopped_notif); - } - - notification.setContentTitle(stateText).setContentText(contentTextPreN); - - final AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); - final Intent updateNotification = TimerService.createUpdateNotificationIntent(context); - final long remainingTime = timer.getRemainingTime(); - if (timer.isRunning() && remainingTime > MINUTE_IN_MILLIS) { - // Schedule a callback to update the time-sensitive information of the running timer - final PendingIntent pi = - PendingIntent.getService(context, REQUEST_CODE_UPCOMING, updateNotification, - PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_UPDATE_CURRENT | - PendingIntent.FLAG_IMMUTABLE); - - final long nextMinuteChange = remainingTime % MINUTE_IN_MILLIS; - final long triggerTime = SystemClock.elapsedRealtime() + nextMinuteChange; - TimerModel.schedulePendingIntent(am, triggerTime, pi); - } else { - // Cancel the update notification callback. - final PendingIntent pi = PendingIntent.getService(context, 0, updateNotification, - PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_NO_CREATE | - PendingIntent.FLAG_IMMUTABLE); - if (pi != null) { - am.cancel(pi); - pi.cancel(); - } - } - } - NotificationUtils.createChannel(context, TIMER_MODEL_NOTIFICATION_CHANNEL_ID); return notification.build(); } @@ -275,22 +235,13 @@ class TimerNotificationBuilder { .setSmallIcon(R.drawable.stat_notify_timer) .setFullScreenIntent(pendingFullScreen, true) .setStyle(new NotificationCompat.DecoratedCustomViewStyle()) - .setColor(ContextCompat.getColor(context, R.color.default_background)); + .setColor(ContextCompat.getColor(context, R.color.default_background)) + .setCustomContentView(buildChronometer(pname, base, true, stateText)); for (Action action : actions) { notification.addAction(action); } - if (Utils.isNOrLater()) { - notification.setCustomContentView(buildChronometer(pname, base, true, stateText)); - } else { - final CharSequence contentTextPreN = count == 1 - ? context.getString(R.string.timer_times_up) - : context.getString(R.string.timer_multi_times_up, count); - - notification.setContentTitle(stateText).setContentText(contentTextPreN); - } - NotificationUtils.createChannel(context, FIRING_NOTIFICATION_CHANNEL_ID); return notification.build(); } @@ -360,16 +311,9 @@ class TimerNotificationBuilder { .setSortKey(nm.getTimerNotificationMissedSortKey()) .setStyle(new NotificationCompat.DecoratedCustomViewStyle()) .addAction(action) - .setColor(ContextCompat.getColor(context, R.color.default_background)); - - if (Utils.isNOrLater()) { - notification.setCustomContentView(buildChronometer(pname, base, true, stateText)) - .setGroup(nm.getTimerNotificationGroupKey()); - } else { - final CharSequence contentText = AlarmUtils.getFormattedTime(context, - timer.getWallClockExpirationTime()); - notification.setContentText(contentText).setContentTitle(stateText); - } + .setColor(ContextCompat.getColor(context, R.color.default_background)) + .setCustomContentView(buildChronometer(pname, base, true, stateText)) + .setGroup(nm.getTimerNotificationGroupKey()); NotificationUtils.createChannel(context, TIMER_MODEL_NOTIFICATION_CHANNEL_ID); return notification.build(); @@ -389,7 +333,6 @@ class TimerNotificationBuilder { return SystemClock.elapsedRealtime() + adjustedRemaining; } - @TargetApi(Build.VERSION_CODES.N) private RemoteViews buildChronometer(String pname, long base, boolean running, CharSequence stateText) { final RemoteViews content = new RemoteViews(pname, R.layout.chronometer_notif_content); |