diff options
Diffstat (limited to 'src/com/android/deskclock/alarms')
5 files changed, 34 insertions, 126 deletions
diff --git a/src/com/android/deskclock/alarms/AlarmActivity.java b/src/com/android/deskclock/alarms/AlarmActivity.java index 7b88e6766..28be63422 100644 --- a/src/com/android/deskclock/alarms/AlarmActivity.java +++ b/src/com/android/deskclock/alarms/AlarmActivity.java @@ -176,18 +176,10 @@ public class AlarmActivity extends BaseActivity // Get the volume/camera button behavior setting mVolumeBehavior = DataModel.getDataModel().getAlarmVolumeButtonBehavior(); - if (Utils.isOOrLater()) { - setShowWhenLocked(true); - setTurnScreenOn(true); - getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON - | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON); - } else { - getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED - | WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD - | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON - | WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON - | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON); - } + setShowWhenLocked(true); + setTurnScreenOn(true); + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON + | WindowManager.LayoutParams.FLAG_ALLOW_LOCK_WHILE_SCREEN_ON); // Hide navigation bar to minimize accidental tap on Home key hideNavigationBar(); @@ -558,9 +550,9 @@ public class AlarmActivity extends BaseActivity private void setAnimatedFractions(float snoozeFraction, float dismissFraction) { final float alarmFraction = Math.max(snoozeFraction, dismissFraction); - AnimatorUtils.setAnimatedFraction(mAlarmAnimator, alarmFraction); - AnimatorUtils.setAnimatedFraction(mSnoozeAnimator, snoozeFraction); - AnimatorUtils.setAnimatedFraction(mDismissAnimator, dismissFraction); + mAlarmAnimator.setCurrentFraction(alarmFraction); + mSnoozeAnimator.setCurrentFraction(snoozeFraction); + mDismissAnimator.setCurrentFraction(dismissFraction); } private float getFraction(float x0, float x1, float x) { diff --git a/src/com/android/deskclock/alarms/AlarmKlaxon.java b/src/com/android/deskclock/alarms/AlarmKlaxon.java index a1624239f..c79df9d2b 100644 --- a/src/com/android/deskclock/alarms/AlarmKlaxon.java +++ b/src/com/android/deskclock/alarms/AlarmKlaxon.java @@ -16,7 +16,6 @@ package com.android.deskclock.alarms; -import android.annotation.TargetApi; import android.content.Context; import android.media.AudioAttributes; import android.os.Build; @@ -61,24 +60,15 @@ final class AlarmKlaxon { if (instance.mVibrate) { final Vibrator vibrator = getVibrator(context); - if (Utils.isLOrLater()) { - vibrateLOrLater(vibrator); - } else { - vibrator.vibrate(VIBRATE_PATTERN, 0); - } + vibrator.vibrate(VIBRATE_PATTERN, 0, new AudioAttributes.Builder() + .setUsage(AudioAttributes.USAGE_ALARM) + .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) + .build()); } sStarted = true; } - @TargetApi(Build.VERSION_CODES.LOLLIPOP) - private static void vibrateLOrLater(Vibrator vibrator) { - vibrator.vibrate(VIBRATE_PATTERN, 0, new AudioAttributes.Builder() - .setUsage(AudioAttributes.USAGE_ALARM) - .setContentType(AudioAttributes.CONTENT_TYPE_SONIFICATION) - .build()); - } - private static Vibrator getVibrator(Context context) { return ((Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE)); } diff --git a/src/com/android/deskclock/alarms/AlarmNotifications.java b/src/com/android/deskclock/alarms/AlarmNotifications.java index 2920485a5..6fb7f3bc0 100644 --- a/src/com/android/deskclock/alarms/AlarmNotifications.java +++ b/src/com/android/deskclock/alarms/AlarmNotifications.java @@ -20,7 +20,6 @@ import static com.android.deskclock.NotificationUtils.ALARM_SNOOZE_NOTIFICATION_ import static com.android.deskclock.NotificationUtils.ALARM_UPCOMING_NOTIFICATION_CHANNEL_ID; import static com.android.deskclock.NotificationUtils.FIRING_NOTIFICATION_CHANNEL_ID; -import android.annotation.TargetApi; import android.app.Notification; import android.app.NotificationChannel; import android.app.NotificationManager; @@ -31,6 +30,7 @@ import android.content.Intent; import android.content.res.Resources; import android.os.Build; import android.service.notification.StatusBarNotification; + import androidx.core.app.NotificationCompat; import androidx.core.app.NotificationManagerCompat; import androidx.core.content.ContextCompat; @@ -108,11 +108,8 @@ public final class AlarmNotifications { .setPriority(NotificationCompat.PRIORITY_LOW) .setCategory(NotificationCompat.CATEGORY_EVENT) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) - .setLocalOnly(true); - - if (Utils.isNOrLater()) { - builder.setGroup(UPCOMING_GROUP_KEY); - } + .setLocalOnly(true) + .setGroup(UPCOMING_GROUP_KEY); final int id = instance.hashCode(); if (lowPriority) { @@ -145,7 +142,6 @@ public final class AlarmNotifications { updateUpcomingAlarmGroupNotification(context, -1, notification); } - @TargetApi(Build.VERSION_CODES.N) private static boolean isGroupSummary(Notification n) { return (n.flags & Notification.FLAG_GROUP_SUMMARY) == Notification.FLAG_GROUP_SUMMARY; } @@ -163,7 +159,6 @@ public final class AlarmNotifications { * @param postedNotification The notification that was just posted * @return The first active notification for the group */ - @TargetApi(Build.VERSION_CODES.N) private static Notification getFirstActiveNotification(Context context, String group, int canceledNotificationId, Notification postedNotification) { final NotificationManager nm = @@ -184,7 +179,6 @@ public final class AlarmNotifications { return firstActiveNotification; } - @TargetApi(Build.VERSION_CODES.N) private static Notification getActiveGroupSummaryNotification(Context context, String group) { final NotificationManager nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); @@ -200,10 +194,6 @@ public final class AlarmNotifications { private static void updateUpcomingAlarmGroupNotification(Context context, int canceledNotificationId, Notification postedNotification) { - if (!Utils.isNOrLater()) { - return; - } - final NotificationManagerCompat nm = NotificationManagerCompat.from(context); final Notification firstUpcoming = getFirstActiveNotification(context, UPCOMING_GROUP_KEY, canceledNotificationId, postedNotification); @@ -235,10 +225,6 @@ public final class AlarmNotifications { private static void updateMissedAlarmGroupNotification(Context context, int canceledNotificationId, Notification postedNotification) { - if (!Utils.isNOrLater()) { - return; - } - final NotificationManagerCompat nm = NotificationManagerCompat.from(context); final Notification firstMissed = getFirstActiveNotification(context, MISSED_GROUP_KEY, canceledNotificationId, postedNotification); @@ -284,11 +270,8 @@ public final class AlarmNotifications { .setPriority(NotificationCompat.PRIORITY_LOW) .setCategory(NotificationCompat.CATEGORY_EVENT) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) - .setLocalOnly(true); - - if (Utils.isNOrLater()) { - builder.setGroup(UPCOMING_GROUP_KEY); - } + .setLocalOnly(true) + .setGroup(UPCOMING_GROUP_KEY); // Setup up dismiss action Intent dismissIntent = AlarmStateManager.createStateChangeIntent(context, @@ -329,11 +312,8 @@ public final class AlarmNotifications { .setPriority(NotificationCompat.PRIORITY_HIGH) .setCategory(NotificationCompat.CATEGORY_EVENT) .setVisibility(NotificationCompat.VISIBILITY_PUBLIC) - .setLocalOnly(true); - - if (Utils.isNOrLater()) { - builder.setGroup(MISSED_GROUP_KEY); - } + .setLocalOnly(true) + .setGroup(MISSED_GROUP_KEY); final int id = instance.hashCode(); diff --git a/src/com/android/deskclock/alarms/AlarmStateManager.java b/src/com/android/deskclock/alarms/AlarmStateManager.java index 40a1b5bce..7b0ee8d99 100644 --- a/src/com/android/deskclock/alarms/AlarmStateManager.java +++ b/src/com/android/deskclock/alarms/AlarmStateManager.java @@ -15,7 +15,9 @@ */ package com.android.deskclock.alarms; -import android.annotation.TargetApi; +import static android.content.Context.ALARM_SERVICE; +import static android.provider.Settings.System.NEXT_ALARM_FORMATTED; + import android.app.AlarmManager; import android.app.AlarmManager.AlarmClockInfo; import android.app.PendingIntent; @@ -28,10 +30,11 @@ import android.os.Build; import android.os.Handler; import android.os.PowerManager; import android.provider.Settings; -import androidx.core.app.NotificationManagerCompat; import android.text.format.DateFormat; import android.widget.Toast; +import androidx.core.app.NotificationManagerCompat; + import com.android.deskclock.AlarmAlertWakeLock; import com.android.deskclock.AlarmClockFragment; import com.android.deskclock.AlarmUtils; @@ -50,9 +53,6 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; -import static android.content.Context.ALARM_SERVICE; -import static android.provider.Settings.System.NEXT_ALARM_FORMATTED; - /** * This class handles all the state changes for alarm instances. You need to * register all alarm instances with the state manager if you want them to @@ -182,11 +182,7 @@ public final class AlarmStateManager extends BroadcastReceiver { setPowerOffAlarm(context, nextAlarm); } - if (Utils.isPreL()) { - updateNextAlarmInSystemSettings(context, nextAlarm); - } else { - updateNextAlarmInAlarmManager(context, nextAlarm); - } + updateNextAlarmInAlarmManager(context, nextAlarm); } /** @@ -210,35 +206,8 @@ public final class AlarmStateManager extends BroadcastReceiver { } /** - * Used in pre-L devices, where "next alarm" is stored in system settings. - */ - @SuppressWarnings("deprecation") - @TargetApi(Build.VERSION_CODES.KITKAT) - private static void updateNextAlarmInSystemSettings(Context context, AlarmInstance nextAlarm) { - // Format the next alarm time if an alarm is scheduled. - String time = ""; - if (nextAlarm != null) { - time = AlarmUtils.getFormattedTime(context, nextAlarm.getAlarmTime()); - } - - try { - // Write directly to NEXT_ALARM_FORMATTED in all pre-L versions - Settings.System.putString(context.getContentResolver(), NEXT_ALARM_FORMATTED, time); - - LogUtils.i("Updated next alarm time to: \'" + time + '\''); - - // Send broadcast message so pre-L AppWidgets will recognize an update. - context.sendBroadcast(new Intent(ACTION_ALARM_CHANGED)); - } catch (SecurityException se) { - // The user has most likely revoked WRITE_SETTINGS. - LogUtils.e("Unable to update next alarm to: \'" + time + '\'', se); - } - } - - /** * Used in L and later devices where "next alarm" is stored in the Alarm Manager. */ - @TargetApi(Build.VERSION_CODES.LOLLIPOP) private static void updateNextAlarmInAlarmManager(Context context, AlarmInstance nextAlarm) { // Sets a surrogate alarm with alarm manager that provides the AlarmClockInfo for the // alarm that is going to fire next. The operation is constructed such that it is ignored @@ -1048,12 +1017,9 @@ public final class AlarmStateManager extends BroadcastReceiver { PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE); final AlarmManager am = (AlarmManager) context.getSystemService(ALARM_SERVICE); - if (Utils.isMOrLater()) { - // Ensure the alarm fires even if the device is dozing. - am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, timeInMillis, pendingIntent); - } else { - am.setExact(AlarmManager.RTC_WAKEUP, timeInMillis, pendingIntent); - } + // Ensure the alarm fires even if the device is dozing. + am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, timeInMillis, pendingIntent); + } @Override diff --git a/src/com/android/deskclock/alarms/TimePickerDialogFragment.java b/src/com/android/deskclock/alarms/TimePickerDialogFragment.java index 05d962b06..f82bea96b 100644 --- a/src/com/android/deskclock/alarms/TimePickerDialogFragment.java +++ b/src/com/android/deskclock/alarms/TimePickerDialogFragment.java @@ -55,33 +55,13 @@ public class TimePickerDialogFragment extends DialogFragment { final int hour = args.getInt(ARG_HOUR, now.get(Calendar.HOUR_OF_DAY)); final int minute = args.getInt(ARG_MINUTE, now.get(Calendar.MINUTE)); - if (Utils.isLOrLater()) { - final Context context = getActivity(); - return new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() { - @Override - public void onTimeSet(TimePicker view, int hourOfDay, int minute) { - listener.onTimeSet(TimePickerDialogFragment.this, hourOfDay, minute); - } - }, hour, minute, DateFormat.is24HourFormat(context)); - } else { - final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - final Context context = builder.getContext(); - - final TimePicker timePicker = new TimePicker(context); - timePicker.setCurrentHour(hour); - timePicker.setCurrentMinute(minute); - timePicker.setIs24HourView(DateFormat.is24HourFormat(context)); - - return builder.setView(timePicker) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - @Override - public void onClick(DialogInterface dialog, int which) { - listener.onTimeSet(TimePickerDialogFragment.this, - timePicker.getCurrentHour(), timePicker.getCurrentMinute()); - } - }).setNegativeButton(android.R.string.cancel, null /* listener */) - .create(); - } + final Context context = getActivity(); + return new TimePickerDialog(context, new TimePickerDialog.OnTimeSetListener() { + @Override + public void onTimeSet(TimePicker view, int hourOfDay, int minute) { + listener.onTimeSet(TimePickerDialogFragment.this, hourOfDay, minute); + } + }, hour, minute, DateFormat.is24HourFormat(context)); } public static void show(Fragment fragment) { |