Index: athena/home/home_card_impl.cc |
diff --git a/athena/home/home_card_impl.cc b/athena/home/home_card_impl.cc |
index 9825d9246c7539e2032284a1f4e0bef7e99cb55f..9b2e49f620d73b3601c4596cf5664c462baf65e5 100644 |
--- a/athena/home/home_card_impl.cc |
+++ b/athena/home/home_card_impl.cc |
@@ -137,7 +137,8 @@ class HomeCardLayoutManager : public aura::LayoutManager { |
}; |
// The container view of home card contents of each state. |
-class HomeCardView : public views::WidgetDelegateView { |
+class HomeCardView : public views::WidgetDelegateView, |
+ public AthenaStartPageView::Observer { |
public: |
HomeCardView(app_list::AppListViewDelegate* view_delegate, |
aura::Window* container, |
@@ -149,9 +150,12 @@ class HomeCardView : public views::WidgetDelegateView { |
// the home card. |
// TODO(mukai): make it so after the detailed UI has been fixed. |
main_view_ = new AthenaStartPageView(view_delegate); |
+ main_view_->AddObserver(this); |
AddChildView(main_view_); |
} |
+ virtual ~HomeCardView() { main_view_->RemoveObserver(this); } |
+ |
void SetStateProgress(HomeCard::State from_state, |
HomeCard::State to_state, |
float progress) { |
@@ -213,6 +217,12 @@ class HomeCardView : public views::WidgetDelegateView { |
return this; |
} |
+ // AthenaStartPageView::Observer: |
+ virtual void OnLayoutStateChanged(float new_state) override { |
+ if (new_state == 1.0f) |
+ HomeCard::Get()->SetState(HomeCard::VISIBLE_CENTERED); |
+ } |
+ |
AthenaStartPageView* main_view_; |
scoped_ptr<HomeCardGestureManager> gesture_manager_; |
HomeCardGestureManager::Delegate* gesture_delegate_; |