diff --git a/app/build.gradle b/app/build.gradle index 65913a79c..094e1aea2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -184,6 +184,7 @@ android { versionCode 102050 versionName getVersionName() testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" + vectorDrawables.useSupportLibrary = true } testOptions { diff --git a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java index 0c32ccaa2..67d773a63 100644 --- a/app/src/main/java/org/fdroid/fdroid/FDroidApp.java +++ b/app/src/main/java/org/fdroid/fdroid/FDroidApp.java @@ -37,6 +37,7 @@ import android.os.Build; import android.os.Environment; import android.os.StrictMode; import android.preference.PreferenceManager; +import android.support.v7.app.AppCompatDelegate; import android.text.TextUtils; import android.util.Log; import android.widget.Toast; @@ -78,6 +79,10 @@ import sun.net.www.protocol.bluetooth.Handler; ) public class FDroidApp extends Application { + static { + AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); + } + private static final String TAG = "FDroidApp"; public static final String SYSTEM_DIR_NAME = Environment.getRootDirectory().getAbsolutePath(); diff --git a/app/src/main/java/org/fdroid/fdroid/NotificationHelper.java b/app/src/main/java/org/fdroid/fdroid/NotificationHelper.java index 445688ddc..f4acb08e2 100644 --- a/app/src/main/java/org/fdroid/fdroid/NotificationHelper.java +++ b/app/src/main/java/org/fdroid/fdroid/NotificationHelper.java @@ -15,6 +15,7 @@ import android.os.Build; import android.support.graphics.drawable.VectorDrawableCompat; import android.support.v4.app.NotificationCompat; import android.support.v4.app.NotificationManagerCompat; +import android.support.v4.content.ContextCompat; import android.support.v4.content.LocalBroadcastManager; import android.text.SpannableStringBuilder; import android.text.Spanned; @@ -251,14 +252,14 @@ class NotificationHelper { if (entry.intent != null) { switch (entry.status) { case UpdateAvailable: - return new NotificationCompat.Action(R.drawable.ic_notify_update_24dp, context.getString(R.string.notification_action_update), entry.intent); + return new NotificationCompat.Action(R.drawable.ic_file_download, context.getString(R.string.notification_action_update), entry.intent); case Downloading: case Installing: - return new NotificationCompat.Action(R.drawable.ic_notify_cancel_24dp, context.getString(R.string.notification_action_cancel), entry.intent); + return new NotificationCompat.Action(R.drawable.ic_cancel, context.getString(R.string.notification_action_cancel), entry.intent); case ReadyToInstall: - return new NotificationCompat.Action(R.drawable.ic_notify_install_24dp, context.getString(R.string.notification_action_install), entry.intent); + return new NotificationCompat.Action(R.drawable.ic_file_install, context.getString(R.string.notification_action_install), entry.intent); } } return null; @@ -333,9 +334,15 @@ class NotificationHelper { .setLargeIcon(iconLarge) .setLocalOnly(true) .setVisibility(NotificationCompat.VISIBILITY_SECRET) - .setGroup(GROUP_UPDATES) .setContentIntent(entry.intent); + /* If using stacked notifications, use groups. Note that this would not work prior to Lollipop, + because of http://stackoverflow.com/a/34953411, but currently not an issue since stacked + notifications are used only on >= Nougat. + */ + if (useStackedNotifications()) { + builder.setGroup(GROUP_UPDATES); + } // Handle actions // @@ -430,9 +437,12 @@ class NotificationHelper { .setContentText(context.getString(R.string.notification_content_single_installed)) .setLocalOnly(true) .setVisibility(NotificationCompat.VISIBILITY_SECRET) - .setGroup(GROUP_INSTALLED) .setContentIntent(entry.intent); + if (useStackedNotifications()) { + builder.setGroup(GROUP_INSTALLED); + } + Intent intentDeleted = new Intent(BROADCAST_NOTIFICATIONS_INSTALLED_CLEARED); intentDeleted.putExtra(EXTRA_NOTIFICATION_KEY, entry.getUniqueKey()); PendingIntent piDeleted = PendingIntent.getBroadcast(context, 0, intentDeleted, 0); diff --git a/app/src/main/res/drawable/ic_notify_cancel_24dp.xml b/app/src/main/res/drawable-anydpi-v21/ic_cancel.xml similarity index 100% rename from app/src/main/res/drawable/ic_notify_cancel_24dp.xml rename to app/src/main/res/drawable-anydpi-v21/ic_cancel.xml diff --git a/app/src/main/res/drawable/ic_notify_update_24dp.xml b/app/src/main/res/drawable-anydpi-v21/ic_file_download.xml similarity index 100% rename from app/src/main/res/drawable/ic_notify_update_24dp.xml rename to app/src/main/res/drawable-anydpi-v21/ic_file_download.xml diff --git a/app/src/main/res/drawable/ic_notify_install_24dp.xml b/app/src/main/res/drawable-anydpi-v21/ic_file_install.xml similarity index 100% rename from app/src/main/res/drawable/ic_notify_install_24dp.xml rename to app/src/main/res/drawable-anydpi-v21/ic_file_install.xml diff --git a/app/src/main/res/drawable-hdpi/ic_cancel.png b/app/src/main/res/drawable-hdpi/ic_cancel.png new file mode 100644 index 000000000..e18c7aef9 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_cancel.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_file_download.png b/app/src/main/res/drawable-hdpi/ic_file_download.png new file mode 100644 index 000000000..52fa71dc4 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_file_download.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_file_install.png b/app/src/main/res/drawable-hdpi/ic_file_install.png new file mode 100644 index 000000000..81ca22780 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_file_install.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_cancel.png b/app/src/main/res/drawable-mdpi/ic_cancel.png new file mode 100644 index 000000000..418410737 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_cancel.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_file_download.png b/app/src/main/res/drawable-mdpi/ic_file_download.png new file mode 100644 index 000000000..7c65d4c76 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_file_download.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_file_install.png b/app/src/main/res/drawable-mdpi/ic_file_install.png new file mode 100644 index 000000000..4cc23747a Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_file_install.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_cancel.png b/app/src/main/res/drawable-xhdpi/ic_cancel.png new file mode 100644 index 000000000..3e85c8a97 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_cancel.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_file_download.png b/app/src/main/res/drawable-xhdpi/ic_file_download.png new file mode 100644 index 000000000..2923dd893 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_file_download.png differ diff --git a/app/src/main/res/drawable-xhdpi/ic_file_install.png b/app/src/main/res/drawable-xhdpi/ic_file_install.png new file mode 100644 index 000000000..1de323ce1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_file_install.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_cancel.png b/app/src/main/res/drawable-xxhdpi/ic_cancel.png new file mode 100644 index 000000000..155ddbc59 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_cancel.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_file_download.png b/app/src/main/res/drawable-xxhdpi/ic_file_download.png new file mode 100644 index 000000000..afe04b6d4 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_file_download.png differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_file_install.png b/app/src/main/res/drawable-xxhdpi/ic_file_install.png new file mode 100644 index 000000000..c9f7923c8 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_file_install.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_cancel.png b/app/src/main/res/drawable-xxxhdpi/ic_cancel.png new file mode 100644 index 000000000..67d8ea595 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_cancel.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_file_download.png b/app/src/main/res/drawable-xxxhdpi/ic_file_download.png new file mode 100644 index 000000000..025407ad2 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_file_download.png differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_file_install.png b/app/src/main/res/drawable-xxxhdpi/ic_file_install.png new file mode 100644 index 000000000..c38be0310 Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/ic_file_install.png differ