Merge "Set mIsInMultiWindowMode in activity creation" into rvc-dev

This commit is contained in:
Hongwei Wang
2020-05-12 05:29:38 +00:00
committed by Android (Google) Code Review

View File

@@ -17,6 +17,8 @@
package android.app; package android.app;
import static android.Manifest.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS; import static android.Manifest.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS;
import static android.app.WindowConfiguration.WINDOWING_MODE_PINNED;
import static android.app.WindowConfiguration.inMultiWindowMode;
import static android.os.Process.myUid; import static android.os.Process.myUid;
import static java.lang.Character.MIN_VALUE; import static java.lang.Character.MIN_VALUE;
@@ -947,9 +949,8 @@ public class Activity extends ContextThemeWrapper
/** @hide */ /** @hide */
boolean mEnterAnimationComplete; boolean mEnterAnimationComplete;
/** Track last dispatched multi-window and PiP mode to client, internal debug purpose **/ private boolean mIsInMultiWindowMode;
private Boolean mLastDispatchedIsInMultiWindowMode; private boolean mIsInPictureInPictureMode;
private Boolean mLastDispatchedIsInPictureInPictureMode;
private final WindowControllerCallback mWindowControllerCallback = private final WindowControllerCallback mWindowControllerCallback =
new WindowControllerCallback() { new WindowControllerCallback() {
@@ -2748,7 +2749,7 @@ public class Activity extends ContextThemeWrapper
* @return True if the activity is in multi-window mode. * @return True if the activity is in multi-window mode.
*/ */
public boolean isInMultiWindowMode() { public boolean isInMultiWindowMode() {
return mLastDispatchedIsInMultiWindowMode == Boolean.TRUE; return mIsInMultiWindowMode;
} }
/** /**
@@ -2791,7 +2792,7 @@ public class Activity extends ContextThemeWrapper
* @return True if the activity is in picture-in-picture mode. * @return True if the activity is in picture-in-picture mode.
*/ */
public boolean isInPictureInPictureMode() { public boolean isInPictureInPictureMode() {
return mLastDispatchedIsInPictureInPictureMode == Boolean.TRUE; return mIsInPictureInPictureMode;
} }
/** /**
@@ -7142,10 +7143,10 @@ public class Activity extends ContextThemeWrapper
writer.print(mResumed); writer.print(" mStopped="); writer.print(mResumed); writer.print(" mStopped=");
writer.print(mStopped); writer.print(" mFinished="); writer.print(mStopped); writer.print(" mFinished=");
writer.println(mFinished); writer.println(mFinished);
writer.print(innerPrefix); writer.print("mLastDispatchedIsInMultiWindowMode="); writer.print(innerPrefix); writer.print("mIsInMultiWindowMode=");
writer.print(mLastDispatchedIsInMultiWindowMode); writer.print(mIsInMultiWindowMode);
writer.print(" mLastDispatchedIsInPictureInPictureMode="); writer.print(" mIsInPictureInPictureMode=");
writer.println(mLastDispatchedIsInPictureInPictureMode); writer.println(mIsInPictureInPictureMode);
writer.print(innerPrefix); writer.print("mChangingConfigurations="); writer.print(innerPrefix); writer.print("mChangingConfigurations=");
writer.println(mChangingConfigurations); writer.println(mChangingConfigurations);
writer.print(innerPrefix); writer.print("mCurrentConfig="); writer.print(innerPrefix); writer.print("mCurrentConfig=");
@@ -7977,6 +7978,11 @@ public class Activity extends ContextThemeWrapper
final void performCreate(Bundle icicle, PersistableBundle persistentState) { final void performCreate(Bundle icicle, PersistableBundle persistentState) {
dispatchActivityPreCreated(icicle); dispatchActivityPreCreated(icicle);
mCanEnterPictureInPicture = true; mCanEnterPictureInPicture = true;
// initialize mIsInMultiWindowMode and mIsInPictureInPictureMode before onCreate
final int windowingMode = getResources().getConfiguration().windowConfiguration
.getWindowingMode();
mIsInMultiWindowMode = inMultiWindowMode(windowingMode);
mIsInPictureInPictureMode = windowingMode == WINDOWING_MODE_PINNED;
restoreHasCurrentPermissionRequest(icicle); restoreHasCurrentPermissionRequest(icicle);
if (persistentState != null) { if (persistentState != null) {
onCreate(icicle, persistentState); onCreate(icicle, persistentState);
@@ -8245,7 +8251,7 @@ public class Activity extends ContextThemeWrapper
if (mWindow != null) { if (mWindow != null) {
mWindow.onMultiWindowModeChanged(); mWindow.onMultiWindowModeChanged();
} }
mLastDispatchedIsInMultiWindowMode = isInMultiWindowMode; mIsInMultiWindowMode = isInMultiWindowMode;
onMultiWindowModeChanged(isInMultiWindowMode, newConfig); onMultiWindowModeChanged(isInMultiWindowMode, newConfig);
} }
@@ -8258,7 +8264,7 @@ public class Activity extends ContextThemeWrapper
if (mWindow != null) { if (mWindow != null) {
mWindow.onPictureInPictureModeChanged(isInPictureInPictureMode); mWindow.onPictureInPictureModeChanged(isInPictureInPictureMode);
} }
mLastDispatchedIsInPictureInPictureMode = isInPictureInPictureMode; mIsInPictureInPictureMode = isInPictureInPictureMode;
onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig); onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig);
} }