diff options
author | 2024-11-11 13:08:21 -0800 | |
---|---|---|
committer | 2024-11-12 12:36:43 -0800 | |
commit | a426167cd70b38d31f218b17a30adb62c76e2b9f (patch) | |
tree | e10b6748278f92c4a6f958100aa356764ce544df | |
parent | 18eb83c20e3adb4fc3cf2a89e59780ade3b1e9ba (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.java | 9 |
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. */ |