| Index: chromeos/dbus/power_manager_client.cc
|
| diff --git a/chromeos/dbus/power_manager_client.cc b/chromeos/dbus/power_manager_client.cc
|
| index 5998e5c8a3f457f54c7373d1111bf3f7db003457..1cab12b31d90471e88b74b8c376fb11a0d42e552 100644
|
| --- a/chromeos/dbus/power_manager_client.cc
|
| +++ b/chromeos/dbus/power_manager_client.cc
|
| @@ -804,24 +804,28 @@ class PowerManagerClientStubImpl : public PowerManagerClient {
|
| void UpdateStatus() {
|
| if (pause_count_ > 0) {
|
| pause_count_--;
|
| + if (pause_count_ == 2)
|
| + discharging_ = !discharging_;
|
| } else {
|
| - int discharge_amt = battery_percentage_ <= 10 ? 1 : 10;
|
| - battery_percentage_ += (discharging_ ? -discharge_amt : discharge_amt);
|
| + if (discharging_)
|
| + battery_percentage_ -= (battery_percentage_ <= 10 ? 1 : 10);
|
| + else
|
| + battery_percentage_ += (battery_percentage_ >= 10 ? 10 : 1);
|
| battery_percentage_ = std::min(std::max(battery_percentage_, 0), 100);
|
| // We pause at 0 and 100% so that it's easier to check those conditions.
|
| if (battery_percentage_ == 0 || battery_percentage_ == 100) {
|
| - discharging_ = !discharging_;
|
| pause_count_ = 4;
|
| if (battery_percentage_ == 100)
|
| cycle_count_ = (cycle_count_ + 1) % 3;
|
| }
|
| }
|
| - const int kSecondsToEmptyFullBattery(3 * 60 * 60); // 3 hours.
|
| + const int kSecondsToEmptyFullBattery = 3 * 60 * 60; // 3 hours.
|
|
|
| status_.is_calculating_battery_time = (pause_count_ > 1);
|
| status_.line_power_on = !discharging_;
|
| status_.battery_is_present = true;
|
| status_.battery_percentage = battery_percentage_;
|
| + status_.battery_is_full = battery_percentage_ == 100 && !discharging_;
|
| if (cycle_count_ != 2) {
|
| status_.battery_state = discharging_ ?
|
| PowerSupplyStatus::DISCHARGING : PowerSupplyStatus::CHARGING;
|
|
|