Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +10 −10 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo private final DozeParameters mDozeParameters; private final AlarmTimeout mTimeTicker; private final KeyguardVisibilityCallback mKeyguardVisibilityCallback; private final Handler mHandler; private final SysuiColorExtractor mColorExtractor; private GradientColors mLockColors; Loading Loading @@ -174,8 +175,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo mKeyguardVisibilityCallback = new KeyguardVisibilityCallback(); mKeyguardUpdateMonitor.registerCallback(mKeyguardVisibilityCallback); mScrimBehindAlphaResValue = mContext.getResources().getFloat(R.dimen.scrim_behind_alpha); mHandler = getHandler(); mTimeTicker = new AlarmTimeout(alarmManager, this::onHideWallpaperTimeout, "hide_aod_wallpaper", new Handler()); "hide_aod_wallpaper", mHandler); mWakeLock = createWakeLock(); // Scrim alpha is initially set to the value on the resource but might be changed // to make sure that text on top of it is legible. Loading Loading @@ -253,8 +255,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo mScrimBehind.removeCallbacks(mPendingFrameCallback); mPendingFrameCallback = null; } if (getHandler().hasCallbacks(mBlankingTransitionRunnable)) { getHandler().removeCallbacks(mBlankingTransitionRunnable); if (mHandler.hasCallbacks(mBlankingTransitionRunnable)) { mHandler.removeCallbacks(mBlankingTransitionRunnable); mBlankingTransitionRunnable = null; } Loading Loading @@ -768,7 +770,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo if (DEBUG) { Log.d(TAG, "Fading out scrims with delay: " + delay); } getHandler().postDelayed(mBlankingTransitionRunnable, delay); mHandler.postDelayed(mBlankingTransitionRunnable, delay); }; doOnTheNextFrame(mPendingFrameCallback); } Loading @@ -786,7 +788,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo @VisibleForTesting protected Handler getHandler() { return Handler.getMain(); return new Handler(); } public int getBackgroundColor() { Loading Loading @@ -821,8 +823,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo @VisibleForTesting protected WakeLock createWakeLock() { return new DelayedWakeLock(getHandler(), WakeLock.createPartial(mContext, "Scrims")); return new DelayedWakeLock(mHandler, WakeLock.createPartial(mContext, "Scrims")); } @Override Loading Loading @@ -853,12 +854,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo */ public void onScreenTurnedOn() { mScreenOn = true; final Handler handler = getHandler(); if (handler.hasCallbacks(mBlankingTransitionRunnable)) { if (mHandler.hasCallbacks(mBlankingTransitionRunnable)) { if (DEBUG) { Log.d(TAG, "Shorter blanking because screen turned on. All good."); } handler.removeCallbacks(mBlankingTransitionRunnable); mHandler.removeCallbacks(mBlankingTransitionRunnable); mBlankingTransitionRunnable.run(); } } Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +4 −12 Original line number Diff line number Diff line Loading @@ -37,12 +37,10 @@ import android.animation.ValueAnimator; import android.app.AlarmManager; import android.graphics.Color; import android.os.Handler; import android.os.Looper; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.View; import androidx.test.filters.FlakyTest; import androidx.test.filters.SmallTest; import com.android.internal.colorextraction.ColorExtractor.GradientColors; Loading Loading @@ -78,6 +76,7 @@ public class ScrimControllerTest extends SysuiTestCase { private WakeLock mWakeLock; private boolean mAlwaysOnEnabled; private AlarmManager mAlarmManager; private TestableLooper mLooper; @Before Loading @@ -88,6 +87,7 @@ public class ScrimControllerTest extends SysuiTestCase { mAlarmManager = mock(AlarmManager.class); mAlwaysOnEnabled = true; mDozeParamenters = mock(DozeParameters.class); mLooper = TestableLooper.get(this); when(mDozeParamenters.getAlwaysOn()).thenAnswer(invocation -> mAlwaysOnEnabled); when(mDozeParamenters.getDisplayNeedsBlanking()).thenReturn(true); mScrimController = new SynchronousScrimController(mScrimBehind, mScrimInFront, Loading Loading @@ -253,7 +253,6 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTint(mScrimBehind, false /* tinted */); } @FlakyTest(bugId = 124858892) @Test public void transitionToUnlocked() { mScrimController.setPanelExpansion(0f); Loading Loading @@ -298,7 +297,6 @@ public class ScrimControllerTest extends SysuiTestCase { Assert.assertEquals(mScrimState, ScrimState.BOUNCER_SCRIMMED); } @FlakyTest(bugId = 124858892) @Test public void panelExpansion() { mScrimController.setPanelExpansion(0f); Loading @@ -321,7 +319,6 @@ public class ScrimControllerTest extends SysuiTestCase { mScrimBehindAlpha, mScrimBehind.getViewAlpha(), 0.01f); } @FlakyTest(bugId = 124858892) @Test public void panelExpansionAffectsAlpha() { mScrimController.setPanelExpansion(0f); Loading Loading @@ -666,7 +663,6 @@ public class ScrimControllerTest extends SysuiTestCase { */ private class SynchronousScrimController extends ScrimController { private FakeHandler mHandler; private boolean mAnimationCancelled; boolean mOnPreDrawCalled; Loading @@ -676,7 +672,6 @@ public class ScrimControllerTest extends SysuiTestCase { AlarmManager alarmManager) { super(scrimBehind, scrimInFront, scrimStateListener, scrimVisibleListener, dozeParameters, alarmManager); mHandler = new FakeHandler(Looper.myLooper()); } @Override Loading @@ -688,13 +683,10 @@ public class ScrimControllerTest extends SysuiTestCase { void finishAnimationsImmediately() { boolean[] animationFinished = {false}; setOnAnimationFinished(()-> animationFinished[0] = true); // Execute code that will trigger animations. onPreDraw(); // Force finish screen blanking. mHandler.dispatchQueuedMessages(); // Force finish all animations. mLooper.processAllMessages(); endAnimation(mScrimBehind, TAG_KEY_ANIM); endAnimation(mScrimInFront, TAG_KEY_ANIM); Loading Loading @@ -724,7 +716,7 @@ public class ScrimControllerTest extends SysuiTestCase { @Override protected Handler getHandler() { return mHandler; return new FakeHandler(mLooper.getLooper()); } @Override Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +10 −10 Original line number Diff line number Diff line Loading @@ -114,6 +114,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo private final DozeParameters mDozeParameters; private final AlarmTimeout mTimeTicker; private final KeyguardVisibilityCallback mKeyguardVisibilityCallback; private final Handler mHandler; private final SysuiColorExtractor mColorExtractor; private GradientColors mLockColors; Loading Loading @@ -174,8 +175,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo mKeyguardVisibilityCallback = new KeyguardVisibilityCallback(); mKeyguardUpdateMonitor.registerCallback(mKeyguardVisibilityCallback); mScrimBehindAlphaResValue = mContext.getResources().getFloat(R.dimen.scrim_behind_alpha); mHandler = getHandler(); mTimeTicker = new AlarmTimeout(alarmManager, this::onHideWallpaperTimeout, "hide_aod_wallpaper", new Handler()); "hide_aod_wallpaper", mHandler); mWakeLock = createWakeLock(); // Scrim alpha is initially set to the value on the resource but might be changed // to make sure that text on top of it is legible. Loading Loading @@ -253,8 +255,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo mScrimBehind.removeCallbacks(mPendingFrameCallback); mPendingFrameCallback = null; } if (getHandler().hasCallbacks(mBlankingTransitionRunnable)) { getHandler().removeCallbacks(mBlankingTransitionRunnable); if (mHandler.hasCallbacks(mBlankingTransitionRunnable)) { mHandler.removeCallbacks(mBlankingTransitionRunnable); mBlankingTransitionRunnable = null; } Loading Loading @@ -768,7 +770,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo if (DEBUG) { Log.d(TAG, "Fading out scrims with delay: " + delay); } getHandler().postDelayed(mBlankingTransitionRunnable, delay); mHandler.postDelayed(mBlankingTransitionRunnable, delay); }; doOnTheNextFrame(mPendingFrameCallback); } Loading @@ -786,7 +788,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo @VisibleForTesting protected Handler getHandler() { return Handler.getMain(); return new Handler(); } public int getBackgroundColor() { Loading Loading @@ -821,8 +823,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo @VisibleForTesting protected WakeLock createWakeLock() { return new DelayedWakeLock(getHandler(), WakeLock.createPartial(mContext, "Scrims")); return new DelayedWakeLock(mHandler, WakeLock.createPartial(mContext, "Scrims")); } @Override Loading Loading @@ -853,12 +854,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, OnCo */ public void onScreenTurnedOn() { mScreenOn = true; final Handler handler = getHandler(); if (handler.hasCallbacks(mBlankingTransitionRunnable)) { if (mHandler.hasCallbacks(mBlankingTransitionRunnable)) { if (DEBUG) { Log.d(TAG, "Shorter blanking because screen turned on. All good."); } handler.removeCallbacks(mBlankingTransitionRunnable); mHandler.removeCallbacks(mBlankingTransitionRunnable); mBlankingTransitionRunnable.run(); } } Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/ScrimControllerTest.java +4 −12 Original line number Diff line number Diff line Loading @@ -37,12 +37,10 @@ import android.animation.ValueAnimator; import android.app.AlarmManager; import android.graphics.Color; import android.os.Handler; import android.os.Looper; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.View; import androidx.test.filters.FlakyTest; import androidx.test.filters.SmallTest; import com.android.internal.colorextraction.ColorExtractor.GradientColors; Loading Loading @@ -78,6 +76,7 @@ public class ScrimControllerTest extends SysuiTestCase { private WakeLock mWakeLock; private boolean mAlwaysOnEnabled; private AlarmManager mAlarmManager; private TestableLooper mLooper; @Before Loading @@ -88,6 +87,7 @@ public class ScrimControllerTest extends SysuiTestCase { mAlarmManager = mock(AlarmManager.class); mAlwaysOnEnabled = true; mDozeParamenters = mock(DozeParameters.class); mLooper = TestableLooper.get(this); when(mDozeParamenters.getAlwaysOn()).thenAnswer(invocation -> mAlwaysOnEnabled); when(mDozeParamenters.getDisplayNeedsBlanking()).thenReturn(true); mScrimController = new SynchronousScrimController(mScrimBehind, mScrimInFront, Loading Loading @@ -253,7 +253,6 @@ public class ScrimControllerTest extends SysuiTestCase { assertScrimTint(mScrimBehind, false /* tinted */); } @FlakyTest(bugId = 124858892) @Test public void transitionToUnlocked() { mScrimController.setPanelExpansion(0f); Loading Loading @@ -298,7 +297,6 @@ public class ScrimControllerTest extends SysuiTestCase { Assert.assertEquals(mScrimState, ScrimState.BOUNCER_SCRIMMED); } @FlakyTest(bugId = 124858892) @Test public void panelExpansion() { mScrimController.setPanelExpansion(0f); Loading @@ -321,7 +319,6 @@ public class ScrimControllerTest extends SysuiTestCase { mScrimBehindAlpha, mScrimBehind.getViewAlpha(), 0.01f); } @FlakyTest(bugId = 124858892) @Test public void panelExpansionAffectsAlpha() { mScrimController.setPanelExpansion(0f); Loading Loading @@ -666,7 +663,6 @@ public class ScrimControllerTest extends SysuiTestCase { */ private class SynchronousScrimController extends ScrimController { private FakeHandler mHandler; private boolean mAnimationCancelled; boolean mOnPreDrawCalled; Loading @@ -676,7 +672,6 @@ public class ScrimControllerTest extends SysuiTestCase { AlarmManager alarmManager) { super(scrimBehind, scrimInFront, scrimStateListener, scrimVisibleListener, dozeParameters, alarmManager); mHandler = new FakeHandler(Looper.myLooper()); } @Override Loading @@ -688,13 +683,10 @@ public class ScrimControllerTest extends SysuiTestCase { void finishAnimationsImmediately() { boolean[] animationFinished = {false}; setOnAnimationFinished(()-> animationFinished[0] = true); // Execute code that will trigger animations. onPreDraw(); // Force finish screen blanking. mHandler.dispatchQueuedMessages(); // Force finish all animations. mLooper.processAllMessages(); endAnimation(mScrimBehind, TAG_KEY_ANIM); endAnimation(mScrimInFront, TAG_KEY_ANIM); Loading Loading @@ -724,7 +716,7 @@ public class ScrimControllerTest extends SysuiTestCase { @Override protected Handler getHandler() { return mHandler; return new FakeHandler(mLooper.getLooper()); } @Override Loading