summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2017-08-02 13:37:31 -0600
committerJeff Sharkey <jsharkey@android.com>2017-08-02 13:37:33 -0600
commitae89e55bb059b37922a3745b1b45ac79a71a05be (patch)
tree485a18fbea548673d85563495d5a4afb4dea218b
parent707be5fd34b6a095f070252b173d659233a8f03f (diff)
downloadandroid_packages_providers_DownloadProvider-ae89e55bb059b37922a3745b1b45ac79a71a05be.tar.gz
android_packages_providers_DownloadProvider-ae89e55bb059b37922a3745b1b45ac79a71a05be.tar.bz2
android_packages_providers_DownloadProvider-ae89e55bb059b37922a3745b1b45ac79a71a05be.zip
Download UI interactions should be in foreground.
Otherwise these interactions risk getting stuck in a delayed background broadcast queue, and we'd re-post notifications based on stale data that hasn't been updated yet. Test: builds, boots Bug: 64098529 Change-Id: I93302e5a4380bb0ac8977153c3afaa02bcc36c84
-rw-r--r--src/com/android/providers/downloads/DownloadNotifier.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/DownloadNotifier.java b/src/com/android/providers/downloads/DownloadNotifier.java
index 4da0d2a5..d38aa755 100644
--- a/src/com/android/providers/downloads/DownloadNotifier.java
+++ b/src/com/android/providers/downloads/DownloadNotifier.java
@@ -229,6 +229,7 @@ public class DownloadNotifier {
final Uri uri = new Uri.Builder().scheme("active-dl").appendPath(tag).build();
final Intent intent = new Intent(Constants.ACTION_LIST,
uri, mContext, DownloadReceiver.class);
+ intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS,
downloadIds);
builder.setContentIntent(PendingIntent.getBroadcast(mContext,
@@ -241,6 +242,7 @@ public class DownloadNotifier {
final Uri cancelUri = new Uri.Builder().scheme("cancel-dl").appendPath(tag).build();
final Intent cancelIntent = new Intent(Constants.ACTION_CANCEL,
cancelUri, mContext, DownloadReceiver.class);
+ cancelIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
cancelIntent.putExtra(DownloadReceiver.EXTRA_CANCELED_DOWNLOAD_IDS, downloadIds);
cancelIntent.putExtra(DownloadReceiver.EXTRA_CANCELED_DOWNLOAD_NOTIFICATION_TAG, tag);
@@ -268,6 +270,7 @@ public class DownloadNotifier {
}
final Intent intent = new Intent(action, uri, mContext, DownloadReceiver.class);
+ intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
intent.putExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS,
getDownloadIds(cursor, cluster));
builder.setContentIntent(PendingIntent.getBroadcast(mContext,
@@ -275,6 +278,7 @@ public class DownloadNotifier {
final Intent hideIntent = new Intent(Constants.ACTION_HIDE,
uri, mContext, DownloadReceiver.class);
+ hideIntent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
builder.setDeleteIntent(PendingIntent.getBroadcast(mContext, 0, hideIntent, 0));
}