summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jim Miller <jaggies@google.com> 2013-10-30 15:23:46 -0700
committer Jim Miller <jaggies@google.com> 2013-10-30 15:23:46 -0700
commit8a26b43cd83ef42aecc75590beeb37122dd5bb4b (patch)
treebef2bfe5e13c6c9e539045b857852dfa5acf68f3
parent73f68dbcc6e03aa0071097ea8b1b84995013ff59 (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.java18
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,