diff options
author | calamity <calamity@chromium.org> | 2015-03-19 21:13:13 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-03-20 04:13:58 +0000 |
commit | a61444ac0577e22bd3b20bcee833b2d199f4f512 (patch) | |
tree | 7bb3b7c89a30db11be8211b0427b9a6f3eb2b35a /ui/app_list | |
parent | f3af70d59497812619a1058a5a6848a5c16e1236 (diff) | |
download | chromium_src-a61444ac0577e22bd3b20bcee833b2d199f4f512.zip chromium_src-a61444ac0577e22bd3b20bcee833b2d199f4f512.tar.gz chromium_src-a61444ac0577e22bd3b20bcee833b2d199f4f512.tar.bz2 |
Change ContentsView::SetActivePage to use States rather than indexes.
This CL makes the ContentsView's API state-keyed rather than page index
keyed. This removes cruft from callers of SetActivePage and will
support further refactors.
BUG=455059
TBR=jamescook@chromium.org, benwells@chromium.org
Review URL: https://codereview.chromium.org/947903002
Cr-Commit-Position: refs/heads/master@{#321513}
Diffstat (limited to 'ui/app_list')
-rw-r--r-- | ui/app_list/views/all_apps_tile_item_view.cc | 3 | ||||
-rw-r--r-- | ui/app_list/views/app_list_main_view.cc | 10 | ||||
-rw-r--r-- | ui/app_list/views/app_list_main_view_unittest.cc | 9 | ||||
-rw-r--r-- | ui/app_list/views/app_list_view_unittest.cc | 67 | ||||
-rw-r--r-- | ui/app_list/views/contents_view.cc | 27 | ||||
-rw-r--r-- | ui/app_list/views/contents_view.h | 13 | ||||
-rw-r--r-- | ui/app_list/views/start_page_view.cc | 4 |
7 files changed, 60 insertions, 73 deletions
diff --git a/ui/app_list/views/all_apps_tile_item_view.cc b/ui/app_list/views/all_apps_tile_item_view.cc index c7e10f7..5e12ad7 100644 --- a/ui/app_list/views/all_apps_tile_item_view.cc +++ b/ui/app_list/views/all_apps_tile_item_view.cc @@ -32,8 +32,7 @@ void AllAppsTileItemView::ButtonPressed(views::Button* sender, UMA_HISTOGRAM_ENUMERATION(kPageOpenedHistogram, AppListModel::STATE_APPS, AppListModel::STATE_LAST); - contents_view_->SetActivePage( - contents_view_->GetPageIndexForState(AppListModel::STATE_APPS)); + contents_view_->SetActiveState(AppListModel::STATE_APPS); } void AllAppsTileItemView::OnFolderImageUpdated() { diff --git a/ui/app_list/views/app_list_main_view.cc b/ui/app_list/views/app_list_main_view.cc index 02690dc..aa45d63 100644 --- a/ui/app_list/views/app_list_main_view.cc +++ b/ui/app_list/views/app_list_main_view.cc @@ -144,10 +144,9 @@ void AppListMainView::ShowAppListWhenReady() { } void AppListMainView::ResetForShow() { - if (switches::IsExperimentalAppListEnabled()) { - contents_view_->SetActivePage( - contents_view_->GetPageIndexForState(AppListModel::STATE_START)); - } + if (switches::IsExperimentalAppListEnabled()) + contents_view_->SetActiveState(AppListModel::STATE_START); + contents_view_->apps_container_view()->ResetForShowApps(); // We clear the search when hiding so when app list appears it is not showing // search results. @@ -262,8 +261,7 @@ void AppListMainView::UpdateCustomLauncherPageVisibility() { AppListModel::STATE_CUSTOM_LAUNCHER_PAGE)) { // Animate to the start page if currently on the custom page view. The view // will hide on animation completion. - contents_view_->SetActivePage( - contents_view_->GetPageIndexForState(AppListModel::STATE_START)); + contents_view_->SetActiveState(AppListModel::STATE_START); } else { // Hide the view immediately otherwise. custom_page->SetVisible(false); diff --git a/ui/app_list/views/app_list_main_view_unittest.cc b/ui/app_list/views/app_list_main_view_unittest.cc index accc731..547b9b3 100644 --- a/ui/app_list/views/app_list_main_view_unittest.cc +++ b/ui/app_list/views/app_list_main_view_unittest.cc @@ -278,8 +278,7 @@ TEST_F(AppListMainViewTest, MouseHoverToHighlight) { // If experimental launcher, switch to All Apps page if (app_list::switches::IsExperimentalAppListEnabled()) { - GetContentsView()->SetActivePage( - GetContentsView()->GetPageIndexForState(AppListModel::STATE_APPS)); + GetContentsView()->SetActiveState(AppListModel::STATE_APPS); GetContentsView()->Layout(); } @@ -314,8 +313,7 @@ TEST_F(AppListMainViewTest, MAYBE_TapGestureToHighlight) { // If experimental launcher, switch to All Apps page if (app_list::switches::IsExperimentalAppListEnabled()) { - GetContentsView()->SetActivePage( - GetContentsView()->GetPageIndexForState(AppListModel::STATE_APPS)); + GetContentsView()->SetActiveState(AppListModel::STATE_APPS); GetContentsView()->Layout(); } @@ -371,8 +369,7 @@ TEST_F(AppListMainViewTest, DragReparentItemOntoPageSwitcher) { // Ensure we are on the apps grid view page. app_list::ContentsView* contents_view = GetContentsView(); - contents_view->SetActivePage( - contents_view->GetPageIndexForState(AppListModel::STATE_APPS)); + contents_view->SetActiveState(AppListModel::STATE_APPS); contents_view->Layout(); AppListItemView* folder_item_view = CreateAndOpenSingleItemFolder(); diff --git a/ui/app_list/views/app_list_view_unittest.cc b/ui/app_list/views/app_list_view_unittest.cc index ded3543..dde70081 100644 --- a/ui/app_list/views/app_list_view_unittest.cc +++ b/ui/app_list/views/app_list_view_unittest.cc @@ -234,8 +234,7 @@ void AppListViewTestContext::CheckView(views::View* subview) { bool AppListViewTestContext::SetAppListState(AppListModel::State state) { ContentsView* contents_view = view_->app_list_main_view()->contents_view(); - int index = contents_view->GetPageIndexForState(state); - contents_view->SetActivePage(index); + contents_view->SetActiveState(state); contents_view->Layout(); return IsStateShown(state); } @@ -509,47 +508,51 @@ void AppListViewTestContext::RunPageSwitchingAnimationTest() { EXPECT_NO_FATAL_FAILURE(CheckView(main_view->contents_view())); ContentsView* contents_view = main_view->contents_view(); - // Pad the ContentsView with blank pages so we have at least 3 views. - while (contents_view->NumLauncherPages() < 3) - contents_view->AddBlankPageForTesting(); - contents_view->SetActivePage(0); + int start_page_index = + contents_view->GetPageIndexForState(AppListModel::STATE_START); + int search_results_page_index = + contents_view->GetPageIndexForState(AppListModel::STATE_SEARCH_RESULTS); + int apps_page_index = + contents_view->GetPageIndexForState(AppListModel::STATE_APPS); + + contents_view->SetActiveState(AppListModel::STATE_START); contents_view->Layout(); - EXPECT_EQ(contents_view->GetOnscreenPageBounds(0), - contents_view->GetPageView(0)->bounds()); - EXPECT_NE(contents_view->GetOnscreenPageBounds(1), - contents_view->GetPageView(1)->bounds()); - EXPECT_NE(contents_view->GetOnscreenPageBounds(2), - contents_view->GetPageView(2)->bounds()); + EXPECT_EQ(contents_view->GetOnscreenPageBounds(start_page_index), + contents_view->GetPageView(start_page_index)->bounds()); + EXPECT_NE(contents_view->GetOnscreenPageBounds(search_results_page_index), + contents_view->GetPageView(search_results_page_index)->bounds()); + EXPECT_NE(contents_view->GetOnscreenPageBounds(apps_page_index), + contents_view->GetPageView(apps_page_index)->bounds()); // Change pages. View should not have moved without Layout(). - contents_view->SetActivePage(1); - EXPECT_EQ(contents_view->GetOnscreenPageBounds(0), - contents_view->GetPageView(0)->bounds()); - EXPECT_NE(contents_view->GetOnscreenPageBounds(1), - contents_view->GetPageView(1)->bounds()); - EXPECT_NE(contents_view->GetOnscreenPageBounds(2), - contents_view->GetPageView(2)->bounds()); + contents_view->SetActiveState(AppListModel::STATE_SEARCH_RESULTS); + EXPECT_EQ(contents_view->GetOnscreenPageBounds(start_page_index), + contents_view->GetPageView(start_page_index)->bounds()); + EXPECT_NE(contents_view->GetOnscreenPageBounds(search_results_page_index), + contents_view->GetPageView(search_results_page_index)->bounds()); + EXPECT_NE(contents_view->GetOnscreenPageBounds(apps_page_index), + contents_view->GetPageView(apps_page_index)->bounds()); // Change to a third page. This queues up the second animation behind the // first. - contents_view->SetActivePage(2); - EXPECT_EQ(contents_view->GetOnscreenPageBounds(0), - contents_view->GetPageView(0)->bounds()); - EXPECT_NE(contents_view->GetOnscreenPageBounds(1), - contents_view->GetPageView(1)->bounds()); - EXPECT_NE(contents_view->GetOnscreenPageBounds(2), - contents_view->GetPageView(2)->bounds()); + contents_view->SetActiveState(AppListModel::STATE_APPS); + EXPECT_EQ(contents_view->GetOnscreenPageBounds(start_page_index), + contents_view->GetPageView(start_page_index)->bounds()); + EXPECT_NE(contents_view->GetOnscreenPageBounds(search_results_page_index), + contents_view->GetPageView(search_results_page_index)->bounds()); + EXPECT_NE(contents_view->GetOnscreenPageBounds(apps_page_index), + contents_view->GetPageView(apps_page_index)->bounds()); // Call Layout(). Should jump to the third page. contents_view->Layout(); - EXPECT_NE(contents_view->GetOnscreenPageBounds(0), - contents_view->GetPageView(0)->bounds()); - EXPECT_NE(contents_view->GetOnscreenPageBounds(1), - contents_view->GetPageView(1)->bounds()); - EXPECT_EQ(contents_view->GetOnscreenPageBounds(2), - contents_view->GetPageView(2)->bounds()); + EXPECT_NE(contents_view->GetOnscreenPageBounds(start_page_index), + contents_view->GetPageView(start_page_index)->bounds()); + EXPECT_NE(contents_view->GetOnscreenPageBounds(search_results_page_index), + contents_view->GetPageView(search_results_page_index)->bounds()); + EXPECT_EQ(contents_view->GetOnscreenPageBounds(apps_page_index), + contents_view->GetPageView(apps_page_index)->bounds()); } Close(); diff --git a/ui/app_list/views/contents_view.cc b/ui/app_list/views/contents_view.cc index 3c27e17..623b391 100644 --- a/ui/app_list/views/contents_view.cc +++ b/ui/app_list/views/contents_view.cc @@ -131,15 +131,15 @@ void ContentsView::SetDragAndDropHostOfCurrentAppList( apps_container_view_->SetDragAndDropHostOfCurrentAppList(drag_and_drop_host); } -void ContentsView::SetActivePage(int page_index) { - SetActivePage(page_index, true); +void ContentsView::SetActiveState(AppListModel::State state) { + SetActiveState(state, true); } -void ContentsView::SetActivePage(int page_index, bool animate) { - if (GetActivePageIndex() == page_index) +void ContentsView::SetActiveState(AppListModel::State state, bool animate) { + if (IsStateActive(state)) return; - SetActivePageInternal(page_index, false, animate); + SetActiveStateInternal(GetPageIndexForState(state), false, animate); } int ContentsView::GetActivePageIndex() const { @@ -180,9 +180,9 @@ int ContentsView::NumLauncherPages() const { return pagination_model_.total_pages(); } -void ContentsView::SetActivePageInternal(int page_index, - bool show_search_results, - bool animate) { +void ContentsView::SetActiveStateInternal(int page_index, + bool show_search_results, + bool animate) { if (!GetPageView(page_index)->visible()) return; @@ -237,7 +237,7 @@ void ContentsView::ShowSearchResults(bool show) { int search_page = GetPageIndexForState(AppListModel::STATE_SEARCH_RESULTS); DCHECK_GE(search_page, 0); - SetActivePageInternal(show ? search_page : page_before_search_, show, true); + SetActiveStateInternal(show ? search_page : page_before_search_, show, true); } bool ContentsView::IsShowingSearchResults() const { @@ -335,11 +335,6 @@ SearchBoxView* ContentsView::GetSearchBoxView() const { return app_list_main_view_->search_box_view(); } -void ContentsView::AddBlankPageForTesting() { - AddLauncherPage(new views::View); - pagination_model_.SetTotalPages(view_model_->view_size()); -} - int ContentsView::AddLauncherPage(views::View* view) { int page_index = view_model_->view_size(); AddChildView(view); @@ -432,13 +427,13 @@ bool ContentsView::Back() { if (app_list_main_view_->model()->PopCustomLauncherPageSubpage()) app_list_main_view_->view_delegate()->CustomLauncherPagePopSubpage(); else - SetActivePage(GetPageIndexForState(AppListModel::STATE_START)); + SetActiveState(AppListModel::STATE_START); break; case AppListModel::STATE_APPS: if (apps_container_view_->IsInFolderView()) apps_container_view_->app_list_folder_view()->CloseFolderPage(); else - SetActivePage(GetPageIndexForState(AppListModel::STATE_START)); + SetActiveState(AppListModel::STATE_START); break; case AppListModel::STATE_SEARCH_RESULTS: GetSearchBoxView()->ClearSearch(); diff --git a/ui/app_list/views/contents_view.h b/ui/app_list/views/contents_view.h index 89d8d69..e568b35 100644 --- a/ui/app_list/views/contents_view.h +++ b/ui/app_list/views/contents_view.h @@ -70,8 +70,8 @@ class APP_LIST_EXPORT ContentsView : public views::View, void ShowFolderContent(AppListFolderItem* folder); // Sets the active launcher page and animates the pages into place. - void SetActivePage(int page_index); - void SetActivePage(int page_index, bool animate); + void SetActiveState(AppListModel::State state); + void SetActiveState(AppListModel::State state, bool animate); // The index of the currently active launcher page. int GetActivePageIndex() const; @@ -108,9 +108,6 @@ class APP_LIST_EXPORT ContentsView : public views::View, AppListMainView* app_list_main_view() const { return app_list_main_view_; } - // Adds a blank launcher page. For use in tests only. - void AddBlankPageForTesting(); - // Returns the pagination model for the ContentsView. const PaginationModel& pagination_model() { return pagination_model_; } @@ -166,9 +163,9 @@ class APP_LIST_EXPORT ContentsView : public views::View, private: // Sets the active launcher page, accounting for whether the change is for // search results. - void SetActivePageInternal(int page_index, - bool show_search_results, - bool animate); + void SetActiveStateInternal(int page_index, + bool show_search_results, + bool animate); // Invoked when active view is changed. void ActivePageChanged(); diff --git a/ui/app_list/views/start_page_view.cc b/ui/app_list/views/start_page_view.cc index 401aae1..1c62aca 100644 --- a/ui/app_list/views/start_page_view.cc +++ b/ui/app_list/views/start_page_view.cc @@ -279,9 +279,7 @@ void StartPageView::MaybeOpenCustomLauncherPage() { AppListModel::STATE_CUSTOM_LAUNCHER_PAGE, AppListModel::STATE_LAST); - int custom_page_index = contents_view->GetPageIndexForState( - AppListModel::STATE_CUSTOM_LAUNCHER_PAGE); - contents_view->SetActivePage(custom_page_index); + contents_view->SetActiveState(AppListModel::STATE_CUSTOM_LAUNCHER_PAGE); } void StartPageView::Reset() { |