Make sure we're obtaining themed drawables correctly

Change-Id: I446a3492f7bf5a897c5d698e61327af4b7840d85
This commit is contained in:
Alan Viverette
2014-08-14 12:59:10 -07:00
parent 8599a33580
commit 03d30a573b
9 changed files with 21 additions and 26 deletions

View File

@@ -275,7 +275,7 @@ public class AnimatedRotateDrawable extends Drawable implements Drawable.Callbac
final int res = a.getResourceId(R.styleable.AnimatedRotateDrawable_drawable, 0);
Drawable drawable = null;
if (res > 0) {
drawable = r.getDrawable(res);
drawable = r.getDrawable(res, theme);
}
a.recycle();

View File

@@ -427,7 +427,7 @@ public class AnimatedStateListDrawable extends StateListDrawable {
final Drawable dr;
if (drawableRes != 0) {
dr = r.getDrawable(drawableRes);
dr = r.getDrawable(drawableRes, theme);
} else {
int type;
while ((type = parser.next()) == XmlPullParser.TEXT) {
@@ -473,7 +473,7 @@ public class AnimatedStateListDrawable extends StateListDrawable {
final Drawable dr;
if (drawableRes != 0) {
dr = r.getDrawable(drawableRes);
dr = r.getDrawable(drawableRes, theme);
} else {
int type;
while ((type = parser.next()) == XmlPullParser.TEXT) {

View File

@@ -313,7 +313,7 @@ public class AnimationDrawable extends DrawableContainer implements Runnable, An
Drawable dr;
if (drawableRes != 0) {
dr = r.getDrawable(drawableRes);
dr = r.getDrawable(drawableRes, theme);
} else {
while ((type=parser.next()) == XmlPullParser.TEXT) {
// Empty

View File

@@ -436,7 +436,7 @@ public class RotateDrawable extends Drawable implements Drawable.Callback {
com.android.internal.R.styleable.RotateDrawable_drawable, 0);
Drawable drawable = null;
if (res > 0) {
drawable = r.getDrawable(res);
drawable = r.getDrawable(res, theme);
}
a.recycle();

View File

@@ -210,7 +210,7 @@ public class IconUtils {
return pm.getDrawable(info.packageName, icon, info.applicationInfo);
}
} else {
return context.getResources().getDrawable(icon);
return context.getDrawable(icon);
}
}
return null;
@@ -218,19 +218,17 @@ public class IconUtils {
public static Drawable loadMimeIcon(
Context context, String mimeType, String authority, String docId, int mode) {
final Resources res = context.getResources();
if (Document.MIME_TYPE_DIR.equals(mimeType)) {
// TODO: eventually move these hacky assets into that package
if ("com.android.providers.media.documents".equals(authority)
&& docId.startsWith("album")) {
return res.getDrawable(R.drawable.ic_doc_album);
return context.getDrawable(R.drawable.ic_doc_album);
}
if (mode == DocumentsActivity.State.MODE_GRID) {
return res.getDrawable(R.drawable.ic_grid_folder);
return context.getDrawable(R.drawable.ic_grid_folder);
} else {
return res.getDrawable(R.drawable.ic_doc_folder);
return context.getDrawable(R.drawable.ic_doc_folder);
}
}
@@ -238,16 +236,14 @@ public class IconUtils {
}
public static Drawable loadMimeIcon(Context context, String mimeType) {
final Resources res = context.getResources();
if (Document.MIME_TYPE_DIR.equals(mimeType)) {
return res.getDrawable(R.drawable.ic_doc_folder);
return context.getDrawable(R.drawable.ic_doc_folder);
}
// Look for exact match first
Integer resId = sMimeIcons.get(mimeType);
if (resId != null) {
return res.getDrawable(resId);
return context.getDrawable(resId);
}
if (mimeType == null) {
@@ -258,15 +254,15 @@ public class IconUtils {
// Otherwise look for partial match
final String typeOnly = mimeType.split("/")[0];
if ("audio".equals(typeOnly)) {
return res.getDrawable(R.drawable.ic_doc_audio);
return context.getDrawable(R.drawable.ic_doc_audio);
} else if ("image".equals(typeOnly)) {
return res.getDrawable(R.drawable.ic_doc_image);
return context.getDrawable(R.drawable.ic_doc_image);
} else if ("text".equals(typeOnly)) {
return res.getDrawable(R.drawable.ic_doc_text);
return context.getDrawable(R.drawable.ic_doc_text);
} else if ("video".equals(typeOnly)) {
return res.getDrawable(R.drawable.ic_doc_video);
return context.getDrawable(R.drawable.ic_doc_video);
} else {
return res.getDrawable(R.drawable.ic_doc_generic);
return context.getDrawable(R.drawable.ic_doc_generic);
}
}
@@ -276,7 +272,7 @@ public class IconUtils {
final TypedValue outValue = new TypedValue();
context.getTheme().resolveAttribute(tintAttrId, outValue, true);
final Drawable icon = res.getDrawable(drawableId);
final Drawable icon = context.getDrawable(drawableId);
icon.mutate();
icon.setTintList(res.getColorStateList(outValue.resourceId));
return icon;

View File

@@ -221,8 +221,7 @@ public class RecentsCreateFragment extends Fragment {
final DocumentStack stack = getItem(position);
iconMime.setImageDrawable(stack.root.loadIcon(context));
final Drawable crumb = context.getResources()
.getDrawable(R.drawable.ic_breadcrumb_arrow);
final Drawable crumb = context.getDrawable(R.drawable.ic_breadcrumb_arrow);
crumb.setBounds(0, 0, crumb.getIntrinsicWidth(), crumb.getIntrinsicHeight());
final SpannableStringBuilder builder = new SpannableStringBuilder();

View File

@@ -205,7 +205,7 @@ public class RootInfo implements Durable, Parcelable {
public Drawable loadIcon(Context context) {
if (derivedIcon != 0) {
return context.getResources().getDrawable(derivedIcon);
return context.getDrawable(derivedIcon);
} else {
return IconUtils.loadPackageIcon(context, authority, icon);
}

View File

@@ -254,7 +254,7 @@ public class PhoneAccount implements Parcelable {
return null;
}
try {
return packageContext.getResources().getDrawable(resId);
return packageContext.getDrawable(resId);
} catch (NotFoundException|MissingResourceException e) {
Log.e(this, e, "Cannot find icon %d in package %s",
resId, mAccountHandle.getComponentName().getPackageName());

View File

@@ -121,7 +121,7 @@ public final class StatusHints implements Parcelable {
return null;
}
try {
return packageContext.getResources().getDrawable(resId);
return packageContext.getDrawable(resId);
} catch (MissingResourceException e) {
Log.e(this, e, "Cannot find icon %d in package %s",
resId, mComponentName.getPackageName());