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
This commit is contained in:
@@ -17,6 +17,7 @@ package com.android.settings.dashboard;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.pm.PackageManager;
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.res.TypedArray;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.Icon;
|
import android.graphics.drawable.Icon;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -42,6 +43,7 @@ import com.android.settings.SettingsActivity;
|
|||||||
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settings.core.instrumentation.MetricsFeatureProvider;
|
||||||
import com.android.settings.dashboard.conditional.Condition;
|
import com.android.settings.dashboard.conditional.Condition;
|
||||||
import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
|
import com.android.settings.dashboard.conditional.ConditionAdapterUtils;
|
||||||
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.SuggestionParser;
|
import com.android.settingslib.SuggestionParser;
|
||||||
import com.android.settingslib.drawer.DashboardCategory;
|
import com.android.settingslib.drawer.DashboardCategory;
|
||||||
import com.android.settingslib.drawer.Tile;
|
import com.android.settingslib.drawer.Tile;
|
||||||
@@ -130,9 +132,11 @@ public class DashboardAdapter extends RecyclerView.Adapter<DashboardAdapter.Dash
|
|||||||
public void setCategoriesAndSuggestions(List<DashboardCategory> categories,
|
public void setCategoriesAndSuggestions(List<DashboardCategory> categories,
|
||||||
List<Tile> suggestions) {
|
List<Tile> suggestions) {
|
||||||
// TODO: Better place for tinting?
|
// TODO: Better place for tinting?
|
||||||
TypedValue tintColor = new TypedValue();
|
final TypedArray a = mContext.obtainStyledAttributes(new int[] {
|
||||||
mContext.getTheme().resolveAttribute(com.android.internal.R.attr.colorAccent,
|
FeatureFactory.getFactory(mContext).getDashboardFeatureProvider(mContext).isEnabled()
|
||||||
tintColor, true);
|
? 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 i = 0; i < categories.size(); i++) {
|
||||||
for (int j = 0; j < categories.get(i).tiles.size(); j++) {
|
for (int j = 0; j < categories.get(i).tiles.size(); j++) {
|
||||||
final Tile tile = categories.get(i).tiles.get(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())) {
|
tile.intent.getComponent().getPackageName())) {
|
||||||
// If this drawable is coming from outside Settings, tint it to match the
|
// If this drawable is coming from outside Settings, tint it to match the
|
||||||
// color.
|
// color.
|
||||||
tile.icon.setTint(tintColor.data);
|
tile.icon.setTint(tintColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -17,6 +17,7 @@ package com.android.settings.dashboard;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.TypedArray;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.support.annotation.VisibleForTesting;
|
import android.support.annotation.VisibleForTesting;
|
||||||
import android.support.v7.preference.Preference;
|
import android.support.v7.preference.Preference;
|
||||||
@@ -298,8 +299,15 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
|||||||
if (mSummaryLoader != null) {
|
if (mSummaryLoader != null) {
|
||||||
mSummaryLoader.release();
|
mSummaryLoader.release();
|
||||||
}
|
}
|
||||||
mSummaryLoader = new SummaryLoader(getActivity(), getCategoryKey());
|
final Activity activity = getActivity();
|
||||||
|
mSummaryLoader = new SummaryLoader(activity, getCategoryKey());
|
||||||
mSummaryLoader.setSummaryConsumer(this);
|
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.
|
// Install dashboard tiles.
|
||||||
for (Tile tile : tiles) {
|
for (Tile tile : tiles) {
|
||||||
final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile);
|
final String key = mDashboardFeatureProvider.getDashboardKeyForTile(tile);
|
||||||
@@ -310,16 +318,20 @@ public abstract class DashboardFragment extends SettingsPreferenceFragment
|
|||||||
if (!displayTile(tile)) {
|
if (!displayTile(tile)) {
|
||||||
continue;
|
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)) {
|
if (mDashboardTilePrefKeys.contains(key)) {
|
||||||
// Have the key already, will rebind.
|
// Have the key already, will rebind.
|
||||||
final Preference preference = mProgressiveDisclosureMixin.findPreference(
|
final Preference preference = mProgressiveDisclosureMixin.findPreference(
|
||||||
screen, key);
|
screen, key);
|
||||||
mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), preference, tile, key,
|
mDashboardFeatureProvider.bindPreferenceToTile(activity, preference, tile, key,
|
||||||
mPlaceholderPreferenceController.getOrder());
|
mPlaceholderPreferenceController.getOrder());
|
||||||
} else {
|
} else {
|
||||||
// Don't have this key, add it.
|
// Don't have this key, add it.
|
||||||
final Preference pref = new Preference(getPrefContext());
|
final Preference pref = new Preference(getPrefContext());
|
||||||
mDashboardFeatureProvider.bindPreferenceToTile(getActivity(), pref, tile, key,
|
mDashboardFeatureProvider.bindPreferenceToTile(activity, pref, tile, key,
|
||||||
mPlaceholderPreferenceController.getOrder());
|
mPlaceholderPreferenceController.getOrder());
|
||||||
mProgressiveDisclosureMixin.addPreference(screen, pref);
|
mProgressiveDisclosureMixin.addPreference(screen, pref);
|
||||||
mDashboardTilePrefKeys.add(key);
|
mDashboardTilePrefKeys.add(key);
|
||||||
|
Reference in New Issue
Block a user