Switched to IconCompat
This commit is contained in:
parent
1f6ebdb184
commit
285f2fdf99
1 changed files with 8 additions and 7 deletions
|
|
@ -9,6 +9,7 @@ import android.graphics.drawable.Icon;
|
||||||
import android.graphics.drawable.LayerDrawable;
|
import android.graphics.drawable.LayerDrawable;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.support.annotation.RequiresApi;
|
import android.support.annotation.RequiresApi;
|
||||||
|
import android.support.v4.graphics.drawable.IconCompat;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
|
|
||||||
import com.kabouzeid.appthemehelper.ThemeStore;
|
import com.kabouzeid.appthemehelper.ThemeStore;
|
||||||
|
|
@ -23,13 +24,13 @@ import com.kabouzeid.gramophone.util.Util;
|
||||||
public final class AppShortcutIconGenerator {
|
public final class AppShortcutIconGenerator {
|
||||||
public static Icon generateThemedIcon(Context context, int iconId) {
|
public static Icon generateThemedIcon(Context context, int iconId) {
|
||||||
if (PreferenceUtil.getInstance(context).coloredAppShortcuts()){
|
if (PreferenceUtil.getInstance(context).coloredAppShortcuts()){
|
||||||
return generateUserThemedIcon(context, iconId);
|
return generateUserThemedIcon(context, iconId).toIcon();
|
||||||
} else {
|
} else {
|
||||||
return generateDefaultThemedIcon(context, iconId);
|
return generateDefaultThemedIcon(context, iconId).toIcon();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Icon generateDefaultThemedIcon(Context context, int iconId) {
|
private static IconCompat generateDefaultThemedIcon(Context context, int iconId) {
|
||||||
// Return an Icon of iconId with default colors
|
// Return an Icon of iconId with default colors
|
||||||
return generateThemedIcon(context, iconId,
|
return generateThemedIcon(context, iconId,
|
||||||
context.getColor(R.color.app_shortcut_default_foreground),
|
context.getColor(R.color.app_shortcut_default_foreground),
|
||||||
|
|
@ -37,7 +38,7 @@ public final class AppShortcutIconGenerator {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Icon generateUserThemedIcon(Context context, int iconId) {
|
private static IconCompat generateUserThemedIcon(Context context, int iconId) {
|
||||||
// Get background color from context's theme
|
// Get background color from context's theme
|
||||||
final TypedValue typedColorBackground = new TypedValue();
|
final TypedValue typedColorBackground = new TypedValue();
|
||||||
context.getTheme().resolveAttribute(android.R.attr.colorBackground, typedColorBackground, true);
|
context.getTheme().resolveAttribute(android.R.attr.colorBackground, typedColorBackground, true);
|
||||||
|
|
@ -49,20 +50,20 @@ public final class AppShortcutIconGenerator {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Icon generateThemedIcon(Context context, int iconId, int foregroundColor, int backgroundColor) {
|
private static IconCompat generateThemedIcon(Context context, int iconId, int foregroundColor, int backgroundColor) {
|
||||||
// Get and tint foreground and background drawables
|
// Get and tint foreground and background drawables
|
||||||
Drawable vectorDrawable = Util.getTintedVectorDrawable(context, iconId, foregroundColor);
|
Drawable vectorDrawable = Util.getTintedVectorDrawable(context, iconId, foregroundColor);
|
||||||
Drawable backgroundDrawable = Util.getTintedVectorDrawable(context, R.drawable.ic_app_shortcut_background, backgroundColor);
|
Drawable backgroundDrawable = Util.getTintedVectorDrawable(context, R.drawable.ic_app_shortcut_background, backgroundColor);
|
||||||
|
|
||||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
|
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
|
||||||
AdaptiveIconDrawable adaptiveIconDrawable = new AdaptiveIconDrawable(backgroundDrawable, vectorDrawable);
|
AdaptiveIconDrawable adaptiveIconDrawable = new AdaptiveIconDrawable(backgroundDrawable, vectorDrawable);
|
||||||
return Icon.createWithAdaptiveBitmap(drawableToBitmap(adaptiveIconDrawable));
|
return IconCompat.createWithAdaptiveBitmap(drawableToBitmap(adaptiveIconDrawable));
|
||||||
} else {
|
} else {
|
||||||
// Squash the two drawables together
|
// Squash the two drawables together
|
||||||
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{backgroundDrawable, vectorDrawable});
|
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{backgroundDrawable, vectorDrawable});
|
||||||
|
|
||||||
// Return as an Icon
|
// Return as an Icon
|
||||||
return Icon.createWithBitmap(drawableToBitmap(layerDrawable));
|
return IconCompat.createWithBitmap(drawableToBitmap(layerDrawable));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue