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

Commit 990460b4 authored by Doris Ling's avatar Doris Ling
Browse files

Update icon color tint for tiles not in settings package.

Set the icon tint color to colorControlNormal for components not in
settings package.

Change-Id: I6b822b355eb706693a0af4e5832407064cd2b2c2
Fix: 34192209
Test: Visual
parent 78427d74
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.settings.dashboard;

import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.TypedArray;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.os.Bundle;
@@ -42,6 +43,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
import com.android.settings.dashboard.conditional.Condition;
import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.SuggestionParser;
import com.android.settingslib.drawer.DashboardCategory;
import com.android.settingslib.drawer.Tile;
@@ -130,9 +132,11 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
    public void setCategoriesAndSuggestions(List<DashboardCategory> categories,
            List<Tile> suggestions) {
        // TODO: Better place for tinting?
        TypedValue tintColor = new TypedValue();
        mContext.getTheme().resolveAttribute(com.android.internal.R.attr.colorAccent,
                tintColor, true);
        final TypedArray a = mContext.obtainStyledAttributes(new int[] {
            FeatureFactory.getFactory(mContext).getDashboardFeatureProvider(mContext).isEnabled()
                ? android.R.attr.colorControlNormal : android.R.attr.colorAccent });
        int tintColor = a.getColor(0, mContext.getColor(android.R.color.white));
        a.recycle();
        for (int i = 0; i < categories.size(); i++) {
            for (int j = 0; j < categories.get(i).tiles.size(); j++) {
                final Tile tile = categories.get(i).tiles.get(j);
@@ -141,7 +145,7 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
                        tile.intent.getComponent().getPackageName())) {
                    // If this drawable is coming from outside Settings, tint it to match the
                    // color.
                    tile.icon.setTint(tintColor.data);
                    tile.icon.setTint(tintColor);
                }
            }
        }
+15 −3
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.settings.dashboard;

import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
@@ -298,8 +299,15 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
        if (mSummaryLoader != null) {
            mSummaryLoader.release();
        }
        mSummaryLoader = new SummaryLoader(getActivity(), getCategoryKey());
        final Activity activity = getActivity();
        mSummaryLoader = new SummaryLoader(activity, getCategoryKey());
        mSummaryLoader.setSummaryConsumer(this);
        final TypedArray a = activity.obtainStyledAttributes(new int[] {
            mDashboardFeatureProvider.isEnabled() ? android.R.attr.colorControlNormal
                : android.R.attr.colorAccent});
        final int tintColor = a.getColor(0, activity.getColor(android.R.color.white));
        a.recycle();
        final String pkgName = activity.getPackageName();
        // Install dashboard tiles.
        for (Tile tile : tiles) {
            final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile);
@@ -310,16 +318,20 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
            if (!displayTile(tile)) {
                continue;
            }
            if (!pkgName.equals(tile.intent.getComponent().getPackageName())) {
                // If this drawable is coming from outside Settings, tint it to match the color.
                tile.icon.setTint(tintColor);
            }
            if (mDashboardTilePrefKeys.contains(key)) {
                // Have the key already, will rebind.
                final Preference preference = mProgressiveDisclosureMixin.findPreference(
                        screen, key);
                mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), preference, tile, key,
                mDashboardFeatureProvider.bindPreferenceToTile(activity, preference, tile, key,
                        mPlaceholderPreferenceController.getOrder());
            } else {
                // Don't have this key, add it.
                final Preference pref = new Preference(getPrefContext());
                mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), pref, tile, key,
                mDashboardFeatureProvider.bindPreferenceToTile(activity, pref, tile, key,
                        mPlaceholderPreferenceController.getOrder());
                mProgressiveDisclosureMixin.addPreference(screen, pref);
                mDashboardTilePrefKeys.add(key);