1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ash/system/tray/default_system_tray_delegate.h"
9 #include "ash/session/session_state_delegate.h"
10 #include "ash/shell.h"
11 #include "ash/volume_control_delegate.h"
12 #include "base/message_loop/message_loop.h"
13 #include "base/time/time.h"
19 class DefaultVolumnControlDelegate : public VolumeControlDelegate {
21 DefaultVolumnControlDelegate() {}
22 ~DefaultVolumnControlDelegate() override {}
24 bool HandleVolumeMute(const ui::Accelerator& accelerator) override {
27 bool HandleVolumeDown(const ui::Accelerator& accelerator) override {
30 bool HandleVolumeUp(const ui::Accelerator& accelerator) override {
35 DISALLOW_COPY_AND_ASSIGN(DefaultVolumnControlDelegate);
40 DefaultSystemTrayDelegate::DefaultSystemTrayDelegate()
41 : bluetooth_enabled_(true),
42 volume_control_delegate_(new DefaultVolumnControlDelegate) {
45 DefaultSystemTrayDelegate::~DefaultSystemTrayDelegate() {
48 void DefaultSystemTrayDelegate::Initialize() {
51 void DefaultSystemTrayDelegate::Shutdown() {
54 bool DefaultSystemTrayDelegate::GetTrayVisibilityOnStartup() {
58 user::LoginStatus DefaultSystemTrayDelegate::GetUserLoginStatus() const {
59 return user::LOGGED_IN_USER;
62 void DefaultSystemTrayDelegate::ChangeProfilePicture() {
65 const std::string DefaultSystemTrayDelegate::GetEnterpriseDomain() const {
69 const base::string16 DefaultSystemTrayDelegate::GetEnterpriseMessage() const {
70 return base::string16();
74 DefaultSystemTrayDelegate::GetSupervisedUserManager() const {
75 if (!IsUserSupervised())
77 return "manager@chrome.com";
81 DefaultSystemTrayDelegate::GetSupervisedUserManagerName()
83 return base::string16();
86 const base::string16 DefaultSystemTrayDelegate::GetSupervisedUserMessage()
88 return base::string16();
91 bool DefaultSystemTrayDelegate::IsUserSupervised() const {
92 return GetUserLoginStatus() == ash::user::LOGGED_IN_SUPERVISED;
95 void DefaultSystemTrayDelegate::GetSystemUpdateInfo(UpdateInfo* info) const {
97 info->severity = UpdateInfo::UPDATE_NORMAL;
98 info->update_required = true;
99 info->factory_reset_required = false;
102 base::HourClockType DefaultSystemTrayDelegate::GetHourClockType() const {
103 return base::k24HourClock;
106 void DefaultSystemTrayDelegate::ShowSettings() {
109 bool DefaultSystemTrayDelegate::ShouldShowSettings() {
113 void DefaultSystemTrayDelegate::ShowDateSettings() {
116 void DefaultSystemTrayDelegate::ShowSetTimeDialog() {
119 void DefaultSystemTrayDelegate::ShowNetworkSettings(
120 const std::string& service_path) {
123 void DefaultSystemTrayDelegate::ShowBluetoothSettings() {
126 void DefaultSystemTrayDelegate::ShowDisplaySettings() {
129 void DefaultSystemTrayDelegate::ShowChromeSlow() {
132 bool DefaultSystemTrayDelegate::ShouldShowDisplayNotification() {
136 void DefaultSystemTrayDelegate::ShowIMESettings() {
139 void DefaultSystemTrayDelegate::ShowHelp() {
142 void DefaultSystemTrayDelegate::ShowAccessibilityHelp() {
145 void DefaultSystemTrayDelegate::ShowAccessibilitySettings() {
148 void DefaultSystemTrayDelegate::ShowPublicAccountInfo() {
151 void DefaultSystemTrayDelegate::ShowEnterpriseInfo() {
154 void DefaultSystemTrayDelegate::ShowSupervisedUserInfo() {
157 void DefaultSystemTrayDelegate::ShowUserLogin() {
160 bool DefaultSystemTrayDelegate::ShowSpringChargerReplacementDialog() {
164 bool DefaultSystemTrayDelegate::IsSpringChargerReplacementDialogVisible() {
168 bool DefaultSystemTrayDelegate::HasUserConfirmedSafeSpringCharger() {
172 void DefaultSystemTrayDelegate::ShutDown() {
175 void DefaultSystemTrayDelegate::SignOut() {
178 void DefaultSystemTrayDelegate::RequestLockScreen() {
181 void DefaultSystemTrayDelegate::RequestRestartForUpdate() {
184 void DefaultSystemTrayDelegate::GetAvailableBluetoothDevices(
185 BluetoothDeviceList* list) {
188 void DefaultSystemTrayDelegate::BluetoothStartDiscovering() {
191 void DefaultSystemTrayDelegate::BluetoothStopDiscovering() {
194 void DefaultSystemTrayDelegate::ConnectToBluetoothDevice(
195 const std::string& address) {
198 void DefaultSystemTrayDelegate::GetCurrentIME(IMEInfo* info) {
201 void DefaultSystemTrayDelegate::GetAvailableIMEList(IMEInfoList* list) {
204 void DefaultSystemTrayDelegate::GetCurrentIMEProperties(
205 IMEPropertyInfoList* list) {
208 void DefaultSystemTrayDelegate::SwitchIME(const std::string& ime_id) {
211 void DefaultSystemTrayDelegate::ActivateIMEProperty(const std::string& key) {
214 void DefaultSystemTrayDelegate::ManageBluetoothDevices() {
217 void DefaultSystemTrayDelegate::ToggleBluetooth() {
218 bluetooth_enabled_ = !bluetooth_enabled_;
221 bool DefaultSystemTrayDelegate::IsBluetoothDiscovering() {
225 void DefaultSystemTrayDelegate::ShowOtherNetworkDialog(
226 const std::string& type) {
229 bool DefaultSystemTrayDelegate::GetBluetoothAvailable() {
233 bool DefaultSystemTrayDelegate::GetBluetoothEnabled() {
234 return bluetooth_enabled_;
237 bool DefaultSystemTrayDelegate::GetBluetoothDiscovering() {
241 void DefaultSystemTrayDelegate::ChangeProxySettings() {
244 VolumeControlDelegate* DefaultSystemTrayDelegate::GetVolumeControlDelegate()
246 return volume_control_delegate_.get();
249 void DefaultSystemTrayDelegate::SetVolumeControlDelegate(
250 scoped_ptr<VolumeControlDelegate> delegate) {
251 volume_control_delegate_ = delegate.Pass();
254 bool DefaultSystemTrayDelegate::GetSessionStartTime(
255 base::TimeTicks* session_start_time) {
259 bool DefaultSystemTrayDelegate::GetSessionLengthLimit(
260 base::TimeDelta* session_length_limit) {
264 int DefaultSystemTrayDelegate::GetSystemTrayMenuWidth() {
265 // This is the default width for English languages.
269 void DefaultSystemTrayDelegate::ActiveUserWasChanged() {
272 bool DefaultSystemTrayDelegate::IsSearchKeyMappedToCapsLock() {
276 tray::UserAccountsDelegate* DefaultSystemTrayDelegate::GetUserAccountsDelegate(
277 const std::string& user_id) {
281 void DefaultSystemTrayDelegate::AddCustodianInfoTrayObserver(
282 CustodianInfoTrayObserver* observer) {
285 void DefaultSystemTrayDelegate::RemoveCustodianInfoTrayObserver(
286 CustodianInfoTrayObserver* observer) {