mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-03-20 18:16:05 +00:00
fix(core/ui): T3T1: rebase on main
This commit is contained in:
parent
27d733f89d
commit
cde0dce3ef
@ -102,7 +102,7 @@ where
|
||||
self.inner.paint()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.inner.render(target);
|
||||
}
|
||||
|
||||
|
@ -155,5 +155,5 @@ impl Component for Swipe {
|
||||
|
||||
fn paint(&mut self) {}
|
||||
|
||||
fn render<'s>(&'s self, _target: &mut impl Renderer<'s>) {}
|
||||
fn render<'s>(&self, _target: &mut impl Renderer<'s>) {}
|
||||
}
|
||||
|
@ -67,11 +67,7 @@ impl<T: Component + Paginate + Clone> SwipePage<T> {
|
||||
finished
|
||||
}
|
||||
|
||||
fn render_transition<'s>(
|
||||
&'s self,
|
||||
transition: &'s Transition<T>,
|
||||
target: &mut impl Renderer<'s>,
|
||||
) {
|
||||
fn render_transition<'s>(&self, transition: &Transition<T>, target: &mut impl Renderer<'s>) {
|
||||
target.in_clip(self.bounds, &|target| {
|
||||
util::render_slide(
|
||||
|target| transition.cloned.render(target),
|
||||
@ -109,7 +105,7 @@ impl<T: Component + Paginate + Clone> Component for SwipePage<T> {
|
||||
self.inner.paint()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
if let Some(t) = &self.transition {
|
||||
return self.render_transition(t, target);
|
||||
}
|
||||
@ -200,7 +196,7 @@ impl<T: Component> Component for IgnoreSwipe<T> {
|
||||
self.0.paint()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.0.render(target)
|
||||
}
|
||||
}
|
||||
|
@ -22,7 +22,7 @@ pub trait FlowStore {
|
||||
fn event(&mut self, i: usize, ctx: &mut EventCtx, event: Event) -> Option<FlowMsg>;
|
||||
|
||||
/// Call `Component::render` on i-th element.
|
||||
fn render<'s>(&'s self, i: usize, target: &mut impl Renderer<'s>);
|
||||
fn render<'s>(&self, i: usize, target: &mut impl Renderer<'s>);
|
||||
|
||||
#[cfg(feature = "ui_debug")]
|
||||
/// Call `Trace::trace` on i-th element.
|
||||
@ -62,7 +62,7 @@ impl FlowStore for FlowEmpty {
|
||||
panic!()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, _i: usize, _target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, _i: usize, _target: &mut impl Renderer<'s>) {
|
||||
panic!()
|
||||
}
|
||||
|
||||
@ -132,7 +132,7 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, i: usize, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, i: usize, target: &mut impl Renderer<'s>) {
|
||||
if i == 0 {
|
||||
self.as_ref().render(target)
|
||||
} else {
|
||||
|
@ -80,12 +80,12 @@ impl<Q: FlowState, S: FlowStore> SwipeFlow<Q, S> {
|
||||
ctx.request_paint();
|
||||
}
|
||||
|
||||
fn render_state<'s>(&'s self, state: Q, target: &mut impl Renderer<'s>) {
|
||||
fn render_state<'s>(&self, state: Q, target: &mut impl Renderer<'s>) {
|
||||
self.store.render(state.index(), target)
|
||||
}
|
||||
|
||||
fn render_transition<'s>(
|
||||
&'s self,
|
||||
&self,
|
||||
prev_state: &Q,
|
||||
animation: &Animation<f32>,
|
||||
direction: &SwipeDirection,
|
||||
@ -188,7 +188,7 @@ impl<Q: FlowState, S: FlowStore> Component for SwipeFlow<Q, S> {
|
||||
|
||||
fn paint(&mut self) {}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
match &self.transition {
|
||||
Transition::None | Transition::Internal => self.render_state(self.state, target),
|
||||
Transition::External {
|
||||
|
@ -35,7 +35,6 @@ use super::theme::BLACK;
|
||||
|
||||
#[cfg(feature = "new_rendering")]
|
||||
use crate::ui::{
|
||||
constant,
|
||||
display::{toif::Toif, LOADER_MAX},
|
||||
geometry::{Alignment, Alignment2D},
|
||||
model_mercury::shapes::{render_loader, LoaderRange},
|
||||
@ -123,7 +122,7 @@ impl ModelMercuryFeatures {
|
||||
let center_text_offset: i16 = 10;
|
||||
let center = SCREEN.center() + Offset::y(loader_offset);
|
||||
let inactive_color = bg_color.blend(fg_color, 85);
|
||||
let end = ((progress as i32 * 8 * shape::PI4 as i32) / 1000) as i16;
|
||||
let end = 360.0 * progress as f32 / 1000.0;
|
||||
|
||||
render_loader(
|
||||
center,
|
||||
@ -133,7 +132,7 @@ impl ModelMercuryFeatures {
|
||||
if progress >= LOADER_MAX {
|
||||
LoaderRange::Full
|
||||
} else {
|
||||
LoaderRange::FromTo(0, end)
|
||||
LoaderRange::FromTo(0.0, end)
|
||||
},
|
||||
target,
|
||||
);
|
||||
|
@ -161,7 +161,7 @@ impl Component for AddressDetails {
|
||||
}
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
match self.current_page {
|
||||
0 => self.details.render(target),
|
||||
_ => self.xpub_view.render(target),
|
||||
|
@ -124,7 +124,7 @@ where
|
||||
self.label.paint();
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.content.render(target);
|
||||
|
||||
let center = constant::screen().center() + Offset::y(LOADER_OFFSET);
|
||||
@ -132,10 +132,10 @@ where
|
||||
let background_color = theme::BG;
|
||||
let inactive_color = background_color.blend(active_color, 85);
|
||||
|
||||
let start = (self.value as i32 - 100) % 1000;
|
||||
let end = (self.value as i32 + 100) % 1000;
|
||||
let start = ((start * 8 * shape::PI4 as i32) / 1000) as i16;
|
||||
let end = ((end * 8 * shape::PI4 as i32) / 1000) as i16;
|
||||
let start = (self.value as i16 - 100) % 1000;
|
||||
let end = (self.value as i16 + 100) % 1000;
|
||||
let start = 360.0 * start as f32 / 1000.0;
|
||||
let end = 360.0 * end as f32 / 1000.0;
|
||||
|
||||
shape::Circle::new(center, LOADER_OUTER)
|
||||
.with_bg(inactive_color)
|
||||
|
@ -72,7 +72,7 @@ where
|
||||
self.controls.paint();
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.content.render(target);
|
||||
self.controls.render(target);
|
||||
}
|
||||
@ -202,7 +202,7 @@ where
|
||||
self.controls.paint();
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.image.render(target);
|
||||
self.paragraphs.render(target);
|
||||
self.controls.render(target);
|
||||
|
@ -211,7 +211,7 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.icon.render(target);
|
||||
self.controls.render(target);
|
||||
self.app_name.render(target);
|
||||
|
@ -94,7 +94,7 @@ impl<'a> Component for Footer<'a> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
// show description only if there is space for it
|
||||
if self.area.height() == Footer::HEIGHT_DEFAULT {
|
||||
if let Some(description) = self.text_description {
|
||||
|
@ -108,7 +108,7 @@ impl Homescreen {
|
||||
}
|
||||
}
|
||||
|
||||
fn render_loader<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render_loader<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
TR::progress__locking_device.map_translated(|t| {
|
||||
shape::Text::new(TOP_CENTER + Offset::y(HOLD_Y), t)
|
||||
.with_align(Alignment::Center)
|
||||
@ -186,7 +186,7 @@ impl Component for Homescreen {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
if self.loader.is_animating() || self.loader.is_completely_grown(Instant::now()) {
|
||||
self.render_loader(target);
|
||||
} else {
|
||||
@ -309,7 +309,7 @@ impl Component for Lockscreen<'_> {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
let center = AREA.center();
|
||||
|
||||
match ImageInfo::parse(self.image) {
|
||||
|
@ -107,7 +107,7 @@ impl Component for Bip39Input {
|
||||
todo!("remove when ui-t3t1 done");
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
let area = self.button.area();
|
||||
let style = self.button.style();
|
||||
|
||||
|
@ -208,7 +208,7 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
if self.input.inner().inner().is_empty() {
|
||||
self.prompt.render(target);
|
||||
if self.can_go_back {
|
||||
|
@ -377,7 +377,7 @@ impl Component for PassphraseKeyboard {
|
||||
todo!("remove when ui-t3t1 done")
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.input.render(target);
|
||||
self.next_btn.render(target);
|
||||
self.erase_btn.render(target);
|
||||
@ -441,7 +441,7 @@ impl Component for Input {
|
||||
todo!("remove when ui-t3t1 done");
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
let style = theme::label_keyboard();
|
||||
|
||||
let text_baseline = self.area.top_left() + Offset::y(style.text_font.text_height())
|
||||
|
@ -237,7 +237,7 @@ impl Component for PinKeyboard<'_> {
|
||||
todo!("remove when ui-t3t1 done");
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.erase_btn.render(target);
|
||||
self.textbox_pad.render(target);
|
||||
|
||||
@ -433,7 +433,7 @@ impl Component for PinDots {
|
||||
// TODO: remove when ui-t3t1 done
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
let dot_area = self.area.inset(HEADER_PADDING);
|
||||
self.pad.render(target);
|
||||
if self.display_digits {
|
||||
|
@ -127,7 +127,7 @@ impl Component for Slip39Input {
|
||||
todo!("remove when ui-t3t1 done")
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
let area = self.button.area();
|
||||
let style = self.button.style();
|
||||
|
||||
|
@ -67,7 +67,7 @@ impl Component for SelectWordCount {
|
||||
}
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
for btn in self.button.iter() {
|
||||
btn.render(target)
|
||||
}
|
||||
|
@ -223,8 +223,8 @@ impl Component for Loader {
|
||||
let active_color = style.active;
|
||||
let background_color = style.background_color;
|
||||
|
||||
let end = ((progress as i32 * 8 * shape::PI4 as i32) / 1000) as i16;
|
||||
let start = 0;
|
||||
let end = 360.0 * progress as f32 / 1000.0;
|
||||
let start = 0.0;
|
||||
|
||||
render_loader(
|
||||
center,
|
||||
|
@ -97,7 +97,7 @@ where
|
||||
todo!("remove when ui-t3t1 done");
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.input.render(target);
|
||||
self.paragraphs_pad.render(target);
|
||||
self.paragraphs.render(target);
|
||||
@ -212,7 +212,7 @@ impl Component for NumberInput {
|
||||
todo!("remove when ui-t3t1 done");
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
let mut buf = [0u8; 10];
|
||||
|
||||
if let Some(text) = strutil::format_i64(self.value as i64, &mut buf) {
|
||||
|
@ -419,7 +419,7 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.pad.render(target);
|
||||
match &self.loader {
|
||||
Some(l) if l.is_animating() => self.loader.render(target),
|
||||
|
@ -15,7 +15,6 @@ use crate::{
|
||||
constant,
|
||||
shapes::{render_loader, LoaderRange},
|
||||
},
|
||||
shape,
|
||||
shape::Renderer,
|
||||
util::animation_disabled,
|
||||
},
|
||||
@ -111,7 +110,7 @@ impl Component for Progress {
|
||||
self.description.paint();
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.title.render(target);
|
||||
|
||||
let center = constant::screen().center() + Offset::y(self.loader_y_offset);
|
||||
@ -120,17 +119,17 @@ impl Component for Progress {
|
||||
let inactive_color = theme::GREY_EXTRA_DARK;
|
||||
|
||||
let range = if self.indeterminate {
|
||||
let start = (self.value - 100) % 1000;
|
||||
let end = (self.value + 100) % 1000;
|
||||
let start = ((start as i32 * 8 * shape::PI4 as i32) / 1000) as i16;
|
||||
let end = ((end as i32 * 8 * shape::PI4 as i32) / 1000) as i16;
|
||||
let start = (self.value as i16 - 100) % 1000;
|
||||
let end = (self.value as i16 + 100) % 1000;
|
||||
let start = 360.0 * start as f32 / 1000.0;
|
||||
let end = 360.0 * end as f32 / 1000.0;
|
||||
LoaderRange::FromTo(start, end)
|
||||
} else {
|
||||
let end = ((self.value as i32 * 8 * shape::PI4 as i32) / 1000) as i16;
|
||||
let end = 360.0 * self.value as f32 / 1000.0;
|
||||
if self.value >= LOADER_MAX {
|
||||
LoaderRange::Full
|
||||
} else {
|
||||
LoaderRange::FromTo(0, end)
|
||||
LoaderRange::FromTo(0.0, end)
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -106,7 +106,7 @@ impl Component for PromptScreen {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
shape::Circle::new(self.area.center(), 70)
|
||||
.with_fg(self.circle_pad_color)
|
||||
.with_bg(theme::BLACK)
|
||||
|
@ -124,7 +124,7 @@ impl Component for ScrollBar {
|
||||
}
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
fn dotsize(distance: usize, nhidden: usize) -> Icon {
|
||||
match (nhidden.saturating_sub(distance)).min(2 - distance) {
|
||||
0 => theme::DOT_INACTIVE,
|
||||
|
@ -58,7 +58,7 @@ impl<'a> ShareWords<'a> {
|
||||
self.page_index == self.share_words.len() - 1
|
||||
}
|
||||
|
||||
fn render_word<'s>(&'s self, word_index: usize, target: &mut impl Renderer<'s>) {
|
||||
fn render_word<'s>(&self, word_index: usize, target: &mut impl Renderer<'s>) {
|
||||
// the share word
|
||||
let word = self.share_words[word_index];
|
||||
let word_baseline = target.viewport().clip.center()
|
||||
@ -110,7 +110,7 @@ impl<'a> Component for ShareWords<'a> {
|
||||
// TODO: remove when ui-t3t1 done
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
// corner highlights
|
||||
let (_, top_right_shape, bot_left_shape, bot_right_shape) =
|
||||
shape::CornerHighlight::from_rect(self.area_word, theme::GREY_DARK, theme::BG);
|
||||
|
@ -169,7 +169,7 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.pad.render(target);
|
||||
self.content.render(target);
|
||||
if self.scrollbar.has_pages() {
|
||||
|
@ -108,7 +108,7 @@ impl Component for StatusScreen {
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
shape::Circle::new(self.area.center(), 40)
|
||||
.with_fg(self.circle_color)
|
||||
.with_bg(theme::BLACK)
|
||||
|
@ -52,7 +52,7 @@ where
|
||||
todo!()
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
self.content.render(target);
|
||||
}
|
||||
|
||||
|
@ -119,7 +119,7 @@ impl Component for VerticalMenu {
|
||||
// TODO remove when ui-t3t1 done
|
||||
}
|
||||
|
||||
fn render<'s>(&'s self, target: &mut impl Renderer<'s>) {
|
||||
fn render<'s>(&self, target: &mut impl Renderer<'s>) {
|
||||
// render buttons separated by thin bars
|
||||
for button in &self.buttons {
|
||||
button.render(target);
|
||||
|
@ -109,7 +109,7 @@ impl ConfirmOutput {
|
||||
.with_chunkify(chunkify)
|
||||
.with_text_mono(text_mono)
|
||||
.into_layout()?
|
||||
.one_button_request(ButtonRequest::from_tstring(br_code, br_type));
|
||||
.one_button_request(ButtonRequest::from_num(br_code, br_type));
|
||||
|
||||
// Amount
|
||||
let content_amount = ConfirmBlobParams::new(TR::words__amount.into(), amount, None)
|
||||
@ -118,7 +118,7 @@ impl ConfirmOutput {
|
||||
.with_footer(TR::instructions__swipe_up.into(), None)
|
||||
.with_text_mono(text_mono)
|
||||
.into_layout()?
|
||||
.one_button_request(ButtonRequest::from_tstring(br_code, br_type));
|
||||
.one_button_request(ButtonRequest::from_num(br_code, br_type));
|
||||
|
||||
// Menu
|
||||
let content_menu = Frame::left_aligned(
|
||||
|
@ -105,7 +105,7 @@ impl ConfirmSummary {
|
||||
}
|
||||
let content_summary = summary
|
||||
.into_layout()?
|
||||
.one_button_request(ButtonRequest::from_tstring(br_code, br_type))
|
||||
.one_button_request(ButtonRequest::from_num(br_code, br_type))
|
||||
// Summary(1) + Hold(1)
|
||||
.with_pages(|summary_pages| summary_pages + 1);
|
||||
|
||||
|
@ -171,7 +171,7 @@ impl GetAddress {
|
||||
.with_menu_button()
|
||||
.with_footer(TR::instructions__swipe_up.into(), None)
|
||||
.map(|msg| matches!(msg, FrameMsg::Button(_)).then_some(FlowMsg::Info))
|
||||
.one_button_request(ButtonRequest::from_tstring(br_code, br_type))
|
||||
.one_button_request(ButtonRequest::from_num(br_code, br_type))
|
||||
// Count tap-to-confirm screen towards page count
|
||||
.with_pages(|address_pages| address_pages + 1);
|
||||
|
||||
|
@ -109,7 +109,7 @@ impl RequestNumber {
|
||||
FrameMsg::Button(_) => Some(FlowMsg::Info),
|
||||
FrameMsg::Content(NumberInputDialogMsg(n)) => Some(FlowMsg::Choice(n as usize)),
|
||||
})
|
||||
.one_button_request(ButtonRequest::from_tstring(br_code, br_type));
|
||||
.one_button_request(ButtonRequest::from_num(br_code, br_type));
|
||||
|
||||
let content_menu = Frame::left_aligned(
|
||||
"".into(),
|
||||
|
@ -2,7 +2,7 @@ use crate::ui::{display::Color, geometry::Point, model_mercury::constant, shape,
|
||||
|
||||
pub enum LoaderRange {
|
||||
Full,
|
||||
FromTo(i16, i16),
|
||||
FromTo(f32, f32),
|
||||
}
|
||||
|
||||
pub fn render_loader<'s>(
|
||||
|
@ -8,7 +8,7 @@ use crate::{
|
||||
FixedHeightBar,
|
||||
},
|
||||
display::{Color, Font, Icon},
|
||||
geometry::{Insets, Offset},
|
||||
geometry::Insets,
|
||||
},
|
||||
};
|
||||
|
||||
|
@ -9,10 +9,9 @@ from ..common import interact
|
||||
from . import RustLayout, raise_if_not_confirmed
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
from typing import Callable, Sequence
|
||||
|
||||
from trezor.enums import BackupType
|
||||
|
||||
|
||||
CONFIRMED = trezorui2.CONFIRMED # global_import_cache
|
||||
|
||||
@ -94,11 +93,11 @@ async def select_word(
|
||||
|
||||
async def slip39_show_checklist(
|
||||
step: int,
|
||||
backup_type: BackupType,
|
||||
advanced: bool,
|
||||
count: int | None = None,
|
||||
threshold: int | None = None,
|
||||
) -> None:
|
||||
items = _slip_39_checklist_items(step, backup_type, count, threshold)
|
||||
items = _slip_39_checklist_items(step, advanced, count, threshold)
|
||||
result = await interact(
|
||||
RustLayout(
|
||||
trezorui2.show_checklist(
|
||||
@ -117,15 +116,11 @@ async def slip39_show_checklist(
|
||||
|
||||
def _slip_39_checklist_items(
|
||||
step: int,
|
||||
backup_type: BackupType,
|
||||
advanced: bool,
|
||||
count: int | None = None,
|
||||
threshold: int | None = None,
|
||||
):
|
||||
from trezor.enums import BackupType
|
||||
|
||||
assert backup_type in (BackupType.Slip39_Basic, BackupType.Slip39_Advanced)
|
||||
|
||||
if backup_type == BackupType.Slip39_Basic:
|
||||
if not advanced:
|
||||
entry_1 = (
|
||||
TR.reset__slip39_checklist_num_shares_x_template.format(count)
|
||||
if count
|
||||
|
Loading…
Reference in New Issue
Block a user