Loading packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml +2 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <TextClock android:id="@+id/date_view" <com.android.systemui.statusbar.policy.DateView android:id="@+id/date_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/clock_white" Loading packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +5 −8 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.widget.TextView; import com.android.internal.util.ArrayUtils; import com.android.internal.widget.LockPatternUtils; import com.android.systemui.ChargingView; import com.android.systemui.statusbar.policy.DateView; import java.util.Locale; Loading @@ -48,7 +49,7 @@ public class KeyguardStatusView extends GridLayout { private final AlarmManager mAlarmManager; private TextView mAlarmStatusView; private TextClock mDateView; private DateView mDateView; private TextClock mClockView; private TextView mOwnerInfo; private ViewGroup mClockContainer; Loading Loading @@ -118,7 +119,6 @@ public class KeyguardStatusView extends GridLayout { mAlarmStatusView = findViewById(R.id.alarm_status); mDateView = findViewById(R.id.date_view); mClockView = findViewById(R.id.clock_view); mDateView.setShowCurrentUserTime(true); mClockView.setShowCurrentUserTime(true); mClockView.setAccessibilityDelegate(new KeyguardClockAccessibilityDelegate(mContext)); mOwnerInfo = findViewById(R.id.owner_info); Loading Loading @@ -154,8 +154,7 @@ public class KeyguardStatusView extends GridLayout { } public void refreshTime() { mDateView.setFormat24Hour(Patterns.dateView); mDateView.setFormat12Hour(Patterns.dateView); mDateView.setDatePattern(Patterns.dateViewSkel); mClockView.setFormat12Hour(Patterns.clockView12); mClockView.setFormat24Hour(Patterns.clockView24); Loading Loading @@ -246,7 +245,7 @@ public class KeyguardStatusView extends GridLayout { // DateFormat.getBestDateTimePattern is extremely expensive, and refresh is called often. // This is an optimization to ensure we only recompute the patterns when the inputs change. private static final class Patterns { static String dateView; static String dateViewSkel; static String clockView12; static String clockView24; static String cacheKey; Loading @@ -254,7 +253,7 @@ public class KeyguardStatusView extends GridLayout { static void update(Context context, boolean hasAlarm) { final Locale locale = Locale.getDefault(); final Resources res = context.getResources(); final String dateViewSkel = res.getString(hasAlarm dateViewSkel = res.getString(hasAlarm ? R.string.abbrev_wday_month_day_no_year_alarm : R.string.abbrev_wday_month_day_no_year); final String clockView12Skel = res.getString(R.string.clock_12hr_format); Loading @@ -262,8 +261,6 @@ public class KeyguardStatusView extends GridLayout { final String key = locale.toString() + dateViewSkel + clockView12Skel + clockView24Skel; if (key.equals(cacheKey)) return; dateView = DateFormat.getBestDateTimePattern(locale, dateViewSkel); clockView12 = DateFormat.getBestDateTimePattern(locale, clockView12Skel); // CLDR insists on adding an AM/PM indicator even though it wasn't in the skeleton // format. The following code removes the AM/PM indicator if we didn't want it. Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java +12 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.IntentFilter; import android.content.res.TypedArray; import android.icu.text.DateFormat; import android.icu.text.DisplayContext; import android.text.TextUtils; import android.util.AttributeSet; import android.widget.TextView; Loading Loading @@ -115,4 +116,15 @@ public class DateView extends TextView { mLastText = text; } } public void setDatePattern(String pattern) { if (TextUtils.equals(pattern, mDatePattern)) { return; } mDatePattern = pattern; mDateFormat = null; if (isAttachedToWindow()) { updateClock(); } } } Loading
packages/SystemUI/res-keyguard/layout/keyguard_status_area.xml +2 −1 Original line number Diff line number Diff line Loading @@ -25,7 +25,8 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center"> <TextClock android:id="@+id/date_view" <com.android.systemui.statusbar.policy.DateView android:id="@+id/date_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/clock_white" Loading
packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java +5 −8 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import android.widget.TextView; import com.android.internal.util.ArrayUtils; import com.android.internal.widget.LockPatternUtils; import com.android.systemui.ChargingView; import com.android.systemui.statusbar.policy.DateView; import java.util.Locale; Loading @@ -48,7 +49,7 @@ public class KeyguardStatusView extends GridLayout { private final AlarmManager mAlarmManager; private TextView mAlarmStatusView; private TextClock mDateView; private DateView mDateView; private TextClock mClockView; private TextView mOwnerInfo; private ViewGroup mClockContainer; Loading Loading @@ -118,7 +119,6 @@ public class KeyguardStatusView extends GridLayout { mAlarmStatusView = findViewById(R.id.alarm_status); mDateView = findViewById(R.id.date_view); mClockView = findViewById(R.id.clock_view); mDateView.setShowCurrentUserTime(true); mClockView.setShowCurrentUserTime(true); mClockView.setAccessibilityDelegate(new KeyguardClockAccessibilityDelegate(mContext)); mOwnerInfo = findViewById(R.id.owner_info); Loading Loading @@ -154,8 +154,7 @@ public class KeyguardStatusView extends GridLayout { } public void refreshTime() { mDateView.setFormat24Hour(Patterns.dateView); mDateView.setFormat12Hour(Patterns.dateView); mDateView.setDatePattern(Patterns.dateViewSkel); mClockView.setFormat12Hour(Patterns.clockView12); mClockView.setFormat24Hour(Patterns.clockView24); Loading Loading @@ -246,7 +245,7 @@ public class KeyguardStatusView extends GridLayout { // DateFormat.getBestDateTimePattern is extremely expensive, and refresh is called often. // This is an optimization to ensure we only recompute the patterns when the inputs change. private static final class Patterns { static String dateView; static String dateViewSkel; static String clockView12; static String clockView24; static String cacheKey; Loading @@ -254,7 +253,7 @@ public class KeyguardStatusView extends GridLayout { static void update(Context context, boolean hasAlarm) { final Locale locale = Locale.getDefault(); final Resources res = context.getResources(); final String dateViewSkel = res.getString(hasAlarm dateViewSkel = res.getString(hasAlarm ? R.string.abbrev_wday_month_day_no_year_alarm : R.string.abbrev_wday_month_day_no_year); final String clockView12Skel = res.getString(R.string.clock_12hr_format); Loading @@ -262,8 +261,6 @@ public class KeyguardStatusView extends GridLayout { final String key = locale.toString() + dateViewSkel + clockView12Skel + clockView24Skel; if (key.equals(cacheKey)) return; dateView = DateFormat.getBestDateTimePattern(locale, dateViewSkel); clockView12 = DateFormat.getBestDateTimePattern(locale, clockView12Skel); // CLDR insists on adding an AM/PM indicator even though it wasn't in the skeleton // format. The following code removes the AM/PM indicator if we didn't want it. Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/DateView.java +12 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import android.content.IntentFilter; import android.content.res.TypedArray; import android.icu.text.DateFormat; import android.icu.text.DisplayContext; import android.text.TextUtils; import android.util.AttributeSet; import android.widget.TextView; Loading Loading @@ -115,4 +116,15 @@ public class DateView extends TextView { mLastText = text; } } public void setDatePattern(String pattern) { if (TextUtils.equals(pattern, mDatePattern)) { return; } mDatePattern = pattern; mDateFormat = null; if (isAttachedToWindow()) { updateClock(); } } }