Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(577)

Side by Side Diff: chrome/browser/ui/ash/launcher/arc_app_window_launcher_controller.cc

Issue 1973603002: arc: Make Play Store item persistance in shelf. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comments Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 262 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 ArcAppListPrefs::GetAppId(package_name, activity_name); 287 ArcAppListPrefs::GetAppId(package_name, activity_name);
285 288
286 ArcAppWindowLauncherItemController* controller; 289 ArcAppWindowLauncherItemController* controller;
287 AppControllerMap::iterator it = app_controller_map_.find(app_id); 290 AppControllerMap::iterator it = app_controller_map_.find(app_id);
288 ash::ShelfID shelf_id = 0; 291 ash::ShelfID shelf_id = 0;
289 if (it != app_controller_map_.end()) { 292 if (it != app_controller_map_.end()) {
290 controller = it->second; 293 controller = it->second;
291 DCHECK_EQ(controller->app_id(), app_id); 294 DCHECK_EQ(controller->app_id(), app_id);
292 shelf_id = controller->shelf_id(); 295 shelf_id = controller->shelf_id();
293 } else { 296 } else {
294 controller = new ArcAppWindowLauncherItemController(app_id, owner()); 297 const std::string shelf_app_id =
295 shelf_id = owner()->GetShelfIDForAppID(app_id); 298 app_id == arc::kPlayStoreAppId ? ArcSupportHost::kHostAppId : app_id;
299 controller =
300 new ArcAppWindowLauncherItemController(shelf_app_id, app_id, owner());
301 shelf_id = owner()->GetShelfIDForAppID(shelf_app_id);
296 if (shelf_id == 0) { 302 if (shelf_id == 0) {
297 shelf_id = owner()->CreateAppLauncherItem(controller, app_id, 303 // Map Play Store shelf icon to Arc Support host, to share one entry.
304 shelf_id = owner()->CreateAppLauncherItem(controller, shelf_app_id,
298 ash::STATUS_RUNNING); 305 ash::STATUS_RUNNING);
299 } else { 306 } else {
300 owner()->SetItemController(shelf_id, controller); 307 owner()->SetItemController(shelf_id, controller);
301 } 308 }
302 app_controller_map_[app_id] = controller; 309 app_controller_map_[app_id] = controller;
303 } 310 }
304 controller->AddWindow(app_window.get()); 311 controller->AddWindow(app_window.get());
305 owner()->SetItemStatus(shelf_id, ash::STATUS_RUNNING); 312 owner()->SetItemStatus(shelf_id, ash::STATUS_RUNNING);
306 app_window->SetController(controller); 313 app_window->SetController(controller);
307 app_window->set_shelf_id(shelf_id); 314 app_window->set_shelf_id(shelf_id);
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
390 397
391 return nullptr; 398 return nullptr;
392 } 399 }
393 400
394 void ArcAppWindowLauncherController::OnWindowActivated( 401 void ArcAppWindowLauncherController::OnWindowActivated(
395 aura::client::ActivationChangeObserver::ActivationReason reason, 402 aura::client::ActivationChangeObserver::ActivationReason reason,
396 aura::Window* gained_active, 403 aura::Window* gained_active,
397 aura::Window* lost_active) { 404 aura::Window* lost_active) {
398 OnTaskSetActive(active_task_id_); 405 OnTaskSetActive(active_task_id_);
399 } 406 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698