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

Commit c70b04c8 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Removing passing defaults to ThemeSettings." into main

parents b5db3107 cd9e1895
Loading
Loading
Loading
Loading
+12 −19
Original line number Diff line number Diff line
@@ -16,31 +16,23 @@

package android.content.theming;

import android.annotation.ColorInt;
import android.annotation.FlaggedApi;
import android.annotation.NonNull;
import android.graphics.Color;

import androidx.annotation.Nullable;

import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.Objects;
import java.util.regex.Pattern;

/** @hide */
@FlaggedApi(android.server.Flags.FLAG_ENABLE_THEME_SERVICE)
public class FieldColor extends ThemeSettingsField<Integer, String> {
public final class FieldColor extends ThemeSettingsField<Color, String> {
    private static final Pattern COLOR_PATTERN = Pattern.compile("[0-9a-fA-F]{6,8}");

    public FieldColor(String key, Function<ThemeSettingsUpdater, Integer> updaterGetter,
            BiConsumer<ThemeSettingsUpdater, Integer> updaterSetter,
            Function<ThemeSettings, Integer> getter, ThemeSettings defaults) {
        super(key, updaterGetter, updaterSetter, getter, defaults);
    }

    @Override
    @ColorInt
    @Nullable
    public Integer parse(String primitive) {
    public Color parse(String primitive) {
        if (primitive == null) {
            return null;
        }
@@ -49,25 +41,26 @@ public class FieldColor extends ThemeSettingsField<Integer, String> {
        }

        try {
            return Color.valueOf(Color.parseColor("#" + primitive)).toArgb();
            return Color.valueOf(Color.parseColor("#" + primitive));
        } catch (IllegalArgumentException e) {
            return null;
        }
    }

    @Override
    public String serialize(@ColorInt Integer value) {
        return Integer.toHexString(value);
    public String serialize(Color value) {
        return Integer.toHexString(value.toArgb()).toUpperCase();
    }

    @Override
    public boolean validate(Integer value) {
        return !value.equals(Color.TRANSPARENT);
    public boolean validate(@NonNull Color value) {
        Objects.requireNonNull(value);
        return value.toArgb() != Color.TRANSPARENT;
    }

    @Override
    public Class<Integer> getFieldType() {
        return Integer.class;
    public Class<Color> getFieldType() {
        return Color.class;
    }

    @Override
+1 −9
Original line number Diff line number Diff line
@@ -21,18 +21,10 @@ import android.annotation.FlaggedApi;
import androidx.annotation.Nullable;

import java.util.Objects;
import java.util.function.BiConsumer;
import java.util.function.Function;

/** @hide */
@FlaggedApi(android.server.Flags.FLAG_ENABLE_THEME_SERVICE)
public class FieldColorBoth extends ThemeSettingsField<Boolean, String> {
    public FieldColorBoth(String key, Function<ThemeSettingsUpdater, Boolean> updaterGetter,
            BiConsumer<ThemeSettingsUpdater, Boolean> updaterSetter,
            Function<ThemeSettings, Boolean> getter, ThemeSettings defaults) {
        super(key, updaterGetter, updaterSetter, getter, defaults);
    }

public final class FieldColorBoth extends ThemeSettingsField<Boolean, String> {
    @Override
    @Nullable
    public Boolean parse(String primitive) {
+6 −9
Original line number Diff line number Diff line
@@ -18,20 +18,16 @@ package android.content.theming;

import android.annotation.FlaggedApi;

import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.Objects;

/** @hide */
@FlaggedApi(android.server.Flags.FLAG_ENABLE_THEME_SERVICE)
public class FieldColorIndex extends ThemeSettingsField<Integer, String> {
    public FieldColorIndex(String key, Function<ThemeSettingsUpdater, Integer> updaterGetter,
            BiConsumer<ThemeSettingsUpdater, Integer> updaterSetter,
            Function<ThemeSettings, Integer> getter, ThemeSettings defaults) {
        super(key, updaterGetter, updaterSetter, getter, defaults);
    }

public final class FieldColorIndex extends ThemeSettingsField<Integer, String> {
    @Override
    public Integer parse(String primitive) {
        if (primitive == null) {
            return null;
        }
        try {
            return Integer.parseInt(primitive);
        } catch (NumberFormatException e) {
@@ -46,6 +42,7 @@ public class FieldColorIndex extends ThemeSettingsField<Integer, String> {

    @Override
    public boolean validate(Integer value) {
        Objects.requireNonNull(value);
        return value >= -1;
    }

+5 −16
Original line number Diff line number Diff line
@@ -29,25 +29,13 @@ import androidx.annotation.Nullable;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;
import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.Objects;

/** @hide */
@FlaggedApi(android.server.Flags.FLAG_ENABLE_THEME_SERVICE)
public class FieldColorSource extends ThemeSettingsField<String, String> {
public final class FieldColorSource extends ThemeSettingsField<String, String> {
    public static final String VALUE_PRESET = "preset";
    public static final String VALUE_HOME_WALLPAPER = "home_wallpaper";
    public static final String VALUE_LOCK_WALLPAPER = "lock_wallpaper";

    public FieldColorSource(
            String key,
            Function<ThemeSettingsUpdater, String> updaterGetter,
            BiConsumer<ThemeSettingsUpdater, String> updaterSetter,
            Function<ThemeSettings, String> getter,
            ThemeSettings defaults
    ) {
        super(key, updaterGetter, updaterSetter, getter, defaults);
    }

    @Override
    @Nullable
@@ -63,8 +51,9 @@ public class FieldColorSource extends ThemeSettingsField<String, String> {

    @Override
    public boolean validate(String value) {
        Objects.requireNonNull(value);
        return switch (value) {
            case VALUE_PRESET, VALUE_HOME_WALLPAPER, VALUE_LOCK_WALLPAPER -> true;
            case VALUE_PRESET, VALUE_HOME_WALLPAPER -> true;
            default -> false;
        };
    }
@@ -80,7 +69,7 @@ public class FieldColorSource extends ThemeSettingsField<String, String> {
    }


    @StringDef({VALUE_PRESET, VALUE_HOME_WALLPAPER, VALUE_LOCK_WALLPAPER})
    @StringDef({VALUE_PRESET, VALUE_HOME_WALLPAPER})
    @Target({PARAMETER, METHOD, LOCAL_VARIABLE, FIELD})
    @Retention(SOURCE)
    @interface Type {
+3 −9
Original line number Diff line number Diff line
@@ -21,18 +21,11 @@ import android.annotation.Nullable;

import java.util.Arrays;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.Function;
import java.util.Objects;

/** @hide */
@FlaggedApi(android.server.Flags.FLAG_ENABLE_THEME_SERVICE)
public class FieldThemeStyle extends ThemeSettingsField<Integer, String> {
    public FieldThemeStyle(String key, Function<ThemeSettingsUpdater, Integer> updaterGetter,
            BiConsumer<ThemeSettingsUpdater, Integer> updaterSetter,
            Function<ThemeSettings, Integer> getter, ThemeSettings defaults) {
        super(key, updaterGetter, updaterSetter, getter, defaults);
    }

public final class FieldThemeStyle extends ThemeSettingsField<Integer, String> {
    private static final @ThemeStyle.Type List<Integer> sValidStyles = Arrays.asList(
            ThemeStyle.EXPRESSIVE, ThemeStyle.SPRITZ, ThemeStyle.TONAL_SPOT, ThemeStyle.FRUIT_SALAD,
            ThemeStyle.RAINBOW, ThemeStyle.VIBRANT, ThemeStyle.MONOCHROMATIC);
@@ -44,6 +37,7 @@ public class FieldThemeStyle extends ThemeSettingsField<Integer, String> {

    @Override
    public boolean validate(Integer value) {
        Objects.requireNonNull(value);
        return sValidStyles.contains(value);
    }

Loading