other: skip battery duration draw if unknown (#974)

* other: skip battery duration draw if unknown

* increase others

* update changelog
This commit is contained in:
Clement Tsang 2023-01-15 12:06:19 -05:00 committed by GitHub
parent 316891d476
commit 571ec08291
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 29 additions and 31 deletions

View file

@ -15,6 +15,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Changes
- [#974](https://github.com/ClementTsang/bottom/pull/974): Hide battery duration section if the value is unknown. Also update shortened text.
## Other
## [0.7.1] - 2023-01-06

View file

@ -1183,7 +1183,7 @@ impl App {
'k' => self.on_up_key(),
'j' => self.on_down_key(),
'f' => {
self.frozen_state.toggle(&self.data_collection); // TODO: Unthawing should force a full data refresh and redraw immediately.
self.frozen_state.toggle(&self.data_collection); // TODO: Thawing should force a full data refresh and redraw immediately.
}
'c' => {
if let BottomWidgetType::Proc = self.current_widget.widget_type {

View file

@ -142,41 +142,8 @@ impl Painter {
format!("{}h {}m {}s", time.whole_hours(), num_minutes, num_seconds,)
}
let s: String; // Brought out due to lifetimes.
let time_text = {
let style = self.colours.text_style;
match &battery_details.battery_duration {
BatteryDuration::ToEmpty(secs) => {
if half_width > 25 {
s = long_time(*secs);
Row::new(vec!["Time to empty", &s]).style(style)
} else {
s = short_time(*secs);
Row::new(vec!["Empty", &s]).style(style)
}
}
BatteryDuration::ToFull(secs) => {
if half_width > 25 {
s = long_time(*secs);
Row::new(vec!["Time to full", &s]).style(style)
} else {
s = short_time(*secs);
Row::new(vec!["Full", &s]).style(style)
}
}
BatteryDuration::Unknown => {
// TODO: Potentially just don't draw this?
if half_width > 20 {
Row::new(vec!["Time to full/empty", "N/A"]).style(style)
} else {
Row::new(vec!["Empty/full", "N/A"]).style(style)
}
}
}
};
let battery_rows = vec![
Row::new(vec![
let mut battery_rows = Vec::with_capacity(4);
battery_rows.push(Row::new(vec![
Cell::from("Charge %").style(self.colours.text_style),
Cell::from(bars).style(if charge_percentage < 10.0 {
self.colours.low_battery_colour
@ -185,13 +152,42 @@ impl Painter {
} else {
self.colours.high_battery_colour
}),
]),
]));
battery_rows.push(
Row::new(vec!["Consumption", &battery_details.watt_consumption])
.style(self.colours.text_style),
time_text,
);
let s: String; // Keep string in scope.
{
let style = self.colours.text_style;
match &battery_details.battery_duration {
BatteryDuration::ToEmpty(secs) => {
if half_width > 25 {
s = long_time(*secs);
battery_rows.push(Row::new(vec!["Time to empty", &s]).style(style));
} else {
s = short_time(*secs);
battery_rows.push(Row::new(vec!["To empty", &s]).style(style));
}
}
BatteryDuration::ToFull(secs) => {
if half_width > 25 {
s = long_time(*secs);
battery_rows.push(Row::new(vec!["Time to full", &s]).style(style));
} else {
s = short_time(*secs);
battery_rows.push(Row::new(vec!["To full", &s]).style(style));
}
}
BatteryDuration::Unknown => {}
}
}
battery_rows.push(
Row::new(vec!["Health %", &battery_details.health])
.style(self.colours.text_style),
];
);
// Draw
f.render_widget(