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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java

Issue 2143303002: [Downloads] Expose basic download history to UI (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Lint Created 4 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
index 2bf826b235235a682baeea548f84955fc15f6098..4fa1fbc10ba4ef882eaaa9a54060984b4514a729 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadManagerService.java
@@ -29,6 +29,7 @@ import org.chromium.base.annotations.CalledByNative;
import org.chromium.base.annotations.SuppressFBWarnings;
import org.chromium.base.metrics.RecordHistogram;
import org.chromium.chrome.R;
+import org.chromium.chrome.browser.download.ui.DownloadHistoryAdapter;
import org.chromium.chrome.browser.externalnav.ExternalNavigationDelegateImpl;
import org.chromium.net.ConnectionType;
import org.chromium.net.NetworkChangeNotifierAutoDetect;
@@ -123,6 +124,8 @@ public class DownloadManagerService extends BroadcastReceiver implements
@VisibleForTesting protected final Vector<String> mAutoResumableDownloadIds =
new Vector<String>();
private final List<DownloadUmaStatsEntry> mUmaEntries = new ArrayList<DownloadUmaStatsEntry>();
+ private final DownloadHistoryAdapter mDownloadHistoryAdapter;
+
private OMADownloadHandler mOMADownloadHandler;
private DownloadSnackbarController mDownloadSnackbarController;
private long mNativeDownloadManagerService;
@@ -232,6 +235,7 @@ public class DownloadManagerService extends BroadcastReceiver implements
mOMADownloadHandler = new OMADownloadHandler(context);
mDownloadSnackbarController = new DownloadSnackbarController(context);
mDownloadManagerDelegate = new DownloadManagerDelegate(mContext);
+ mDownloadHistoryAdapter = new DownloadHistoryAdapter();
if (mSharedPrefs.contains(DEPRECATED_DOWNLOAD_NOTIFICATION_IDS)) {
mSharedPrefs.edit().remove(DEPRECATED_DOWNLOAD_NOTIFICATION_IDS).apply();
}
@@ -1449,6 +1453,49 @@ public class DownloadManagerService extends BroadcastReceiver implements
}
}
+ /**
+ * Returns the Adapter that provides a view into the download history.
+ */
+ public DownloadHistoryAdapter getDownloadHistoryAdapter() {
+ return mDownloadHistoryAdapter;
+ }
+
+ /**
+ * Begins sending back information about all entries in the user's DownloadHistory, with each
+ * individual DownloadItem's data passed back via
+ * {@link #onDownloadInfoAdded(String, String, String, String, long, long)}.
+ *
+ * This call will be delayed if the native side has not yet been initialized.
+ */
+ public void getAllDownloads() {
+ mDownloadHistoryAdapter.clear();
+ nativeGetAllDownloads(getNativeDownloadManagerService());
+ }
+
+ @CalledByNative
+ private List<DownloadItem> createDownloadItemList() {
+ return new ArrayList<DownloadItem>();
+ }
+
+ @CalledByNative
+ private void addDownloadItemToList(List<DownloadItem> list, String guid, String filename,
+ String url, String mimeType, long startTimestamp, long totalBytes) {
+ DownloadInfo.Builder builder = new DownloadInfo.Builder()
+ .setDownloadGuid(guid)
+ .setFileName(filename)
+ .setUrl(url)
+ .setMimeType(mimeType)
+ .setContentLength(totalBytes);
+ DownloadItem downloadItem = new DownloadItem(false, builder.build());
+ downloadItem.setStartTime(startTimestamp);
+ list.add(downloadItem);
+ }
+
+ @CalledByNative
+ private void onAllDownloadsRetrieved(final List<DownloadItem> list) {
+ mDownloadHistoryAdapter.onAllDownloadsRetrieved(list);
+ }
+
@Override
public void onMaxBandwidthChanged(double maxBandwidthMbps) {}
@@ -1471,4 +1518,5 @@ public class DownloadManagerService extends BroadcastReceiver implements
long nativeDownloadManagerService, String downloadGuid, boolean isOffTheRecord,
boolean isNotificationDismissed);
private native void nativePauseDownload(long nativeDownloadManagerService, String downloadGuid);
+ private native void nativeGetAllDownloads(long nativeDownloadManagerService);
}

Powered by Google App Engine
This is Rietveld 408576698