Merge "Disable the trustedOverlay flag for taskview" into main
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTaskController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTaskController.java
index 11aa402..a126cbe 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTaskController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/taskview/TaskViewTaskController.java
@@ -30,6 +30,7 @@
import android.content.pm.LauncherApps;
import android.content.pm.ShortcutInfo;
import android.graphics.Rect;
+import android.gui.TrustedOverlay;
import android.os.Binder;
import android.util.CloseGuard;
import android.util.Slog;
@@ -448,6 +449,14 @@
mSurfaceCreated = true;
mIsInitialized = true;
mSurfaceControl = surfaceControl;
+ // SurfaceControl is expected to be null only in the case of unit tests. Guard against it
+ // to avoid runtime exception in SurfaceControl.Transaction.
+ if (surfaceControl != null) {
+ // TaskView is meant to contain app activities which shouldn't have trusted overlays
+ // flag set even when itself reparented in a window which is trusted.
+ mTransaction.setTrustedOverlay(surfaceControl, TrustedOverlay.DISABLED)
+ .apply();
+ }
notifyInitialized();
mShellExecutor.execute(() -> {
if (mTaskToken == null) {