Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java +6 −14 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.systemui.statusbar.phone; import android.annotation.NonNull; import android.content.Context; import android.os.Handler; import android.util.Log; Loading @@ -33,7 +32,6 @@ public class DozeScrimController { private final DozeParameters mDozeParameters; private final Handler mHandler = new Handler(); private final ScrimController mScrimController; private boolean mDozing; private DozeHost.PulseCallback mPulseCallback; Loading Loading @@ -83,9 +81,7 @@ public class DozeScrimController { } }; public DozeScrimController(ScrimController scrimController, Context context, DozeParameters dozeParameters) { mScrimController = scrimController; public DozeScrimController(DozeParameters dozeParameters) { mDozeParameters = dozeParameters; } Loading Loading @@ -117,8 +113,6 @@ public class DozeScrimController { // be invoked when we're done so that the caller can drop the pulse wakelock. mPulseCallback = callback; mPulseReason = reason; mScrimController.transitionTo(ScrimState.PULSING, mScrimCallback); } public void pulseOutNow() { Loading Loading @@ -180,13 +174,11 @@ public class DozeScrimController { mHandler.removeCallbacks(mPulseOutExtended); if (DEBUG) Log.d(TAG, "Pulse out, mDozing=" + mDozing); if (!mDozing) return; mScrimController.transitionTo(ScrimState.AOD, new ScrimController.Callback() { @Override public void onDisplayBlanked() { pulseFinished(); } }); } }; public ScrimController.Callback getScrimCallback() { return mScrimCallback; } } No newline at end of file packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +9 −6 Original line number Diff line number Diff line Loading @@ -882,8 +882,7 @@ public class StatusBar extends SystemUI implements DemoMode, mContext.getSystemService(AlarmManager.class)); mNotificationPanel.initDependencies(this, mGroupManager, mNotificationShelf, mHeadsUpManager, mNotificationIconAreaController, mScrimController); mDozeScrimController = new DozeScrimController(mScrimController, context, DozeParameters.getInstance(context)); mDozeScrimController = new DozeScrimController(DozeParameters.getInstance(context)); mBackdrop = mStatusBarWindow.findViewById(R.id.backdrop); mBackdropFront = mBackdrop.findViewById(R.id.backdrop_front); Loading Loading @@ -1519,7 +1518,7 @@ public class StatusBar extends SystemUI implements DemoMode, } public boolean isPulsing() { return mDozeScrimController != null && mDozeScrimController.isPulsing(); return mAmbientPulseManager.hasNotifications(); } public boolean isLaunchTransitionFadingAway() { Loading Loading @@ -3648,7 +3647,6 @@ public class StatusBar extends SystemUI implements DemoMode, mNotificationPanel.setTouchAndAnimationDisabled(false); updateVisibleToUser(); updateIsKeyguard(); updateScrimController(); } }; Loading Loading @@ -3834,8 +3832,9 @@ public class StatusBar extends SystemUI implements DemoMode, } else if (mBrightnessMirrorVisible) { mScrimController.transitionTo(ScrimState.BRIGHTNESS_MIRROR); } else if (isPulsing()) { // Handled in DozeScrimController#setPulsing } else if (mDozing) { mScrimController.transitionTo(ScrimState.PULSING, mDozeScrimController.getScrimCallback()); } else if (mDozing && !wakeAndUnlocking) { mScrimController.transitionTo(ScrimState.AOD); } else if (mIsKeyguard && !wakeAndUnlocking) { mScrimController.transitionTo(mNotificationPanel.isSemiAwake() Loading Loading @@ -3928,8 +3927,12 @@ public class StatusBar extends SystemUI implements DemoMode, mNotificationPanel.setPulsing(pulsing); mVisualStabilityManager.setPulsing(pulsing); mIgnoreTouchWhilePulsing = false; updateScrimController(); } }, reason); // DozeScrimController is in pulse state, now let's ask ScrimController to start // pulsing and draw the black frame, if necessary. updateScrimController(); } @Override Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeScrimControllerTest.java +6 −25 Original line number Diff line number Diff line Loading @@ -16,14 +16,10 @@ package com.android.systemui.statusbar.phone; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import android.os.Debug; import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; Loading @@ -42,8 +38,6 @@ import org.mockito.MockitoAnnotations; @SmallTest public class DozeScrimControllerTest extends SysuiTestCase { @Mock private ScrimController mScrimController; @Mock private DozeParameters mDozeParameters; private DozeScrimController mDozeScrimController; Loading @@ -51,33 +45,20 @@ public class DozeScrimControllerTest extends SysuiTestCase { @Before public void setup() { MockitoAnnotations.initMocks(this); // Make sure callbacks will be invoked to complete the lifecycle. doAnswer(invocationOnMock -> { ScrimController.Callback callback = invocationOnMock.getArgument(1); callback.onStart(); callback.onDisplayBlanked(); callback.onFinished(); return null; }).when(mScrimController).transitionTo(any(ScrimState.class), any(ScrimController.Callback.class)); mDozeScrimController = new DozeScrimController(mScrimController, getContext(), mDozeParameters); mDozeScrimController = new DozeScrimController(mDozeParameters); mDozeScrimController.setDozing(true); } @Test public void changesScrimControllerState() { mDozeScrimController.pulse(mock(DozeHost.PulseCallback.class), 0); verify(mScrimController).transitionTo(eq(ScrimState.PULSING), any(ScrimController.Callback.class)); } @Test public void callsPulseCallback() { DozeHost.PulseCallback callback = mock(DozeHost.PulseCallback.class); mDozeScrimController.pulse(callback, 0); // Manually simulate a scrim lifecycle mDozeScrimController.getScrimCallback().onStart(); mDozeScrimController.getScrimCallback().onDisplayBlanked(); mDozeScrimController.getScrimCallback().onFinished(); verify(callback).onPulseStarted(); mDozeScrimController.pulseOutNow(); verify(callback).onPulseFinished(); Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/DozeScrimController.java +6 −14 Original line number Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.systemui.statusbar.phone; import android.annotation.NonNull; import android.content.Context; import android.os.Handler; import android.util.Log; Loading @@ -33,7 +32,6 @@ public class DozeScrimController { private final DozeParameters mDozeParameters; private final Handler mHandler = new Handler(); private final ScrimController mScrimController; private boolean mDozing; private DozeHost.PulseCallback mPulseCallback; Loading Loading @@ -83,9 +81,7 @@ public class DozeScrimController { } }; public DozeScrimController(ScrimController scrimController, Context context, DozeParameters dozeParameters) { mScrimController = scrimController; public DozeScrimController(DozeParameters dozeParameters) { mDozeParameters = dozeParameters; } Loading Loading @@ -117,8 +113,6 @@ public class DozeScrimController { // be invoked when we're done so that the caller can drop the pulse wakelock. mPulseCallback = callback; mPulseReason = reason; mScrimController.transitionTo(ScrimState.PULSING, mScrimCallback); } public void pulseOutNow() { Loading Loading @@ -180,13 +174,11 @@ public class DozeScrimController { mHandler.removeCallbacks(mPulseOutExtended); if (DEBUG) Log.d(TAG, "Pulse out, mDozing=" + mDozing); if (!mDozing) return; mScrimController.transitionTo(ScrimState.AOD, new ScrimController.Callback() { @Override public void onDisplayBlanked() { pulseFinished(); } }); } }; public ScrimController.Callback getScrimCallback() { return mScrimCallback; } } No newline at end of file
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +9 −6 Original line number Diff line number Diff line Loading @@ -882,8 +882,7 @@ public class StatusBar extends SystemUI implements DemoMode, mContext.getSystemService(AlarmManager.class)); mNotificationPanel.initDependencies(this, mGroupManager, mNotificationShelf, mHeadsUpManager, mNotificationIconAreaController, mScrimController); mDozeScrimController = new DozeScrimController(mScrimController, context, DozeParameters.getInstance(context)); mDozeScrimController = new DozeScrimController(DozeParameters.getInstance(context)); mBackdrop = mStatusBarWindow.findViewById(R.id.backdrop); mBackdropFront = mBackdrop.findViewById(R.id.backdrop_front); Loading Loading @@ -1519,7 +1518,7 @@ public class StatusBar extends SystemUI implements DemoMode, } public boolean isPulsing() { return mDozeScrimController != null && mDozeScrimController.isPulsing(); return mAmbientPulseManager.hasNotifications(); } public boolean isLaunchTransitionFadingAway() { Loading Loading @@ -3648,7 +3647,6 @@ public class StatusBar extends SystemUI implements DemoMode, mNotificationPanel.setTouchAndAnimationDisabled(false); updateVisibleToUser(); updateIsKeyguard(); updateScrimController(); } }; Loading Loading @@ -3834,8 +3832,9 @@ public class StatusBar extends SystemUI implements DemoMode, } else if (mBrightnessMirrorVisible) { mScrimController.transitionTo(ScrimState.BRIGHTNESS_MIRROR); } else if (isPulsing()) { // Handled in DozeScrimController#setPulsing } else if (mDozing) { mScrimController.transitionTo(ScrimState.PULSING, mDozeScrimController.getScrimCallback()); } else if (mDozing && !wakeAndUnlocking) { mScrimController.transitionTo(ScrimState.AOD); } else if (mIsKeyguard && !wakeAndUnlocking) { mScrimController.transitionTo(mNotificationPanel.isSemiAwake() Loading Loading @@ -3928,8 +3927,12 @@ public class StatusBar extends SystemUI implements DemoMode, mNotificationPanel.setPulsing(pulsing); mVisualStabilityManager.setPulsing(pulsing); mIgnoreTouchWhilePulsing = false; updateScrimController(); } }, reason); // DozeScrimController is in pulse state, now let's ask ScrimController to start // pulsing and draw the black frame, if necessary. updateScrimController(); } @Override Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/DozeScrimControllerTest.java +6 −25 Original line number Diff line number Diff line Loading @@ -16,14 +16,10 @@ package com.android.systemui.statusbar.phone; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doAnswer; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.verify; import android.os.Debug; import android.support.test.filters.SmallTest; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; Loading @@ -42,8 +38,6 @@ import org.mockito.MockitoAnnotations; @SmallTest public class DozeScrimControllerTest extends SysuiTestCase { @Mock private ScrimController mScrimController; @Mock private DozeParameters mDozeParameters; private DozeScrimController mDozeScrimController; Loading @@ -51,33 +45,20 @@ public class DozeScrimControllerTest extends SysuiTestCase { @Before public void setup() { MockitoAnnotations.initMocks(this); // Make sure callbacks will be invoked to complete the lifecycle. doAnswer(invocationOnMock -> { ScrimController.Callback callback = invocationOnMock.getArgument(1); callback.onStart(); callback.onDisplayBlanked(); callback.onFinished(); return null; }).when(mScrimController).transitionTo(any(ScrimState.class), any(ScrimController.Callback.class)); mDozeScrimController = new DozeScrimController(mScrimController, getContext(), mDozeParameters); mDozeScrimController = new DozeScrimController(mDozeParameters); mDozeScrimController.setDozing(true); } @Test public void changesScrimControllerState() { mDozeScrimController.pulse(mock(DozeHost.PulseCallback.class), 0); verify(mScrimController).transitionTo(eq(ScrimState.PULSING), any(ScrimController.Callback.class)); } @Test public void callsPulseCallback() { DozeHost.PulseCallback callback = mock(DozeHost.PulseCallback.class); mDozeScrimController.pulse(callback, 0); // Manually simulate a scrim lifecycle mDozeScrimController.getScrimCallback().onStart(); mDozeScrimController.getScrimCallback().onDisplayBlanked(); mDozeScrimController.getScrimCallback().onFinished(); verify(callback).onPulseStarted(); mDozeScrimController.pulseOutNow(); verify(callback).onPulseFinished(); Loading