Merge branch 'master' of git://github.com/Materight/Phonograph into Materight-master

This commit is contained in:
Karim Abou Zeid 2017-12-23 23:14:32 +01:00
commit f66cef7a34
5 changed files with 81 additions and 9 deletions

View file

@ -3,11 +3,13 @@ package com.kabouzeid.gramophone.appshortcuts;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.drawable.AdaptiveIconDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Icon;
import android.graphics.drawable.LayerDrawable;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.support.v4.graphics.drawable.IconCompat;
import android.util.TypedValue;
import com.kabouzeid.appthemehelper.ThemeStore;
@ -22,13 +24,13 @@ import com.kabouzeid.gramophone.util.Util;
public final class AppShortcutIconGenerator {
public static Icon generateThemedIcon(Context context, int iconId) {
if (PreferenceUtil.getInstance(context).coloredAppShortcuts()){
return generateUserThemedIcon(context, iconId);
return generateUserThemedIcon(context, iconId).toIcon();
} 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 generateThemedIcon(context, iconId,
context.getColor(R.color.app_shortcut_default_foreground),
@ -36,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
final TypedValue typedColorBackground = new TypedValue();
context.getTheme().resolveAttribute(android.R.attr.colorBackground, typedColorBackground, true);
@ -48,16 +50,21 @@ 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
Drawable vectorDrawable = Util.getTintedVectorDrawable(context, iconId, foregroundColor);
Drawable backgroundDrawable = Util.getTintedVectorDrawable(context, R.drawable.ic_app_shortcut_background, backgroundColor);
// Squash the two drawables together
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{backgroundDrawable, vectorDrawable});
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
AdaptiveIconDrawable adaptiveIconDrawable = new AdaptiveIconDrawable(backgroundDrawable, vectorDrawable);
return IconCompat.createWithAdaptiveBitmap(drawableToBitmap(adaptiveIconDrawable));
} else {
// Squash the two drawables together
LayerDrawable layerDrawable = new LayerDrawable(new Drawable[]{backgroundDrawable, vectorDrawable});
// Return as an Icon
return Icon.createWithBitmap(drawableToBitmap(layerDrawable));
// Return as an Icon
return IconCompat.createWithBitmap(drawableToBitmap(layerDrawable));
}
}
private static Bitmap drawableToBitmap(Drawable drawable) {

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportHeight="108"
android:viewportWidth="108">
<path
android:name="ic_app_shortcut_background"
android:fillColor="#000"
android:pathData="M0,0 108,0 108,108 0,108" />
</vector>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportHeight="176"
android:viewportWidth="176">
<group
android:scaleX="0.45"
android:scaleY="0.45"
android:translateX="45"
android:translateY="45">
<path
android:name="ic_app_shortcut_last_added_ic"
android:fillColor="#000"
android:pathData="M124.35,92h-16.2v16.2h-8.1V92H83.85v-8.1h16.2V67.65h8.1v16.2h16.2M128.4,55.5H79.8a8.1,8.1,0,0,0-8.1,8.1v48.6a8.1,8.1,0,0,0,8.1,8.1h48.6a8.1,8.1,0,0,0,8.1-8.1V63.6a8.1,8.1,0,0,0-8.1-8.1M63.6,71.7H55.5v56.7a8.1,8.1,0,0,0,8.1,8.1h56.7v-8.1H63.6Z" />
</group>
</vector>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportHeight="176"
android:viewportWidth="176">
<group
android:scaleX="0.45"
android:scaleY="0.45"
android:translateX="45"
android:translateY="45">
<path
android:name="ic_app_shortcut_shuffle_ic"
android:fillColor="#000"
android:pathData="M110.15,103l-7,7,15.65,15.65L108.5,136H136V108.5l-10.2,10.2L110.15,103M108.5,56l10.2,10.2L56,128.95l7,7L125.8,73.3,136,83.5V56M89,81.85,63.05,56l-7,7L81.85,88.9Z" />
</group>
</vector>

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportHeight="176"
android:viewportWidth="176">
<group
android:scaleX="0.45"
android:scaleY="0.45"
android:translateX="45"
android:translateY="45">
<path
android:name="ic_app_shortcut_top_tracks_ic"
android:fillColor="#000"
android:pathData="M113.7,69.45l10.13,10.13-21.59,21.59-17.7-17.7L51.75,116.31,58,122.55,84.54,96l17.7,17.7,27.88-27.83L140.25,96V69.45Z" />
</group>
</vector>