blob: 7178cfe2c9d3cb4efc340fdc980d4afbd5c065ca [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ash/public/cpp/power_utils.h"
#include "base/time/time.h"
#include "chromeos/dbus/power_manager/power_supply_properties.pb.h"
namespace ash {
namespace power_utils {
bool ShouldDisplayBatteryTime(const base::TimeDelta& time) {
// Put limits on the maximum and minimum battery time-to-full or time-to-empty
// that should be displayed in the UI. If the current is close to zero,
// battery time estimates can get very large; avoid displaying these large
// numbers.
return time >= base::TimeDelta::FromMinutes(1) &&
time <= base::TimeDelta::FromDays(1);
}
int GetRoundedBatteryPercent(double battery_percent) {
// Minimum battery percentage rendered in UI.
constexpr int kMinBatteryPercent = 1;
return std::max(kMinBatteryPercent, static_cast<int>(battery_percent + 0.5));
}
void SplitTimeIntoHoursAndMinutes(const base::TimeDelta& time,
int* hours,
int* minutes) {
DCHECK(hours);
DCHECK(minutes);
const int total_minutes = static_cast<int>(time.InSecondsF() / 60 + 0.5);
*hours = total_minutes / 60;
*minutes = total_minutes % 60;
}
} // namespace power_utils
} // namespace ash