OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #ifndef ASH_SYSTEM_CHROMEOS_POWER_TRAY_POWER_H_ | 5 #ifndef ASH_SYSTEM_CHROMEOS_POWER_TRAY_POWER_H_ |
6 #define ASH_SYSTEM_CHROMEOS_POWER_TRAY_POWER_H_ | 6 #define ASH_SYSTEM_CHROMEOS_POWER_TRAY_POWER_H_ |
7 | 7 |
8 #include "ash/system/chromeos/power/power_status.h" | 8 #include "ash/system/chromeos/power/power_status.h" |
9 #include "ash/system/tray/system_tray_item.h" | 9 #include "ash/system/tray/system_tray_item.h" |
10 | 10 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 static const int kLowPowerPercentage; | 51 static const int kLowPowerPercentage; |
52 static const int kNoWarningPercentage; | 52 static const int kNoWarningPercentage; |
53 | 53 |
54 TrayPower(SystemTray* system_tray, | 54 TrayPower(SystemTray* system_tray, |
55 message_center::MessageCenter* message_center); | 55 message_center::MessageCenter* message_center); |
56 virtual ~TrayPower(); | 56 virtual ~TrayPower(); |
57 | 57 |
58 private: | 58 private: |
59 friend class TrayPowerTest; | 59 friend class TrayPowerTest; |
60 | 60 |
| 61 // This enum is used for histogram. The existing values should not be removed, |
| 62 // and the new values should be added just before CHARGER_TYPE_COUNT. |
| 63 enum ChargerType{ |
| 64 UNKNOWN_CHARGER, |
| 65 MAINS_CHARGER, |
| 66 USB_CHARGER, |
| 67 UNCONFIRMED_SPRING_CHARGER, |
| 68 SAFE_SPRING_CHARGER, |
| 69 CHARGER_TYPE_COUNT, |
| 70 }; |
| 71 |
61 // Overridden from SystemTrayItem. | 72 // Overridden from SystemTrayItem. |
62 virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE; | 73 virtual views::View* CreateTrayView(user::LoginStatus status) OVERRIDE; |
63 virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE; | 74 virtual views::View* CreateDefaultView(user::LoginStatus status) OVERRIDE; |
64 virtual views::View* CreateNotificationView( | 75 virtual views::View* CreateNotificationView( |
65 user::LoginStatus status) OVERRIDE; | 76 user::LoginStatus status) OVERRIDE; |
66 virtual void DestroyTrayView() OVERRIDE; | 77 virtual void DestroyTrayView() OVERRIDE; |
67 virtual void DestroyDefaultView() OVERRIDE; | 78 virtual void DestroyDefaultView() OVERRIDE; |
68 virtual void DestroyNotificationView() OVERRIDE; | 79 virtual void DestroyNotificationView() OVERRIDE; |
69 virtual void UpdateAfterLoginStatusChange(user::LoginStatus status) OVERRIDE; | 80 virtual void UpdateAfterLoginStatusChange(user::LoginStatus status) OVERRIDE; |
70 virtual void UpdateAfterShelfAlignmentChange( | 81 virtual void UpdateAfterShelfAlignmentChange( |
71 ShelfAlignment alignment) OVERRIDE; | 82 ShelfAlignment alignment) OVERRIDE; |
72 | 83 |
73 // Overridden from PowerStatus::Observer. | 84 // Overridden from PowerStatus::Observer. |
74 virtual void OnPowerStatusChanged() OVERRIDE; | 85 virtual void OnPowerStatusChanged() OVERRIDE; |
75 | 86 |
76 // Show a notification that a low-power USB charger has been connected. | 87 // Show a notification that a low-power USB charger has been connected. |
77 // Returns true if a notification was shown or explicitly hidden. | 88 // Returns true if a notification was shown or explicitly hidden. |
78 bool MaybeShowUsbChargerNotification(); | 89 bool MaybeShowUsbChargerNotification(); |
79 | 90 |
80 // Sets |notification_state_|. Returns true if a notification should be shown. | 91 // Sets |notification_state_|. Returns true if a notification should be shown. |
81 bool UpdateNotificationState(); | 92 bool UpdateNotificationState(); |
82 bool UpdateNotificationStateForRemainingTime(); | 93 bool UpdateNotificationStateForRemainingTime(); |
83 bool UpdateNotificationStateForRemainingPercentage(); | 94 bool UpdateNotificationStateForRemainingPercentage(); |
84 | 95 |
| 96 // Records the charger type in UMA. |
| 97 void RecordChargerType(); |
| 98 |
85 message_center::MessageCenter* message_center_; // Not owned. | 99 message_center::MessageCenter* message_center_; // Not owned. |
86 tray::PowerTrayView* power_tray_; | 100 tray::PowerTrayView* power_tray_; |
87 tray::PowerNotificationView* notification_view_; | 101 tray::PowerNotificationView* notification_view_; |
88 NotificationState notification_state_; | 102 NotificationState notification_state_; |
89 | 103 |
90 // Was a USB charger connected the last time OnPowerStatusChanged() was | 104 // Was a USB charger connected the last time OnPowerStatusChanged() was |
91 // called? | 105 // called? |
92 bool usb_charger_was_connected_; | 106 bool usb_charger_was_connected_; |
93 | 107 |
| 108 // Was line power connected the last time onPowerStatusChanged() was called? |
| 109 bool line_power_was_connected_; |
| 110 |
94 DISALLOW_COPY_AND_ASSIGN(TrayPower); | 111 DISALLOW_COPY_AND_ASSIGN(TrayPower); |
95 }; | 112 }; |
96 | 113 |
97 } // namespace internal | 114 } // namespace internal |
98 } // namespace ash | 115 } // namespace ash |
99 | 116 |
100 #endif // ASH_SYSTEM_CHROMEOS_POWER_TRAY_POWER_H_ | 117 #endif // ASH_SYSTEM_CHROMEOS_POWER_TRAY_POWER_H_ |
OLD | NEW |