summaryrefslogtreecommitdiffstats
path: root/ui/app_list
diff options
context:
space:
mode:
authorcalamity <calamity@chromium.org>2015-03-19 21:13:13 -0700
committerCommit bot <commit-bot@chromium.org>2015-03-20 04:13:58 +0000
commita61444ac0577e22bd3b20bcee833b2d199f4f512 (patch)
tree7bb3b7c89a30db11be8211b0427b9a6f3eb2b35a /ui/app_list
parentf3af70d59497812619a1058a5a6848a5c16e1236 (diff)
downloadchromium_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.cc3
-rw-r--r--ui/app_list/views/app_list_main_view.cc10
-rw-r--r--ui/app_list/views/app_list_main_view_unittest.cc9
-rw-r--r--ui/app_list/views/app_list_view_unittest.cc67
-rw-r--r--ui/app_list/views/contents_view.cc27
-rw-r--r--ui/app_list/views/contents_view.h13
-rw-r--r--ui/app_list/views/start_page_view.cc4
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() {