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

Unified Diff: chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm

Issue 11009017: Mac Web Intents Part 11: Progress view (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: a Created 8 years, 3 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/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm
diff --git a/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm b/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm
index 3bf7cde12ec312eb1e5eb4ce0bef684d440d8b94..083385d65441be9cc9d8fd714b0be9a60b676f75 100644
--- a/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm
+++ b/chrome/browser/ui/cocoa/intents/web_intent_picker_view_controller.mm
@@ -10,6 +10,7 @@
#import "chrome/browser/ui/cocoa/hover_close_button.h"
#import "chrome/browser/ui/cocoa/intents/web_intent_picker_cocoa2.h"
#import "chrome/browser/ui/cocoa/intents/web_intent_view_controller_message.h"
+#import "chrome/browser/ui/cocoa/intents/web_intent_view_controller_progress.h"
#import "chrome/browser/ui/cocoa/key_equivalent_constants.h"
#include "chrome/browser/ui/constrained_window.h"
#include "chrome/browser/ui/intents/web_intent_picker_delegate.h"
@@ -22,6 +23,10 @@
namespace {
WebIntentPickerState GetPickerState(const WebIntentPickerModel& model) {
+ if (!model.pending_install_extension_id().empty())
+ return PICKER_STATE_INSTALLING_EXTENSION;
+ if (model.IsWaitingForSuggestions())
+ return PICKER_STATE_WAITING;
return PICKER_STATE_NO_SERVICE;
}
@@ -36,7 +41,9 @@ WebIntentPickerState GetPickerState(const WebIntentPickerModel& model) {
- (WebIntentViewController*)currentViewController;
// Update the varous views.
+- (void)updateWaiting;
- (void)updateNoService;
+- (void)updateInstallingExtension;
- (void)onCloseButton:(id)sender;
- (void)cancelOperation:(id)sender;
@@ -61,6 +68,8 @@ WebIntentPickerState GetPickerState(const WebIntentPickerModel& model) {
messageViewController_.reset(
[[WebIntentViewControllerMessage alloc] init]);
+ progressViewController_.reset(
+ [[WebIntentViewControllerProgress alloc] init]);
}
return self;
}
@@ -73,6 +82,10 @@ WebIntentPickerState GetPickerState(const WebIntentPickerModel& model) {
return messageViewController_;
}
+- (WebIntentViewControllerProgress*)progressViewController {
+ return progressViewController_;
+}
+
- (void)update {
WebIntentPickerState newState = GetPickerState(*picker_->model());
if (state_ != newState || ![[[self currentViewController] view] superview]) {
@@ -86,9 +99,15 @@ WebIntentPickerState GetPickerState(const WebIntentPickerModel& model) {
}
switch (state_) {
+ case PICKER_STATE_WAITING:
+ [self updateWaiting];
+ break;
case PICKER_STATE_NO_SERVICE:
[self updateNoService];
break;
+ case PICKER_STATE_INSTALLING_EXTENSION:
+ [self updateInstallingExtension];
+ break;
}
[self performLayout];
@@ -131,13 +150,24 @@ WebIntentPickerState GetPickerState(const WebIntentPickerModel& model) {
- (WebIntentViewController*)currentViewController {
switch (state_) {
+ case PICKER_STATE_WAITING:
+ return progressViewController_;
case PICKER_STATE_NO_SERVICE:
return messageViewController_;
+ case PICKER_STATE_INSTALLING_EXTENSION:
+ return progressViewController_;
}
NOTREACHED();
return nil;
}
+- (void)updateWaiting {
+ NSString* message = l10n_util::GetNSStringWithFixup(
+ IDS_INTENT_PICKER_WAIT_FOR_CWS);
+ [progressViewController_ setMessage:message];
+ [progressViewController_ setPercentDone:-1];
+}
+
- (void)updateNoService {
[messageViewController_ setTitle:l10n_util::GetNSStringWithFixup(
IDS_INTENT_PICKER_NO_SERVICES_TITLE)];
@@ -145,6 +175,21 @@ WebIntentPickerState GetPickerState(const WebIntentPickerModel& model) {
IDS_INTENT_PICKER_NO_SERVICES)];
}
+- (void)updateInstallingExtension {
+ WebIntentPickerModel* model = picker_->model();
+ const WebIntentPickerModel::SuggestedExtension* extension =
+ model->GetSuggestedExtensionWithId(
+ model->pending_install_extension_id());
+ if (!extension)
+ return;
+ [progressViewController_ setTitle:
+ base::SysUTF16ToNSString(extension->title)];
+ [progressViewController_ setMessage:
+ base::SysUTF16ToNSString(model->pending_install_status_string())];
+ [progressViewController_ setPercentDone:
+ model->pending_install_download_percent()];
+}
+
- (void)onCloseButton:(id)sender {
picker_->delegate()->OnUserCancelledPickerDialog();
}

Powered by Google App Engine
This is Rietveld 408576698