| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 #include "chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.h" | 4 #include "chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.h" |
| 5 | 5 |
| 6 #include "ash/shelf/shelf_util.h" | 6 #include "ash/shelf/shelf_util.h" |
| 7 #include "ash/wm/common/window_state.h" | 7 #include "ash/wm/common/window_state.h" |
| 8 #include "ash/wm/window_state_aura.h" | 8 #include "ash/wm/window_state_aura.h" |
| 9 #include "ash/wm/window_util.h" | 9 #include "ash/wm/window_util.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| 11 #include "chrome/browser/chromeos/arc/arc_auth_service.h" |
| 12 #include "chrome/browser/chromeos/arc/arc_support_host.h" |
| 11 #include "chrome/browser/profiles/profile.h" | 13 #include "chrome/browser/profiles/profile.h" |
| 14 #include "chrome/browser/ui/app_list/arc/arc_app_utils.h" |
| 12 #include "chrome/browser/ui/ash/launcher/arc_app_window_launcher_item_controller
.h" | 15 #include "chrome/browser/ui/ash/launcher/arc_app_window_launcher_item_controller
.h" |
| 13 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" | 16 #include "chrome/browser/ui/ash/launcher/chrome_launcher_controller.h" |
| 14 #include "components/arc/arc_bridge_service.h" | 17 #include "components/arc/arc_bridge_service.h" |
| 15 #include "components/exo/shell_surface.h" | 18 #include "components/exo/shell_surface.h" |
| 16 #include "ui/aura/client/aura_constants.h" | 19 #include "ui/aura/client/aura_constants.h" |
| 17 #include "ui/aura/env.h" | 20 #include "ui/aura/env.h" |
| 18 #include "ui/base/base_window.h" | 21 #include "ui/base/base_window.h" |
| 19 #include "ui/views/widget/widget.h" | 22 #include "ui/views/widget/widget.h" |
| 20 | 23 |
| 21 namespace { | 24 namespace { |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 263 ArcAppListPrefs::GetAppId(package_name, activity_name); | 266 ArcAppListPrefs::GetAppId(package_name, activity_name); |
| 264 | 267 |
| 265 ArcAppWindowLauncherItemController* controller; | 268 ArcAppWindowLauncherItemController* controller; |
| 266 AppControllerMap::iterator it = app_controller_map_.find(app_id); | 269 AppControllerMap::iterator it = app_controller_map_.find(app_id); |
| 267 ash::ShelfID shelf_id = 0; | 270 ash::ShelfID shelf_id = 0; |
| 268 if (it != app_controller_map_.end()) { | 271 if (it != app_controller_map_.end()) { |
| 269 controller = it->second; | 272 controller = it->second; |
| 270 DCHECK_EQ(controller->app_id(), app_id); | 273 DCHECK_EQ(controller->app_id(), app_id); |
| 271 shelf_id = controller->shelf_id(); | 274 shelf_id = controller->shelf_id(); |
| 272 } else { | 275 } else { |
| 273 controller = new ArcAppWindowLauncherItemController(app_id, owner()); | 276 const std::string shelf_app_id = |
| 274 shelf_id = owner()->GetShelfIDForAppID(app_id); | 277 app_id == arc::kPlayStoreAppId ? ArcSupportHost::kHostAppId : app_id; |
| 278 controller = |
| 279 new ArcAppWindowLauncherItemController(shelf_app_id, app_id, owner()); |
| 280 shelf_id = owner()->GetShelfIDForAppID(shelf_app_id); |
| 275 if (shelf_id == 0) { | 281 if (shelf_id == 0) { |
| 276 shelf_id = owner()->CreateAppLauncherItem(controller, app_id, | 282 // Map Play Store shelf icon to Arc Support host, to share one entry. |
| 283 shelf_id = owner()->CreateAppLauncherItem(controller, shelf_app_id, |
| 277 ash::STATUS_RUNNING); | 284 ash::STATUS_RUNNING); |
| 278 } else { | 285 } else { |
| 279 owner()->SetItemController(shelf_id, controller); | 286 owner()->SetItemController(shelf_id, controller); |
| 280 } | 287 } |
| 281 app_controller_map_[app_id] = controller; | 288 app_controller_map_[app_id] = controller; |
| 282 } | 289 } |
| 283 controller->AddWindow(app_window.get()); | 290 controller->AddWindow(app_window.get()); |
| 284 owner()->SetItemStatus(shelf_id, ash::STATUS_RUNNING); | 291 owner()->SetItemStatus(shelf_id, ash::STATUS_RUNNING); |
| 285 app_window->SetController(controller); | 292 app_window->SetController(controller); |
| 286 app_window->set_shelf_id(shelf_id); | 293 app_window->set_shelf_id(shelf_id); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 362 | 369 |
| 363 return nullptr; | 370 return nullptr; |
| 364 } | 371 } |
| 365 | 372 |
| 366 void ArcAppWindowLauncherController::OnWindowActivated( | 373 void ArcAppWindowLauncherController::OnWindowActivated( |
| 367 aura::client::ActivationChangeObserver::ActivationReason reason, | 374 aura::client::ActivationChangeObserver::ActivationReason reason, |
| 368 aura::Window* gained_active, | 375 aura::Window* gained_active, |
| 369 aura::Window* lost_active) { | 376 aura::Window* lost_active) { |
| 370 OnTaskSetActive(active_task_id_); | 377 OnTaskSetActive(active_task_id_); |
| 371 } | 378 } |
| OLD | NEW |