summaryrefslogtreecommitdiff
path: root/src/com/android/deskclock/alarms
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/deskclock/alarms')
-rw-r--r--src/com/android/deskclock/alarms/AlarmActivity.java22
-rw-r--r--src/com/android/deskclock/alarms/AlarmKlaxon.java18
-rw-r--r--src/com/android/deskclock/alarms/AlarmNotifications.java34
-rw-r--r--src/com/android/deskclock/alarms/AlarmStateManager.java52
-rw-r--r--src/com/android/deskclock/alarms/TimePickerDialogFragment.java34
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) {