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

Commit 77c185d8 authored by Lucas Dupin's avatar Lucas Dupin Committed by Automerger Merge Worker
Browse files

Merge "Do not add suffix to fixed colors" into udc-dev am: 5a024a35

parents 689c6576 5a024a35
Loading
Loading
Loading
Loading
+18 −13
Original line number Diff line number Diff line
@@ -56,18 +56,6 @@ class DynamicColors {
                Pair.create("on_error", MDC.onError()),
                Pair.create("error_container", MDC.errorContainer()),
                Pair.create("on_error_container", MDC.onErrorContainer()),
                Pair.create("primary_fixed", MDC.primaryFixed()),
                Pair.create("primary_fixed_dim", MDC.primaryFixedDim()),
                Pair.create("on_primary_fixed", MDC.onPrimaryFixed()),
                Pair.create("on_primary_fixed_variant", MDC.onPrimaryFixedVariant()),
                Pair.create("secondary_fixed", MDC.secondaryFixed()),
                Pair.create("secondary_fixed_dim", MDC.secondaryFixedDim()),
                Pair.create("on_secondary_fixed", MDC.onSecondaryFixed()),
                Pair.create("on_secondary_fixed_variant", MDC.onSecondaryFixedVariant()),
                Pair.create("tertiary_fixed", MDC.tertiaryFixed()),
                Pair.create("tertiary_fixed_dim", MDC.tertiaryFixedDim()),
                Pair.create("on_tertiary_fixed", MDC.onTertiaryFixed()),
                Pair.create("on_tertiary_fixed_variant", MDC.onTertiaryFixedVariant()),
                Pair.create("control_activated", MDC.controlActivated()),
                Pair.create("control_normal", MDC.controlNormal()),
                Pair.create("control_highlight", MDC.controlHighlight()),
@@ -92,7 +80,24 @@ class DynamicColors {
                Pair.create(
                    "palette_key_color_neutral_variant",
                    MDC.neutralVariantPaletteKeyColor()
                ),
            )

        @JvmField
        val FIXED_COLORS_MAPPED: List<Pair<String, DynamicColor>> =
            arrayListOf(
                Pair.create("primary_fixed", MDC.primaryFixed()),
                Pair.create("primary_fixed_dim", MDC.primaryFixedDim()),
                Pair.create("on_primary_fixed", MDC.onPrimaryFixed()),
                Pair.create("on_primary_fixed_variant", MDC.onPrimaryFixedVariant()),
                Pair.create("secondary_fixed", MDC.secondaryFixed()),
                Pair.create("secondary_fixed_dim", MDC.secondaryFixedDim()),
                Pair.create("on_secondary_fixed", MDC.onSecondaryFixed()),
                Pair.create("on_secondary_fixed_variant", MDC.onSecondaryFixedVariant()),
                Pair.create("tertiary_fixed", MDC.tertiaryFixed()),
                Pair.create("tertiary_fixed_dim", MDC.tertiaryFixedDim()),
                Pair.create("on_tertiary_fixed", MDC.onTertiaryFixed()),
                Pair.create("on_tertiary_fixed_variant", MDC.onTertiaryFixedVariant()),
            )
    }
}
+13 −1
Original line number Diff line number Diff line
@@ -624,6 +624,7 @@ public class ThemeOverlayController implements CoreStartable, Dumpable {
        FabricatedOverlay overlay = newFabricatedOverlay("dynamic");
        assignDynamicPaletteToOverlay(overlay, true /* isDark */);
        assignDynamicPaletteToOverlay(overlay, false /* isDark */);
        assignFixedColorsToOverlay(overlay);
        return overlay;
    }

@@ -638,6 +639,15 @@ public class ThemeOverlayController implements CoreStartable, Dumpable {
        });
    }

    private void assignFixedColorsToOverlay(FabricatedOverlay overlay) {
        DynamicColors.FIXED_COLORS_MAPPED.forEach(p -> {
            String resourceName = "android:color/system_" + p.first;
            int colorValue = p.second.getArgb(mDynamicSchemeLight);
            overlay.setResourceValue(resourceName, TYPE_INT_COLOR_ARGB8, colorValue,
                    null /* configuration */);
        });
    }

    /**
     * Checks if the color scheme in mColorScheme matches the current system palettes.
     * @param managedProfiles List of managed profiles for this user.
@@ -666,7 +676,9 @@ public class ThemeOverlayController implements CoreStartable, Dumpable {
                    && res.getColor(android.R.color.system_primary_container_dark, theme)
                    == MaterialDynamicColors.primaryContainer().getArgb(mDynamicSchemeDark)
                    && res.getColor(android.R.color.system_primary_container_light, theme)
                    == MaterialDynamicColors.primaryContainer().getArgb(mDynamicSchemeLight))) {
                    == MaterialDynamicColors.primaryContainer().getArgb(mDynamicSchemeLight)
                    && res.getColor(android.R.color.system_primary_fixed, theme)
                    == MaterialDynamicColors.primaryFixed().getArgb(mDynamicSchemeLight))) {
                return false;
            }
        }
+37 −0
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.systemui.theme;

import static android.util.TypedValue.TYPE_INT_COLOR_ARGB8;

import static com.android.systemui.keyguard.WakefulnessLifecycle.WAKEFULNESS_AWAKE;
import static com.android.systemui.theme.ThemeOverlayApplier.OVERLAY_CATEGORY_ACCENT_COLOR;
import static com.android.systemui.theme.ThemeOverlayApplier.OVERLAY_CATEGORY_SYSTEM_PALETTE;
@@ -29,6 +31,7 @@ import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.when;
@@ -926,4 +929,38 @@ public class ThemeOverlayControllerTest extends SysuiTestCase {
        verify(mThemeOverlayApplier, never()).applyCurrentUserOverlays(any(), any(), anyInt(),
                any());
    }

    @Test
    public void createDynamicOverlay_addsAllDynamicColors() {
        // Trigger new wallpaper colors to generate an overlay
        WallpaperColors mainColors = new WallpaperColors(Color.valueOf(Color.RED),
                Color.valueOf(Color.BLUE), null);
        mColorsListener.getValue().onColorsChanged(mainColors, WallpaperManager.FLAG_SYSTEM,
                USER_SYSTEM);
        ArgumentCaptor<FabricatedOverlay[]> themeOverlays =
                ArgumentCaptor.forClass(FabricatedOverlay[].class);

        verify(mThemeOverlayApplier)
                .applyCurrentUserOverlays(any(), themeOverlays.capture(), anyInt(), any());

        FabricatedOverlay[] overlays = themeOverlays.getValue();
        FabricatedOverlay accents = overlays[0];
        FabricatedOverlay neutrals = overlays[1];
        FabricatedOverlay dynamic = overlays[2];

        final int colorsPerPalette = 12;

        // Color resources were added for all 3 accent palettes
        verify(accents, times(colorsPerPalette * 3))
                .setResourceValue(any(String.class), eq(TYPE_INT_COLOR_ARGB8), anyInt(), eq(null));
        // Color resources were added for all 2 neutral palettes
        verify(neutrals, times(colorsPerPalette * 2))
                .setResourceValue(any(String.class), eq(TYPE_INT_COLOR_ARGB8), anyInt(), eq(null));
        // All dynamic colors were added twice: light and dark them
        // All fixed colors were added once
        verify(dynamic, times(
                DynamicColors.ALL_DYNAMIC_COLORS_MAPPED.size() * 2
                        + DynamicColors.FIXED_COLORS_MAPPED.size())
        ).setResourceValue(any(String.class), eq(TYPE_INT_COLOR_ARGB8), anyInt(), eq(null));
    }
}