| Index: chrome/browser/ui/ash/app_list/app_list_service_ash.cc
|
| diff --git a/chrome/browser/ui/ash/app_list/app_list_service_ash.cc b/chrome/browser/ui/ash/app_list/app_list_service_ash.cc
|
| index b420c882993b1a57bd44b94d2e8b1b2ffb87d0de..fb76d99edba1ce83e081a4f641fd4c7831af9779 100644
|
| --- a/chrome/browser/ui/ash/app_list/app_list_service_ash.cc
|
| +++ b/chrome/browser/ui/ash/app_list/app_list_service_ash.cc
|
| @@ -4,48 +4,18 @@
|
|
|
| #include "chrome/browser/ui/ash/app_list/app_list_service_ash.h"
|
|
|
| -#include "ash/app_list/app_list_shower_delegate.h"
|
| -#include "ash/app_list/app_list_shower_delegate_factory.h"
|
| -#include "ash/app_list/app_list_view_delegate_factory.h"
|
| #include "ash/shell.h"
|
| #include "base/files/file_path.h"
|
| -#include "base/memory/ptr_util.h"
|
| #include "base/memory/singleton.h"
|
| #include "build/build_config.h"
|
| #include "chrome/browser/profiles/profile.h"
|
| -#include "chrome/browser/ui/app_list/app_list_view_delegate.h"
|
| #include "chrome/browser/ui/app_list/start_page_service.h"
|
| #include "chrome/browser/ui/ash/app_list/app_list_controller_ash.h"
|
| #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h"
|
| -#include "chrome/browser/ui/ash/session_util.h"
|
| #include "ui/app_list/app_list_switches.h"
|
| -#include "ui/app_list/shower/app_list_shower_delegate_factory.h"
|
| -#include "ui/app_list/shower/app_list_shower_impl.h"
|
| #include "ui/app_list/views/app_list_main_view.h"
|
| #include "ui/app_list/views/app_list_view.h"
|
| #include "ui/app_list/views/contents_view.h"
|
| -
|
| -namespace {
|
| -
|
| -class ViewDelegateFactoryImpl : public ash::AppListViewDelegateFactory {
|
| - public:
|
| - explicit ViewDelegateFactoryImpl(AppListServiceImpl* factory)
|
| - : factory_(factory) {}
|
| - ~ViewDelegateFactoryImpl() override {}
|
| -
|
| - // app_list::AppListViewDelegateFactory:
|
| - app_list::AppListViewDelegate* GetDelegate() override {
|
| - return factory_->GetViewDelegate(
|
| - Profile::FromBrowserContext(GetActiveBrowserContext()));
|
| - }
|
| -
|
| - private:
|
| - AppListServiceImpl* factory_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(ViewDelegateFactoryImpl);
|
| -};
|
| -
|
| -} // namespace
|
|
|
| // static
|
| AppListServiceAsh* AppListServiceAsh::GetInstance() {
|
| @@ -54,19 +24,33 @@
|
| }
|
|
|
| AppListServiceAsh::AppListServiceAsh()
|
| - : shower_delegate_factory_(new ash::AppListShowerDelegateFactory(
|
| - base::WrapUnique(new ViewDelegateFactoryImpl(this)))) {
|
| - app_list_shower_.reset(
|
| - new app_list::AppListShowerImpl(shower_delegate_factory_.get()));
|
| - controller_delegate_.reset(
|
| - new AppListControllerDelegateAsh(app_list_shower_.get()));
|
| + : controller_delegate_(new AppListControllerDelegateAsh()) {
|
| }
|
|
|
| AppListServiceAsh::~AppListServiceAsh() {
|
| }
|
|
|
| -app_list::AppListShower* AppListServiceAsh::GetAppListShower() {
|
| - return app_list_shower_.get();
|
| +void AppListServiceAsh::ShowAndSwitchToState(
|
| + app_list::AppListModel::State state) {
|
| + bool app_list_was_open = true;
|
| + app_list::AppListView* app_list_view =
|
| + ash::Shell::GetInstance()->GetAppListView();
|
| + if (!app_list_view) {
|
| + // TODO(calamity): This may cause the app list to show briefly before the
|
| + // state change. If this becomes an issue, add the ability to ash::Shell to
|
| + // load the app list without showing it.
|
| + ash::Shell::GetInstance()->ShowAppList(NULL);
|
| + app_list_was_open = false;
|
| + app_list_view = ash::Shell::GetInstance()->GetAppListView();
|
| + DCHECK(app_list_view);
|
| + }
|
| +
|
| + if (state == app_list::AppListModel::INVALID_STATE)
|
| + return;
|
| +
|
| + app_list::ContentsView* contents_view =
|
| + app_list_view->app_list_main_view()->contents_view();
|
| + contents_view->SetActiveState(state, app_list_was_open /* animate */);
|
| }
|
|
|
| void AppListServiceAsh::Init(Profile* initial_profile) {
|
| @@ -79,28 +63,7 @@
|
| }
|
|
|
| void AppListServiceAsh::OnProfileWillBeRemoved(
|
| - const base::FilePath& profile_path) {}
|
| -
|
| -void AppListServiceAsh::ShowAndSwitchToState(
|
| - app_list::AppListModel::State state) {
|
| - bool app_list_was_open = true;
|
| - app_list::AppListView* app_list_view = app_list_shower_->GetView();
|
| - if (!app_list_view) {
|
| - // TODO(calamity): This may cause the app list to show briefly before the
|
| - // state change. If this becomes an issue, add the ability to ash::Shell to
|
| - // load the app list without showing it.
|
| - app_list_shower_->Show(ash::Shell::GetTargetRootWindow());
|
| - app_list_was_open = false;
|
| - app_list_view = app_list_shower_->GetView();
|
| - DCHECK(app_list_view);
|
| - }
|
| -
|
| - if (state == app_list::AppListModel::INVALID_STATE)
|
| - return;
|
| -
|
| - app_list::ContentsView* contents_view =
|
| - app_list_view->app_list_main_view()->contents_view();
|
| - contents_view->SetActiveState(state, app_list_was_open /* animate */);
|
| + const base::FilePath& profile_path) {
|
| }
|
|
|
| base::FilePath AppListServiceAsh::GetProfilePath(
|
| @@ -112,7 +75,7 @@
|
| // This may not work correctly if the profile passed in is different from the
|
| // one the ash Shell is currently using.
|
| // TODO(ananta): Handle profile changes correctly when !defined(OS_CHROMEOS).
|
| - app_list_shower_->Show(ash::Shell::GetTargetRootWindow());
|
| + ash::Shell::GetInstance()->ShowAppList(NULL);
|
| }
|
|
|
| void AppListServiceAsh::ShowForAppInstall(Profile* profile,
|
| @@ -130,7 +93,8 @@
|
| }
|
|
|
| void AppListServiceAsh::HideCustomLauncherPage() {
|
| - app_list::AppListView* app_list_view = app_list_shower_->GetView();
|
| + app_list::AppListView* app_list_view =
|
| + ash::Shell::GetInstance()->GetAppListView();
|
| if (!app_list_view)
|
| return;
|
|
|
| @@ -143,18 +107,20 @@
|
| }
|
|
|
| bool AppListServiceAsh::IsAppListVisible() const {
|
| - return app_list_shower_->GetTargetVisibility();
|
| + return ash::Shell::GetInstance()->GetAppListTargetVisibility();
|
| }
|
|
|
| void AppListServiceAsh::DismissAppList() {
|
| - app_list_shower_->Dismiss();
|
| + ash::Shell::GetInstance()->DismissAppList();
|
| }
|
|
|
| void AppListServiceAsh::EnableAppList(Profile* initial_profile,
|
| AppListEnableSource enable_source) {}
|
|
|
| gfx::NativeWindow AppListServiceAsh::GetAppListWindow() {
|
| - return app_list_shower_->GetWindow();
|
| + if (ash::Shell::HasInstance())
|
| + return ash::Shell::GetInstance()->GetAppListWindow();
|
| + return NULL;
|
| }
|
|
|
| Profile* AppListServiceAsh::GetCurrentAppListProfile() {
|
|
|