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

Commit 9388ee0a authored by Fahim Salam Chowdhury's avatar Fahim Salam Chowdhury 👽
Browse files

Merge branch '4575-Q-Fix_wrong_accent_color_issue' into 'v1-q'

4575-Q-Fix_wrong_accent_color_issue

See merge request !3
parents 1a7891b6 21c9af0a
Loading
Loading
Loading
Loading
+30 −17
Original line number Diff line number Diff line
@@ -45,7 +45,9 @@ import com.android.customization.model.theme.custom.ThemeComponentOption.ColorOp
import com.android.wallpaper.R;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Implementation of {@link ThemeComponentOptionProvider} that reads {@link ColorOption}s from
@@ -91,8 +93,18 @@ public class ColorOptionsProvider extends ThemeComponentOptionProvider<ColorOpti
        }
        Drawable shape = loadShape(shapePackage);
        addDefault(previewIcons, shape);
        addNonDefaults(previewIcons, shape);
    }

    private void addNonDefaults(List<Drawable> previewIcons, Drawable shape) {
        Map<String, ColorOption> optionMap = new HashMap<>();
        String skippedPackage = "org.lineageos.overlay.accent.black";
        for (String overlayPackage : mOverlayPackages) {
            if (!overlayPackage.equalsIgnoreCase(skippedPackage)) {
                try {
                    PackageManager pm = mContext.getPackageManager();
                    String label = pm.getApplicationInfo(overlayPackage, 0).loadLabel(pm).toString();
                    if (!optionMap.containsKey(label.toLowerCase())) {
                        Resources overlayRes = getOverlayResources(overlayPackage);
                        int lightColor = overlayRes.getColor(
                                overlayRes.getIdentifier(ACCENT_COLOR_LIGHT_NAME, "color", overlayPackage),
@@ -100,18 +112,19 @@ public class ColorOptionsProvider extends ThemeComponentOptionProvider<ColorOpti
                        int darkColor = overlayRes.getColor(
                                overlayRes.getIdentifier(ACCENT_COLOR_DARK_NAME, "color", overlayPackage),
                                null);
                PackageManager pm = mContext.getPackageManager();
                String label = pm.getApplicationInfo(overlayPackage, 0).loadLabel(pm).toString();
                        ColorOption option = new ColorOption(overlayPackage, label, lightColor, darkColor);
                        option.setPreviewIcons(previewIcons);
                        option.setShapeDrawable(shape);
                        mOptions.add(option);
                        optionMap.put(label.toLowerCase(), option);
                    }
                } catch (NameNotFoundException | NotFoundException e) {
                    Log.w(TAG, String.format("Couldn't load color overlay %s, will skip it",
                            overlayPackage), e);
                }
            }
        }
    }

    private void addDefault(List<Drawable> previewIcons, Drawable shape) {
        int lightColor, darkColor;