summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDanny Baumann <dannybaumann@web.de>2013-04-03 14:36:21 +0200
committerJeff Sharkey <jsharkey@android.com>2013-04-05 13:17:14 -0700
commitaf49093b1554fdc55977e9281505e05865f33813 (patch)
tree0e0a42302577cab01855edb7c14530c7ec5ffa78 /src
parent5048492e352be8134d92178d757a60117491e292 (diff)
downloadandroid_packages_providers_DownloadProvider-af49093b1554fdc55977e9281505e05865f33813.tar.gz
android_packages_providers_DownloadProvider-af49093b1554fdc55977e9281505e05865f33813.tar.bz2
android_packages_providers_DownloadProvider-af49093b1554fdc55977e9281505e05865f33813.zip
Fix download notification click behaviour.
PendingIntent.getBroadcast() doesn't update the intent extras if not explicitly given something to distinguish the intents. This caused the notification on-click to do nothing on everything but the first download. Change-Id: I29544ae5b04f8304cbbe720066a26ff90e422107
Diffstat (limited to 'src')
-rw-r--r--src/com/android/providers/downloads/DownloadNotifier.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/com/android/providers/downloads/DownloadNotifier.java b/src/com/android/providers/downloads/DownloadNotifier.java
index df0bf840..04054783 100644
--- a/src/com/android/providers/downloads/DownloadNotifier.java
+++ b/src/com/android/providers/downloads/DownloadNotifier.java
@@ -161,12 +161,14 @@ public class DownloadNotifier {
// Build action intents
if (type == TYPE_ACTIVE || type == TYPE_WAITING) {
+ // build a synthetic uri for intent identification purposes
+ final Uri uri = new Uri.Builder().scheme("active-dl").appendPath(tag).build();
final Intent intent = new Intent(Constants.ACTION_LIST,
- null, mContext, DownloadReceiver.class);
+ uri, mContext, DownloadReceiver.class);
intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS,
getDownloadIds(cluster));
- builder.setContentIntent(PendingIntent.getBroadcast(
- mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT));
+ builder.setContentIntent(PendingIntent.getBroadcast(mContext,
+ 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
builder.setOngoing(true);
} else if (type == TYPE_COMPLETE) {
@@ -188,8 +190,8 @@ public class DownloadNotifier {
final Intent intent = new Intent(action, uri, mContext, DownloadReceiver.class);
intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS,
getDownloadIds(cluster));
- builder.setContentIntent(PendingIntent.getBroadcast(
- mContext, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT));
+ builder.setContentIntent(PendingIntent.getBroadcast(mContext,
+ 0, intent, PendingIntent.FLAG_UPDATE_CURRENT));
final Intent hideIntent = new Intent(Constants.ACTION_HIDE,
uri, mContext, DownloadReceiver.class);