Loading packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,7 @@ public class DozeFactory { new DozeScreenState(wrappedService, handler, params, wakeLock), new DozeScreenState(wrappedService, handler, params, wakeLock), createDozeScreenBrightness(context, wrappedService, sensorManager, host, params, createDozeScreenBrightness(context, wrappedService, sensorManager, host, params, handler), handler), new DozeWallpaperState(context, params) new DozeWallpaperState(context) }); }); return machine; return machine; Loading packages/SystemUI/src/com/android/systemui/doze/DozeWallpaperState.java +8 −13 Original line number Original line Diff line number Diff line Loading @@ -38,40 +38,33 @@ public class DozeWallpaperState implements DozeMachine.Part { private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private final IWallpaperManager mWallpaperManagerService; private final IWallpaperManager mWallpaperManagerService; private boolean mKeyguardVisible; private boolean mIsAmbientMode; private boolean mIsAmbientMode; private final DozeParameters mDozeParameters; private final DozeParameters mDozeParameters; public DozeWallpaperState(Context context, DozeParameters dozeParameters) { public DozeWallpaperState(Context context) { this(IWallpaperManager.Stub.asInterface( this(IWallpaperManager.Stub.asInterface( ServiceManager.getService(Context.WALLPAPER_SERVICE)), ServiceManager.getService(Context.WALLPAPER_SERVICE)), dozeParameters, KeyguardUpdateMonitor.getInstance(context)); DozeParameters.getInstance(context)); } } @VisibleForTesting @VisibleForTesting DozeWallpaperState(IWallpaperManager wallpaperManagerService, DozeParameters parameters, DozeWallpaperState(IWallpaperManager wallpaperManagerService, DozeParameters parameters) { KeyguardUpdateMonitor keyguardUpdateMonitor) { mWallpaperManagerService = wallpaperManagerService; mWallpaperManagerService = wallpaperManagerService; mDozeParameters = parameters; mDozeParameters = parameters; keyguardUpdateMonitor.registerCallback(new KeyguardUpdateMonitorCallback() { @Override public void onKeyguardVisibilityChanged(boolean showing) { mKeyguardVisible = showing; } }); } } @Override @Override public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) { public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) { final boolean isAmbientMode; final boolean isAmbientMode; switch (newState) { switch (newState) { case DOZE: case DOZE_AOD: case DOZE_AOD: case DOZE_AOD_PAUSING: case DOZE_AOD_PAUSING: case DOZE_AOD_PAUSED: case DOZE_AOD_PAUSED: case DOZE_REQUEST_PULSE: case DOZE_REQUEST_PULSE: case DOZE_PULSING: case DOZE_PULSING: case DOZE_PULSE_DONE: case DOZE_PULSE_DONE: isAmbientMode = mDozeParameters.getAlwaysOn(); isAmbientMode = true; break; break; default: default: isAmbientMode = false; isAmbientMode = false; Loading @@ -81,7 +74,9 @@ public class DozeWallpaperState implements DozeMachine.Part { if (isAmbientMode) { if (isAmbientMode) { animated = mDozeParameters.shouldControlScreenOff(); animated = mDozeParameters.shouldControlScreenOff(); } else { } else { animated = !mDozeParameters.getDisplayNeedsBlanking(); boolean wakingUpFromPulse = oldState == DozeMachine.State.DOZE_PULSING && newState == DozeMachine.State.FINISH; animated = !mDozeParameters.getDisplayNeedsBlanking() || wakingUpFromPulse; } } if (isAmbientMode != mIsAmbientMode) { if (isAmbientMode != mIsAmbientMode) { Loading packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java +25 −3 Original line number Original line Diff line number Diff line Loading @@ -45,13 +45,11 @@ public class DozeWallpaperStateTest extends SysuiTestCase { private DozeWallpaperState mDozeWallpaperState; private DozeWallpaperState mDozeWallpaperState; @Mock IWallpaperManager mIWallpaperManager; @Mock IWallpaperManager mIWallpaperManager; @Mock DozeParameters mDozeParameters; @Mock DozeParameters mDozeParameters; @Mock KeyguardUpdateMonitor mKeyguardUpdateMonitor; @Before @Before public void setUp() { public void setUp() { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); mDozeWallpaperState = new DozeWallpaperState(mIWallpaperManager, mDozeParameters, mDozeWallpaperState = new DozeWallpaperState(mIWallpaperManager, mDozeParameters); mKeyguardUpdateMonitor); } } @Test @Test Loading Loading @@ -100,4 +98,28 @@ public class DozeWallpaperStateTest extends SysuiTestCase { mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_AOD, DozeMachine.State.FINISH); mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_AOD, DozeMachine.State.FINISH); verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(false)); 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)); } } } Loading
packages/SystemUI/src/com/android/systemui/doze/DozeFactory.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -69,7 +69,7 @@ public class DozeFactory { new DozeScreenState(wrappedService, handler, params, wakeLock), new DozeScreenState(wrappedService, handler, params, wakeLock), createDozeScreenBrightness(context, wrappedService, sensorManager, host, params, createDozeScreenBrightness(context, wrappedService, sensorManager, host, params, handler), handler), new DozeWallpaperState(context, params) new DozeWallpaperState(context) }); }); return machine; return machine; Loading
packages/SystemUI/src/com/android/systemui/doze/DozeWallpaperState.java +8 −13 Original line number Original line Diff line number Diff line Loading @@ -38,40 +38,33 @@ public class DozeWallpaperState implements DozeMachine.Part { private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); private final IWallpaperManager mWallpaperManagerService; private final IWallpaperManager mWallpaperManagerService; private boolean mKeyguardVisible; private boolean mIsAmbientMode; private boolean mIsAmbientMode; private final DozeParameters mDozeParameters; private final DozeParameters mDozeParameters; public DozeWallpaperState(Context context, DozeParameters dozeParameters) { public DozeWallpaperState(Context context) { this(IWallpaperManager.Stub.asInterface( this(IWallpaperManager.Stub.asInterface( ServiceManager.getService(Context.WALLPAPER_SERVICE)), ServiceManager.getService(Context.WALLPAPER_SERVICE)), dozeParameters, KeyguardUpdateMonitor.getInstance(context)); DozeParameters.getInstance(context)); } } @VisibleForTesting @VisibleForTesting DozeWallpaperState(IWallpaperManager wallpaperManagerService, DozeParameters parameters, DozeWallpaperState(IWallpaperManager wallpaperManagerService, DozeParameters parameters) { KeyguardUpdateMonitor keyguardUpdateMonitor) { mWallpaperManagerService = wallpaperManagerService; mWallpaperManagerService = wallpaperManagerService; mDozeParameters = parameters; mDozeParameters = parameters; keyguardUpdateMonitor.registerCallback(new KeyguardUpdateMonitorCallback() { @Override public void onKeyguardVisibilityChanged(boolean showing) { mKeyguardVisible = showing; } }); } } @Override @Override public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) { public void transitionTo(DozeMachine.State oldState, DozeMachine.State newState) { final boolean isAmbientMode; final boolean isAmbientMode; switch (newState) { switch (newState) { case DOZE: case DOZE_AOD: case DOZE_AOD: case DOZE_AOD_PAUSING: case DOZE_AOD_PAUSING: case DOZE_AOD_PAUSED: case DOZE_AOD_PAUSED: case DOZE_REQUEST_PULSE: case DOZE_REQUEST_PULSE: case DOZE_PULSING: case DOZE_PULSING: case DOZE_PULSE_DONE: case DOZE_PULSE_DONE: isAmbientMode = mDozeParameters.getAlwaysOn(); isAmbientMode = true; break; break; default: default: isAmbientMode = false; isAmbientMode = false; Loading @@ -81,7 +74,9 @@ public class DozeWallpaperState implements DozeMachine.Part { if (isAmbientMode) { if (isAmbientMode) { animated = mDozeParameters.shouldControlScreenOff(); animated = mDozeParameters.shouldControlScreenOff(); } else { } else { animated = !mDozeParameters.getDisplayNeedsBlanking(); boolean wakingUpFromPulse = oldState == DozeMachine.State.DOZE_PULSING && newState == DozeMachine.State.FINISH; animated = !mDozeParameters.getDisplayNeedsBlanking() || wakingUpFromPulse; } } if (isAmbientMode != mIsAmbientMode) { if (isAmbientMode != mIsAmbientMode) { Loading
packages/SystemUI/tests/src/com/android/systemui/doze/DozeWallpaperStateTest.java +25 −3 Original line number Original line Diff line number Diff line Loading @@ -45,13 +45,11 @@ public class DozeWallpaperStateTest extends SysuiTestCase { private DozeWallpaperState mDozeWallpaperState; private DozeWallpaperState mDozeWallpaperState; @Mock IWallpaperManager mIWallpaperManager; @Mock IWallpaperManager mIWallpaperManager; @Mock DozeParameters mDozeParameters; @Mock DozeParameters mDozeParameters; @Mock KeyguardUpdateMonitor mKeyguardUpdateMonitor; @Before @Before public void setUp() { public void setUp() { MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this); mDozeWallpaperState = new DozeWallpaperState(mIWallpaperManager, mDozeParameters, mDozeWallpaperState = new DozeWallpaperState(mIWallpaperManager, mDozeParameters); mKeyguardUpdateMonitor); } } @Test @Test Loading Loading @@ -100,4 +98,28 @@ public class DozeWallpaperStateTest extends SysuiTestCase { mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_AOD, DozeMachine.State.FINISH); mDozeWallpaperState.transitionTo(DozeMachine.State.DOZE_AOD, DozeMachine.State.FINISH); verify(mIWallpaperManager).setInAmbientMode(eq(false), eq(false)); 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)); } } }