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

Commit 8a26b43c authored by Jim Miller's avatar Jim Miller
Browse files

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
parent 73f68dbc
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -314,11 +314,19 @@ class QuickSettings {
                collapsePanels();
                final UserManager um = UserManager.get(mContext);
                if (um.getUsers(true).size() > 1) {
                    // 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,