1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-01-03 03:50:58 +00:00

chore(core): add missing parameter to set_brightness function

This commit is contained in:
Lukas Bielesch 2024-11-29 19:58:59 +01:00
parent 677d62bed8
commit fdb7f04f31
4 changed files with 34 additions and 5 deletions

View File

@ -0,0 +1 @@
Add optional value parameter in brightness setting flow.

View File

@ -65,7 +65,16 @@ impl FlowController for SetBrightness {
static BRIGHTNESS: AtomicU8 = AtomicU8::new(0);
pub fn new_set_brightness(brightness: Option<u8>) -> Result<SwipeFlow, Error> {
let brightness = brightness.unwrap_or(theme::backlight::get_backlight_normal());
let brightness = brightness
.map(|value| {
// If brightness value is provided, set display brightness to that value
display::backlight(value as _);
BRIGHTNESS.store(value as u8, Ordering::Relaxed);
let _ = storage::set_brightness(BRIGHTNESS.load(Ordering::Relaxed));
value
})
.unwrap_or_else(|| theme::backlight::get_backlight_normal() as _);
let content_slider = Frame::left_aligned(
TR::brightness__title.into(),
NumberInputSliderDialog::new(

View File

@ -4,7 +4,7 @@ if TYPE_CHECKING:
from trezor.messages import SetBrightness, Success
async def set_brightness(_msg: SetBrightness) -> Success:
async def set_brightness(msg: SetBrightness) -> Success:
import storage.device as storage_device
from trezor.messages import Success
from trezor.ui.layouts import set_brightness
@ -13,5 +13,5 @@ async def set_brightness(_msg: SetBrightness) -> Success:
if not storage_device.is_initialized():
raise NotInitialized("Device is not initialized")
await set_brightness()
await set_brightness(msg.value)
return Success(message="Settings applied")

View File

@ -424,13 +424,32 @@ def test_label_too_long(client: Client):
@pytest.mark.models(skip=["legacy", "safe3"])
@pytest.mark.parametrize(
"value",
[
pytest.param(None, id="none_default"),
pytest.param(
-1,
marks=pytest.mark.xfail(),
id="negative_value",
),
pytest.param(0, id="0_min_value"),
pytest.param(128, id="128"),
pytest.param(255, id="255_max_value"),
pytest.param(
256,
marks=pytest.mark.xfail(),
id="256_too_high",
),
],
)
@pytest.mark.setup_client(pin=None)
def test_set_brightness(client: Client):
def test_set_brightness(client: Client, value: int | None):
with client:
assert (
device.set_brightness(
client,
None,
value,
)
== "Settings applied"
)