1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-24 15:28:10 +00:00

feat(core/ui): introduce FlowMsg::Text option

This commit allows flows to work with ShortString which can be converted
to micropython as str.

[no changelog]
This commit is contained in:
obrusvit 2024-07-30 12:57:36 +02:00 committed by Vít Obrusník
parent eef4319cda
commit 2203d9be1a
2 changed files with 12 additions and 3 deletions

View File

@ -1,4 +1,7 @@
use crate::ui::component::{base::AttachType, swipe_detect::SwipeConfig, SwipeDirection}; use crate::{
strutil::ShortString,
ui::component::{base::AttachType, swipe_detect::SwipeConfig, SwipeDirection},
};
pub trait Swipable { pub trait Swipable {
fn get_swipe_config(&self) -> SwipeConfig; fn get_swipe_config(&self) -> SwipeConfig;
@ -11,16 +14,17 @@ pub trait Swipable {
/// ///
/// Also currently the type for message emitted by Flow::event to /// Also currently the type for message emitted by Flow::event to
/// micropython. They don't need to be the same. /// micropython. They don't need to be the same.
#[derive(Copy, Clone)] #[derive(Clone)]
pub enum FlowMsg { pub enum FlowMsg {
Confirmed, Confirmed,
Cancelled, Cancelled,
Info, Info,
Choice(usize), Choice(usize),
Text(ShortString),
} }
/// Composable event handler result. /// Composable event handler result.
#[derive(Copy, Clone)] #[derive(Clone)]
pub enum Decision { pub enum Decision {
/// Do nothing, continue with processing next handler. /// Do nothing, continue with processing next handler.
Nothing, Nothing,

View File

@ -363,6 +363,11 @@ impl ObjComponent for SwipeFlow {
Some(FlowMsg::Choice(i)) => { Some(FlowMsg::Choice(i)) => {
Ok((crate::ui::layout::result::CONFIRMED.as_obj(), i.try_into()?).try_into()?) Ok((crate::ui::layout::result::CONFIRMED.as_obj(), i.try_into()?).try_into()?)
} }
Some(FlowMsg::Text(s)) => Ok((
crate::ui::layout::result::CONFIRMED.as_obj(),
s.as_str().try_into()?,
)
.try_into()?),
} }
} }
fn obj_paint(&mut self) { fn obj_paint(&mut self) {