Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 81179145 authored by Pawit Pornkitprasan's avatar Pawit Pornkitprasan Committed by Ricardo Cerqueira
Browse files

SystemUI: fix delay in applying am/pm setting for notification clock

When changing AM/PM display setting for status bar clock, the
clock in the notification dropdown will not apply that setting
until a reboot.

Change-Id: I1bceb411ba51e17a9c4890c6f24d6adb08a8788d
parent 12e0a09a
Loading
Loading
Loading
Loading
+8 −10
Original line number Original line Diff line number Diff line
@@ -64,9 +64,7 @@ public class Clock extends TextView implements DemoMode, OnClickListener, OnLong
    private static final int AM_PM_STYLE_SMALL   = 1;
    private static final int AM_PM_STYLE_SMALL   = 1;
    private static final int AM_PM_STYLE_GONE    = 2;
    private static final int AM_PM_STYLE_GONE    = 2;


    private static int AM_PM_STYLE = AM_PM_STYLE_GONE;
    private int mAmPmStyle = AM_PM_STYLE_GONE;

    private int mAmPmStyle;
    private boolean mShowClock;
    private boolean mShowClock;


    Handler mHandler;
    Handler mHandler;
@@ -189,7 +187,7 @@ public class Clock extends TextView implements DemoMode, OnClickListener, OnLong
             * add dummy characters around it to let us find it again after
             * add dummy characters around it to let us find it again after
             * formatting and change its size.
             * formatting and change its size.
             */
             */
            if (AM_PM_STYLE != AM_PM_STYLE_NORMAL) {
            if (mAmPmStyle != AM_PM_STYLE_NORMAL) {
                int a = -1;
                int a = -1;
                boolean quoted = false;
                boolean quoted = false;
                for (int i = 0; i < format.length(); i++) {
                for (int i = 0; i < format.length(); i++) {
@@ -221,15 +219,15 @@ public class Clock extends TextView implements DemoMode, OnClickListener, OnLong
        }
        }
        String result = sdf.format(mCalendar.getTime());
        String result = sdf.format(mCalendar.getTime());


        if (AM_PM_STYLE != AM_PM_STYLE_NORMAL) {
        if (mAmPmStyle != AM_PM_STYLE_NORMAL) {
            int magic1 = result.indexOf(MAGIC1);
            int magic1 = result.indexOf(MAGIC1);
            int magic2 = result.indexOf(MAGIC2);
            int magic2 = result.indexOf(MAGIC2);
            if (magic1 >= 0 && magic2 > magic1) {
            if (magic1 >= 0 && magic2 > magic1) {
                SpannableStringBuilder formatted = new SpannableStringBuilder(result);
                SpannableStringBuilder formatted = new SpannableStringBuilder(result);
                if (AM_PM_STYLE == AM_PM_STYLE_GONE) {
                if (mAmPmStyle == AM_PM_STYLE_GONE) {
                    formatted.delete(magic1, magic2+1);
                    formatted.delete(magic1, magic2+1);
                } else {
                } else {
                    if (AM_PM_STYLE == AM_PM_STYLE_SMALL) {
                    if (mAmPmStyle == AM_PM_STYLE_SMALL) {
                        CharacterStyle style = new RelativeSizeSpan(0.7f);
                        CharacterStyle style = new RelativeSizeSpan(0.7f);
                        formatted.setSpan(style, magic1, magic2,
                        formatted.setSpan(style, magic1, magic2,
                                          Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
                                          Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
@@ -272,11 +270,11 @@ public class Clock extends TextView implements DemoMode, OnClickListener, OnLong
    private void updateSettings(){
    private void updateSettings(){
        ContentResolver resolver = mContext.getContentResolver();
        ContentResolver resolver = mContext.getContentResolver();


        mAmPmStyle = (Settings.System.getInt(resolver,
        int amPmStyle = (Settings.System.getInt(resolver,
                Settings.System.STATUS_BAR_AM_PM, 2));
                Settings.System.STATUS_BAR_AM_PM, 2));


        if (mAmPmStyle != AM_PM_STYLE) {
        if (mAmPmStyle != amPmStyle) {
            AM_PM_STYLE = mAmPmStyle;
            mAmPmStyle = amPmStyle;
            mClockFormatString = "";
            mClockFormatString = "";


            if (mAttached) {
            if (mAttached) {