diff options
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/RecentsSystemUser.java | 9 | ||||
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java | 7 |
2 files changed, 13 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/recents/RecentsSystemUser.java b/packages/SystemUI/src/com/android/systemui/recents/RecentsSystemUser.java index 913da185c40d..3921a20cffd1 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/RecentsSystemUser.java +++ b/packages/SystemUI/src/com/android/systemui/recents/RecentsSystemUser.java @@ -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) { - mImpl.onVisibilityChanged(mContext, visible); + ForegroundThread.getHandler().post(() -> { + mImpl.onVisibilityChanged(mContext, visible); + }); } @Override public void startScreenPinning(int taskId) { - mImpl.onStartScreenPinning(mContext, taskId); + ForegroundThread.getHandler().post(() -> { + mImpl.onStartScreenPinning(mContext, taskId); + }); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java b/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java index 992b13fbfc24..b961055c6fed 100644 --- a/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java +++ b/packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java @@ -72,7 +72,12 @@ public class ScreenPinningRequest implements View.OnClickListener { } public void showPrompt(int taskId, boolean allowCancel) { - clearPrompt(); + 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; |