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

Commit 9f84cac5 authored by d34d's avatar d34d Committed by Gerrit Code Review
Browse files

SysUI: Handle KgdExtView callbacks on UI thread

These callbacks can happen off the UI thread and some of the actions
we perform require us to be on the UI thread.

Change-Id: Ic3d7007b2df0630d4bdd511d34acde20c1a16a34
parent 8406b5c2
Loading
Loading
Loading
Loading
+25 −7
Original line number Diff line number Diff line
@@ -1193,18 +1193,30 @@ public class NotificationPanelView extends PanelView implements
        @Override
        public boolean requestDismiss() {
            if (hasExternalKeyguardView()) {
                mStatusBar.setBarState(StatusBarState.KEYGUARD);
                post(new Runnable() {
                    @Override
                    public void run() {
                        mStatusBar.showKeyguard();
                        mStatusBar.showBouncer();
                    }
                });
                return true;
            }
            return false;
        }

        @Override
        public boolean requestDismissAndStartActivity(Intent intent) {
        public boolean requestDismissAndStartActivity(final Intent intent) {
            if (hasExternalKeyguardView()) {
                mStatusBar.setBarState(StatusBarState.KEYGUARD);
                if (hasExternalKeyguardView()) {
                    post(new Runnable() {
                        @Override
                        public void run() {
                            mStatusBar.showKeyguard();
                            mStatusBar.startActivity(intent, true);
                        }
                    });
                }
                return true;
            }
            return false;
@@ -1212,9 +1224,15 @@ public class NotificationPanelView extends PanelView implements

        @Override
        public void collapseNotificationPanel() {
            if (mStatusBar.getBarState() == StatusBarState.KEYGUARD && hasExternalKeyguardView()) {
            if (mStatusBar.getBarState() == StatusBarState.KEYGUARD && hasExternalKeyguardView() &&
                    mKeyguardExternalView.isInteractive()) {
                post(new Runnable() {
                    @Override
                    public void run() {
                        mStatusBar.focusKeyguardExternalView();
                    }
                });
            }
        }

        @Override