diff options
author | Michael W <baddaemon87@gmail.com> | 2022-03-18 20:23:26 +0100 |
---|---|---|
committer | Michael W <baddaemon87@gmail.com> | 2022-04-18 10:03:08 +0200 |
commit | fa6047db25729eebf26826f738d4a4ab2327a512 (patch) | |
tree | e94535bf44d25673adbf26f9262c5a56413f8280 /src/com/android/deskclock/data | |
parent | 23d7064d1abf2feb41d3d1a1812038a26e836181 (diff) |
DeskClock: Remove compatibility to old APIsHEADsugisawa-mr1
* We never build on these, so the code and annotations are useless
Change-Id: I791370b531ecadcbddb63ca04d5c4c51aafe1bc1
Diffstat (limited to 'src/com/android/deskclock/data')
5 files changed, 37 insertions, 109 deletions
diff --git a/src/com/android/deskclock/data/DataModel.java b/src/com/android/deskclock/data/DataModel.java index 3dafe9ddb..e90f7e991 100644 --- a/src/com/android/deskclock/data/DataModel.java +++ b/src/com/android/deskclock/data/DataModel.java @@ -134,18 +134,16 @@ public final class DataModel { @Override public void onClick(View v) { final Context context = v.getContext(); - if (Utils.isLOrLater()) { - try { - // Attempt to open the notification settings for this app. - context.startActivity( - new Intent("android.settings.APP_NOTIFICATION_SETTINGS") - .putExtra("app_package", context.getPackageName()) - .putExtra("app_uid", context.getApplicationInfo().uid) - .addFlags(FLAG_ACTIVITY_NEW_TASK)); - return; - } catch (Exception ignored) { - // best attempt only; recovery code below - } + try { + // Attempt to open the notification settings for this app. + context.startActivity( + new Intent("android.settings.APP_NOTIFICATION_SETTINGS") + .putExtra("app_package", context.getPackageName()) + .putExtra("app_uid", context.getApplicationInfo().uid) + .addFlags(FLAG_ACTIVITY_NEW_TASK)); + return; + } catch (Exception ignored) { + // best attempt only; recovery code below } // Fall back to opening the app settings page. diff --git a/src/com/android/deskclock/data/SilentSettingsModel.java b/src/com/android/deskclock/data/SilentSettingsModel.java index 50054f134..93bd1adaf 100644 --- a/src/com/android/deskclock/data/SilentSettingsModel.java +++ b/src/com/android/deskclock/data/SilentSettingsModel.java @@ -16,7 +16,15 @@ package com.android.deskclock.data; -import android.annotation.TargetApi; +import static android.app.NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED; +import static android.app.NotificationManager.INTERRUPTION_FILTER_NONE; +import static android.content.Context.AUDIO_SERVICE; +import static android.content.Context.NOTIFICATION_SERVICE; +import static android.media.AudioManager.STREAM_ALARM; +import static android.media.RingtoneManager.TYPE_ALARM; +import static android.provider.Settings.System.CONTENT_URI; +import static android.provider.Settings.System.DEFAULT_ALARM_ALERT_URI; + import android.app.NotificationManager; import android.content.BroadcastReceiver; import android.content.ContentResolver; @@ -31,6 +39,7 @@ import android.os.AsyncTask; import android.os.Build; import android.os.Handler; import android.os.Looper; + import androidx.core.app.NotificationManagerCompat; import com.android.deskclock.Utils; @@ -39,15 +48,6 @@ import com.android.deskclock.data.DataModel.SilentSetting; import java.util.ArrayList; import java.util.List; -import static android.app.NotificationManager.ACTION_INTERRUPTION_FILTER_CHANGED; -import static android.app.NotificationManager.INTERRUPTION_FILTER_NONE; -import static android.content.Context.AUDIO_SERVICE; -import static android.content.Context.NOTIFICATION_SERVICE; -import static android.media.AudioManager.STREAM_ALARM; -import static android.media.RingtoneManager.TYPE_ALARM; -import static android.provider.Settings.System.CONTENT_URI; -import static android.provider.Settings.System.DEFAULT_ALARM_ALERT_URI; - /** * This model fetches and stores reasons that alarms may be suppressed or silenced by system * settings on the device. This information is displayed passively to notify the user of this @@ -93,10 +93,9 @@ final class SilentSettingsModel { final ContentObserver contentChangeWatcher = new ContentChangeWatcher(); cr.registerContentObserver(VOLUME_URI, false, contentChangeWatcher); cr.registerContentObserver(DEFAULT_ALARM_ALERT_URI, false, contentChangeWatcher); - if (Utils.isMOrLater()) { - final IntentFilter filter = new IntentFilter(ACTION_INTERRUPTION_FILTER_CHANGED); - context.registerReceiver(new DoNotDisturbChangeReceiver(), filter); - } + + final IntentFilter filter = new IntentFilter(ACTION_INTERRUPTION_FILTER_CHANGED); + context.registerReceiver(new DoNotDisturbChangeReceiver(), filter); } void addSilentSettingsListener(OnSilentSettingsListener listener) { @@ -178,12 +177,7 @@ final class SilentSettingsModel { } } - @TargetApi(Build.VERSION_CODES.M) private boolean isDoNotDisturbBlockingAlarms() { - if (!Utils.isMOrLater()) { - return false; - } - try { final int interruptionFilter = mNotificationManager.getCurrentInterruptionFilter(); return interruptionFilter == INTERRUPTION_FILTER_NONE; diff --git a/src/com/android/deskclock/data/StopwatchNotificationBuilder.java b/src/com/android/deskclock/data/StopwatchNotificationBuilder.java index d426b5c0b..799902645 100644 --- a/src/com/android/deskclock/data/StopwatchNotificationBuilder.java +++ b/src/com/android/deskclock/data/StopwatchNotificationBuilder.java @@ -137,11 +137,8 @@ class StopwatchNotificationBuilder { .setPriority(Notification.PRIORITY_LOW) .setSmallIcon(R.drawable.stat_notify_stopwatch) .setStyle(new NotificationCompat.DecoratedCustomViewStyle()) - .setColor(ContextCompat.getColor(context, R.color.default_background)); - - if (Utils.isNOrLater()) { - notification.setGroup(nm.getStopwatchNotificationGroupKey()); - } + .setColor(ContextCompat.getColor(context, R.color.default_background)) + .setGroup(nm.getStopwatchNotificationGroupKey()); for (Action action : actions) { notification.addAction(action); diff --git a/src/com/android/deskclock/data/TimerModel.java b/src/com/android/deskclock/data/TimerModel.java index 5eb5d43e5..2ea31d6bd 100644 --- a/src/com/android/deskclock/data/TimerModel.java +++ b/src/com/android/deskclock/data/TimerModel.java @@ -838,11 +838,7 @@ final class TimerModel { } static void schedulePendingIntent(AlarmManager am, long triggerTime, PendingIntent pi) { - if (Utils.isMOrLater()) { - // Ensure the timer fires even if the device is dozing. - am.setExactAndAllowWhileIdle(ELAPSED_REALTIME_WAKEUP, triggerTime, pi); - } else { - am.setExact(ELAPSED_REALTIME_WAKEUP, triggerTime, pi); - } + // Ensure the timer fires even if the device is dozing. + am.setExactAndAllowWhileIdle(ELAPSED_REALTIME_WAKEUP, triggerTime, pi); } } 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); |