Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/download/SystemDownloadNotifier.java

Issue 2759193003: Downloads: Properly prune processed actions (Closed)
Patch Set: Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.download; 5 package org.chromium.chrome.browser.download;
6 6
7 import android.content.ComponentName; 7 import android.content.ComponentName;
8 import android.content.Context; 8 import android.content.Context;
9 import android.content.Intent; 9 import android.content.Intent;
10 import android.content.ServiceConnection; 10 import android.content.ServiceConnection;
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 mBoundService = service; 104 mBoundService = service;
105 } 105 }
106 106
107 /** 107 /**
108 * Handles all the pending notifications that hasn't been processed. 108 * Handles all the pending notifications that hasn't been processed.
109 */ 109 */
110 @VisibleForTesting 110 @VisibleForTesting
111 void handlePendingNotifications() { 111 void handlePendingNotifications() {
112 if (mPendingNotifications.isEmpty()) return; 112 if (mPendingNotifications.isEmpty()) return;
113 for (int i = 0; i < mPendingNotifications.size(); i++) { 113 for (int i = 0; i < mPendingNotifications.size(); i++) {
114 // If we lose the service mid-loop retrigger the service load and qu it. 114 // If we lose the service mid-loop retrigger the service load and qu it.
qinmin 2017/03/23 23:21:00 can this actually happen in the middle of a runnin
David Trainor- moved to gerrit 2017/03/24 00:32:35 I think the service can try to stop itself if it h
qinmin 2017/03/24 05:05:09 you mean service.stopself()? I don't think that ma
David Trainor- moved to gerrit 2017/03/25 03:56:24 Gah lost a big reply by closing the tab :(. So tl
115 if (mBoundService == null) { 115 if (mBoundService == null) {
116 startAndBindToServiceIfNeeded(); 116 startAndBindToServiceIfNeeded();
117 // Prune the list by pulling out the items we've already process ed.
118 mPendingNotifications = new ArrayList<PendingNotificationInfo>(
119 mPendingNotifications.subList(i, mPendingNotifications.s ize()));
117 return; 120 return;
118 } 121 }
119 updateDownloadNotification( 122 updateDownloadNotification(
120 mPendingNotifications.get(i), i == mPendingNotifications.siz e() - 1); 123 mPendingNotifications.get(i), i == mPendingNotifications.siz e() - 1);
121 } 124 }
122 mPendingNotifications.clear(); 125 mPendingNotifications.clear();
123 } 126 }
124 127
125 /** 128 /**
126 * Starts and binds to the download notification service if needed. 129 * Starts and binds to the download notification service if needed.
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 default: 301 default:
299 assert false; 302 assert false;
300 } 303 }
301 304
302 // Don't need to expose the notification id to ignore. Cancel will auto matically call this 305 // Don't need to expose the notification id to ignore. Cancel will auto matically call this
303 // method as well and pass it in. 306 // method as well and pass it in.
304 if (mBoundService != null) mBoundService.hideSummaryNotificationIfNecess ary(-1); 307 if (mBoundService != null) mBoundService.hideSummaryNotificationIfNecess ary(-1);
305 if (autoRelease) unbindServiceIfNeeded(); 308 if (autoRelease) unbindServiceIfNeeded();
306 } 309 }
307 } 310 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698