1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-07-24 15:38:22 +00:00

WIP - after rebase fixes

This commit is contained in:
grdddj 2022-11-13 11:14:46 +01:00
parent 825f94b2f2
commit 8d7fc11b87
13 changed files with 40 additions and 35 deletions

View File

@ -102,14 +102,19 @@ impl<const M: usize> Page<M> {
pub fn btn_layout(&self) -> ButtonLayout<&'static str> {
// When we are in pagination inside this flow,
// show the up and down arrows on appropriate sides
// show the up and down arrows on appropriate sides.
let current = self.btn_layout.clone();
let btn_left = if self.has_prev_page() {
// On the last page showing only the narrow arrow, so the right
// button with possibly long text has enough space.
let btn_left = if self.has_prev_page() && !self.has_next_page() {
Some(ButtonDetails::up_arrow_icon())
} else if self.has_prev_page() {
Some(ButtonDetails::up_arrow_icon_wide())
} else {
current.btn_left
};
let btn_right = if self.has_next_page() {
Some(ButtonDetails::down_arrow_icon_wide())
} else {

View File

@ -16,7 +16,7 @@ use crate::{
time::Duration,
ui::{
component::{
base::{Component, ComponentExt},
base::Component,
paginated::{PageMsg, Paginate},
painter,
text::paragraphs::{Paragraph, ParagraphSource, ParagraphVecLong, Paragraphs, VecExt},
@ -318,7 +318,7 @@ extern "C" fn confirm_output(n_args: usize, args: *const Obj, kwargs: *mut Map)
};
let pages = FlowPages::new(get_page, 2);
let obj = LayoutObj::new(Flow::new(pages).with_common_title(title).into_child())?;
let obj = LayoutObj::new(Flow::new(pages).with_common_title(title))?;
Ok(obj.into())
};
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
@ -362,7 +362,7 @@ extern "C" fn confirm_total(n_args: usize, args: *const Obj, kwargs: *mut Map) -
};
let pages = FlowPages::new(get_page, 1);
let obj = LayoutObj::new(Flow::new(pages).with_common_title(title).into_child())?;
let obj = LayoutObj::new(Flow::new(pages).with_common_title(title))?;
Ok(obj.into())
};
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
@ -499,7 +499,7 @@ extern "C" fn tutorial(n_args: usize, args: *const Obj, kwargs: *mut Map) -> Obj
let pages = FlowPages::new(get_page, PAGE_COUNT);
let obj = LayoutObj::new(Flow::new(pages).into_child())?;
let obj = LayoutObj::new(Flow::new(pages))?;
Ok(obj.into())
};
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
@ -512,7 +512,7 @@ extern "C" fn request_pin(n_args: usize, args: *const Obj, kwargs: *mut Map) ->
let _allow_cancel: Option<bool> =
kwargs.get(Qstr::MP_QSTR_allow_cancel)?.try_into_option()?;
let obj = LayoutObj::new(PinEntry::new(prompt).into_child())?;
let obj = LayoutObj::new(PinEntry::new(prompt))?;
Ok(obj.into())
};
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
@ -544,10 +544,7 @@ extern "C" fn select_word(n_args: usize, args: *const Obj, kwargs: *mut Map) ->
let words: Vec<StrBuffer, 3> = iter_into_vec(words_iterable)?;
// TODO: should return int, to be consistent with TT's select_word
let obj = LayoutObj::new(Frame::new(
title,
SimpleChoice::new(words, true, true).into_child(),
))?;
let obj = LayoutObj::new(Frame::new(title, SimpleChoice::new(words, true, true)))?;
Ok(obj.into())
};
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
@ -559,10 +556,7 @@ extern "C" fn request_word_count(n_args: usize, args: *const Obj, kwargs: *mut M
let choices: Vec<&str, 3> = ["12", "18", "24"].into_iter().collect();
let obj = LayoutObj::new(Frame::new(
title,
SimpleChoice::new(choices, false, false).into_child(),
))?;
let obj = LayoutObj::new(Frame::new(title, SimpleChoice::new(choices, false, false)))?;
Ok(obj.into())
};
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
@ -572,7 +566,7 @@ extern "C" fn request_word_bip39(n_args: usize, args: *const Obj, kwargs: *mut M
let block = |_args: &[Obj], kwargs: &Map| {
let prompt: StrBuffer = kwargs.get(Qstr::MP_QSTR_prompt)?.try_into()?;
let obj = LayoutObj::new(Frame::new(prompt, Bip39Entry::new().into_child()))?;
let obj = LayoutObj::new(Frame::new(prompt, Bip39Entry::new()))?;
Ok(obj.into())
};
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }
@ -583,7 +577,7 @@ extern "C" fn request_passphrase(n_args: usize, args: *const Obj, kwargs: *mut M
let prompt: StrBuffer = kwargs.get(Qstr::MP_QSTR_prompt)?.try_into()?;
let _max_len: u8 = kwargs.get(Qstr::MP_QSTR_max_len)?.try_into()?;
let obj = LayoutObj::new(Frame::new(prompt, PassphraseEntry::new().into_child()))?;
let obj = LayoutObj::new(Frame::new(prompt, PassphraseEntry::new()))?;
Ok(obj.into())
};
unsafe { util::try_with_args_and_kwargs(n_args, args, kwargs, block) }

View File

@ -6,6 +6,8 @@ from trezor.strings import format_amount
from trezor.ui import layouts
from trezor.ui.layouts import confirm_metadata
from apps.management import text_r
from .. import addresses
from ..common import format_fee_rate
@ -261,15 +263,15 @@ async def confirm_nondefault_locktime(
if lock_time_disabled:
title = "Warning"
text = "Locktime is set but will\nhave no effect.\n"
text = text_r("Locktime is set but will\nhave no effect.\n")
param: str | None = None
elif lock_time < _LOCKTIME_TIMESTAMP_MIN_VALUE:
title = "Confirm locktime"
text = "Locktime for this\ntransaction is set to\nblockheight:\n{}"
text = text_r("Locktime for this\ntransaction is set to\nblockheight:\n{}")
param = str(lock_time)
else:
title = "Confirm locktime"
text = "Locktime for this\ntransaction is set to:\n{}"
text = text_r("Locktime for this\ntransaction is set to:\n{}")
param = format_timestamp(lock_time)
await confirm_metadata(

View File

@ -4,10 +4,11 @@ from typing import TYPE_CHECKING
import storage.device as storage_device
from trezor.wire import DataError
from apps.management import text_r
if TYPE_CHECKING:
from trezor.wire import Context
from apps.management import text_r
_MAX_PASSPHRASE_LEN = const(50)

View File

@ -4,9 +4,10 @@ from typing import TYPE_CHECKING
import storage.cache as storage_cache
from trezor import config, wire
from .sdcard import request_sd_salt
from apps.management import text_r
from .sdcard import request_sd_salt
if TYPE_CHECKING:
from typing import Any, NoReturn
from trezor.wire import Context, GenericContext

View File

@ -11,6 +11,7 @@ from trezor.ui.layouts import (
should_show_more,
)
from ..management import text_r
from . import networks
from .helpers import decode_typed_data

View File

@ -1,11 +1,11 @@
from typing import TYPE_CHECKING
from . import text_r
if TYPE_CHECKING:
from trezor.messages import GetNextU2FCounter, NextU2FCounter
from trezor.wire import Context
from . import text_r
async def get_next_u2f_counter(ctx: Context, msg: GetNextU2FCounter) -> NextU2FCounter:
import storage.device as storage_device

View File

@ -1,7 +1,7 @@
from typing import TYPE_CHECKING
from trezor.enums import ButtonRequestType
from trezor.ui.layouts import show_warning, confirm_action
from trezor.ui.layouts import confirm_action, show_warning
from trezor.ui.layouts.recovery import ( # noqa: F401
request_word_count,
show_group_share_success,

View File

@ -6,8 +6,8 @@ from trezor.crypto import slip39
from trezor.enums import BackupType
from trezor.wire import ProcessError
from . import layout
from .. import text_r
from . import layout
if __debug__:
import storage.debug

View File

@ -1,11 +1,11 @@
from typing import TYPE_CHECKING
from . import text_r
if TYPE_CHECKING:
from trezor.messages import SetU2FCounter, Success
from trezor.wire import Context
from . import text_r
async def set_u2f_counter(ctx: Context, msg: SetU2FCounter) -> Success:
import storage.device as storage_device

View File

@ -10,8 +10,9 @@ if TYPE_CHECKING:
T = TypeVar("T", bound=Callable)
fatfs = io.fatfs # global_import_cache
# TODO: solve this for model R, which does not have a filesystem
if hasattr(io, "fatfs"):
fatfs = io.fatfs # global_import_cache
SD_CARD_HOT_SWAPPABLE = False
SD_SALT_LEN_BYTES = const(32)

View File

@ -1134,7 +1134,7 @@ async def confirm_coinjoin(
ctx=ctx,
br_type="coinjoin_final",
title="AUTHORIZE COINJOIN",
data=f"Maximum rounds: {max_rounds}\n\nMaximum mining fee:\n{max_fee_per_vbyte} sats/vbyte",
data=f"Maximum rounds: {max_rounds}\n\nMaximum mining fee:\n{max_fee_per_vbyte}",
description="",
br_code=ButtonRequestType.Other,
)

View File

@ -1119,7 +1119,7 @@ async def request_pin_on_device(
async def confirm_pin_action(
ctx: wire.GenericContext,
ctx: GenericContext,
br_type: str,
title: str,
action: str | None,
@ -1138,7 +1138,7 @@ async def confirm_pin_action(
async def confirm_reenter_pin(
ctx: wire.GenericContext,
ctx: GenericContext,
br_type: str = "set_pin",
br_code: ButtonRequestType = ButtonRequestType.Other,
) -> None:
@ -1153,7 +1153,7 @@ async def confirm_reenter_pin(
async def pin_mismatch(
ctx: wire.GenericContext,
ctx: GenericContext,
br_type: str = "set_pin",
br_code: ButtonRequestType = ButtonRequestType.Other,
) -> None:
@ -1169,7 +1169,7 @@ async def pin_mismatch(
async def confirm_set_new_pin(
ctx: wire.GenericContext,
ctx: GenericContext,
br_type: str,
title: str,
action: str,