Merge "Use MaskableIconDrawable only in dogfood builds" into ub-launcher3-master
This commit is contained in:
commit
e495056bd3
|
@ -34,7 +34,11 @@ import android.os.UserHandle;
|
|||
|
||||
import com.android.launcher3.LauncherAppState;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.config.FeatureFlags;
|
||||
import com.android.launcher3.config.ProviderConfig;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
* Helper methods for generating various launcher icons
|
||||
|
@ -157,6 +161,7 @@ public class LauncherIcons {
|
|||
* @param scale the scale to apply before drawing {@param icon} on the canvas
|
||||
*/
|
||||
public static Bitmap createIconBitmap(Drawable icon, Context context, float scale) {
|
||||
icon = castToMaskableIconDrawable(icon);
|
||||
synchronized (sCanvas) {
|
||||
final int iconBitmapSize = LauncherAppState.getIDP(context).iconBitmapSize;
|
||||
|
||||
|
@ -212,6 +217,19 @@ public class LauncherIcons {
|
|||
}
|
||||
}
|
||||
|
||||
static Drawable castToMaskableIconDrawable(Drawable drawable) {
|
||||
if (!(ProviderConfig.IS_DOGFOOD_BUILD && Utilities.isAtLeastO())) {
|
||||
return drawable;
|
||||
}
|
||||
try {
|
||||
Class clazz = Class.forName("android.graphics.drawable.MaskableIconDrawable");
|
||||
Method method = clazz.getDeclaredMethod("wrap", Drawable.class);
|
||||
return (Drawable) method.invoke(null, drawable);
|
||||
} catch (Exception e) {
|
||||
return drawable;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* An extension of {@link BitmapDrawable} which returns the bitmap pixel size as intrinsic size.
|
||||
* This allows the badging to be done based on the action bitmap size rather than
|
||||
|
|
Loading…
Reference in New Issue