mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-26 09:28:13 +00:00
refactor(core): move show_info_with_cancel
- not implemented for model_r
This commit is contained in:
parent
926b91cb66
commit
04f6d779e2
@ -430,6 +430,19 @@ extern "C" fn new_show_info(n_args: usize, args: *const Obj, kwargs: *mut Map) -
|
|||||||
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern "C" fn new_show_info_with_cancel(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
||||||
|
let block = move |_args: &[Obj], kwargs: &Map| {
|
||||||
|
let title: TString = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
||||||
|
let items: Obj = kwargs.get(Qstr::MP_QSTR_items)?;
|
||||||
|
let horizontal: bool = kwargs.get_or(Qstr::MP_QSTR_horizontal, false)?;
|
||||||
|
let chunkify: bool = kwargs.get_or(Qstr::MP_QSTR_chunkify, false)?;
|
||||||
|
|
||||||
|
let layout = ModelUI::show_info_with_cancel(title, items, horizontal, chunkify)?;
|
||||||
|
Ok(LayoutObj::new_root(layout)?.into())
|
||||||
|
};
|
||||||
|
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
||||||
|
}
|
||||||
|
|
||||||
extern "C" fn new_show_lockscreen(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
extern "C" fn new_show_lockscreen(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
||||||
let block = move |_args: &[Obj], kwargs: &Map| {
|
let block = move |_args: &[Obj], kwargs: &Map| {
|
||||||
let label: TString<'static> = kwargs
|
let label: TString<'static> = kwargs
|
||||||
@ -960,6 +973,16 @@ pub static mp_module_trezorui_api: Module = obj_module! {
|
|||||||
/// """Info screen."""
|
/// """Info screen."""
|
||||||
Qstr::MP_QSTR_show_info => obj_fn_kw!(0, new_show_info).as_obj(),
|
Qstr::MP_QSTR_show_info => obj_fn_kw!(0, new_show_info).as_obj(),
|
||||||
|
|
||||||
|
/// def show_info_with_cancel(
|
||||||
|
/// *,
|
||||||
|
/// title: str,
|
||||||
|
/// items: Iterable[Tuple[str, str]],
|
||||||
|
/// horizontal: bool = False,
|
||||||
|
/// chunkify: bool = False,
|
||||||
|
/// ) -> LayoutObj[UiResult]:
|
||||||
|
/// """Show metadata for outgoing transaction."""
|
||||||
|
Qstr::MP_QSTR_show_info_with_cancel => obj_fn_kw!(0, new_show_info_with_cancel).as_obj(),
|
||||||
|
|
||||||
/// def show_lockscreen(
|
/// def show_lockscreen(
|
||||||
/// *,
|
/// *,
|
||||||
/// label: str | None,
|
/// label: str | None,
|
||||||
|
@ -562,39 +562,6 @@ extern "C" fn new_confirm_summary(n_args: usize, args: *const Obj, kwargs: *mut
|
|||||||
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" fn new_show_info_with_cancel(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
|
||||||
let block = move |_args: &[Obj], kwargs: &Map| {
|
|
||||||
let title: TString = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
|
||||||
let items: Obj = kwargs.get(Qstr::MP_QSTR_items)?;
|
|
||||||
let _horizontal: bool = kwargs.get_or(Qstr::MP_QSTR_horizontal, false)?; // FIXME
|
|
||||||
let chunkify: bool = kwargs.get_or(Qstr::MP_QSTR_chunkify, false)?;
|
|
||||||
|
|
||||||
let mut paragraphs = ParagraphVecShort::new();
|
|
||||||
|
|
||||||
for para in IterBuf::new().try_iterate(items)? {
|
|
||||||
let [key, value]: [Obj; 2] = util::iter_into_array(para)?;
|
|
||||||
let key: TString = key.try_into()?;
|
|
||||||
let value: TString = value.try_into()?;
|
|
||||||
paragraphs.add(Paragraph::new(&theme::TEXT_NORMAL, key).no_break());
|
|
||||||
if chunkify {
|
|
||||||
paragraphs.add(Paragraph::new(
|
|
||||||
theme::get_chunkified_text_style(value.len()),
|
|
||||||
value,
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
paragraphs.add(Paragraph::new(&theme::TEXT_MONO, value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let obj = LayoutObj::new(SwipeUpScreen::new(
|
|
||||||
Frame::left_aligned(title, SwipeContent::new(paragraphs.into_paragraphs()))
|
|
||||||
.with_cancel_button(),
|
|
||||||
))?;
|
|
||||||
Ok(obj.into())
|
|
||||||
};
|
|
||||||
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" fn new_confirm_value(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
extern "C" fn new_confirm_value(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
||||||
let block = move |_args: &[Obj], kwargs: &Map| {
|
let block = move |_args: &[Obj], kwargs: &Map| {
|
||||||
let title: TString = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
let title: TString = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
||||||
@ -813,16 +780,6 @@ pub static mp_module_trezorui2: Module = obj_module! {
|
|||||||
/// """Confirm new PIN setup with an option to cancel action."""
|
/// """Confirm new PIN setup with an option to cancel action."""
|
||||||
Qstr::MP_QSTR_flow_confirm_set_new_pin => obj_fn_kw!(0, new_confirm_set_new_pin).as_obj(),
|
Qstr::MP_QSTR_flow_confirm_set_new_pin => obj_fn_kw!(0, new_confirm_set_new_pin).as_obj(),
|
||||||
|
|
||||||
/// def show_info_with_cancel(
|
|
||||||
/// *,
|
|
||||||
/// title: str,
|
|
||||||
/// items: Iterable[Tuple[str, str]],
|
|
||||||
/// horizontal: bool = False,
|
|
||||||
/// chunkify: bool = False,
|
|
||||||
/// ) -> LayoutObj[UiResult]:
|
|
||||||
/// """Show metadata for outgoing transaction."""
|
|
||||||
Qstr::MP_QSTR_show_info_with_cancel => obj_fn_kw!(0, new_show_info_with_cancel).as_obj(),
|
|
||||||
|
|
||||||
/// def confirm_value(
|
/// def confirm_value(
|
||||||
/// *,
|
/// *,
|
||||||
/// title: str,
|
/// title: str,
|
||||||
|
@ -505,6 +505,36 @@ impl UIFeaturesFirmware for ModelMercuryFeatures {
|
|||||||
Ok(obj)
|
Ok(obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn show_info_with_cancel(
|
||||||
|
title: TString<'static>,
|
||||||
|
items: Obj,
|
||||||
|
_horizontal: bool,
|
||||||
|
chunkify: bool,
|
||||||
|
) -> Result<impl LayoutMaybeTrace, Error> {
|
||||||
|
let mut paragraphs = ParagraphVecShort::new();
|
||||||
|
|
||||||
|
for para in IterBuf::new().try_iterate(items)? {
|
||||||
|
let [key, value]: [Obj; 2] = util::iter_into_array(para)?;
|
||||||
|
let key: TString = key.try_into()?;
|
||||||
|
let value: TString = value.try_into()?;
|
||||||
|
paragraphs.add(Paragraph::new(&theme::TEXT_NORMAL, key).no_break());
|
||||||
|
if chunkify {
|
||||||
|
paragraphs.add(Paragraph::new(
|
||||||
|
theme::get_chunkified_text_style(value.len()),
|
||||||
|
value,
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
paragraphs.add(Paragraph::new(&theme::TEXT_MONO, value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let layout = RootComponent::new(SwipeUpScreen::new(
|
||||||
|
Frame::left_aligned(title, SwipeContent::new(paragraphs.into_paragraphs()))
|
||||||
|
.with_cancel_button(),
|
||||||
|
));
|
||||||
|
Ok(layout)
|
||||||
|
}
|
||||||
|
|
||||||
fn show_lockscreen(
|
fn show_lockscreen(
|
||||||
label: TString<'static>,
|
label: TString<'static>,
|
||||||
bootscreen: bool,
|
bootscreen: bool,
|
||||||
|
@ -570,6 +570,17 @@ impl UIFeaturesFirmware for ModelTRFeatures {
|
|||||||
Ok(obj)
|
Ok(obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn show_info_with_cancel(
|
||||||
|
_title: TString<'static>,
|
||||||
|
_items: Obj,
|
||||||
|
_horizontal: bool,
|
||||||
|
_chunkify: bool,
|
||||||
|
) -> Result<impl LayoutMaybeTrace, Error> {
|
||||||
|
Err::<RootComponent<Empty, ModelTRFeatures>, Error>(Error::ValueError(
|
||||||
|
c"show_info_with_cancel not supported",
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
fn show_lockscreen(
|
fn show_lockscreen(
|
||||||
label: TString<'static>,
|
label: TString<'static>,
|
||||||
bootscreen: bool,
|
bootscreen: bool,
|
||||||
|
@ -597,49 +597,6 @@ extern "C" fn new_show_address_details(n_args: usize, args: *const Obj, kwargs:
|
|||||||
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
||||||
}
|
}
|
||||||
|
|
||||||
extern "C" fn new_show_info_with_cancel(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
|
||||||
let block = move |_args: &[Obj], kwargs: &Map| {
|
|
||||||
let title: TString = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
|
||||||
let items: Obj = kwargs.get(Qstr::MP_QSTR_items)?;
|
|
||||||
let horizontal: bool = kwargs.get_or(Qstr::MP_QSTR_horizontal, false)?;
|
|
||||||
let chunkify: bool = kwargs.get_or(Qstr::MP_QSTR_chunkify, false)?;
|
|
||||||
|
|
||||||
let mut paragraphs = ParagraphVecShort::new();
|
|
||||||
|
|
||||||
for para in IterBuf::new().try_iterate(items)? {
|
|
||||||
let [key, value]: [Obj; 2] = util::iter_into_array(para)?;
|
|
||||||
let key: TString = key.try_into()?;
|
|
||||||
let value: TString = value.try_into()?;
|
|
||||||
paragraphs.add(Paragraph::new(&theme::TEXT_NORMAL, key).no_break());
|
|
||||||
if chunkify {
|
|
||||||
paragraphs.add(Paragraph::new(
|
|
||||||
theme::get_chunkified_text_style(value.len()),
|
|
||||||
value,
|
|
||||||
));
|
|
||||||
} else {
|
|
||||||
paragraphs.add(Paragraph::new(&theme::TEXT_MONO, value));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let axis = match horizontal {
|
|
||||||
true => geometry::Axis::Horizontal,
|
|
||||||
_ => geometry::Axis::Vertical,
|
|
||||||
};
|
|
||||||
|
|
||||||
let obj = LayoutObj::new(
|
|
||||||
Frame::left_aligned(
|
|
||||||
theme::label_title(),
|
|
||||||
title,
|
|
||||||
SimplePage::new(paragraphs.into_paragraphs(), axis, theme::BG)
|
|
||||||
.with_swipe_right_to_go_back(),
|
|
||||||
)
|
|
||||||
.with_cancel_button(),
|
|
||||||
)?;
|
|
||||||
Ok(obj.into())
|
|
||||||
};
|
|
||||||
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
|
|
||||||
}
|
|
||||||
|
|
||||||
extern "C" fn new_confirm_value(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
extern "C" fn new_confirm_value(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj {
|
||||||
let block = move |_args: &[Obj], kwargs: &Map| {
|
let block = move |_args: &[Obj], kwargs: &Map| {
|
||||||
let title: TString = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
let title: TString = kwargs.get(Qstr::MP_QSTR_title)?.try_into()?;
|
||||||
@ -808,16 +765,6 @@ pub static mp_module_trezorui2: Module = obj_module! {
|
|||||||
/// """Show address details - QR code, account, path, cosigner xpubs."""
|
/// """Show address details - QR code, account, path, cosigner xpubs."""
|
||||||
Qstr::MP_QSTR_show_address_details => obj_fn_kw!(0, new_show_address_details).as_obj(),
|
Qstr::MP_QSTR_show_address_details => obj_fn_kw!(0, new_show_address_details).as_obj(),
|
||||||
|
|
||||||
/// def show_info_with_cancel(
|
|
||||||
/// *,
|
|
||||||
/// title: str,
|
|
||||||
/// items: Iterable[Tuple[str, str]],
|
|
||||||
/// horizontal: bool = False,
|
|
||||||
/// chunkify: bool = False,
|
|
||||||
/// ) -> LayoutObj[UiResult]:
|
|
||||||
/// """Show metadata for outgoing transaction."""
|
|
||||||
Qstr::MP_QSTR_show_info_with_cancel => obj_fn_kw!(0, new_show_info_with_cancel).as_obj(),
|
|
||||||
|
|
||||||
/// def confirm_value(
|
/// def confirm_value(
|
||||||
/// *,
|
/// *,
|
||||||
/// title: str,
|
/// title: str,
|
||||||
|
@ -19,6 +19,7 @@ use crate::{
|
|||||||
},
|
},
|
||||||
Border, ComponentExt, Empty, Jpeg, Label, Never, Timeout,
|
Border, ComponentExt, Empty, Jpeg, Label, Never, Timeout,
|
||||||
},
|
},
|
||||||
|
geometry,
|
||||||
layout::{
|
layout::{
|
||||||
obj::{LayoutMaybeTrace, LayoutObj, RootComponent},
|
obj::{LayoutMaybeTrace, LayoutObj, RootComponent},
|
||||||
util::RecoveryType,
|
util::RecoveryType,
|
||||||
@ -32,7 +33,7 @@ use super::{
|
|||||||
check_homescreen_format, Bip39Input, Button, ButtonMsg, ButtonPage, ButtonStyleSheet,
|
check_homescreen_format, Bip39Input, Button, ButtonMsg, ButtonPage, ButtonStyleSheet,
|
||||||
CancelConfirmMsg, CoinJoinProgress, Dialog, FidoConfirm, Frame, Homescreen, IconDialog,
|
CancelConfirmMsg, CoinJoinProgress, Dialog, FidoConfirm, Frame, Homescreen, IconDialog,
|
||||||
Lockscreen, MnemonicKeyboard, NumberInputDialog, PassphraseKeyboard, PinKeyboard, Progress,
|
Lockscreen, MnemonicKeyboard, NumberInputDialog, PassphraseKeyboard, PinKeyboard, Progress,
|
||||||
SelectWordCount, SetBrightnessDialog, ShareWords, Slip39Input,
|
SelectWordCount, SetBrightnessDialog, ShareWords, SimplePage, Slip39Input,
|
||||||
},
|
},
|
||||||
theme, ModelTTFeatures,
|
theme, ModelTTFeatures,
|
||||||
};
|
};
|
||||||
@ -588,6 +589,46 @@ impl UIFeaturesFirmware for ModelTTFeatures {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn show_info_with_cancel(
|
||||||
|
title: TString<'static>,
|
||||||
|
items: Obj,
|
||||||
|
horizontal: bool,
|
||||||
|
chunkify: bool,
|
||||||
|
) -> Result<impl LayoutMaybeTrace, Error> {
|
||||||
|
let mut paragraphs = ParagraphVecShort::new();
|
||||||
|
|
||||||
|
for para in IterBuf::new().try_iterate(items)? {
|
||||||
|
let [key, value]: [Obj; 2] = util::iter_into_array(para)?;
|
||||||
|
let key: TString = key.try_into()?;
|
||||||
|
let value: TString = value.try_into()?;
|
||||||
|
paragraphs.add(Paragraph::new(&theme::TEXT_NORMAL, key).no_break());
|
||||||
|
if chunkify {
|
||||||
|
paragraphs.add(Paragraph::new(
|
||||||
|
theme::get_chunkified_text_style(value.len()),
|
||||||
|
value,
|
||||||
|
));
|
||||||
|
} else {
|
||||||
|
paragraphs.add(Paragraph::new(&theme::TEXT_MONO, value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let axis = match horizontal {
|
||||||
|
true => geometry::Axis::Horizontal,
|
||||||
|
_ => geometry::Axis::Vertical,
|
||||||
|
};
|
||||||
|
|
||||||
|
let layout = RootComponent::new(
|
||||||
|
Frame::left_aligned(
|
||||||
|
theme::label_title(),
|
||||||
|
title,
|
||||||
|
SimplePage::new(paragraphs.into_paragraphs(), axis, theme::BG)
|
||||||
|
.with_swipe_right_to_go_back(),
|
||||||
|
)
|
||||||
|
.with_cancel_button(),
|
||||||
|
);
|
||||||
|
Ok(layout)
|
||||||
|
}
|
||||||
|
|
||||||
fn show_lockscreen(
|
fn show_lockscreen(
|
||||||
label: TString<'static>,
|
label: TString<'static>,
|
||||||
bootscreen: bool,
|
bootscreen: bool,
|
||||||
|
@ -159,6 +159,13 @@ pub trait UIFeaturesFirmware {
|
|||||||
time_ms: u32,
|
time_ms: u32,
|
||||||
) -> Result<Gc<LayoutObj>, Error>; // TODO: return LayoutMaybeTrace
|
) -> Result<Gc<LayoutObj>, Error>; // TODO: return LayoutMaybeTrace
|
||||||
|
|
||||||
|
fn show_info_with_cancel(
|
||||||
|
title: TString<'static>,
|
||||||
|
items: Obj, // TODO: replace Obj
|
||||||
|
horizontal: bool,
|
||||||
|
chunkify: bool,
|
||||||
|
) -> Result<impl LayoutMaybeTrace, Error>;
|
||||||
|
|
||||||
fn show_lockscreen(
|
fn show_lockscreen(
|
||||||
label: TString<'static>,
|
label: TString<'static>,
|
||||||
bootscreen: bool,
|
bootscreen: bool,
|
||||||
|
@ -69,17 +69,6 @@ def flow_confirm_set_new_pin(
|
|||||||
"""Confirm new PIN setup with an option to cancel action."""
|
"""Confirm new PIN setup with an option to cancel action."""
|
||||||
|
|
||||||
|
|
||||||
# rust/src/ui/model_mercury/layout.rs
|
|
||||||
def show_info_with_cancel(
|
|
||||||
*,
|
|
||||||
title: str,
|
|
||||||
items: Iterable[Tuple[str, str]],
|
|
||||||
horizontal: bool = False,
|
|
||||||
chunkify: bool = False,
|
|
||||||
) -> LayoutObj[UiResult]:
|
|
||||||
"""Show metadata for outgoing transaction."""
|
|
||||||
|
|
||||||
|
|
||||||
# rust/src/ui/model_mercury/layout.rs
|
# rust/src/ui/model_mercury/layout.rs
|
||||||
def confirm_value(
|
def confirm_value(
|
||||||
*,
|
*,
|
||||||
@ -422,17 +411,6 @@ def show_address_details(
|
|||||||
"""Show address details - QR code, account, path, cosigner xpubs."""
|
"""Show address details - QR code, account, path, cosigner xpubs."""
|
||||||
|
|
||||||
|
|
||||||
# rust/src/ui/model_tt/layout.rs
|
|
||||||
def show_info_with_cancel(
|
|
||||||
*,
|
|
||||||
title: str,
|
|
||||||
items: Iterable[Tuple[str, str]],
|
|
||||||
horizontal: bool = False,
|
|
||||||
chunkify: bool = False,
|
|
||||||
) -> LayoutObj[UiResult]:
|
|
||||||
"""Show metadata for outgoing transaction."""
|
|
||||||
|
|
||||||
|
|
||||||
# rust/src/ui/model_tt/layout.rs
|
# rust/src/ui/model_tt/layout.rs
|
||||||
def confirm_value(
|
def confirm_value(
|
||||||
*,
|
*,
|
||||||
|
@ -327,6 +327,17 @@ def show_info(
|
|||||||
"""Info screen."""
|
"""Info screen."""
|
||||||
|
|
||||||
|
|
||||||
|
# rust/src/ui/api/firmware_upy.rs
|
||||||
|
def show_info_with_cancel(
|
||||||
|
*,
|
||||||
|
title: str,
|
||||||
|
items: Iterable[Tuple[str, str]],
|
||||||
|
horizontal: bool = False,
|
||||||
|
chunkify: bool = False,
|
||||||
|
) -> LayoutObj[UiResult]:
|
||||||
|
"""Show metadata for outgoing transaction."""
|
||||||
|
|
||||||
|
|
||||||
# rust/src/ui/api/firmware_upy.rs
|
# rust/src/ui/api/firmware_upy.rs
|
||||||
def show_lockscreen(
|
def show_lockscreen(
|
||||||
*,
|
*,
|
||||||
|
@ -601,7 +601,7 @@ def confirm_value(
|
|||||||
raise ValueError("Either verb or hold=True must be set")
|
raise ValueError("Either verb or hold=True must be set")
|
||||||
|
|
||||||
info_items = info_items or []
|
info_items = info_items or []
|
||||||
info_layout = trezorui2.show_info_with_cancel(
|
info_layout = trezorui_api.show_info_with_cancel(
|
||||||
title=info_title if info_title else TR.words__title_information,
|
title=info_title if info_title else TR.words__title_information,
|
||||||
items=info_items,
|
items=info_items,
|
||||||
chunkify=chunkify_info,
|
chunkify=chunkify_info,
|
||||||
@ -958,7 +958,7 @@ def confirm_modify_fee(
|
|||||||
items: list[tuple[str, str]] = []
|
items: list[tuple[str, str]] = []
|
||||||
if fee_rate_amount:
|
if fee_rate_amount:
|
||||||
items.append((TR.bitcoin__new_fee_rate, fee_rate_amount))
|
items.append((TR.bitcoin__new_fee_rate, fee_rate_amount))
|
||||||
info_layout = trezorui2.show_info_with_cancel(
|
info_layout = trezorui_api.show_info_with_cancel(
|
||||||
title=TR.confirm_total__title_fee,
|
title=TR.confirm_total__title_fee,
|
||||||
items=items,
|
items=items,
|
||||||
)
|
)
|
||||||
@ -1025,7 +1025,7 @@ async def confirm_signverify(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
info_layout = trezorui2.show_info_with_cancel(
|
info_layout = trezorui_api.show_info_with_cancel(
|
||||||
title=TR.words__title_information,
|
title=TR.words__title_information,
|
||||||
items=items,
|
items=items,
|
||||||
horizontal=True,
|
horizontal=True,
|
||||||
|
@ -659,7 +659,7 @@ def confirm_value(
|
|||||||
raise ValueError("Either verb or hold=True must be set")
|
raise ValueError("Either verb or hold=True must be set")
|
||||||
|
|
||||||
info_items = info_items or []
|
info_items = info_items or []
|
||||||
info_layout = trezorui2.show_info_with_cancel(
|
info_layout = trezorui_api.show_info_with_cancel(
|
||||||
title=info_title if info_title else TR.words__title_information,
|
title=info_title if info_title else TR.words__title_information,
|
||||||
items=info_items,
|
items=info_items,
|
||||||
chunkify=chunkify_info,
|
chunkify=chunkify_info,
|
||||||
@ -754,7 +754,7 @@ def _confirm_summary(
|
|||||||
info_button=bool(info_items),
|
info_button=bool(info_items),
|
||||||
)
|
)
|
||||||
info_items = info_items or []
|
info_items = info_items or []
|
||||||
info_layout = trezorui2.show_info_with_cancel(
|
info_layout = trezorui_api.show_info_with_cancel(
|
||||||
title=info_title if info_title else TR.words__title_information,
|
title=info_title if info_title else TR.words__title_information,
|
||||||
items=info_items,
|
items=info_items,
|
||||||
)
|
)
|
||||||
@ -791,7 +791,7 @@ if not utils.BITCOIN_ONLY:
|
|||||||
info_button=True,
|
info_button=True,
|
||||||
cancel_arrow=True,
|
cancel_arrow=True,
|
||||||
)
|
)
|
||||||
info_layout = trezorui2.show_info_with_cancel(
|
info_layout = trezorui_api.show_info_with_cancel(
|
||||||
title=TR.confirm_total__title_fee,
|
title=TR.confirm_total__title_fee,
|
||||||
items=[(f"{k}:", v) for (k, v) in fee_info_items],
|
items=[(f"{k}:", v) for (k, v) in fee_info_items],
|
||||||
)
|
)
|
||||||
@ -1003,7 +1003,7 @@ def confirm_modify_fee(
|
|||||||
items: list[tuple[str, str]] = []
|
items: list[tuple[str, str]] = []
|
||||||
if fee_rate_amount:
|
if fee_rate_amount:
|
||||||
items.append((TR.bitcoin__new_fee_rate, fee_rate_amount))
|
items.append((TR.bitcoin__new_fee_rate, fee_rate_amount))
|
||||||
info_layout = trezorui2.show_info_with_cancel(
|
info_layout = trezorui_api.show_info_with_cancel(
|
||||||
title=TR.confirm_total__title_fee,
|
title=TR.confirm_total__title_fee,
|
||||||
items=items,
|
items=items,
|
||||||
)
|
)
|
||||||
@ -1070,7 +1070,7 @@ async def confirm_signverify(
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
info_layout = trezorui2.show_info_with_cancel(
|
info_layout = trezorui_api.show_info_with_cancel(
|
||||||
title=TR.words__title_information,
|
title=TR.words__title_information,
|
||||||
items=items,
|
items=items,
|
||||||
horizontal=True,
|
horizontal=True,
|
||||||
|
Loading…
Reference in New Issue
Block a user