Merge "Fix lingering theme color reset on reboot issue" into tm-qpr-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
f5283b48dc
@@ -171,6 +171,10 @@ public class ThemeOverlayController extends CoreStartable implements Dumpable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onColorsChanged(WallpaperColors wallpaperColors, int which, int userId) {
|
public void onColorsChanged(WallpaperColors wallpaperColors, int which, int userId) {
|
||||||
|
WallpaperColors currentColors = mCurrentColors.get(userId);
|
||||||
|
if (wallpaperColors != null && wallpaperColors.equals(currentColors)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
boolean currentUser = userId == mUserTracker.getUserId();
|
boolean currentUser = userId == mUserTracker.getUserId();
|
||||||
if (currentUser && !mAcceptColorEvents
|
if (currentUser && !mAcceptColorEvents
|
||||||
&& mWakefulnessLifecycle.getWakefulness() != WAKEFULNESS_ASLEEP) {
|
&& mWakefulnessLifecycle.getWakefulness() != WAKEFULNESS_ASLEEP) {
|
||||||
|
|||||||
@@ -885,4 +885,31 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
|
|||||||
assertThat(themeOverlays.getValue().get(OVERLAY_CATEGORY_SYSTEM_PALETTE))
|
assertThat(themeOverlays.getValue().get(OVERLAY_CATEGORY_SYSTEM_PALETTE))
|
||||||
.isEqualTo(new OverlayIdentifier("ff00ff00"));
|
.isEqualTo(new OverlayIdentifier("ff00ff00"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Regression test for b/234603929, where a reboot would generate a wallpaper colors changed
|
||||||
|
// event for the already-set colors that would then set the theme incorrectly on screen sleep.
|
||||||
|
@Test
|
||||||
|
public void onWallpaperColorsSetToSame_keepsTheme() {
|
||||||
|
// Set initial colors and verify.
|
||||||
|
WallpaperColors startingColors = new WallpaperColors(Color.valueOf(Color.RED),
|
||||||
|
Color.valueOf(Color.BLUE), null);
|
||||||
|
WallpaperColors sameColors = new WallpaperColors(Color.valueOf(Color.RED),
|
||||||
|
Color.valueOf(Color.BLUE), null);
|
||||||
|
mColorsListener.getValue().onColorsChanged(startingColors, WallpaperManager.FLAG_SYSTEM,
|
||||||
|
USER_SYSTEM);
|
||||||
|
verify(mThemeOverlayApplier)
|
||||||
|
.applyCurrentUserOverlays(any(), any(), anyInt(), any());
|
||||||
|
clearInvocations(mThemeOverlayApplier);
|
||||||
|
|
||||||
|
// Set to the same colors.
|
||||||
|
mColorsListener.getValue().onColorsChanged(sameColors, WallpaperManager.FLAG_SYSTEM,
|
||||||
|
USER_SYSTEM);
|
||||||
|
verify(mThemeOverlayApplier, never())
|
||||||
|
.applyCurrentUserOverlays(any(), any(), anyInt(), any());
|
||||||
|
|
||||||
|
// Verify that no change resulted.
|
||||||
|
mWakefulnessLifecycleObserver.getValue().onFinishedGoingToSleep();
|
||||||
|
verify(mThemeOverlayApplier, never()).applyCurrentUserOverlays(any(), any(), anyInt(),
|
||||||
|
any());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user