feat(core): init T3T1 UI layouts: meta

pull/3662/head
Martin Milata 3 months ago committed by obrusvit
parent 4df43fcd59
commit a672bf1329

@ -429,12 +429,15 @@ SOURCE_FIRMWARE = [
]
if TREZOR_MODEL in ('T', 'T3T1', 'DISC1', 'DISC2'):
if TREZOR_MODEL in ('T', 'DISC1', 'DISC2'):
UI_LAYOUT = 'UI_LAYOUT_TT'
ui_layout_feature = 'model_tt'
elif TREZOR_MODEL in ('1', 'R'):
UI_LAYOUT = 'UI_LAYOUT_TR'
ui_layout_feature = 'model_tr'
elif TREZOR_MODEL in ('T3T1',):
UI_LAYOUT = 'UI_LAYOUT_MERCURY'
ui_layout_feature = 'model_mercury'
else:
raise ValueError('Unknown Trezor model')
@ -607,6 +610,12 @@ if FROZEN:
SOURCE_PY_DIR + 'trezor/ui/layouts/tr/fido.py',
] if not EVERYTHING else []
))
elif UI_LAYOUT == 'UI_LAYOUT_MERCURY':
SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/mercury/*.py',
exclude=[
SOURCE_PY_DIR + 'trezor/ui/layouts/mercury/fido.py',
] if not EVERYTHING else []
))
else:
raise ValueError('Unknown layout')

@ -487,13 +487,15 @@ else:
env = Environment(ENV=os.environ, CFLAGS='%s -DPYOPT=%s -DBITCOIN_ONLY=%s %s' % (ARGUMENTS.get('CFLAGS', ''), PYOPT, BITCOIN_ONLY, STATIC))
if TREZOR_MODEL in ('T', 'T3T1'):
if TREZOR_MODEL in ('T',):
UI_LAYOUT = 'UI_LAYOUT_TT'
ui_layout_feature = 'model_tt'
# XXX TODO
elif TREZOR_MODEL in ('1', 'R'):
UI_LAYOUT = 'UI_LAYOUT_TR'
ui_layout_feature = 'model_tr'
elif TREZOR_MODEL in ('T3T1',):
UI_LAYOUT = 'UI_LAYOUT_MERCURY'
ui_layout_feature = 'model_mercury'
else:
raise ValueError('Unknown Trezor model')
@ -713,6 +715,12 @@ if FROZEN:
SOURCE_PY_DIR + 'trezor/ui/layouts/tr/fido.py',
] if not EVERYTHING else []
))
elif UI_LAYOUT == 'UI_LAYOUT_MERCURY':
SOURCE_PY.extend(Glob(SOURCE_PY_DIR + 'trezor/ui/layouts/mercury/*.py',
exclude=[
SOURCE_PY_DIR + 'trezor/ui/layouts/mercury/fido.py',
] if not EVERYTHING else []
))
else:
raise ValueError('Unknown layout')

@ -466,6 +466,8 @@ STATIC const mp_rom_map_elem_t mp_module_trezorutils_globals_table[] = {
{MP_ROM_QSTR(MP_QSTR_UI_LAYOUT), MP_ROM_QSTR(MP_QSTR_TT)},
#elif UI_LAYOUT_TR
{MP_ROM_QSTR(MP_QSTR_UI_LAYOUT), MP_ROM_QSTR(MP_QSTR_TR)},
#elif UI_LAYOUT_MERCURY
{MP_ROM_QSTR(MP_QSTR_UI_LAYOUT), MP_ROM_QSTR(MP_QSTR_MERCURY)},
#else
#error Unknown layout
#endif

@ -10,6 +10,7 @@ default = ["model_tt"]
crypto = ["zeroize"]
model_tt = ["jpeg"]
model_tr = []
model_mercury = ["jpeg"]
micropython = []
protobuf = ["micropython"]
ui = []

@ -1,7 +1,13 @@
//! Reexporting the `constant` module according to the
//! current feature (Trezor model)
#[cfg(all(feature = "model_tr", not(feature = "model_tt")))]
#[cfg(feature = "model_mercury")]
pub use super::model_mercury::constant::*;
#[cfg(all(
feature = "model_tr",
not(feature = "model_tt"),
not(feature = "model_mercury")
))]
pub use super::model_tr::constant::*;
#[cfg(feature = "model_tt")]
#[cfg(all(feature = "model_tt", not(feature = "model_mercury")))]
pub use super::model_tt::constant::*;

@ -5,16 +5,16 @@ mod starry;
use crate::ui::display::{Color, Icon};
#[cfg(feature = "model_tt")]
#[cfg(any(feature = "model_tt", feature = "model_mercury"))]
use crate::ui::display::loader::circular::{
loader_circular as determinate, loader_circular_indeterminate as indeterminate,
};
#[cfg(feature = "model_tt")]
#[cfg(any(feature = "model_tt", feature = "model_mercury"))]
pub use crate::ui::display::loader::circular::{loader_circular_uncompress, LoaderDimensions};
#[cfg(not(feature = "model_tt"))]
#[cfg(all(not(feature = "model_tt"), not(feature = "model_mercury")))]
use crate::ui::display::loader::rectangular::loader_rectangular as determinate;
#[cfg(not(feature = "model_tt"))]
#[cfg(all(not(feature = "model_tt"), not(feature = "model_mercury")))]
use crate::ui::display::loader::starry::loader_starry_indeterminate as indeterminate;
pub use small::loader_small_indeterminate;

@ -15,6 +15,8 @@ pub mod util;
pub mod layout;
#[cfg(feature = "model_mercury")]
pub mod model_mercury;
#[cfg(feature = "model_tr")]
pub mod model_tr;
#[cfg(feature = "model_tt")]

@ -1,6 +1,8 @@
//! Reexporting the `screens` module according to the
//! current feature (Trezor model)
#[cfg(feature = "model_mercury")]
pub use super::model_mercury::screens::*;
#[cfg(all(feature = "model_tr", not(feature = "model_tt")))]
pub use super::model_tr::screens::*;
#[cfg(feature = "model_tt")]

@ -47,6 +47,7 @@ def generate(env):
optiga = env["optiga"]
layout_tt = env["ui_layout"] == "UI_LAYOUT_TT"
layout_tr = env["ui_layout"] == "UI_LAYOUT_TR"
layout_mercury = env["ui_layout"] == "UI_LAYOUT_MERCURY"
interim = f"{target[:-4]}.i" # replace .mpy with .i
sed_scripts = " ".join(
[
@ -56,6 +57,7 @@ def generate(env):
rf"-e 's/utils\.USE_OPTIGA/{optiga}/g'",
rf"-e 's/utils\.UI_LAYOUT == \"TT\"/{layout_tt}/g'",
rf"-e 's/utils\.UI_LAYOUT == \"TR\"/{layout_tr}/g'",
rf"-e 's/utils\.UI_LAYOUT == \"MERCURY\"/{layout_mercury}/g'",
r"-e 's/if TYPE_CHECKING/if False/'",
r"-e 's/import typing/# \0/'",
r"-e '/from typing import (/,/^\s*)/ {s/^/# /; }'",

@ -157,6 +157,18 @@ trezor.ui.layouts.fido
import trezor.ui.layouts.fido
trezor.ui.layouts.homescreen
import trezor.ui.layouts.homescreen
trezor.ui.layouts.mercury
import trezor.ui.layouts.mercury
trezor.ui.layouts.mercury.fido
import trezor.ui.layouts.mercury.fido
trezor.ui.layouts.mercury.homescreen
import trezor.ui.layouts.mercury.homescreen
trezor.ui.layouts.mercury.progress
import trezor.ui.layouts.mercury.progress
trezor.ui.layouts.mercury.recovery
import trezor.ui.layouts.mercury.recovery
trezor.ui.layouts.mercury.reset
import trezor.ui.layouts.mercury.reset
trezor.ui.layouts.progress
import trezor.ui.layouts.progress
trezor.ui.layouts.recovery

@ -8,5 +8,7 @@ if utils.UI_LAYOUT == "TR":
from .tr import * # noqa: F401,F403
elif utils.UI_LAYOUT == "TT":
from .tt import * # noqa: F401,F403
elif utils.UI_LAYOUT == "MERCURY":
from .mercury import * # noqa: F401,F403
else:
raise ValueError("Unknown layout")

@ -4,3 +4,5 @@ if utils.UI_LAYOUT == "TT":
from .tt.fido import * # noqa: F401,F403
elif utils.UI_LAYOUT == "TR":
from .tr.fido import * # noqa: F401,F403
elif utils.UI_LAYOUT == "MERCURY":
from .mercury.fido import * # noqa: F401,F403

@ -4,3 +4,5 @@ if utils.UI_LAYOUT == "TT":
from .tt.homescreen import * # noqa: F401,F403
elif utils.UI_LAYOUT == "TR":
from .tr.homescreen import * # noqa: F401,F403
elif utils.UI_LAYOUT == "MERCURY":
from .mercury.homescreen import * # noqa: F401,F403

@ -4,3 +4,5 @@ if utils.UI_LAYOUT == "TT":
from .tt.progress import * # noqa: F401,F403
elif utils.UI_LAYOUT == "TR":
from .tr.progress import * # noqa: F401,F403
elif utils.UI_LAYOUT == "MERCURY":
from .mercury.progress import * # noqa: F401,F403

@ -4,3 +4,5 @@ if utils.UI_LAYOUT == "TT":
from .tt.recovery import * # noqa: F401,F403
elif utils.UI_LAYOUT == "TR":
from .tr.recovery import * # noqa: F401,F403
elif utils.UI_LAYOUT == "MERCURY":
from .mercury.recovery import * # noqa: F401,F403

@ -4,3 +4,5 @@ if utils.UI_LAYOUT == "TT":
from .tt.reset import * # noqa: F401,F403
elif utils.UI_LAYOUT == "TR":
from .tr.reset import * # noqa: F401,F403
elif utils.UI_LAYOUT == "MERCURY":
from .mercury.reset import * # noqa: F401,F403

Loading…
Cancel
Save