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

Commit 859bc919 authored by Doris Ling's avatar Doris Ling Committed by Android (Google) Code Review
Browse files

Merge "Update icon color tint for tiles not in settings package."

parents 6596c8ff 990460b4
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);