summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryoshiki <yoshiki@chromium.org>2015-08-14 12:51:29 -0700
committerCommit bot <commit-bot@chromium.org>2015-08-14 19:52:03 +0000
commita4877be798700e9d98a758b75d86a236e2a03f5a (patch)
treeccf304da0f0f8ab85086f63965f0fa8578107067
parent8313f1fdd23a495e4f781259460052a73957950c (diff)
downloadchromium_src-a4877be798700e9d98a758b75d86a236e2a03f5a.zip
chromium_src-a4877be798700e9d98a758b75d86a236e2a03f5a.tar.gz
chromium_src-a4877be798700e9d98a758b75d86a236e2a03f5a.tar.bz2
[Download Notification] Match status strings in DownloadGroupNotification with the UX mock
This patch changes the strings in download notification, to match them with the spec. This patch introduces the methods for the status text in download notification, instead of using the common method with the download tray, to show the dedicated strings to download notification. BUG=519018 TEST=manually tested TBR=asanka@chromium.org R=fukino@chromium.org Review URL: https://codereview.chromium.org/1276903005 Cr-Commit-Position: refs/heads/master@{#343462}
-rw-r--r--chrome/app/generated_resources.grd3
-rw-r--r--chrome/browser/download/download_item_model.h2
-rw-r--r--chrome/browser/download/notification/download_group_notification.cc55
3 files changed, 58 insertions, 2 deletions
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index b14fffb..f71226f 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -1962,6 +1962,9 @@ Psst! Incognito mode <ph name="SHORTCUT_KEY">$1<ex>(Ctrl+Shift+N)</ex></ph> may
<message name="IDS_DOWNLOAD_STATUS_INTERRUPTED" desc="Status text for a download item that was interrupted.">
Failed - <ph name="INTERRUPT_REASON">$1<ex>Disk full</ex></ph>
</message>
+ <message name="IDS_DOWNLOAD_STATUS_COMPLETED" desc="Status text for download item that was completed.">
+ Completed
+ </message>
<message name="IDS_DOWNLOAD_UNCONFIRMED_PREFIX" desc="The prefix used in the unconfirmed download file.">
Unconfirmed
</message>
diff --git a/chrome/browser/download/download_item_model.h b/chrome/browser/download/download_item_model.h
index ee6fb0c..5cc4ddb 100644
--- a/chrome/browser/download/download_item_model.h
+++ b/chrome/browser/download/download_item_model.h
@@ -160,7 +160,6 @@ class DownloadItemModel {
content::DownloadItem* download() { return download_; }
- private:
// Returns a string representations of the current download progress sizes. If
// the total size of the download is known, this string looks like: "100/200
// MB" where the numerator is the transferred size and the denominator is the
@@ -168,6 +167,7 @@ class DownloadItemModel {
// string (e.g.: "100 MB").
base::string16 GetProgressSizesString() const;
+ private:
// Returns a string indicating the status of an in-progress download.
base::string16 GetInProgressStatusString() const;
diff --git a/chrome/browser/download/notification/download_group_notification.cc b/chrome/browser/download/notification/download_group_notification.cc
index cb9f283..321a20c 100644
--- a/chrome/browser/download/notification/download_group_notification.cc
+++ b/chrome/browser/download/notification/download_group_notification.cc
@@ -9,6 +9,7 @@
#include "base/strings/string_number_conversions.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/browser_process.h"
+#include "chrome/browser/download/download_crx_util.h"
#include "chrome/browser/download/download_item_model.h"
#include "chrome/browser/ui/scoped_tabbed_browser_displayer.h"
#include "chrome/common/url_constants.h"
@@ -35,6 +36,58 @@ base::string16 TruncateFilename(const base::FilePath& filename) {
kMaxFilenameWidth);
}
+base::string16 GetStatusString(content::DownloadItem* download) {
+ switch (download->GetState()) {
+ case content::DownloadItem::IN_PROGRESS:
+ // "Adding to Chrome..."
+ if (download->AllDataSaved() &&
+ download_crx_util::IsExtensionDownload(*download)) {
+ return l10n_util::GetStringUTF16(
+ IDS_DOWNLOAD_STATUS_CRX_INSTALL_RUNNING);
+ }
+
+ // "Paused"
+ if (download->IsPaused())
+ return l10n_util::GetStringUTF16(IDS_DOWNLOAD_PROGRESS_PAUSED);
+
+ // "100/120 MB" or "100 MB"
+ if (download->GetReceivedBytes() > 0) {
+ DownloadItemModel model(download);
+ return model.GetProgressSizesString();
+ }
+
+ // "Starting..."
+ return l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_STARTING);
+ case content::DownloadItem::COMPLETE:
+ // "Removed" or "Completed"
+ if (download->GetFileExternallyRemoved())
+ return l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_REMOVED);
+ else
+ return l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_COMPLETED);
+ case content::DownloadItem::CANCELLED:
+ // "Cancelled"
+ return l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_CANCELLED);
+ case content::DownloadItem::INTERRUPTED: {
+ content::DownloadInterruptReason reason = download->GetLastReason();
+ if (reason != content::DOWNLOAD_INTERRUPT_REASON_USER_CANCELED) {
+ // "Failed - <REASON>"
+ DownloadItemModel model(download);
+ base::string16 interrupt_reason = model.GetInterruptReasonText();
+ return l10n_util::GetStringFUTF16(
+ IDS_DOWNLOAD_STATUS_INTERRUPTED, interrupt_reason);
+ }
+
+ // Same as DownloadItem::CANCELLED.
+ return l10n_util::GetStringUTF16(IDS_DOWNLOAD_STATUS_CANCELLED);
+ }
+ case content::DownloadItem::MAX_DOWNLOAD_STATE:
+ break;
+ }
+
+ NOTREACHED();
+ return base::string16();
+}
+
} // anonymous namespace
DownloadGroupNotification::DownloadGroupNotification(
@@ -197,7 +250,7 @@ void DownloadGroupNotification::UpdateNotificationData() {
// TODO(yoshiki): Use emplace_back when C++11 becomes allowed.
subitems.push_back(message_center::NotificationItem(
truncated_filename_cache_[download].truncated_filename,
- model.GetStatusText()));
+ GetStatusString(download)));
if (!download->IsDone())
all_finished = false;