Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/gui/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,7 @@ def align_button_pair(btn1, btn2):
btn2.set_x(HOR_RES // 2 + PADDING // 2)


def add_qrcode(text, y=QR_PADDING, scr=None, style=None, width=None):
def add_qrcode(text, y=QR_PADDING, scr=None, style=None, width=None, sensitive=False):
"""Helper functions that creates a title-styled label"""
if scr is None:
scr = lv.scr_act()
Expand All @@ -185,6 +185,7 @@ def add_qrcode(text, y=QR_PADDING, scr=None, style=None, width=None):
width = 350

qr = QRCode(scr)
qr.sensitive = sensitive
qr.set_text(text)
qr.set_size(width)
qr.set_text(text)
Expand Down
9 changes: 6 additions & 3 deletions src/gui/components/qrcode.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ def __init__(self, *args, **kwargs):

self.encoder = None
self._autoplay = True
# When True, this QR encodes secret material (mnemonic, SeedQR
# digits/bytes): never print its contents, even in the simulator.
self.sensitive = False

self.qr = lvqr.QRCode(self)
self._text = "Text"
Expand Down Expand Up @@ -244,7 +247,7 @@ def update_note(self):
self.check_controls()

def set_text(self, text="Text", set_first_frame=False):
if platform.simulator and self._text != text:
if platform.simulator and not self.sensitive and self._text != text:
print("QR on screen:", text)
self.encoder = None
self._text = text
Expand Down Expand Up @@ -288,8 +291,8 @@ def check_controls(self):
self.play.set_hidden((not self.is_fullscreen) or (self.idx is not None) or (self.encoder is None))

def _set_text(self, text):
# one bcur frame doesn't require checksum
print(text)
if platform.simulator and not self.sensitive:
print(text)
self.set_style(qr_style)
self.qr.set_text(text)
self.qr.align(self, lv.ALIGN.CENTER, 0, -100 if self.is_fullscreen else 0)
Expand Down
1 change: 1 addition & 0 deletions src/gui/screens/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@
from .mnemonic import MnemonicScreen, NewMnemonicScreen, RecoverMnemonicScreen
from .transaction import TransactionScreen
from .settings import DevSettings
from .seedqr import SeedQROverviewScreen, SeedQRZoomScreen, show_seedqr
3 changes: 2 additions & 1 deletion src/gui/screens/qralert.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,12 @@ def __init__(
button_text="Close",
note=None,
transcribe=False,
sensitive=False,
):
if qr_message is None:
qr_message = message
super().__init__(title, message, button_text, note=note)
self.qr = add_qrcode(qr_message, scr=self, width=qr_width)
self.qr = add_qrcode(qr_message, scr=self, width=qr_width, sensitive=sensitive)
self.qr.align(self.page, lv.ALIGN.IN_TOP_MID, 0, 20)
self.message.align(self.qr, lv.ALIGN.OUT_BOTTOM_MID, 0, 20)
if transcribe:
Expand Down
Loading
Loading