| Index: chrome/android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java
|
| index badc4739c177761a91b9d7ea9cf1055d10c3964a..0932df91351b9f4cf011f9e505d26c9327cfe155 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/DownloadInfo.java
|
| @@ -7,6 +7,8 @@ package org.chromium.chrome.browser.download;
|
| import org.chromium.base.annotations.CalledByNative;
|
| import org.chromium.components.offline_items_collection.ContentId;
|
| import org.chromium.components.offline_items_collection.LegacyHelpers;
|
| +import org.chromium.components.offline_items_collection.OfflineItem;
|
| +import org.chromium.components.offline_items_collection.OfflineItemState;
|
| import org.chromium.content_public.browser.DownloadState;
|
|
|
| /**
|
| @@ -35,7 +37,11 @@ public final class DownloadInfo {
|
| private final boolean mIsOfflinePage;
|
| private final int mState;
|
| private final long mLastAccessTime;
|
| +
|
| + // New variables to assist with the migration to OfflineItems.
|
| private final ContentId mContentId;
|
| + private final boolean mIsOpenable;
|
| + private final boolean mIsTransient;
|
|
|
| private DownloadInfo(Builder builder) {
|
| mUrl = builder.mUrl;
|
| @@ -60,11 +66,14 @@ public final class DownloadInfo {
|
| mIsOfflinePage = builder.mIsOfflinePage;
|
| mState = builder.mState;
|
| mLastAccessTime = builder.mLastAccessTime;
|
| +
|
| if (builder.mContentId != null) {
|
| mContentId = builder.mContentId;
|
| } else {
|
| mContentId = LegacyHelpers.buildLegacyContentId(mIsOfflinePage, mDownloadGuid);
|
| }
|
| + mIsOpenable = builder.mIsOpenable;
|
| + mIsTransient = builder.mIsTransient;
|
| }
|
|
|
| public String getUrl() {
|
| @@ -165,6 +174,60 @@ public final class DownloadInfo {
|
| return mContentId;
|
| }
|
|
|
| + public boolean getIsOpenable() {
|
| + return mIsOpenable;
|
| + }
|
| +
|
| + public boolean getIsTransient() {
|
| + return mIsTransient;
|
| + }
|
| +
|
| + /**
|
| + * Helper method to build a {@link DownloadInfo} from an {@link OfflineItem}.
|
| + * @param item The {@link OfflineItem} to mimic.
|
| + * @return A {@link DownloadInfo} containing the relevant fields from {@code item}.
|
| + */
|
| + public static DownloadInfo fromOfflineItem(OfflineItem item) {
|
| + int state;
|
| + switch (item.state) {
|
| + case OfflineItemState.COMPLETE:
|
| + state = DownloadState.COMPLETE;
|
| + break;
|
| + case OfflineItemState.CANCELLED:
|
| + state = DownloadState.CANCELLED;
|
| + break;
|
| + case OfflineItemState.INTERRUPTED:
|
| + state = DownloadState.INTERRUPTED;
|
| + break;
|
| + case OfflineItemState.FAILED:
|
| + state = DownloadState.INTERRUPTED; // TODO(dtrainor): Validate what this state is.
|
| + break;
|
| + case OfflineItemState.PENDING: // TODO(dtrainor): Validate what this state is.
|
| + case OfflineItemState.IN_PROGRESS:
|
| + case OfflineItemState.PAUSED: // TODO(dtrainor): Validate what this state is.
|
| + default:
|
| + state = DownloadState.IN_PROGRESS;
|
| + break;
|
| + }
|
| +
|
| + return new DownloadInfo.Builder()
|
| + .setContentId(item.id)
|
| + .setFileName(item.title)
|
| + .setDescription(item.description)
|
| + .setIsTransient(item.isTransient)
|
| + .setLastAccessTime(item.lastAccessedTimeMs)
|
| + .setIsOpenable(item.isOpenable)
|
| + .setOriginalUrl(item.originalUrl)
|
| + .setIsOffTheRecord(item.isOffTheRecord)
|
| + .setState(state)
|
| + .setIsPaused(item.state == OfflineItemState.PAUSED)
|
| + .setIsResumable(item.isResumable)
|
| + .setBytesReceived(item.receivedBytes)
|
| + .setPercentCompleted(item.percentCompleted)
|
| + .setTimeRemainingInMillis(item.timeRemainingMs)
|
| + .build();
|
| + }
|
| +
|
| /**
|
| * Helper class for building the DownloadInfo object.
|
| */
|
| @@ -192,6 +255,8 @@ public final class DownloadInfo {
|
| private int mState = DownloadState.IN_PROGRESS;
|
| private long mLastAccessTime;
|
| private ContentId mContentId;
|
| + private boolean mIsOpenable = true;
|
| + private boolean mIsTransient;
|
|
|
| public Builder setUrl(String url) {
|
| mUrl = url;
|
| @@ -309,6 +374,16 @@ public final class DownloadInfo {
|
| return this;
|
| }
|
|
|
| + public Builder setIsOpenable(boolean isOpenable) {
|
| + mIsOpenable = isOpenable;
|
| + return this;
|
| + }
|
| +
|
| + public Builder setIsTransient(boolean isTransient) {
|
| + mIsTransient = isTransient;
|
| + return this;
|
| + }
|
| +
|
| public DownloadInfo build() {
|
| return new DownloadInfo(this);
|
| }
|
|
|