summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hongwei Wang <hwwang@google.com> 2024-11-11 13:08:21 -0800
committer Hongwei Wang <hwwang@google.com> 2024-11-12 12:36:43 -0800
commita426167cd70b38d31f218b17a30adb62c76e2b9f (patch)
treee10b6748278f92c4a6f958100aa356764ce544df
parent18eb83c20e3adb4fc3cf2a89e59780ade3b1e9ba (diff)
[PiP2] Fix NPE when create a split-screen
Fixed NPE thrown from PipTransitionHandler when DefaultMixedHandler tries to query for PiP presense, root caused by the deprecated PipTaskOrganizer reference when in PiP2. Flag: com.android.wm.shell.enable_pip2 Bug: 375247956 Test: manual, create a split-screen when PiP2 is on Test: manual, swipe a split-screen to home, with PiP-able Activity Change-Id: I0ae1791f9ec6bbeaf59313b68653449ffa09d2fc
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java9
1 files changed, 4 insertions, 5 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java
index 5ffc64f412f1..79a9ce5212c6 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip/PipTransitionController.java
@@ -47,7 +47,6 @@ import com.android.wm.shell.ShellTaskOrganizer;
import com.android.wm.shell.common.pip.PipBoundsAlgorithm;
import com.android.wm.shell.common.pip.PipBoundsState;
import com.android.wm.shell.common.pip.PipMenuController;
-import com.android.wm.shell.common.split.SplitScreenUtils;
import com.android.wm.shell.protolog.ShellProtoLogGroup;
import com.android.wm.shell.sysui.ShellInit;
import com.android.wm.shell.transition.DefaultMixedHandler;
@@ -312,10 +311,10 @@ public abstract class PipTransitionController implements Transitions.TransitionH
}
/** Whether a particular package is same as current pip package. */
- public boolean isPackageActiveInPip(String packageName) {
- final TaskInfo inPipTask = mPipOrganizer.getTaskInfo();
- return packageName != null && inPipTask != null && mPipOrganizer.isInPip()
- && packageName.equals(SplitScreenUtils.getPackageName(inPipTask.baseIntent));
+ public boolean isPackageActiveInPip(@Nullable String packageName) {
+ return packageName != null
+ && mPipBoundsState.getLastPipComponentName() != null
+ && packageName.equals(mPipBoundsState.getLastPipComponentName().getPackageName());
}
/** Add PiP-related changes to `outWCT` for the given request. */