diff options
| author | 2013-10-30 15:23:46 -0700 | |
|---|---|---|
| committer | 2013-10-30 15:23:46 -0700 | |
| commit | 8a26b43cd83ef42aecc75590beeb37122dd5bb4b (patch) | |
| tree | bef2bfe5e13c6c9e539045b857852dfa5acf68f3 | |
| parent | 73f68dbcc6e03aa0071097ea8b1b84995013ff59 (diff) | |
Fix glitch with switching users from QuickSettings
Since keyguard and systemui were merged into the same process to save
memory, they share the same Looper and graphics context. As a result,
there's no way to allow concurrent animation while keyguard inflates.
The workaround is to add a slight delay to allow the animation to finish.
Workaround for bug 11046339
Change-Id: I355ca4fb325312bae87d587acfb12b475ecdeba4
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java index 37504fb8e88c..2eef2b3035db 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java @@ -314,11 +314,19 @@ class QuickSettings { collapsePanels(); final UserManager um = UserManager.get(mContext); if (um.getUsers(true).size() > 1) { - try { - WindowManagerGlobal.getWindowManagerService().lockNow(null); - } catch (RemoteException e) { - Log.e(TAG, "Couldn't show user switcher", e); - } + // Since keyguard and systemui were merged into the same process to save + // memory, they share the same Looper and graphics context. As a result, + // there's no way to allow concurrent animation while keyguard inflates. + // The workaround is to add a slight delay to allow the animation to finish. + mHandler.postDelayed(new Runnable() { + public void run() { + try { + WindowManagerGlobal.getWindowManagerService().lockNow(null); + } catch (RemoteException e) { + Log.e(TAG, "Couldn't show user switcher", e); + } + } + }, 400); // TODO: ideally this would be tied to the collapse of the panel } else { Intent intent = ContactsContract.QuickContact.composeQuickContactsIntent( mContext, v, ContactsContract.Profile.CONTENT_URI, |