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

Commit 7555f335 authored by Winson's avatar Winson
Browse files

Fixing issue with screen pinning screen not showing for secondary users.

- Catch the exception when removing a view that is not yet attached. 
  This is not an issue because we are in the process of attaching it for
  the first time anyways.
- Ensure that we post the calls from the secondary user in the main 
  thread for the system user.  Especially since this calls through to
  add the view for the new screen pinning window.

Bug: 29341417
Change-Id: If0e29a77ddb67426115f1d5d9f1adb580a1f07df
parent 8e3a16ad
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.recents.events.EventBus;
import com.android.systemui.recents.events.activity.DockedTopTaskEvent;
import com.android.systemui.recents.events.activity.RecentsActivityStartingEvent;
import com.android.systemui.recents.events.ui.RecentsDrawnEvent;
import com.android.systemui.recents.misc.ForegroundThread;

/**
 * An implementation of the system user's Recents interface to be called remotely by secondary
@@ -78,12 +79,16 @@ public class RecentsSystemUser extends IRecentsSystemUserCallbacks.Stub {

    @Override
    public void updateRecentsVisibility(boolean visible) {
        ForegroundThread.getHandler().post(() -> {
            mImpl.onVisibilityChanged(mContext, visible);
        });
    }

    @Override
    public void startScreenPinning(int taskId) {
        ForegroundThread.getHandler().post(() -> {
            mImpl.onStartScreenPinning(mContext, taskId);
        });
    }

    @Override
+6 −1
Original line number Diff line number Diff line
@@ -72,7 +72,12 @@ public class ScreenPinningRequest implements View.OnClickListener {
    }

    public void showPrompt(int taskId, boolean allowCancel) {
        try {
            clearPrompt();
        } catch (IllegalArgumentException e) {
            // If the call to show the prompt fails due to the request window not already being
            // attached, then just ignore the error since we will be re-adding it below.
        }

        this.taskId = taskId;