Merge "Update icon color tint for tiles not in settings package."
diff --git a/src/com/android/settings/dashboard/DashboardAdapter.java b/src/com/android/settings/dashboard/DashboardAdapter.java
index 8b97f04..b2ed592 100644
--- a/src/com/android/settings/dashboard/DashboardAdapter.java
+++ b/src/com/android/settings/dashboard/DashboardAdapter.java
@@ -17,6 +17,7 @@
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.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 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 @@
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);
}
}
}
diff --git a/src/com/android/settings/dashboard/DashboardFragment.java b/src/com/android/settings/dashboard/DashboardFragment.java
index 14d1bdd..056efc7 100644
--- a/src/com/android/settings/dashboard/DashboardFragment.java
+++ b/src/com/android/settings/dashboard/DashboardFragment.java
@@ -17,6 +17,7 @@
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 @@
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 @@
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);