summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hongwei Wang <hwwang@google.com> 2025-03-14 11:07:46 -0700
committer Hongwei Wang <hwwang@google.com> 2025-03-14 11:13:27 -0700
commit9654cfd8fd8a8a06e562116723ffd98a511312d4 (patch)
tree709fe6066426fe7a34cba61735cb912afd047faf
parent35b49cfff5a4e6346f80690c936321d14d53365c (diff)
Log terrible failure on null PiP task token
Log an extra terrible failure for the null PiP task token in PipController#onDisplayChange. We are not able to reproduce the original NPE, adding extra log here to help further investigation. Flag: com.android.wm.shell.enable_pip2 Bug: 378743431 Test: N/A log-only Change-Id: Iacf3714e7cd201bdaac44a379049119d2c343dc6
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java
index 4e341ac9b7eb..0e974ef9083b 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/pip2/phone/PipController.java
@@ -31,6 +31,8 @@ import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.graphics.Rect;
import android.os.Bundle;
+import android.os.Debug;
+import android.util.Log;
import android.view.SurfaceControl;
import android.window.DesktopExperienceFlags;
import android.window.DisplayAreaInfo;
@@ -369,7 +371,13 @@ public class PipController implements ConfigurationChangeListener,
mPipBoundsAlgorithm.applySnapFraction(toBounds, snapFraction);
mPipBoundsState.setBounds(toBounds);
}
- t.setBounds(mPipTransitionState.getPipTaskToken(), mPipBoundsState.getBounds());
+ if (mPipTransitionState.getPipTaskToken() == null) {
+ Log.wtf(TAG, "PipController.onDisplayChange no PiP task token"
+ + " state=" + mPipTransitionState.getState()
+ + " callers=\n" + Debug.getCallers(4, " "));
+ } else {
+ t.setBounds(mPipTransitionState.getPipTaskToken(), mPipBoundsState.getBounds());
+ }
// Update the size spec in PipBoundsState afterwards.
mPipBoundsState.updateMinMaxSize(mPipBoundsState.getAspectRatio());
}