Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f5bc353 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Do not reload theme when managed profile

When a managed profile is added, if setup wizard was not finished,
do not reload the theme, postpone until it's done

Bug: 185572689
Test: atest ThemeOverlayControllerTest
Change-Id: I0cb1b2316a6837d85cf708403a34c2459a1dcc5a
parent 469e1b49
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -166,6 +166,11 @@ public class ThemeOverlayController extends SystemUI implements Dumpable {
        public void onReceive(Context context, Intent intent) {
            if (Intent.ACTION_USER_SWITCHED.equals(intent.getAction())
                    || Intent.ACTION_MANAGED_PROFILE_ADDED.equals(intent.getAction())) {
                if (!mDeviceProvisionedController.isCurrentUserSetup()) {
                    Log.i(TAG, "User setup not finished when " + intent.getAction()
                            + " was received. Deferring...");
                    return;
                }
                if (DEBUG) Log.d(TAG, "Updating overlays for user switch / profile added.");
                reevaluateSystemTheme(true /* forceReload */);
            } else if (Intent.ACTION_WALLPAPER_CHANGED.equals(intent.getAction())) {
+16 −0
Original line number Diff line number Diff line
@@ -202,6 +202,22 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
                .isEqualTo(new OverlayIdentifier("override.package.name"));
    }

    @Test
    public void onProfileAdded_setsTheme() {
        mBroadcastReceiver.getValue().onReceive(null,
                new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED));
        verify(mThemeOverlayApplier).applyCurrentUserOverlays(any(), any(), anyInt(), any());
    }

    @Test
    public void onProfileAdded_ignoresUntilSetupComplete() {
        reset(mDeviceProvisionedController);
        mBroadcastReceiver.getValue().onReceive(null,
                new Intent(Intent.ACTION_MANAGED_PROFILE_ADDED));
        verify(mThemeOverlayApplier, never())
                .applyCurrentUserOverlays(any(), any(), anyInt(), any());
    }

    @Test
    public void onWallpaperColorsChanged_firstEventBeforeUserSetup_shouldBeAccepted() {
        // By default, on setup() we make this controller return that the user finished setup