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

Commit d09def75 authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Fix outdated time when turning on screen

Force a synchronous update of the clock view when turning on the
screen. Also wait for the Keyguard window to be drawn when turning
on the screen.

Bug: 16904617
Change-Id: I38f78a38cfe35ccd067cd420d2bad626bd955ad6
parent 1611c21d
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -128,16 +128,19 @@ public class KeyguardStatusView extends GridLayout {
                getResources().getDimensionPixelSize(R.dimen.widget_label_font_size));
    }

    protected void refresh() {
        AlarmManager.AlarmClockInfo nextAlarm = mLockPatternUtils.getNextAlarm();
        Patterns.update(mContext, nextAlarm != null);

    public void refreshTime() {
        mDateView.setFormat24Hour(Patterns.dateView);
        mDateView.setFormat12Hour(Patterns.dateView);

        mClockView.setFormat12Hour(Patterns.clockView12);
        mClockView.setFormat24Hour(Patterns.clockView24);
    }

    private void refresh() {
        AlarmManager.AlarmClockInfo nextAlarm = mLockPatternUtils.getNextAlarm();
        Patterns.update(mContext, nextAlarm != null);

        refreshTime();
        refreshAlarmStatus(nextAlarm);
    }

+7 −2
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import android.view.animation.Interpolator;
import android.widget.FrameLayout;
import android.widget.TextView;

import com.android.keyguard.KeyguardStatusView;
import com.android.systemui.R;
import com.android.systemui.qs.QSPanel;
import com.android.systemui.statusbar.ExpandableView;
@@ -65,7 +66,7 @@ public class NotificationPanelView extends PanelView implements
    private KeyguardStatusBarView mKeyguardStatusBar;
    private View mQsContainer;
    private QSPanel mQsPanel;
    private View mKeyguardStatusView;
    private KeyguardStatusView mKeyguardStatusView;
    private ObservableScrollView mScrollView;
    private TextView mClockView;
    private View mReserveNotificationSpace;
@@ -174,7 +175,7 @@ public class NotificationPanelView extends PanelView implements
        mHeader = (StatusBarHeaderView) findViewById(R.id.header);
        mHeader.setOnClickListener(this);
        mKeyguardStatusBar = (KeyguardStatusBarView) findViewById(R.id.keyguard_header);
        mKeyguardStatusView = findViewById(R.id.keyguard_status_view);
        mKeyguardStatusView = (KeyguardStatusView) findViewById(R.id.keyguard_status_view);
        mQsContainer = findViewById(R.id.quick_settings_container);
        mQsPanel = (QSPanel) findViewById(R.id.quick_settings_panel);
        mClockView = (TextView) findViewById(R.id.clock_view);
@@ -1749,4 +1750,8 @@ public class NotificationPanelView extends PanelView implements
            mHeader.updateEverything();
        }
    };

    public void onScreenTurnedOn() {
        mKeyguardStatusView.refreshTime();
    }
}
+1 −0
Original line number Diff line number Diff line
@@ -3817,6 +3817,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,

    public void onScreenTurnedOn() {
        mStackScroller.setAnimationsEnabled(true);
        mNotificationPanel.onScreenTurnedOn();
    }

    /**
+2 −1
Original line number Diff line number Diff line
@@ -11398,7 +11398,8 @@ public class WindowManagerService extends IWindowManager.Stub
                final WindowList windows = getDefaultWindowListLocked();
                for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
                    final WindowState win = windows.get(winNdx);
                    if (win.mHasSurface && win.mAppToken != null) {
                    if (win.mHasSurface
                            && (win.mAppToken != null || mPolicy.isForceHiding(win.mAttrs))) {
                        win.mWinAnimator.mDrawState = WindowStateAnimator.DRAW_PENDING;
                        // Force add to mResizingWindows.
                        win.mLastContentInsets.set(-1, -1, -1, -1);