private Drawable prepareBackIcon(Drawable d, boolean customIcon) { int customImageColorize = Settings.System.getIntForUser( mContext.getContentResolver(), Settings.System.PIE_ICON_COLOR_MODE, 0, UserHandle.USER_CURRENT); int drawableColor = Settings.System.getIntForUser( mContext.getContentResolver(), Settings.System.PIE_ICON_COLOR, -2, UserHandle.USER_CURRENT); if (drawableColor == -2) { drawableColor = mContext.getResources().getColor(R.color.pie_foreground_color); } if (mIconResize && !customIcon) { d = resizeIcon(null, d, false); } else if (customIcon) { d = resizeIcon(null, d, true); } if ((customImageColorize != 1 || !customIcon) && customImageColorize != 3) { d = new BitmapDrawable( mContext.getResources(), ImageHelper.drawableToBitmap(ImageHelper.getColoredDrawable(d, drawableColor))); } return d; }
private Drawable resizeIcon(ImageView view, Drawable d, boolean useSystemDimens) { if (view == null && d == null) { return null; } int size = 0; Drawable dOriginal = d; if (d == null) { dOriginal = view.getDrawable(); } if (useSystemDimens) { size = mContext.getResources().getDimensionPixelSize(com.android.internal.R.dimen.app_icon_size); } else { size = Math.max(dOriginal.getIntrinsicHeight(), dOriginal.getIntrinsicWidth()); } Drawable dResized = ImageHelper.resize( mContext, dOriginal, Converter.pxToDp(mContext, (int) (size * mIconResizeFactor))); if (d == null) { view.setImageDrawable(dResized); return null; } else { return (dResized); } }