From 7f1155816e4ac4c7d2fb1a52e111a9b72af61c25 Mon Sep 17 00:00:00 2001 From: Peter Serwylo <peter@serwylo.com> Date: Thu, 21 Apr 2016 15:23:36 +1000 Subject: [PATCH] Show name of app being downloaded in notification. If a non-apk download is taking place, revert to the current generic "Downloading..." message. --- .../fdroid/fdroid/net/DownloaderService.java | 21 ++++++++++++++++++- app/src/main/res/values/strings.xml | 1 + 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java b/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java index 152f881e4..f72ec99c5 100644 --- a/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java +++ b/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java @@ -45,6 +45,8 @@ import org.fdroid.fdroid.FDroid; import org.fdroid.fdroid.Preferences; import org.fdroid.fdroid.R; import org.fdroid.fdroid.Utils; +import org.fdroid.fdroid.data.App; +import org.fdroid.fdroid.data.AppProvider; import org.fdroid.fdroid.data.SanitizedFile; import java.io.File; @@ -168,12 +170,29 @@ public class DownloaderService extends Service { return new NotificationCompat.Builder(this) .setAutoCancel(true) .setContentIntent(createAppDetailsIntent(this, 0, packageName)) - .setContentTitle(getString(R.string.downloading)) + .setContentTitle(getNotificationTitle(packageName)) .setSmallIcon(android.R.drawable.stat_sys_download) .setContentText(urlString) .setProgress(100, 0, true); } + /** + * If downloading an apk (i.e. <code>packageName != null</code>) then the title will indicate + * the name of the app which the apk belongs to. Otherwise, it will be a generic "Downloading..." + * message. + */ + private String getNotificationTitle(@Nullable String packageName) { + String title; + if (packageName != null) { + App app = AppProvider.Helper.findByPackageName( + getContentResolver(), packageName, new String[] { AppProvider.DataColumns.NAME }); + title = getString(R.string.downloading_apk, app.name); + } else { + title = getString(R.string.downloading); + } + return title; + } + public static PendingIntent createAppDetailsIntent(@NonNull Context context, int requestCode, @Nullable String packageName) { TaskStackBuilder stackBuilder; if (packageName != null) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 29a42b952..20d0988a3 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -372,6 +372,7 @@ <string name="perms_new_perm_prefix">New: </string> <string name="perms_description_app">Provided by %1$s.</string> <string name="downloading">Downloading…</string> + <string name="downloading_apk">Downloading %1$s</string> <string name="interval_never">Never</string> <string name="interval_1h">Hourly</string>