Chromium Code Reviews| Index: ui/app_list/cocoa/app_list_view_controller.mm |
| diff --git a/ui/app_list/cocoa/app_list_view_controller.mm b/ui/app_list/cocoa/app_list_view_controller.mm |
| index 37b6bf867850458437ed4001aa60b8c749aa84aa..23bc9d0d0f22a24abe194904741f708c6e084426 100644 |
| --- a/ui/app_list/cocoa/app_list_view_controller.mm |
| +++ b/ui/app_list/cocoa/app_list_view_controller.mm |
| @@ -9,9 +9,9 @@ |
| #include "skia/ext/skia_utils_mac.h" |
| #include "ui/app_list/app_list_constants.h" |
| #include "ui/app_list/app_list_model.h" |
| +#include "ui/app_list/app_list_model_observer.h" |
| #include "ui/app_list/app_list_view_delegate.h" |
| #include "ui/app_list/signin_delegate.h" |
| -#include "ui/app_list/signin_delegate_observer.h" |
| #import "ui/app_list/cocoa/app_list_pager_view.h" |
| #import "ui/app_list/cocoa/apps_grid_controller.h" |
| #import "ui/app_list/cocoa/signin_view_controller.h" |
| @@ -81,28 +81,41 @@ const NSTimeInterval kResultsAnimationDuration = 0.2; |
| namespace app_list { |
| -class SigninDelegateObserverBridge : public SigninDelegateObserver { |
| +class AppListModelObserverBridge : public AppListModelObserver { |
| public: |
| - SigninDelegateObserverBridge(AppListViewController* parent) |
| - : parent_(parent) { |
| - [parent_ signinDelegate]->AddObserver(this); |
| - } |
| - |
| - virtual ~SigninDelegateObserverBridge() { |
| - [parent_ signinDelegate]->RemoveObserver(this); |
| - } |
| + AppListModelObserverBridge(AppListModel* model, |
| + AppListViewController* parent); |
| + virtual ~AppListModelObserverBridge(); |
| private: |
| - // SigninDelegateObserver override: |
| - virtual void OnSigninSuccess() OVERRIDE { |
| - [parent_ onSigninStatusChanged]; |
| - } |
| + // Overridden from app_list::AppListModelObserver: |
| + virtual void OnAppListModelCurrentUserChanged() OVERRIDE; |
| + virtual void OnAppListModelSigninStatusChanged() OVERRIDE; |
| + AppListModel* model_; |
|
tapted
2013/08/14 03:53:11
prevailing style on the Cocoa side is to not cache
calamity
2013/08/14 09:19:00
Done.
|
| AppListViewController* parent_; // Weak. Owns us. |
| - DISALLOW_COPY_AND_ASSIGN(SigninDelegateObserverBridge); |
| + DISALLOW_COPY_AND_ASSIGN(AppListModelObserverBridge); |
| }; |
| +AppListModelObserverBridge::AppListModelObserverBridge( |
| + AppListModel* model, AppListViewController* parent) |
| + : model_(model), parent_(parent) { |
| + model_->AddObserver(this); |
| +} |
| + |
| +AppListModelObserverBridge::~AppListModelObserverBridge() { |
| + model_->RemoveObserver(this); |
| +} |
| + |
| +void AppListModelObserverBridge::OnAppListModelCurrentUserChanged() { |
| + [parent_ onSigninStatusChanged]; |
| +} |
| + |
| +void AppListModelObserverBridge::OnAppListModelSigninStatusChanged() { |
| + [parent_ onSigninStatusChanged]; |
| +} |
| + |
| } // namespace app_list |
| @implementation AppListViewController |
| @@ -148,7 +161,7 @@ class SigninDelegateObserverBridge : public SigninDelegateObserver { |
| withTestModel:(scoped_ptr<app_list::AppListModel>)newModel { |
| if (delegate_) { |
| // First clean up, in reverse order. |
| - signin_observer_bridge_.reset(); |
| + app_list_model_observer_bridge_.reset(); |
| [appsSearchResultsController_ setDelegate:nil]; |
| [appsSearchBoxController_ setDelegate:nil]; |
| } |
| @@ -158,6 +171,9 @@ class SigninDelegateObserverBridge : public SigninDelegateObserver { |
| [appsGridController_ setModel:newModel.Pass()]; |
| [appsSearchBoxController_ setDelegate:self]; |
| [appsSearchResultsController_ setDelegate:self]; |
| + app_list_model_observer_bridge_.reset( |
| + new app_list::AppListModelObserverBridge( |
| + [appsGridController_ model], self)); |
| [self onSigninStatusChanged]; |
| } |
| @@ -321,7 +337,6 @@ class SigninDelegateObserverBridge : public SigninDelegateObserver { |
| BOOL needsSignin = signinDelegate && signinDelegate->NeedSignin(); |
| if (!needsSignin) { |
| [[signinViewController_ view] removeFromSuperview]; |
| - signin_observer_bridge_.reset(); |
| signinViewController_.reset(); |
| [backgroundView_ setHidden:NO]; |
| return; |
| @@ -332,8 +347,6 @@ class SigninDelegateObserverBridge : public SigninDelegateObserver { |
| [[SigninViewController alloc] initWithFrame:[backgroundView_ frame] |
| cornerRadius:kBubbleCornerRadius |
| delegate:signinDelegate]); |
| - signin_observer_bridge_.reset( |
| - new app_list::SigninDelegateObserverBridge(self)); |
| [[self view] addSubview:[signinViewController_ view]]; |
| } |
| @@ -341,4 +354,12 @@ class SigninDelegateObserverBridge : public SigninDelegateObserver { |
| return delegate_ ? delegate_->GetSigninDelegate() : NULL; |
| } |
| +- (const base::string16&)currentUserName { |
|
tapted
2013/08/14 03:53:11
nit: These should be grouped with the other protoc
calamity
2013/08/14 09:19:00
Done.
|
| + return [appsGridController_ model]->current_user_name(); |
| +} |
| + |
| +- (const base::string16&)currentUserEmail { |
| + return [appsGridController_ model]->current_user_email(); |
| +} |
| + |
| @end |