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;
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 java.lang.Character.MIN_VALUE;
@@ -947,9 +949,8 @@ public class Activity extends ContextThemeWrapper
/** @hide */
boolean mEnterAnimationComplete;
/** Track last dispatched multi-window and PiP mode to client, internal debug purpose **/
private Boolean mLastDispatchedIsInMultiWindowMode;
private Boolean mLastDispatchedIsInPictureInPictureMode;
private boolean mIsInMultiWindowMode;
private boolean mIsInPictureInPictureMode;
private final WindowControllerCallback mWindowControllerCallback =
new WindowControllerCallback() {
@@ -2748,7 +2749,7 @@ public class Activity extends ContextThemeWrapper
* @return True if the activity is in multi-window mode.
*/
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.
*/
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(mStopped); writer.print(" mFinished=");
writer.println(mFinished);
writer.print(innerPrefix); writer.print("mLastDispatchedIsInMultiWindowMode=");
writer.print(mLastDispatchedIsInMultiWindowMode);
writer.print(" mLastDispatchedIsInPictureInPictureMode=");
writer.println(mLastDispatchedIsInPictureInPictureMode);
writer.print(innerPrefix); writer.print("mIsInMultiWindowMode=");
writer.print(mIsInMultiWindowMode);
writer.print(" mIsInPictureInPictureMode=");
writer.println(mIsInPictureInPictureMode);
writer.print(innerPrefix); writer.print("mChangingConfigurations=");
writer.println(mChangingConfigurations);
writer.print(innerPrefix); writer.print("mCurrentConfig=");
@@ -7977,6 +7978,11 @@ public class Activity extends ContextThemeWrapper
final void performCreate(Bundle icicle, PersistableBundle persistentState) {
dispatchActivityPreCreated(icicle);
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);
if (persistentState != null) {
onCreate(icicle, persistentState);
@@ -8245,7 +8251,7 @@ public class Activity extends ContextThemeWrapper
if (mWindow != null) {
mWindow.onMultiWindowModeChanged();
}
mLastDispatchedIsInMultiWindowMode = isInMultiWindowMode;
mIsInMultiWindowMode = isInMultiWindowMode;
onMultiWindowModeChanged(isInMultiWindowMode, newConfig);
}
@@ -8258,7 +8264,7 @@ public class Activity extends ContextThemeWrapper
if (mWindow != null) {
mWindow.onPictureInPictureModeChanged(isInPictureInPictureMode);
}
mLastDispatchedIsInPictureInPictureMode = isInPictureInPictureMode;
mIsInPictureInPictureMode = isInPictureInPictureMode;
onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig);
}