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

Commit e453a478 authored by Daniel Norman's avatar Daniel Norman Committed by Android (Google) Code Review
Browse files

Merge "feat(mmad): Ensure splash screen backgrounds are dark when MMAD is enabled." into main

parents 355cdc38 80c4470f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -497,10 +497,12 @@ package android.app {

  public class UiModeManager {
    method @RequiresPermission(android.Manifest.permission.MODIFY_DAY_NIGHT_MODE) public int getAttentionModeThemeOverlay();
    method @FlaggedApi("android.view.accessibility.force_invert_color") public int getForceInvertState();
    method public boolean isNightModeLocked();
    method public boolean isUiModeLocked();
    method @RequiresPermission(value=android.Manifest.permission.TOGGLE_AUTOMOTIVE_PROJECTION, conditional=true) public boolean releaseProjection(int);
    method @RequiresPermission(value=android.Manifest.permission.TOGGLE_AUTOMOTIVE_PROJECTION, conditional=true) public boolean requestProjection(int);
    field @FlaggedApi("android.view.accessibility.force_invert_color") public static final int FORCE_INVERT_TYPE_DARK = 1; // 0x1
    field public static final int MODE_ATTENTION_THEME_OVERLAY_DAY = 1002; // 0x3ea
    field public static final int MODE_ATTENTION_THEME_OVERLAY_NIGHT = 1001; // 0x3e9
    field public static final int MODE_ATTENTION_THEME_OVERLAY_OFF = 1000; // 0x3e8
@@ -3069,6 +3071,7 @@ package android.provider {

  public static final class Settings.Secure extends android.provider.Settings.NameValueTable {
    field public static final String ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED = "accessibility_display_magnification_enabled";
    field @FlaggedApi("android.view.accessibility.force_invert_color") public static final String ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED = "accessibility_force_invert_color_enabled";
    field public static final String ACCESSIBILITY_MAGNIFICATION_CAPABILITY = "accessibility_magnification_capability";
    field public static final String ACCESSIBILITY_MAGNIFICATION_MODE = "accessibility_magnification_mode";
    field public static final int ACCESSIBILITY_MAGNIFICATION_MODE_ALL = 3; // 0x3
+4 −0
Original line number Diff line number Diff line
@@ -409,6 +409,8 @@ public class UiModeManager {
     *
     * @hide
     */
    @FlaggedApi(android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR)
    @TestApi
    public static final int FORCE_INVERT_TYPE_DARK = 1;

    /**
@@ -1550,6 +1552,8 @@ public class UiModeManager {
     *
     * @hide
     */
    @TestApi
    @FlaggedApi(android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR)
    @ForceInvertType
    public int getForceInvertState() {
        return sGlobals.getForceInvertState();
+3 −0
Original line number Diff line number Diff line
@@ -13156,7 +13156,10 @@ public final class Settings {
         *
         * @hide
         */
        @TestApi
        @Readable
        @FlaggedApi(android.view.accessibility.Flags.FLAG_FORCE_INVERT_COLOR)
        @SuppressLint("NoSettingsProvider")
        public static final String ACCESSIBILITY_FORCE_INVERT_COLOR_ENABLED =
                "accessibility_force_invert_color_enabled";
+10 −0
Original line number Diff line number Diff line
@@ -386,6 +386,16 @@ public class ContrastColorUtil {
        return result[0] < 50;
    }

    /**
     * Invert the lightness in LAB for the baseColor
     */
    public static int invertColorLightness(int baseColor) {
        final double[] result = ColorUtilsFromCompat.getTempDouble3Array();
        ColorUtilsFromCompat.colorToLAB(baseColor, result);
        result[0] = 100 - result[0];
        return ColorUtilsFromCompat.LABToColor(result[0], result[1], result[2]);
    }

    private int processColor(int color) {
        return Color.argb(Color.alpha(color),
                255 - Color.red(color),
+15 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4;
import androidx.test.filters.SmallTest;

import com.android.internal.R;
import com.android.internal.graphics.ColorUtils;

import org.junit.Rule;
import org.junit.Test;
@@ -184,6 +185,20 @@ public class ContrastColorUtilTest {
        assertContrastIsWithinRange(newGreen, Color.GRAY, 3, 3.2);
    }

    @Test
    public void invertColorLightness_colorLight_isInvertedToDarkLab() {
        // Selected LAB for colorLight {L=75, A=36, B=17};
        int colorLight = ColorUtils.LABToColor(75, 36, 17);
        int invertedColor = ContrastColorUtil.invertColorLightness(colorLight);

        final double[] invertedColorLab = new double[3];
        ColorUtils.colorToLAB(invertedColor, invertedColorLab);
        assertThat(ContrastColorUtil.isColorDarkLab(invertedColor)).isTrue();
        assertThat(invertedColorLab[0]).isWithin(2).of(25);
        assertThat(invertedColorLab[1]).isWithin(2).of(36);
        assertThat(invertedColorLab[2]).isWithin(2).of(17);
    }

    public static void assertContrastIsWithinRange(int foreground, int background,
            double minContrast, double maxContrast) {
        assertContrastIsAtLeast(foreground, background, minContrast);
Loading