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

Unified Diff: components/offline_items_collection/core/offline_item.h

Issue 2861863002: offline_items_collection : Added helper class to determine progress (Closed)
Patch Set: comments 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 side-by-side diff with in-line comments
Download patch
Index: components/offline_items_collection/core/offline_item.h
diff --git a/components/offline_items_collection/core/offline_item.h b/components/offline_items_collection/core/offline_item.h
index c588253f1f447f55b205f9a8071695a17e795ac9..12525688425d01d44bd7a43057f028f98478a3c7 100644
--- a/components/offline_items_collection/core/offline_item.h
+++ b/components/offline_items_collection/core/offline_item.h
@@ -7,6 +7,7 @@
#include <string>
+#include "base/optional.h"
#include "base/time/time.h"
#include "components/offline_items_collection/core/offline_item_filter.h"
#include "components/offline_items_collection/core/offline_item_state.h"
@@ -38,6 +39,14 @@ struct ContentId {
bool operator<(const ContentId& content_id) const;
};
+// A Java counterpart will be generated for this enum.
+// GENERATED_JAVA_ENUM_PACKAGE: org.chromium.components.offline_items_collection
+enum class OfflineItemProgressUnit {
+ BYTES,
+ FILES,
+ PERCENTAGE,
+};
+
// This struct holds the relevant pieces of information to represent an abstract
// offline item to the front end. This is meant to be backed by components that
// need to both show content being offlined (downloading, saving, etc.) as well
@@ -46,6 +55,26 @@ struct ContentId {
//
// A new feature should expose these OfflineItems via an OfflineContentProvider.
struct OfflineItem {
+ // This struct holds the essential pieces of information to compute the
+ // download progress for an offline item to display in the UI.
+ struct Progress {
+ Progress();
+ Progress(const Progress& other);
+ ~Progress();
+
+ bool operator==(const Progress& progress) const;
+
+ // Current value of the download progress.
+ int64_t value;
+
+ // The maximum value of the download progress. Absence of the value implies
+ // indeterminate progress.
+ base::Optional<int64_t> max;
+
+ // The unit of progress to be displayed in the UI.
+ OfflineItemProgressUnit unit;
+ };
+
OfflineItem();
OfflineItem(const OfflineItem& other);
explicit OfflineItem(const ContentId& id);
@@ -122,11 +151,9 @@ struct OfflineItem {
// if |state| is COMPLETE.
int64_t received_bytes;
- // How complete (from 0 to 100) the offlining process is for this item. -1
- // represents that progress cannot be determined for this item and an
- // indeterminate progress bar should be used. This field is not used if
+ // Represents the current progress of this item. This field is not used if
// |state| is COMPLETE.
- int percent_completed;
+ Progress progress;
// The estimated time remaining for the download in milliseconds. -1
// represents an unknown time remaining. This field is not used if |state| is

Powered by Google App Engine
This is Rietveld 408576698