mirror of https://github.com/tasks/tasks
More resource caching for images used as defaults for asyncimageviews
parent
27c964c4cc
commit
03f1ce1dc0
@ -0,0 +1,71 @@
|
||||
package com.todoroo.astrid.utility;
|
||||
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
import com.timsu.astrid.R;
|
||||
import com.todoroo.andlib.service.ContextManager;
|
||||
|
||||
/**
|
||||
* This class caches common images based on resource ID to avoid
|
||||
* the performance hit from constantly loading them from disk
|
||||
* @author Sam
|
||||
*
|
||||
*/
|
||||
public class ResourceDrawableCache {
|
||||
|
||||
private static Drawable ICN_DEFAULT_PERSON_IMAGE = null;
|
||||
private static Drawable ICN_ANYONE = null;
|
||||
private static Drawable ICN_ANYONE_TRANSPARENT = null;
|
||||
private static Drawable ICN_ADD_CONTACT = null;
|
||||
|
||||
private static Drawable DEFAULT_LIST_0 = null;
|
||||
private static Drawable DEFAULT_LIST_1 = null;
|
||||
private static Drawable DEFAULT_LIST_2 = null;
|
||||
private static Drawable DEFAULT_LIST_3 = null;
|
||||
|
||||
|
||||
public static Drawable getImageDrawableFromId(Resources r, int resId) {
|
||||
if (r == null)
|
||||
r = ContextManager.getResources();
|
||||
switch(resId) {
|
||||
case R.drawable.icn_default_person_image:
|
||||
if (ICN_DEFAULT_PERSON_IMAGE == null)
|
||||
ICN_DEFAULT_PERSON_IMAGE = r.getDrawable(resId);
|
||||
return ICN_DEFAULT_PERSON_IMAGE;
|
||||
case R.drawable.icn_anyone:
|
||||
if (ICN_ANYONE == null)
|
||||
ICN_ANYONE = r.getDrawable(resId);
|
||||
return ICN_ANYONE;
|
||||
case R.drawable.icn_anyone_transparent:
|
||||
if (ICN_ANYONE_TRANSPARENT == null)
|
||||
ICN_ANYONE_TRANSPARENT = r.getDrawable(resId);
|
||||
return ICN_ANYONE_TRANSPARENT;
|
||||
case R.drawable.icn_add_contact:
|
||||
if (ICN_ADD_CONTACT == null)
|
||||
ICN_ADD_CONTACT = r.getDrawable(resId);
|
||||
return ICN_ADD_CONTACT;
|
||||
|
||||
case R.drawable.default_list_0:
|
||||
if (DEFAULT_LIST_0 == null)
|
||||
DEFAULT_LIST_0 = r.getDrawable(resId);
|
||||
return DEFAULT_LIST_0;
|
||||
case R.drawable.default_list_1:
|
||||
if (DEFAULT_LIST_1 == null)
|
||||
DEFAULT_LIST_1 = r.getDrawable(resId);
|
||||
return DEFAULT_LIST_1;
|
||||
case R.drawable.default_list_2:
|
||||
if (DEFAULT_LIST_2 == null)
|
||||
DEFAULT_LIST_2 = r.getDrawable(resId);
|
||||
return DEFAULT_LIST_2;
|
||||
case R.drawable.default_list_3:
|
||||
if (DEFAULT_LIST_3 == null)
|
||||
DEFAULT_LIST_3 = r.getDrawable(resId);
|
||||
return DEFAULT_LIST_3;
|
||||
|
||||
default:
|
||||
return r.getDrawable(resId);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue