Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bdbc23be authored by Robert Carr's avatar Robert Carr Committed by android-build-merger
Browse files

Introduce new constant for double tap gesture rotation hint. am: 57d9fbd1

am: 5f684d92

Change-Id: Idf2bb8511e24732018ff59ffbf30f440cb7f9779
parents d66f01d3 5f684d92
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -1580,6 +1580,15 @@ public interface WindowManager extends ViewManager {
         */
        public static final int ROTATION_ANIMATION_JUMPCUT = 2;

        /**
         * Value for {@link #rotationAnimation} to specify seamless rotation mode.
         * This works like JUMPCUT but will fall back to CROSSFADE if rotation
         * can't be applied without pausing the screen.
         *
         * @hide
         */
        public static final int ROTATION_ANIMATION_SEAMLESS = 3;

        /**
         * Define the exit and entry animations used on this window when the device is rotated.
         * This only has an affect if the incoming and outgoing topmost
+1 −1
Original line number Diff line number Diff line
@@ -461,7 +461,7 @@ public class KeyguardBottomAreaView extends FrameLayout implements View.OnClickL
                    // happens to occur during the launch.
                    ActivityOptions o = ActivityOptions.makeBasic();
                    o.setRotationAnimationHint(
                            WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE);
                            WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS);
                    try {
                        result = ActivityManagerNative.getDefault().startActivityAsUser(
                                null, getContext().getBasePackageName(),
+1 −1
Original line number Diff line number Diff line
@@ -3419,7 +3419,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
                    // force the crossfade animation if an orientation change
                    // happens to occur during the launch.
                    options.setRotationAnimationHint(
                            WindowManager.LayoutParams.ROTATION_ANIMATION_CROSSFADE);
                            WindowManager.LayoutParams.ROTATION_ANIMATION_SEAMLESS);
                }
                try {
                    result = ActivityManagerNative.getDefault().startActivityAsUser(
+6 −4
Original line number Diff line number Diff line
@@ -2972,6 +2972,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            }
            switch (animationHint) {
                case ROTATION_ANIMATION_CROSSFADE:
                case ROTATION_ANIMATION_SEAMLESS: // Crossfade is fallback for seamless.
                    anim[0] = R.anim.rotation_animation_xfade_exit;
                    anim[1] = R.anim.rotation_animation_enter;
                    break;
@@ -7823,14 +7824,15 @@ public class PhoneWindowManager implements WindowManagerPolicy {
            return false;
        }

        final WindowState w = mTopFullscreenOpaqueWindowState;

        // We only enable seamless rotation if the top window has requested
        // it and is in the fullscreen opaque state. Seamless rotation
        // requires freezing various Surface states and won't work well
        // with animations, so we disable it in the animation case for now.
        if (mTopFullscreenOpaqueWindowState != null && mTopIsFullscreen &&
                !mTopFullscreenOpaqueWindowState.isAnimatingLw() &&
                mTopFullscreenOpaqueWindowState.getAttrs().rotationAnimation ==
                ROTATION_ANIMATION_JUMPCUT) {
        if (w != null  && mTopIsFullscreen && !w.isAnimatingLw() &&
                ((w.getAttrs().rotationAnimation == ROTATION_ANIMATION_JUMPCUT) ||
                        (w.getAttrs().rotationAnimation == ROTATION_ANIMATION_SEAMLESS))) {
            return true;
        }
        return false;