Merge "Pulse state should always show ambient wallpaper" into pi-dev

am: 52ecba88d1

Change-Id: I9dfcdf1c70fc3ee2059cc5e9312458bcfa07f0a4
This commit is contained in:
Lucas Dupin
2018-05-21 15:39:40 -07:00
committed by android-build-merger
3 changed files with 34 additions and 17 deletions

View File

@@ -69,7 +69,7 @@ public class DozeFactory {
new DozeScreenState(wrappedService, handler, params, wakeLock),
createDozeScreenBrightness(context, wrappedService, sensorManager, host, params,
handler),
new DozeWallpaperState(context, params)
new DozeWallpaperState(context)
});
return machine;

View File

@@ -38,40 +38,33 @@ public class DozeWallpaperState implements DozeMachine.Part {
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
private final IWallpaperManager mWallpaperManagerService;
private boolean mKeyguardVisible;
private boolean mIsAmbientMode;
private final DozeParameters mDozeParameters;
public DozeWallpaperState(Context context, DozeParameters dozeParameters) {
public DozeWallpaperState(Context context) {
this(IWallpaperManager.Stub.asInterface(
ServiceManager.getService(Context.WALLPAPER_SERVICE)),
dozeParameters, KeyguardUpdateMonitor.getInstance(context));
DozeParameters.getInstance(context));
}
@VisibleForTesting
DozeWallpaperState(IWallpaperManager wallpaperManagerService, DozeParameters parameters,
KeyguardUpdateMonitor keyguardUpdateMonitor) {
DozeWallpaperState(IWallpaperManager wallpaperManagerService, DozeParameters parameters) {
mWallpaperManagerService = wallpaperManagerService;
mDozeParameters = parameters;
keyguardUpdateMonitor.registerCallback(new KeyguardUpdateMonitorCallback() {
@Override
public void onKeyguardVisibilityChanged(boolean showing) {
mKeyguardVisible = showing;
}
});
}
@Override
public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) {
final boolean isAmbientMode;
switch (newState) {
case DOZE:
case DOZE_AOD:
case DOZE_AOD_PAUSING:
case DOZE_AOD_PAUSED:
case DOZE_REQUEST_PULSE:
case DOZE_PULSING:
case DOZE_PULSE_DONE:
isAmbientMode = mDozeParameters.getAlwaysOn();
isAmbientMode = true;
break;
default:
isAmbientMode = false;
@@ -81,7 +74,9 @@ public class DozeWallpaperState implements DozeMachine.Part {
if (isAmbientMode) {
animated = mDozeParameters.shouldControlScreenOff();
} else {
animated = !mDozeParameters.getDisplayNeedsBlanking();
boolean wakingUpFromPulse = oldState == DozeMachine.State.DOZE_PULSING
&& newState == DozeMachine.State.FINISH;
animated = !mDozeParameters.getDisplayNeedsBlanking() || wakingUpFromPulse;
}
if (isAmbientMode != mIsAmbientMode) {

View File

@@ -45,13 +45,11 @@ public class DozeWallpaperStateTest extends SysuiTestCase {
private DozeWallpaperState mDozeWallpaperState;
@Mock IWallpaperManager mIWallpaperManager;
@Mock DozeParameters mDozeParameters;
@Mock KeyguardUpdateMonitor mKeyguardUpdateMonitor;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mDozeWallpaperState = new DozeWallpaperState(mIWallpaperManager, mDozeParameters,
mKeyguardUpdateMonitor);
mDozeWallpaperState = new DozeWallpaperState(mIWallpaperManager, mDozeParameters);
}
@Test
@@ -100,4 +98,28 @@ public class DozeWallpaperStateTest extends SysuiTestCase {
mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_AOD, DozeMachine.State.FINISH);
verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(false));
}
@Test
public void testTransitionTo_requestPulseIsAmbientMode() throws RemoteException {
mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE,
DozeMachine.State.DOZE_REQUEST_PULSE);
verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(false));
}
@Test
public void testTransitionTo_pulseIsAmbientMode() throws RemoteException {
mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_REQUEST_PULSE,
DozeMachine.State.DOZE_PULSING);
verify(mIWallpaperManager).setInAmbientMode(eq(true), eq(false));
}
@Test
public void testTransitionTo_animatesWhenWakingUpFromPulse() throws RemoteException {
mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_REQUEST_PULSE,
DozeMachine.State.DOZE_PULSING);
reset(mIWallpaperManager);
mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_PULSING,
DozeMachine.State.FINISH);
verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(true));
}
}