diff options
| author | 2014-09-02 18:36:45 +0200 | |
|---|---|---|
| committer | 2014-09-02 22:05:42 +0200 | |
| commit | d09def75110ea9833e3985ce33a878a471a8a0dc (patch) | |
| tree | 26dfbc4e6904f0ce11f56465c53a3e3d2ddcccff | |
| parent | 1611c21dfdf102fa4eadd3cab4c7bd5fda061826 (diff) | |
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
4 files changed, 17 insertions, 7 deletions
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java index a0fab42f1fb6..8898f9ef4e14 100644 --- a/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java +++ b/packages/Keyguard/src/com/android/keyguard/KeyguardStatusView.java @@ -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); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 5a94395437cf..91a8b22e89d2 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -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(); + } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java index 3b24bfdd3e65..ad775cbf9993 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java @@ -3817,6 +3817,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode, public void onScreenTurnedOn() { mStackScroller.setAnimationsEnabled(true); + mNotificationPanel.onScreenTurnedOn(); } /** diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 0a0124701963..08343d81716e 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -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); |