Fix race condition wen setting boot color sysprops (round 2)

Bug: 197690550
Test: ThemeOverlayApplierTest, ThemeOverlayControllerTest. Set wallpaper
and reboot.

Change-Id: I7d304d442e3f6839ad047944cae21dc07d7c3dea
Merged-In: I7d304d442e3f6839ad047944cae21dc07d7c3dea
This commit is contained in:
Shan Huang
2021-09-17 00:54:03 +00:00
parent 7f973b2e6e
commit 684b66adb2
4 changed files with 36 additions and 45 deletions

View File

@@ -178,8 +178,7 @@ public class ThemeOverlayApplier implements Dumpable {
Map<String, OverlayIdentifier> categoryToPackage, Map<String, OverlayIdentifier> categoryToPackage,
FabricatedOverlay[] pendingCreation, FabricatedOverlay[] pendingCreation,
int currentUser, int currentUser,
Set<UserHandle> managedProfiles, Set<UserHandle> managedProfiles) {
Runnable onOverlaysApplied) {
mBgExecutor.execute(() -> { mBgExecutor.execute(() -> {
// Disable all overlays that have not been specified in the user setting. // Disable all overlays that have not been specified in the user setting.
@@ -226,7 +225,6 @@ public class ThemeOverlayApplier implements Dumpable {
try { try {
mOverlayManager.commit(transaction.build()); mOverlayManager.commit(transaction.build());
mMainExecutor.execute(onOverlaysApplied);
} catch (SecurityException | IllegalStateException e) { } catch (SecurityException | IllegalStateException e) {
Log.e(TAG, "setEnabled failed", e); Log.e(TAG, "setEnabled failed", e);
} }

View File

@@ -549,21 +549,17 @@ public class ThemeOverlayController extends SystemUI implements Dumpable {
.map(key -> key + " -> " + categoryToPackage.get(key)).collect( .map(key -> key + " -> " + categoryToPackage.get(key)).collect(
Collectors.joining(", "))); Collectors.joining(", ")));
} }
Runnable overlaysAppliedRunnable = this::onOverlaysApplied;
if (mNeedsOverlayCreation) { if (mNeedsOverlayCreation) {
mNeedsOverlayCreation = false; mNeedsOverlayCreation = false;
mThemeManager.applyCurrentUserOverlays(categoryToPackage, new FabricatedOverlay[] { mThemeManager.applyCurrentUserOverlays(categoryToPackage, new FabricatedOverlay[] {
mSecondaryOverlay, mNeutralOverlay mSecondaryOverlay, mNeutralOverlay
}, currentUser, managedProfiles, overlaysAppliedRunnable); }, currentUser, managedProfiles);
} else { } else {
mThemeManager.applyCurrentUserOverlays(categoryToPackage, null, currentUser, mThemeManager.applyCurrentUserOverlays(categoryToPackage, null, currentUser,
managedProfiles, overlaysAppliedRunnable); managedProfiles);
} }
} }
protected void onOverlaysApplied() {
}
@Override @Override
public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) { public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) {
pw.println("mSystemColors=" + mCurrentColors); pw.println("mSystemColors=" + mCurrentColors);

View File

@@ -96,8 +96,6 @@ public class ThemeOverlayApplierTest extends SysuiTestCase {
DumpManager mDumpManager; DumpManager mDumpManager;
@Mock @Mock
OverlayManagerTransaction.Builder mTransactionBuilder; OverlayManagerTransaction.Builder mTransactionBuilder;
@Mock
Runnable mOnOverlaysApplied;
private ThemeOverlayApplier mManager; private ThemeOverlayApplier mManager;
private boolean mGetOverlayInfoEnabled = true; private boolean mGetOverlayInfoEnabled = true;
@@ -176,7 +174,7 @@ public class ThemeOverlayApplierTest extends SysuiTestCase {
@Test @Test
public void allCategoriesSpecified_allEnabledExclusively() { public void allCategoriesSpecified_allEnabledExclusively() {
mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, null, TEST_USER.getIdentifier(), mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, null, TEST_USER.getIdentifier(),
TEST_USER_HANDLES, mOnOverlaysApplied); TEST_USER_HANDLES);
verify(mOverlayManager).commit(any()); verify(mOverlayManager).commit(any());
for (OverlayIdentifier overlayPackage : ALL_CATEGORIES_MAP.values()) { for (OverlayIdentifier overlayPackage : ALL_CATEGORIES_MAP.values()) {
@@ -188,7 +186,7 @@ public class ThemeOverlayApplierTest extends SysuiTestCase {
@Test @Test
public void allCategoriesSpecified_sysuiCategoriesAlsoAppliedToSysuiUser() { public void allCategoriesSpecified_sysuiCategoriesAlsoAppliedToSysuiUser() {
mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, null, TEST_USER.getIdentifier(), mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, null, TEST_USER.getIdentifier(),
TEST_USER_HANDLES, mOnOverlaysApplied); TEST_USER_HANDLES);
for (Map.Entry<String, OverlayIdentifier> entry : ALL_CATEGORIES_MAP.entrySet()) { for (Map.Entry<String, OverlayIdentifier> entry : ALL_CATEGORIES_MAP.entrySet()) {
if (SYSTEM_USER_CATEGORIES.contains(entry.getKey())) { if (SYSTEM_USER_CATEGORIES.contains(entry.getKey())) {
@@ -205,9 +203,8 @@ public class ThemeOverlayApplierTest extends SysuiTestCase {
public void allCategoriesSpecified_enabledForAllUserHandles() { public void allCategoriesSpecified_enabledForAllUserHandles() {
Set<UserHandle> userHandles = Sets.newHashSet(TEST_USER_HANDLES); Set<UserHandle> userHandles = Sets.newHashSet(TEST_USER_HANDLES);
mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, null, TEST_USER.getIdentifier(), mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, null, TEST_USER.getIdentifier(),
userHandles, mOnOverlaysApplied); userHandles);
verify(mOnOverlaysApplied).run();
for (OverlayIdentifier overlayPackage : ALL_CATEGORIES_MAP.values()) { for (OverlayIdentifier overlayPackage : ALL_CATEGORIES_MAP.values()) {
verify(mTransactionBuilder).setEnabled(eq(overlayPackage), eq(true), verify(mTransactionBuilder).setEnabled(eq(overlayPackage), eq(true),
eq(TEST_USER.getIdentifier())); eq(TEST_USER.getIdentifier()));
@@ -223,7 +220,7 @@ public class ThemeOverlayApplierTest extends SysuiTestCase {
Set<UserHandle> userHandles = Sets.newHashSet(TEST_USER_HANDLES); Set<UserHandle> userHandles = Sets.newHashSet(TEST_USER_HANDLES);
mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, null, TEST_USER.getIdentifier(), mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, null, TEST_USER.getIdentifier(),
userHandles, mOnOverlaysApplied); userHandles);
for (OverlayIdentifier overlayPackage : ALL_CATEGORIES_MAP.values()) { for (OverlayIdentifier overlayPackage : ALL_CATEGORIES_MAP.values()) {
verify(mTransactionBuilder, never()).setEnabled(eq(overlayPackage), eq(true), verify(mTransactionBuilder, never()).setEnabled(eq(overlayPackage), eq(true),
@@ -237,7 +234,7 @@ public class ThemeOverlayApplierTest extends SysuiTestCase {
mock(FabricatedOverlay.class) mock(FabricatedOverlay.class)
}; };
mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, pendingCreation, mManager.applyCurrentUserOverlays(ALL_CATEGORIES_MAP, pendingCreation,
TEST_USER.getIdentifier(), TEST_USER_HANDLES, mOnOverlaysApplied); TEST_USER.getIdentifier(), TEST_USER_HANDLES);
for (FabricatedOverlay overlay : pendingCreation) { for (FabricatedOverlay overlay : pendingCreation) {
verify(mTransactionBuilder).registerFabricatedOverlay(eq(overlay)); verify(mTransactionBuilder).registerFabricatedOverlay(eq(overlay));
@@ -251,7 +248,7 @@ public class ThemeOverlayApplierTest extends SysuiTestCase {
categoryToPackage.remove(OVERLAY_CATEGORY_ICON_ANDROID); categoryToPackage.remove(OVERLAY_CATEGORY_ICON_ANDROID);
mManager.applyCurrentUserOverlays(categoryToPackage, null, TEST_USER.getIdentifier(), mManager.applyCurrentUserOverlays(categoryToPackage, null, TEST_USER.getIdentifier(),
TEST_USER_HANDLES, mOnOverlaysApplied); TEST_USER_HANDLES);
for (OverlayIdentifier overlayPackage : categoryToPackage.values()) { for (OverlayIdentifier overlayPackage : categoryToPackage.values()) {
verify(mTransactionBuilder).setEnabled(eq(overlayPackage), eq(true), verify(mTransactionBuilder).setEnabled(eq(overlayPackage), eq(true),
@@ -268,7 +265,7 @@ public class ThemeOverlayApplierTest extends SysuiTestCase {
@Test @Test
public void zeroCategoriesSpecified_allDisabled() { public void zeroCategoriesSpecified_allDisabled() {
mManager.applyCurrentUserOverlays(Maps.newArrayMap(), null, TEST_USER.getIdentifier(), mManager.applyCurrentUserOverlays(Maps.newArrayMap(), null, TEST_USER.getIdentifier(),
TEST_USER_HANDLES, mOnOverlaysApplied); TEST_USER_HANDLES);
for (String category : THEME_CATEGORIES) { for (String category : THEME_CATEGORIES) {
verify(mTransactionBuilder).setEnabled( verify(mTransactionBuilder).setEnabled(
@@ -283,7 +280,7 @@ public class ThemeOverlayApplierTest extends SysuiTestCase {
categoryToPackage.put("blah.category", new OverlayIdentifier("com.example.blah.category")); categoryToPackage.put("blah.category", new OverlayIdentifier("com.example.blah.category"));
mManager.applyCurrentUserOverlays(categoryToPackage, null, TEST_USER.getIdentifier(), mManager.applyCurrentUserOverlays(categoryToPackage, null, TEST_USER.getIdentifier(),
TEST_USER_HANDLES, mOnOverlaysApplied); TEST_USER_HANDLES);
verify(mTransactionBuilder, never()).setEnabled( verify(mTransactionBuilder, never()).setEnabled(
eq(new OverlayIdentifier("com.example.blah.category")), eq(false), eq(new OverlayIdentifier("com.example.blah.category")), eq(false),

View File

@@ -161,7 +161,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
ArgumentCaptor.forClass(Map.class); ArgumentCaptor.forClass(Map.class);
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(themeOverlays.capture(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(themeOverlays.capture(), any(), anyInt(), any());
// Assert that we received the colors that we were expecting // Assert that we received the colors that we were expecting
assertThat(themeOverlays.getValue().get(OVERLAY_CATEGORY_SYSTEM_PALETTE)) assertThat(themeOverlays.getValue().get(OVERLAY_CATEGORY_SYSTEM_PALETTE))
@@ -183,7 +183,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
mBroadcastReceiver.getValue().onReceive(null, new Intent(Intent.ACTION_WALLPAPER_CHANGED)); mBroadcastReceiver.getValue().onReceive(null, new Intent(Intent.ACTION_WALLPAPER_CHANGED));
mColorsListener.getValue().onColorsChanged(new WallpaperColors(Color.valueOf(Color.BLACK), mColorsListener.getValue().onColorsChanged(new WallpaperColors(Color.valueOf(Color.BLACK),
null, null), WallpaperManager.FLAG_SYSTEM); null, null), WallpaperManager.FLAG_SYSTEM);
verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -204,7 +204,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
ArgumentCaptor.forClass(Map.class); ArgumentCaptor.forClass(Map.class);
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(themeOverlays.capture(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(themeOverlays.capture(), any(), anyInt(), any());
// Assert that we received the colors that we were expecting // Assert that we received the colors that we were expecting
assertThat(themeOverlays.getValue().get(OVERLAY_CATEGORY_SYSTEM_PALETTE)) assertThat(themeOverlays.getValue().get(OVERLAY_CATEGORY_SYSTEM_PALETTE))
@@ -240,7 +240,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
.isFalse(); .isFalse();
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -270,7 +270,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
"android.theme.customization.color_both\":\"0")).isTrue(); "android.theme.customization.color_both\":\"0")).isTrue();
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -300,7 +300,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
"android.theme.customization.color_both\":\"1")).isTrue(); "android.theme.customization.color_both\":\"1")).isTrue();
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -327,7 +327,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
assertThat(updatedSetting.getValue().contains("android.theme.customization.color_index")) assertThat(updatedSetting.getValue().contains("android.theme.customization.color_index"))
.isFalse(); .isFalse();
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -354,7 +354,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
assertThat(updatedSetting.getValue().contains("android.theme.customization.color_index")) assertThat(updatedSetting.getValue().contains("android.theme.customization.color_index"))
.isFalse(); .isFalse();
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -382,7 +382,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
eq(Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES), updatedSetting.capture()); eq(Settings.Secure.THEME_CUSTOMIZATION_OVERLAY_PACKAGES), updatedSetting.capture());
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -411,14 +411,14 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
verify(mThemeOverlayApplier, never()) verify(mThemeOverlayApplier, never())
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
public void onProfileAdded_setsTheme() { public void onProfileAdded_setsTheme() {
mBroadcastReceiver.getValue().onReceive(null, mBroadcastReceiver.getValue().onReceive(null,
new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED)); new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED));
verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -428,7 +428,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
mBroadcastReceiver.getValue().onReceive(null, mBroadcastReceiver.getValue().onReceive(null,
new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED)); new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED));
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -438,7 +438,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
mBroadcastReceiver.getValue().onReceive(null, mBroadcastReceiver.getValue().onReceive(null,
new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED)); new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED));
verify(mThemeOverlayApplier, never()) verify(mThemeOverlayApplier, never())
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -450,7 +450,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
Color.valueOf(Color.BLUE), null); Color.valueOf(Color.BLUE), null);
mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_SYSTEM); mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_SYSTEM);
verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any());
// Regression test: null events should not reset the internal state and allow colors to be // Regression test: null events should not reset the internal state and allow colors to be
// applied again. // applied again.
@@ -458,11 +458,11 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
mBroadcastReceiver.getValue().onReceive(null, new Intent(Intent.ACTION_WALLPAPER_CHANGED)); mBroadcastReceiver.getValue().onReceive(null, new Intent(Intent.ACTION_WALLPAPER_CHANGED));
mColorsListener.getValue().onColorsChanged(null, WallpaperManager.FLAG_SYSTEM); mColorsListener.getValue().onColorsChanged(null, WallpaperManager.FLAG_SYSTEM);
verify(mThemeOverlayApplier, never()).applyCurrentUserOverlays(any(), any(), anyInt(), verify(mThemeOverlayApplier, never()).applyCurrentUserOverlays(any(), any(), anyInt(),
any(), any()); any());
mColorsListener.getValue().onColorsChanged(new WallpaperColors(Color.valueOf(Color.GREEN), mColorsListener.getValue().onColorsChanged(new WallpaperColors(Color.valueOf(Color.GREEN),
null, null), WallpaperManager.FLAG_SYSTEM); null, null), WallpaperManager.FLAG_SYSTEM);
verify(mThemeOverlayApplier, never()).applyCurrentUserOverlays(any(), any(), anyInt(), verify(mThemeOverlayApplier, never()).applyCurrentUserOverlays(any(), any(), anyInt(),
any(), any()); any());
} }
@Test @Test
@@ -499,7 +499,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
verify(mDeviceProvisionedController).addCallback(mDeviceProvisionedListener.capture()); verify(mDeviceProvisionedController).addCallback(mDeviceProvisionedListener.capture());
// Colors were applied during controller initialization. // Colors were applied during controller initialization.
verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any());
clearInvocations(mThemeOverlayApplier); clearInvocations(mThemeOverlayApplier);
} }
@@ -533,7 +533,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
verify(mDeviceProvisionedController).addCallback(mDeviceProvisionedListener.capture()); verify(mDeviceProvisionedController).addCallback(mDeviceProvisionedListener.capture());
// Colors were applied during controller initialization. // Colors were applied during controller initialization.
verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any());
clearInvocations(mThemeOverlayApplier); clearInvocations(mThemeOverlayApplier);
WallpaperColors mainColors = new WallpaperColors(Color.valueOf(Color.RED), WallpaperColors mainColors = new WallpaperColors(Color.valueOf(Color.RED),
@@ -542,12 +542,12 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
// Defers event because we already have initial colors. // Defers event because we already have initial colors.
verify(mThemeOverlayApplier, never()) verify(mThemeOverlayApplier, never())
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
// Then event happens after setup phase is over. // Then event happens after setup phase is over.
when(mDeviceProvisionedController.isCurrentUserSetup()).thenReturn(true); when(mDeviceProvisionedController.isCurrentUserSetup()).thenReturn(true);
mDeviceProvisionedListener.getValue().onUserSetupChanged(); mDeviceProvisionedListener.getValue().onUserSetupChanged();
verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -568,11 +568,11 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
Color.valueOf(Color.RED), null); Color.valueOf(Color.RED), null);
mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_SYSTEM); mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_SYSTEM);
verify(mThemeOverlayApplier, never()) verify(mThemeOverlayApplier, never())
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
mWakefulnessLifecycle.dispatchFinishedGoingToSleep(); mWakefulnessLifecycle.dispatchFinishedGoingToSleep();
verify(mThemeOverlayApplier, never()) verify(mThemeOverlayApplier, never())
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -592,10 +592,10 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
Color.valueOf(Color.RED), null); Color.valueOf(Color.RED), null);
mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_SYSTEM); mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_SYSTEM);
verify(mThemeOverlayApplier, never()) verify(mThemeOverlayApplier, never())
.applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(any(), any(), anyInt(), any());
mWakefulnessLifecycleObserver.getValue().onFinishedGoingToSleep(); mWakefulnessLifecycleObserver.getValue().onFinishedGoingToSleep();
verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any(), any()); verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any());
} }
@Test @Test
@@ -614,7 +614,7 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
ArgumentCaptor.forClass(Map.class); ArgumentCaptor.forClass(Map.class);
verify(mThemeOverlayApplier) verify(mThemeOverlayApplier)
.applyCurrentUserOverlays(themeOverlays.capture(), any(), anyInt(), any(), any()); .applyCurrentUserOverlays(themeOverlays.capture(), any(), anyInt(), any());
// Assert that we received the colors that we were expecting // Assert that we received the colors that we were expecting
assertThat(themeOverlays.getValue().get(OVERLAY_CATEGORY_SYSTEM_PALETTE)) assertThat(themeOverlays.getValue().get(OVERLAY_CATEGORY_SYSTEM_PALETTE))