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

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

Issue 2861863002: offline_items_collection : Added helper class to determine progress (Closed)
Patch Set: more Created 3 years, 7 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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.graphics.Bitmap; 7 import android.graphics.Bitmap;
8 8
9 import org.chromium.base.annotations.CalledByNative; 9 import org.chromium.base.annotations.CalledByNative;
10 import org.chromium.components.offline_items_collection.ContentId; 10 import org.chromium.components.offline_items_collection.ContentId;
11 import org.chromium.components.offline_items_collection.LegacyHelpers; 11 import org.chromium.components.offline_items_collection.LegacyHelpers;
12 import org.chromium.components.offline_items_collection.OfflineItem; 12 import org.chromium.components.offline_items_collection.OfflineItem;
13 import org.chromium.components.offline_items_collection.OfflineItem.Progress;
13 import org.chromium.components.offline_items_collection.OfflineItemState; 14 import org.chromium.components.offline_items_collection.OfflineItemState;
14 import org.chromium.components.offline_items_collection.OfflineItemVisuals; 15 import org.chromium.components.offline_items_collection.OfflineItemVisuals;
15 import org.chromium.content_public.browser.DownloadState; 16 import org.chromium.content_public.browser.DownloadState;
16 17
17 /** 18 /**
18 * Class representing the state of a single download. 19 * Class representing the state of a single download.
19 */ 20 */
20 public final class DownloadInfo { 21 public final class DownloadInfo {
21 private final String mUrl; 22 private final String mUrl;
22 private final String mUserAgent; 23 private final String mUserAgent;
23 private final String mMimeType; 24 private final String mMimeType;
24 private final String mCookie; 25 private final String mCookie;
25 private final String mFileName; 26 private final String mFileName;
26 private final String mDescription; 27 private final String mDescription;
27 private final String mFilePath; 28 private final String mFilePath;
28 private final String mReferrer; 29 private final String mReferrer;
29 private final String mOriginalUrl; 30 private final String mOriginalUrl;
30 private final long mBytesReceived; 31 private final long mBytesReceived;
31 private final String mDownloadGuid; 32 private final String mDownloadGuid;
32 private final boolean mHasUserGesture; 33 private final boolean mHasUserGesture;
33 private final String mContentDisposition; 34 private final String mContentDisposition;
34 private final boolean mIsGETRequest; 35 private final boolean mIsGETRequest;
35 private final int mPercentCompleted; 36 private final int mPercentCompleted;
37 private final Progress mProgress;
36 private final long mTimeRemainingInMillis; 38 private final long mTimeRemainingInMillis;
37 private final boolean mIsResumable; 39 private final boolean mIsResumable;
38 private final boolean mIsPaused; 40 private final boolean mIsPaused;
39 private final boolean mIsOffTheRecord; 41 private final boolean mIsOffTheRecord;
40 private final boolean mIsOfflinePage; 42 private final boolean mIsOfflinePage;
41 private final int mState; 43 private final int mState;
42 private final long mLastAccessTime; 44 private final long mLastAccessTime;
43 45
44 // New variables to assist with the migration to OfflineItems. 46 // New variables to assist with the migration to OfflineItems.
45 private final ContentId mContentId; 47 private final ContentId mContentId;
(...skipping 10 matching lines...) Expand all
56 mDescription = builder.mDescription; 58 mDescription = builder.mDescription;
57 mFilePath = builder.mFilePath; 59 mFilePath = builder.mFilePath;
58 mReferrer = builder.mReferrer; 60 mReferrer = builder.mReferrer;
59 mOriginalUrl = builder.mOriginalUrl; 61 mOriginalUrl = builder.mOriginalUrl;
60 mBytesReceived = builder.mBytesReceived; 62 mBytesReceived = builder.mBytesReceived;
61 mDownloadGuid = builder.mDownloadGuid; 63 mDownloadGuid = builder.mDownloadGuid;
62 mHasUserGesture = builder.mHasUserGesture; 64 mHasUserGesture = builder.mHasUserGesture;
63 mIsGETRequest = builder.mIsGETRequest; 65 mIsGETRequest = builder.mIsGETRequest;
64 mContentDisposition = builder.mContentDisposition; 66 mContentDisposition = builder.mContentDisposition;
65 mPercentCompleted = builder.mPercentCompleted; 67 mPercentCompleted = builder.mPercentCompleted;
68 mProgress = builder.mProgress;
66 mTimeRemainingInMillis = builder.mTimeRemainingInMillis; 69 mTimeRemainingInMillis = builder.mTimeRemainingInMillis;
67 mIsResumable = builder.mIsResumable; 70 mIsResumable = builder.mIsResumable;
68 mIsPaused = builder.mIsPaused; 71 mIsPaused = builder.mIsPaused;
69 mIsOffTheRecord = builder.mIsOffTheRecord; 72 mIsOffTheRecord = builder.mIsOffTheRecord;
70 mIsOfflinePage = builder.mIsOfflinePage; 73 mIsOfflinePage = builder.mIsOfflinePage;
71 mState = builder.mState; 74 mState = builder.mState;
72 mLastAccessTime = builder.mLastAccessTime; 75 mLastAccessTime = builder.mLastAccessTime;
73 76
74 if (builder.mContentId != null) { 77 if (builder.mContentId != null) {
75 mContentId = builder.mContentId; 78 mContentId = builder.mContentId;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
137 return mContentDisposition; 140 return mContentDisposition;
138 } 141 }
139 142
140 /** 143 /**
141 * @return percent completed as an integer, -1 if there is no download progr ess. 144 * @return percent completed as an integer, -1 if there is no download progr ess.
142 */ 145 */
143 public int getPercentCompleted() { 146 public int getPercentCompleted() {
144 return mPercentCompleted; 147 return mPercentCompleted;
145 } 148 }
146 149
150 public Progress getProgress() {
151 return mProgress;
152 }
153
147 /** 154 /**
148 * @return Remaining download time in milliseconds or -1 if it is unknown. 155 * @return Remaining download time in milliseconds or -1 if it is unknown.
149 */ 156 */
150 public long getTimeRemainingInMillis() { 157 public long getTimeRemainingInMillis() {
151 return mTimeRemainingInMillis; 158 return mTimeRemainingInMillis;
152 } 159 }
153 160
154 public boolean isResumable() { 161 public boolean isResumable() {
155 return mIsResumable; 162 return mIsResumable;
156 } 163 }
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 .setDescription(item.description) 232 .setDescription(item.description)
226 .setIsTransient(item.isTransient) 233 .setIsTransient(item.isTransient)
227 .setLastAccessTime(item.lastAccessedTimeMs) 234 .setLastAccessTime(item.lastAccessedTimeMs)
228 .setIsOpenable(item.isOpenable) 235 .setIsOpenable(item.isOpenable)
229 .setOriginalUrl(item.originalUrl) 236 .setOriginalUrl(item.originalUrl)
230 .setIsOffTheRecord(item.isOffTheRecord) 237 .setIsOffTheRecord(item.isOffTheRecord)
231 .setState(state) 238 .setState(state)
232 .setIsPaused(item.state == OfflineItemState.PAUSED) 239 .setIsPaused(item.state == OfflineItemState.PAUSED)
233 .setIsResumable(item.isResumable) 240 .setIsResumable(item.isResumable)
234 .setBytesReceived(item.receivedBytes) 241 .setBytesReceived(item.receivedBytes)
235 .setPercentCompleted(item.percentCompleted) 242 .setProgress(item.progress)
236 .setTimeRemainingInMillis(item.timeRemainingMs) 243 .setTimeRemainingInMillis(item.timeRemainingMs)
237 .setIcon(visuals == null ? null : visuals.icon) 244 .setIcon(visuals == null ? null : visuals.icon)
238 .build(); 245 .build();
239 } 246 }
240 247
241 /** 248 /**
242 * Helper class for building the DownloadInfo object. 249 * Helper class for building the DownloadInfo object.
243 */ 250 */
244 public static class Builder { 251 public static class Builder {
245 private String mUrl; 252 private String mUrl;
246 private String mUserAgent; 253 private String mUserAgent;
247 private String mMimeType; 254 private String mMimeType;
248 private String mCookie; 255 private String mCookie;
249 private String mFileName; 256 private String mFileName;
250 private String mDescription; 257 private String mDescription;
251 private String mFilePath; 258 private String mFilePath;
252 private String mReferrer; 259 private String mReferrer;
253 private String mOriginalUrl; 260 private String mOriginalUrl;
254 private long mBytesReceived; 261 private long mBytesReceived;
255 private boolean mIsGETRequest; 262 private boolean mIsGETRequest;
256 private String mDownloadGuid; 263 private String mDownloadGuid;
257 private boolean mHasUserGesture; 264 private boolean mHasUserGesture;
258 private String mContentDisposition; 265 private String mContentDisposition;
259 private int mPercentCompleted = -1; 266 private int mPercentCompleted = -1;
267 private Progress mProgress;
260 private long mTimeRemainingInMillis; 268 private long mTimeRemainingInMillis;
261 private boolean mIsResumable = true; 269 private boolean mIsResumable = true;
262 private boolean mIsPaused; 270 private boolean mIsPaused;
263 private boolean mIsOffTheRecord; 271 private boolean mIsOffTheRecord;
264 private boolean mIsOfflinePage; 272 private boolean mIsOfflinePage;
265 private int mState = DownloadState.IN_PROGRESS; 273 private int mState = DownloadState.IN_PROGRESS;
266 private long mLastAccessTime; 274 private long mLastAccessTime;
267 private ContentId mContentId; 275 private ContentId mContentId;
268 private boolean mIsOpenable = true; 276 private boolean mIsOpenable = true;
269 private boolean mIsTransient; 277 private boolean mIsTransient;
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
338 mContentDisposition = contentDisposition; 346 mContentDisposition = contentDisposition;
339 return this; 347 return this;
340 } 348 }
341 349
342 public Builder setPercentCompleted(int percentCompleted) { 350 public Builder setPercentCompleted(int percentCompleted) {
343 assert percentCompleted <= 100; 351 assert percentCompleted <= 100;
344 mPercentCompleted = percentCompleted; 352 mPercentCompleted = percentCompleted;
345 return this; 353 return this;
346 } 354 }
347 355
356 public Builder setProgress(OfflineItem.Progress progress) {
357 mProgress = progress;
358 if (mProgress.max != 0) {
359 mPercentCompleted = (int) (progress.value / progress.max);
360 }
361 return this;
362 }
363
348 public Builder setTimeRemainingInMillis(long timeRemainingInMillis) { 364 public Builder setTimeRemainingInMillis(long timeRemainingInMillis) {
349 mTimeRemainingInMillis = timeRemainingInMillis; 365 mTimeRemainingInMillis = timeRemainingInMillis;
350 return this; 366 return this;
351 } 367 }
352 368
353 public Builder setIsResumable(boolean isResumable) { 369 public Builder setIsResumable(boolean isResumable) {
354 mIsResumable = isResumable; 370 mIsResumable = isResumable;
355 return this; 371 return this;
356 } 372 }
357 373
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 .setDescription(downloadInfo.getDescription()) 435 .setDescription(downloadInfo.getDescription())
420 .setFilePath(downloadInfo.getFilePath()) 436 .setFilePath(downloadInfo.getFilePath())
421 .setReferrer(downloadInfo.getReferrer()) 437 .setReferrer(downloadInfo.getReferrer())
422 .setOriginalUrl(downloadInfo.getOriginalUrl()) 438 .setOriginalUrl(downloadInfo.getOriginalUrl())
423 .setBytesReceived(downloadInfo.getBytesReceived()) 439 .setBytesReceived(downloadInfo.getBytesReceived())
424 .setDownloadGuid(downloadInfo.getDownloadGuid()) 440 .setDownloadGuid(downloadInfo.getDownloadGuid())
425 .setHasUserGesture(downloadInfo.hasUserGesture()) 441 .setHasUserGesture(downloadInfo.hasUserGesture())
426 .setContentDisposition(downloadInfo.getContentDisposition()) 442 .setContentDisposition(downloadInfo.getContentDisposition())
427 .setIsGETRequest(downloadInfo.isGETRequest()) 443 .setIsGETRequest(downloadInfo.isGETRequest())
428 .setPercentCompleted(downloadInfo.getPercentCompleted()) 444 .setPercentCompleted(downloadInfo.getPercentCompleted())
445 .setProgress(downloadInfo.getProgress())
429 .setTimeRemainingInMillis(downloadInfo.getTimeRemainingInMil lis()) 446 .setTimeRemainingInMillis(downloadInfo.getTimeRemainingInMil lis())
430 .setIsResumable(downloadInfo.isResumable()) 447 .setIsResumable(downloadInfo.isResumable())
431 .setIsPaused(downloadInfo.isPaused()) 448 .setIsPaused(downloadInfo.isPaused())
432 .setIsOffTheRecord(downloadInfo.isOffTheRecord()) 449 .setIsOffTheRecord(downloadInfo.isOffTheRecord())
433 .setIsOfflinePage(downloadInfo.isOfflinePage()) 450 .setIsOfflinePage(downloadInfo.isOfflinePage())
434 .setState(downloadInfo.state()) 451 .setState(downloadInfo.state())
435 .setLastAccessTime(downloadInfo.getLastAccessTime()) 452 .setLastAccessTime(downloadInfo.getLastAccessTime())
436 .setIcon(downloadInfo.getIcon()); 453 .setIcon(downloadInfo.getIcon());
437 return builder; 454 return builder;
438 } 455 }
(...skipping 21 matching lines...) Expand all
460 .setOriginalUrl(originalUrl) 477 .setOriginalUrl(originalUrl)
461 .setPercentCompleted(percentCompleted) 478 .setPercentCompleted(percentCompleted)
462 .setReferrer(referrerUrl) 479 .setReferrer(referrerUrl)
463 .setState(state) 480 .setState(state)
464 .setTimeRemainingInMillis(timeRemainingInMs) 481 .setTimeRemainingInMillis(timeRemainingInMs)
465 .setLastAccessTime(lastAccessTime) 482 .setLastAccessTime(lastAccessTime)
466 .setUrl(url) 483 .setUrl(url)
467 .build(); 484 .build();
468 } 485 }
469 } 486 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698