diff --git a/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java b/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java index 7c3a725b8..a617d9505 100644 --- a/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java +++ b/app/src/main/java/org/fdroid/fdroid/installer/InstallManagerService.java @@ -179,12 +179,13 @@ public class InstallManagerService extends Service { } private NotificationCompat.Builder createNotification(String urlString, @Nullable String packageName) { + int downloadUrlId = urlString.hashCode(); return new NotificationCompat.Builder(this) .setAutoCancel(true) - .setContentIntent(createAppDetailsIntent(0, packageName)) + .setContentIntent(getAppDetailsIntent(downloadUrlId, apk.packageName)) .setContentTitle(getNotificationTitle(packageName)) .addAction(R.drawable.ic_cancel_black_24dp, getString(R.string.cancel), - DownloaderService.createCancelDownloadIntent(this, 0, urlString)) + DownloaderService.getCancelPendingIntent(this, urlString)) .setSmallIcon(android.R.drawable.stat_sys_download) .setContentText(urlString) .setProgress(100, 0, true); @@ -207,7 +208,7 @@ public class InstallManagerService extends Service { return title; } - private PendingIntent createAppDetailsIntent(int requestCode, String packageName) { + private PendingIntent getAppDetailsIntent(int requestCode, String packageName) { TaskStackBuilder stackBuilder; if (packageName != null) { Intent notifyIntent = new Intent(getApplicationContext(), AppDetails.class) @@ -252,7 +253,7 @@ public class InstallManagerService extends Service { .setAutoCancel(true) .setContentTitle(title) .setSmallIcon(android.R.drawable.stat_sys_download_done) - .setContentIntent(createAppDetailsIntent(downloadUrlId, packageName)) + .setContentIntent(getAppDetailsIntent(downloadUrlId, packageName)) .setContentText(getString(R.string.tap_to_install)); NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); nm.notify(downloadUrlId, builder.build()); 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 7a5a0f37e..21061f260 100644 --- a/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java +++ b/app/src/main/java/org/fdroid/fdroid/net/DownloaderService.java @@ -30,7 +30,6 @@ import android.os.Looper; import android.os.Message; import android.os.PatternMatcher; import android.os.Process; -import android.support.annotation.NonNull; import android.support.v4.content.LocalBroadcastManager; import android.text.TextUtils; import android.util.Log; @@ -138,13 +137,12 @@ public class DownloaderService extends Service { } } - public static PendingIntent createCancelDownloadIntent(@NonNull Context context, int - requestCode, @NonNull String urlString) { + public static PendingIntent getCancelPendingIntent(Context context, String urlString) { Intent cancelIntent = new Intent(context.getApplicationContext(), DownloaderService.class) .setData(Uri.parse(urlString)) .setAction(ACTION_CANCEL); return PendingIntent.getService(context.getApplicationContext(), - requestCode, + urlString.hashCode(), cancelIntent, PendingIntent.FLAG_CANCEL_CURRENT); }