Merge "AOD: Prevent animations and rotations while going to sleep" into oc-dr1-dev am: 29119b6f5f

am: 747938ed61

Change-Id: I42fa84171dbc77d973365040e026b7962e116475
This commit is contained in:
Adrian Roos
2017-07-20 16:18:38 +00:00
committed by android-build-merger
4 changed files with 17 additions and 10 deletions

View File

@@ -74,7 +74,6 @@ import android.graphics.Rect;
import android.os.Bundle;
import android.os.IBinder;
import android.os.Looper;
import android.os.PowerManager;
import android.os.RemoteException;
import android.util.Slog;
import android.view.animation.Animation;
@@ -1317,12 +1316,12 @@ public interface WindowManagerPolicy {
public boolean isScreenOn();
/**
* @return whether the device is currently {@link PowerManager#isInteractive() interactive}.
* @return whether the device is currently allowed to animate.
*
* Note: the screen can be on while the device is not interactive, e.g. when the device is
* showing Ambient Display.
* Note: this can be true even if it is not appropriate to animate for reasons that are outside
* of the policy's authority.
*/
boolean isInteractive();
boolean okToAnimate();
/**
* Tell the policy that the lid switch has changed state.

View File

@@ -3168,10 +3168,18 @@ public class PhoneWindowManager implements WindowManagerPolicy {
@Override
public void selectRotationAnimationLw(int anim[]) {
// If the screen is off or non-interactive, force a jumpcut.
final boolean forceJumpcut = !mScreenOnFully || !mAwake;
if (PRINT_ANIM) Slog.i(TAG, "selectRotationAnimation mTopFullscreen="
+ mTopFullscreenOpaqueWindowState + " rotationAnimation="
+ (mTopFullscreenOpaqueWindowState == null ?
"0" : mTopFullscreenOpaqueWindowState.getAttrs().rotationAnimation));
"0" : mTopFullscreenOpaqueWindowState.getAttrs().rotationAnimation)
+ " forceJumpcut=" + forceJumpcut);
if (forceJumpcut) {
anim[0] = R.anim.rotation_animation_jump_exit;
anim[1] = R.anim.rotation_animation_enter;
return;
}
if (mTopFullscreenOpaqueWindowState != null) {
int animationHint = mTopFullscreenOpaqueWindowState.getRotationAnimationHint();
if (animationHint < 0 && mTopIsFullscreen) {
@@ -6829,8 +6837,8 @@ public class PhoneWindowManager implements WindowManagerPolicy {
}
@Override
public boolean isInteractive() {
return mAwake;
public boolean okToAnimate() {
return mAwake && !mGoingToSleep;
}
/** {@inheritDoc} */

View File

@@ -2410,7 +2410,7 @@ public class WindowManagerService extends IWindowManager.Stub
}
boolean okToAnimate() {
return okToDisplay() && mPolicy.isInteractive();
return okToDisplay() && mPolicy.okToAnimate();
}
@Override

View File

@@ -382,7 +382,7 @@ class TestWindowManagerPolicy implements WindowManagerPolicy {
}
@Override
public boolean isInteractive() {
public boolean okToAnimate() {
return true;
}