Add next alarm back to AoD
Test: Add alarm, look at AoD. Test: Change alarm, look at AoD. Test: Remove all alarms, look at AoD. Bug: 64155983 Change-Id: I7de982a988a98eec26b034ca23414d60db79f348
This commit is contained in:
@@ -229,17 +229,6 @@ public class KeyguardStatusView extends GridLayout {
|
||||
return mClockView.getTextSize();
|
||||
}
|
||||
|
||||
public static String formatNextAlarm(Context context, AlarmManager.AlarmClockInfo info) {
|
||||
if (info == null) {
|
||||
return "";
|
||||
}
|
||||
String skeleton = DateFormat.is24HourFormat(context, ActivityManager.getCurrentUser())
|
||||
? "EHm"
|
||||
: "Ehma";
|
||||
String pattern = DateFormat.getBestDateTimePattern(Locale.getDefault(), skeleton);
|
||||
return DateFormat.format(pattern, info.getTriggerTime()).toString();
|
||||
}
|
||||
|
||||
private void updateOwnerInfo() {
|
||||
if (mOwnerInfo == null) return;
|
||||
String ownerInfo = getOwnerInfo();
|
||||
|
||||
@@ -16,17 +16,23 @@
|
||||
|
||||
package com.android.systemui.keyguard;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.app.AlarmManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.graphics.drawable.Icon;
|
||||
import android.icu.text.DateFormat;
|
||||
import android.icu.text.DisplayContext;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.statusbar.policy.NextAlarmController;
|
||||
import com.android.systemui.statusbar.policy.NextAlarmControllerImpl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Locale;
|
||||
@@ -39,20 +45,26 @@ import androidx.app.slice.builders.ListBuilder.RowBuilder;
|
||||
/**
|
||||
* Simple Slice provider that shows the current date.
|
||||
*/
|
||||
public class KeyguardSliceProvider extends SliceProvider {
|
||||
public class KeyguardSliceProvider extends SliceProvider implements
|
||||
NextAlarmController.NextAlarmChangeCallback {
|
||||
|
||||
public static final String KEYGUARD_SLICE_URI = "content://com.android.systemui.keyguard/main";
|
||||
public static final String KEYGUARD_DATE_URI = "content://com.android.systemui.keyguard/date";
|
||||
public static final String KEYGUARD_NEXT_ALARM_URI =
|
||||
"content://com.android.systemui.keyguard/alarm";
|
||||
|
||||
private final Date mCurrentTime = new Date();
|
||||
protected final Uri mSliceUri;
|
||||
protected final Uri mDateUri;
|
||||
protected final Uri mAlarmUri;
|
||||
private final Handler mHandler;
|
||||
private String mDatePattern;
|
||||
private DateFormat mDateFormat;
|
||||
private String mLastText;
|
||||
private boolean mRegistered;
|
||||
private boolean mRegisteredEveryMinute;
|
||||
private String mNextAlarm;
|
||||
private NextAlarmController mNextAlarmController;
|
||||
|
||||
/**
|
||||
* Receiver responsible for time ticking and updating the date format.
|
||||
@@ -86,24 +98,42 @@ public class KeyguardSliceProvider extends SliceProvider {
|
||||
mHandler = handler;
|
||||
mSliceUri = Uri.parse(KEYGUARD_SLICE_URI);
|
||||
mDateUri = Uri.parse(KEYGUARD_DATE_URI);
|
||||
mAlarmUri = Uri.parse(KEYGUARD_NEXT_ALARM_URI);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public Slice onBindSlice(Uri sliceUri) {
|
||||
return new ListBuilder(mSliceUri)
|
||||
.addRow(new RowBuilder(mDateUri).setTitle(mLastText)).build();
|
||||
ListBuilder builder = new ListBuilder(mSliceUri)
|
||||
.addRow(new RowBuilder(mDateUri).setTitle(mLastText));
|
||||
if (!TextUtils.isEmpty(mNextAlarm)) {
|
||||
Icon icon = Icon.createWithResource(getContext(), R.drawable.ic_access_alarms_big);
|
||||
builder.addRow(new RowBuilder(mAlarmUri).setTitle(mNextAlarm).addEndItem(icon));
|
||||
}
|
||||
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateSliceProvider() {
|
||||
mNextAlarmController = new NextAlarmControllerImpl(getContext());
|
||||
mNextAlarmController.addCallback(this);
|
||||
mDatePattern = getContext().getString(R.string.system_ui_date_pattern);
|
||||
registerClockUpdate(false /* everyMinute */);
|
||||
updateClock();
|
||||
return true;
|
||||
}
|
||||
|
||||
public static String formatNextAlarm(Context context, AlarmManager.AlarmClockInfo info) {
|
||||
if (info == null) {
|
||||
return "";
|
||||
}
|
||||
String skeleton = android.text.format.DateFormat
|
||||
.is24HourFormat(context, ActivityManager.getCurrentUser()) ? "EHm" : "Ehma";
|
||||
String pattern = android.text.format.DateFormat
|
||||
.getBestDateTimePattern(Locale.getDefault(), skeleton);
|
||||
return android.text.format.DateFormat.format(pattern, info.getTriggerTime()).toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a broadcast receiver for clock updates, include date, time zone and manually
|
||||
* changing the date/time via the settings app.
|
||||
@@ -169,4 +199,10 @@ public class KeyguardSliceProvider extends SliceProvider {
|
||||
void cleanDateFormat() {
|
||||
mDateFormat = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNextAlarmChanged(AlarmManager.AlarmClockInfo nextAlarm) {
|
||||
mNextAlarm = formatNextAlarm(getContext(), nextAlarm);
|
||||
getContext().getContentResolver().notifyChange(mSliceUri, null /* observer */);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,11 +18,6 @@ package com.android.systemui.qs;
|
||||
|
||||
import static android.app.StatusBarManager.DISABLE2_QUICK_SETTINGS;
|
||||
|
||||
import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_QS_DATE;
|
||||
|
||||
import android.app.ActivityManager;
|
||||
import android.app.AlarmManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.res.Configuration;
|
||||
@@ -31,7 +26,6 @@ import android.graphics.PorterDuff.Mode;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.RippleDrawable;
|
||||
import android.os.UserManager;
|
||||
import android.provider.AlarmClock;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.util.AttributeSet;
|
||||
@@ -39,24 +33,19 @@ import android.view.View;
|
||||
import android.view.View.OnClickListener;
|
||||
import android.widget.FrameLayout;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.android.internal.logging.MetricsLogger;
|
||||
import com.android.internal.logging.nano.MetricsProto;
|
||||
import com.android.keyguard.KeyguardStatusView;
|
||||
import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.settingslib.Utils;
|
||||
import com.android.settingslib.drawable.UserIconDrawable;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.FontSizeUtils;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.R.dimen;
|
||||
import com.android.systemui.R.id;
|
||||
import com.android.systemui.SysUiServiceProvider;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
import com.android.systemui.qs.TouchAnimator.Builder;
|
||||
import com.android.systemui.qs.TouchAnimator.ListenerAdapter;
|
||||
import com.android.systemui.statusbar.CommandQueue;
|
||||
import com.android.systemui.statusbar.phone.ExpandableIndicator;
|
||||
import com.android.systemui.statusbar.phone.MultiUserSwitch;
|
||||
@@ -65,8 +54,6 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedController;
|
||||
import com.android.systemui.statusbar.policy.NetworkController;
|
||||
import com.android.systemui.statusbar.policy.NetworkController.EmergencyListener;
|
||||
import com.android.systemui.statusbar.policy.NetworkController.SignalCallback;
|
||||
import com.android.systemui.statusbar.policy.NextAlarmController;
|
||||
import com.android.systemui.statusbar.policy.NextAlarmController.NextAlarmChangeCallback;
|
||||
import com.android.systemui.statusbar.policy.UserInfoController;
|
||||
import com.android.systemui.statusbar.policy.UserInfoController.OnUserInfoChangedListener;
|
||||
import com.android.systemui.tuner.TunerService;
|
||||
|
||||
Reference in New Issue
Block a user