private Drawable checkIconCache(String resourceUri) { Drawable.ConstantState cached = mOutsideDrawablesCache.get(resourceUri); if (cached == null) { return null; } if (DBG) Log.d(LOG_TAG, "Found icon in cache: " + resourceUri); return cached.newDrawable(); }
/** * @param drawable Drawable from menu item * @return Drawable resized 32dp x 32dp and colored with color textColorSecondary */ private Drawable icon(Drawable drawable) { if (drawable != null) { Bitmap bitmap = ((BitmapDrawable) drawable).getBitmap(); Drawable resizeIcon = new BitmapDrawable( getContext().getResources(), Bitmap.createScaledBitmap(bitmap, icon, icon, true)); Drawable.ConstantState state = resizeIcon.getConstantState(); resizeIcon = DrawableCompat.wrap(state == null ? resizeIcon : state.newDrawable()).mutate(); DrawableCompat.setTintList(resizeIcon, BottomUtils.colorStateListIcon(getContext())); return resizeIcon; } return null; }
/** * Gets the activity or application icon for an activity. Uses the local icon cache for fast * repeated lookups. * * @param component Name of an activity. * @return A drawable, or {@code null} if neither the activity nor the application has an icon * set. */ private Drawable getActivityIconWithCache(ComponentName component) { // First check the icon cache String componentIconKey = component.flattenToShortString(); // Using containsKey() since we also store null values. if (mOutsideDrawablesCache.containsKey(componentIconKey)) { Drawable.ConstantState cached = mOutsideDrawablesCache.get(componentIconKey); return cached == null ? null : cached.newDrawable(mProviderContext.getResources()); } // Then try the activity or application icon Drawable drawable = getActivityIcon(component); // Stick it in the cache so we don't do this lookup again. Drawable.ConstantState toCache = drawable == null ? null : drawable.getConstantState(); mOutsideDrawablesCache.put(componentIconKey, toCache); return drawable; }
@Test public void testForegroundDrawables() { Drawable foregroundDrawable = mock(Drawable.class); Drawable foregroundBearingDrawable = mock(Drawable.class); Drawable.ConstantState constantState = mock(Drawable.ConstantState.class); when(foregroundDrawable.getConstantState()).thenReturn(constantState); when(constantState.newDrawable()).thenReturn(foregroundDrawable); locationViewSettings.setForegroundDrawable(foregroundDrawable, foregroundBearingDrawable); assertEquals( "foreground should match", foregroundDrawable, locationViewSettings.getForegroundDrawable()); assertEquals( "foreground bearing should match", foregroundBearingDrawable, locationViewSettings.getForegroundBearingDrawable()); }
public final Drawable newDrawable(Resources paramResources, Resources.Theme paramTheme) { dt localdt = new dt(); b = ((VectorDrawable) a.newDrawable(paramResources, paramTheme)); return localdt; }
public final Drawable newDrawable() { dt localdt = new dt(); b = ((VectorDrawable) a.newDrawable()); return localdt; }