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 | 4 |
5 #include "components/arc/window_manager/arc_window_manager_bridge.h" | 5 #include "components/arc/window_manager/arc_window_manager_bridge.h" |
6 | 6 |
7 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h" | 7 #include "ash/common/wm/maximize_mode/maximize_mode_controller.h" |
8 #include "ash/common/wm_shell.h" | 8 #include "ash/common/wm_shell.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "components/arc/arc_bridge_service.h" | 10 #include "components/arc/arc_bridge_service.h" |
11 | 11 |
12 namespace arc { | 12 namespace arc { |
13 | 13 |
14 ArcWindowManagerBridge::ArcWindowManagerBridge(ArcBridgeService* bridge_service) | 14 ArcWindowManagerBridge::ArcWindowManagerBridge(ArcBridgeService* bridge_service) |
15 : ArcService(bridge_service), | 15 : ArcService(bridge_service), |
16 current_mode_(mojom::WindowManagerMode::MODE_NORMAL) { | 16 current_mode_(mojom::WindowManagerMode::MODE_NORMAL) { |
17 arc_bridge_service()->AddObserver(this); | 17 arc_bridge_service()->window_manager()->AddObserver(this); |
18 if (!ash::WmShell::HasInstance()) { | 18 if (!ash::WmShell::HasInstance()) { |
19 // The shell gets always loaded before ARC. If there is no shell it can only | 19 // The shell gets always loaded before ARC. If there is no shell it can only |
20 // mean that a unit test is running. | 20 // mean that a unit test is running. |
21 return; | 21 return; |
22 } | 22 } |
23 // Monitor any mode changes from now on. | 23 // Monitor any mode changes from now on. |
24 ash::WmShell::Get()->AddShellObserver(this); | 24 ash::WmShell::Get()->AddShellObserver(this); |
25 } | 25 } |
26 | 26 |
27 void ArcWindowManagerBridge::OnWindowManagerInstanceReady() { | 27 void ArcWindowManagerBridge::OnInstanceReady() { |
28 if (!ash::WmShell::HasInstance()) { | 28 if (!ash::WmShell::HasInstance()) { |
29 // The shell gets always loaded before ARC. If there is no shell it can only | 29 // The shell gets always loaded before ARC. If there is no shell it can only |
30 // mean that a unit test is running. | 30 // mean that a unit test is running. |
31 return; | 31 return; |
32 } | 32 } |
33 ash::MaximizeModeController* controller = | 33 ash::MaximizeModeController* controller = |
34 ash::WmShell::Get()->maximize_mode_controller(); | 34 ash::WmShell::Get()->maximize_mode_controller(); |
35 if (!controller) | 35 if (!controller) |
36 return; | 36 return; |
37 | 37 |
38 // Set the initial mode configuration. | 38 // Set the initial mode configuration. |
39 SendWindowManagerModeChange(controller->IsMaximizeModeWindowManagerEnabled()); | 39 SendWindowManagerModeChange(controller->IsMaximizeModeWindowManagerEnabled()); |
40 } | 40 } |
41 | 41 |
42 ArcWindowManagerBridge::~ArcWindowManagerBridge() { | 42 ArcWindowManagerBridge::~ArcWindowManagerBridge() { |
43 if (ash::WmShell::HasInstance()) | 43 if (ash::WmShell::HasInstance()) |
44 ash::WmShell::Get()->RemoveShellObserver(this); | 44 ash::WmShell::Get()->RemoveShellObserver(this); |
45 arc_bridge_service()->RemoveObserver(this); | 45 arc_bridge_service()->window_manager()->RemoveObserver(this); |
46 } | 46 } |
47 | 47 |
48 void ArcWindowManagerBridge::OnMaximizeModeStarted() { | 48 void ArcWindowManagerBridge::OnMaximizeModeStarted() { |
49 SendWindowManagerModeChange(true); | 49 SendWindowManagerModeChange(true); |
50 } | 50 } |
51 | 51 |
52 void ArcWindowManagerBridge::OnMaximizeModeEnded() { | 52 void ArcWindowManagerBridge::OnMaximizeModeEnded() { |
53 SendWindowManagerModeChange(false); | 53 SendWindowManagerModeChange(false); |
54 } | 54 } |
55 | 55 |
56 void ArcWindowManagerBridge::SendWindowManagerModeChange( | 56 void ArcWindowManagerBridge::SendWindowManagerModeChange( |
57 bool touch_view_enabled) { | 57 bool touch_view_enabled) { |
58 // We let the ArcBridgeService check that we are calling on the right thread. | 58 // We let the ArcBridgeService check that we are calling on the right thread. |
59 DCHECK(ArcBridgeService::Get() != nullptr); | 59 DCHECK(ArcBridgeService::Get() != nullptr); |
60 mojom::WindowManagerMode wm_mode = touch_view_enabled ? | 60 mojom::WindowManagerMode wm_mode = |
61 mojom::WindowManagerMode::MODE_TOUCH_VIEW : | 61 touch_view_enabled ? mojom::WindowManagerMode::MODE_TOUCH_VIEW |
62 mojom::WindowManagerMode::MODE_NORMAL; | 62 : mojom::WindowManagerMode::MODE_NORMAL; |
63 | 63 |
64 mojom::WindowManagerInstance* wm_instance = | 64 mojom::WindowManagerInstance* wm_instance = |
65 arc_bridge_service()->window_manager_instance(); | 65 arc_bridge_service()->window_manager()->instance(); |
66 if (!wm_instance || wm_mode == current_mode_) { | 66 if (!wm_instance || wm_mode == current_mode_) { |
67 return; | 67 return; |
68 } | 68 } |
69 VLOG(1) << "Sending window manager mode change to " << wm_mode; | 69 VLOG(1) << "Sending window manager mode change to " << wm_mode; |
70 wm_instance->OnWindowManagerModeChange(wm_mode); | 70 wm_instance->OnWindowManagerModeChange(wm_mode); |
71 current_mode_ = wm_mode; | 71 current_mode_ = wm_mode; |
72 } | 72 } |
73 | 73 |
74 } // namespace arc | 74 } // namespace arc |
OLD | NEW |