summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/RecentsSystemUser.java9
-rw-r--r--packages/SystemUI/src/com/android/systemui/recents/ScreenPinningRequest.java7
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;