Loading core/java/android/window/StartingWindowRemovalInfo.java +17 −10 Original line number Diff line number Diff line Loading @@ -59,28 +59,35 @@ public final class StartingWindowRemovalInfo implements Parcelable { */ public boolean playRevealAnimation; /** The mode is no need to defer removing the starting window for IME */ public static final int DEFER_MODE_NONE = 0; /** The mode is default defer removing the snapshot starting window. */ public static final int DEFER_MODE_DEFAULT = 0; /** The mode to defer removing the starting window until IME has drawn */ /** The mode to defer removing the snapshot starting window until IME has drawn. */ public static final int DEFER_MODE_NORMAL = 1; /** The mode to defer the starting window removal until IME drawn and finished the rotation */ /** * The mode to defer the snapshot starting window removal until IME drawn and finished the * rotation. */ public static final int DEFER_MODE_ROTATION = 2; /** The mode is no need to defer removing the snapshot starting window. */ public static final int DEFER_MODE_NONE = 3; @IntDef(prefix = { "DEFER_MODE_" }, value = { DEFER_MODE_NONE, DEFER_MODE_DEFAULT, DEFER_MODE_NORMAL, DEFER_MODE_ROTATION, DEFER_MODE_NONE, }) @Retention(RetentionPolicy.SOURCE) public @interface DeferMode {} /** * Whether need to defer removing the starting window for IME. * Whether need to defer removing the snapshot starting window. * @hide */ public @DeferMode int deferRemoveForImeMode; public @DeferMode int deferRemoveMode; /** * The rounded corner radius Loading Loading @@ -116,7 +123,7 @@ public final class StartingWindowRemovalInfo implements Parcelable { windowAnimationLeash = source.readTypedObject(SurfaceControl.CREATOR); mainFrame = source.readTypedObject(Rect.CREATOR); playRevealAnimation = source.readBoolean(); deferRemoveForImeMode = source.readInt(); deferRemoveMode = source.readInt(); roundedCornerRadius = source.readFloat(); windowlessSurface = source.readBoolean(); removeImmediately = source.readBoolean(); Loading @@ -128,7 +135,7 @@ public final class StartingWindowRemovalInfo implements Parcelable { dest.writeTypedObject(windowAnimationLeash, flags); dest.writeTypedObject(mainFrame, flags); dest.writeBoolean(playRevealAnimation); dest.writeInt(deferRemoveForImeMode); dest.writeInt(deferRemoveMode); dest.writeFloat(roundedCornerRadius); dest.writeBoolean(windowlessSurface); dest.writeBoolean(removeImmediately); Loading @@ -140,7 +147,7 @@ public final class StartingWindowRemovalInfo implements Parcelable { + " frame=" + mainFrame + " playRevealAnimation=" + playRevealAnimation + " roundedCornerRadius=" + roundedCornerRadius + " deferRemoveForImeMode=" + deferRemoveForImeMode + " deferRemoveMode=" + deferRemoveMode + " windowlessSurface=" + windowlessSurface + " removeImmediately=" + removeImmediately + "}"; } Loading libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawer.java +8 −10 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.wm.shell.startingsurface; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.view.Display.DEFAULT_DISPLAY; import static android.window.StartingWindowRemovalInfo.DEFER_MODE_NONE; import static android.window.StartingWindowRemovalInfo.DEFER_MODE_NORMAL; import static android.window.StartingWindowRemovalInfo.DEFER_MODE_ROTATION; Loading Loading @@ -270,21 +271,18 @@ public class StartingSurfaceDrawer { @Override public final boolean removeIfPossible(StartingWindowRemovalInfo info, boolean immediately) { if (immediately) { if (immediately // Show the latest content as soon as possible for unlocking to home. || mActivityType == ACTIVITY_TYPE_HOME || info.deferRemoveMode == DEFER_MODE_NONE) { removeImmediately(); } else { scheduleRemove(info.deferRemoveForImeMode); return false; } return true; } scheduleRemove(info.deferRemoveMode); return false; } void scheduleRemove(@StartingWindowRemovalInfo.DeferMode int deferRemoveForImeMode) { // Show the latest content as soon as possible for unlocking to home. if (mActivityType == ACTIVITY_TYPE_HOME) { removeImmediately(); return; } mRemoveExecutor.removeCallbacks(mScheduledRunnable); final long delayRemovalTime; switch (deferRemoveForImeMode) { Loading services/core/java/com/android/server/wm/TaskOrganizerController.java +3 −4 Original line number Diff line number Diff line Loading @@ -671,12 +671,10 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { if (hasImeSurface) { if (topActivity.isVisibleRequested() && dc.mInputMethodWindow != null && dc.isFixedRotationLaunchingApp(topActivity)) { removalInfo.deferRemoveForImeMode = DEFER_MODE_ROTATION; removalInfo.deferRemoveMode = DEFER_MODE_ROTATION; } else { removalInfo.deferRemoveForImeMode = DEFER_MODE_NORMAL; removalInfo.deferRemoveMode = DEFER_MODE_NORMAL; } } else { removalInfo.deferRemoveForImeMode = DEFER_MODE_NONE; } final WindowState mainWindow = Loading Loading @@ -745,6 +743,7 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { removalInfo.taskId = taskId; removalInfo.windowlessSurface = true; removalInfo.removeImmediately = immediately; removalInfo.deferRemoveMode = DEFER_MODE_NONE; try { lastOrganizer.removeStartingWindow(removalInfo); } catch (RemoteException e) { Loading Loading
core/java/android/window/StartingWindowRemovalInfo.java +17 −10 Original line number Diff line number Diff line Loading @@ -59,28 +59,35 @@ public final class StartingWindowRemovalInfo implements Parcelable { */ public boolean playRevealAnimation; /** The mode is no need to defer removing the starting window for IME */ public static final int DEFER_MODE_NONE = 0; /** The mode is default defer removing the snapshot starting window. */ public static final int DEFER_MODE_DEFAULT = 0; /** The mode to defer removing the starting window until IME has drawn */ /** The mode to defer removing the snapshot starting window until IME has drawn. */ public static final int DEFER_MODE_NORMAL = 1; /** The mode to defer the starting window removal until IME drawn and finished the rotation */ /** * The mode to defer the snapshot starting window removal until IME drawn and finished the * rotation. */ public static final int DEFER_MODE_ROTATION = 2; /** The mode is no need to defer removing the snapshot starting window. */ public static final int DEFER_MODE_NONE = 3; @IntDef(prefix = { "DEFER_MODE_" }, value = { DEFER_MODE_NONE, DEFER_MODE_DEFAULT, DEFER_MODE_NORMAL, DEFER_MODE_ROTATION, DEFER_MODE_NONE, }) @Retention(RetentionPolicy.SOURCE) public @interface DeferMode {} /** * Whether need to defer removing the starting window for IME. * Whether need to defer removing the snapshot starting window. * @hide */ public @DeferMode int deferRemoveForImeMode; public @DeferMode int deferRemoveMode; /** * The rounded corner radius Loading Loading @@ -116,7 +123,7 @@ public final class StartingWindowRemovalInfo implements Parcelable { windowAnimationLeash = source.readTypedObject(SurfaceControl.CREATOR); mainFrame = source.readTypedObject(Rect.CREATOR); playRevealAnimation = source.readBoolean(); deferRemoveForImeMode = source.readInt(); deferRemoveMode = source.readInt(); roundedCornerRadius = source.readFloat(); windowlessSurface = source.readBoolean(); removeImmediately = source.readBoolean(); Loading @@ -128,7 +135,7 @@ public final class StartingWindowRemovalInfo implements Parcelable { dest.writeTypedObject(windowAnimationLeash, flags); dest.writeTypedObject(mainFrame, flags); dest.writeBoolean(playRevealAnimation); dest.writeInt(deferRemoveForImeMode); dest.writeInt(deferRemoveMode); dest.writeFloat(roundedCornerRadius); dest.writeBoolean(windowlessSurface); dest.writeBoolean(removeImmediately); Loading @@ -140,7 +147,7 @@ public final class StartingWindowRemovalInfo implements Parcelable { + " frame=" + mainFrame + " playRevealAnimation=" + playRevealAnimation + " roundedCornerRadius=" + roundedCornerRadius + " deferRemoveForImeMode=" + deferRemoveForImeMode + " deferRemoveMode=" + deferRemoveMode + " windowlessSurface=" + windowlessSurface + " removeImmediately=" + removeImmediately + "}"; } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/startingsurface/StartingSurfaceDrawer.java +8 −10 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.wm.shell.startingsurface; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.view.Display.DEFAULT_DISPLAY; import static android.window.StartingWindowRemovalInfo.DEFER_MODE_NONE; import static android.window.StartingWindowRemovalInfo.DEFER_MODE_NORMAL; import static android.window.StartingWindowRemovalInfo.DEFER_MODE_ROTATION; Loading Loading @@ -270,21 +271,18 @@ public class StartingSurfaceDrawer { @Override public final boolean removeIfPossible(StartingWindowRemovalInfo info, boolean immediately) { if (immediately) { if (immediately // Show the latest content as soon as possible for unlocking to home. || mActivityType == ACTIVITY_TYPE_HOME || info.deferRemoveMode == DEFER_MODE_NONE) { removeImmediately(); } else { scheduleRemove(info.deferRemoveForImeMode); return false; } return true; } scheduleRemove(info.deferRemoveMode); return false; } void scheduleRemove(@StartingWindowRemovalInfo.DeferMode int deferRemoveForImeMode) { // Show the latest content as soon as possible for unlocking to home. if (mActivityType == ACTIVITY_TYPE_HOME) { removeImmediately(); return; } mRemoveExecutor.removeCallbacks(mScheduledRunnable); final long delayRemovalTime; switch (deferRemoveForImeMode) { Loading
services/core/java/com/android/server/wm/TaskOrganizerController.java +3 −4 Original line number Diff line number Diff line Loading @@ -671,12 +671,10 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { if (hasImeSurface) { if (topActivity.isVisibleRequested() && dc.mInputMethodWindow != null && dc.isFixedRotationLaunchingApp(topActivity)) { removalInfo.deferRemoveForImeMode = DEFER_MODE_ROTATION; removalInfo.deferRemoveMode = DEFER_MODE_ROTATION; } else { removalInfo.deferRemoveForImeMode = DEFER_MODE_NORMAL; removalInfo.deferRemoveMode = DEFER_MODE_NORMAL; } } else { removalInfo.deferRemoveForImeMode = DEFER_MODE_NONE; } final WindowState mainWindow = Loading Loading @@ -745,6 +743,7 @@ class TaskOrganizerController extends ITaskOrganizerController.Stub { removalInfo.taskId = taskId; removalInfo.windowlessSurface = true; removalInfo.removeImmediately = immediately; removalInfo.deferRemoveMode = DEFER_MODE_NONE; try { lastOrganizer.removeStartingWindow(removalInfo); } catch (RemoteException e) { Loading