Index: ui/app_list/views/contents_view.cc |
diff --git a/ui/app_list/views/contents_view.cc b/ui/app_list/views/contents_view.cc |
index c9ea27655c55962d62d45ed9a73f2db58491bcb9..bdc8ad635a68027e369aa227a2fd1031e9697076 100644 |
--- a/ui/app_list/views/contents_view.cc |
+++ b/ui/app_list/views/contents_view.cc |
@@ -45,10 +45,11 @@ ContentsView::~ContentsView() { |
pagination_model_.RemoveObserver(contents_switcher_view_); |
} |
-void ContentsView::Init(AppListModel* model, |
- AppListViewDelegate* view_delegate) { |
+void ContentsView::Init(AppListModel* model) { |
DCHECK(model); |
+ AppListViewDelegate* view_delegate = app_list_main_view_->view_delegate(); |
+ |
if (app_list::switches::IsExperimentalAppListEnabled()) { |
std::vector<views::View*> custom_page_views = |
view_delegate->CreateCustomPageWebViews(GetLocalBounds().size()); |
@@ -56,7 +57,14 @@ void ContentsView::Init(AppListModel* model, |
custom_page_views.begin(); |
it != custom_page_views.end(); |
++it) { |
- AddLauncherPage(*it, IDR_APP_LIST_NOTIFICATIONS_ICON); |
+ // Only the first launcher page is considered to represent |
+ // STATE_CUSTOM_LAUNCHER_PAGE. |
+ if (it == custom_page_views.begin()) { |
+ AddLauncherPage(*it, IDR_APP_LIST_NOTIFICATIONS_ICON, |
+ AppListModel::STATE_CUSTOM_LAUNCHER_PAGE); |
+ } else { |
+ AddLauncherPage(*it, IDR_APP_LIST_NOTIFICATIONS_ICON); |
+ } |
} |
start_page_view_ = new StartPageView(app_list_main_view_, view_delegate); |
@@ -211,6 +219,20 @@ gfx::Rect ContentsView::GetOffscreenPageBounds(int page_index) const { |
return bounds; |
} |
+void ContentsView::NotifyCustomLauncherPageAnimationChanged(double progress, |
+ int current_page, |
+ int target_page) { |
+ int custom_launcher_page_index = |
+ GetPageIndexForState(AppListModel::STATE_CUSTOM_LAUNCHER_PAGE); |
+ if (custom_launcher_page_index == target_page) { |
+ app_list_main_view_->view_delegate()->CustomLauncherPageAnimationChanged( |
+ progress); |
+ } else if (custom_launcher_page_index == current_page) { |
+ app_list_main_view_->view_delegate()->CustomLauncherPageAnimationChanged( |
+ 1 - progress); |
+ } |
+} |
+ |
void ContentsView::UpdatePageBounds() { |
// The bounds calculations will potentially be mid-transition (depending on |
// the state of the PaginationModel). |
@@ -226,6 +248,8 @@ void ContentsView::UpdatePageBounds() { |
} |
} |
+ NotifyCustomLauncherPageAnimationChanged(progress, current_page, target_page); |
+ |
// Move |current_page| from 0 to its origin. Move |target_page| from its |
// origin to 0. |
gfx::Rect on_screen(GetDefaultContentsBounds()); |