| 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());
|
|
|