mirror of
https://github.com/SeedSigner/seedsigner.git
synced 2026-10-05 23:18:25 +00:00
Add QR brightness tips screen
This commit is contained in:
@@ -660,6 +660,21 @@ class LargeButtonScreen(BaseTopNavScreen):
|
||||
class QRDisplayScreen(BaseScreen):
|
||||
qr_encoder: EncodeQR = None
|
||||
|
||||
class AdjustBrightnessTipsScreen(BaseScreen):
|
||||
def __post_init__(self):
|
||||
super().__post_init__()
|
||||
|
||||
text_area = TextArea(
|
||||
text="Use joystick Up/Down for adjusting brightness",
|
||||
is_text_centered=True,
|
||||
screen_y=self.canvas_height // 2,
|
||||
)
|
||||
self.components.append(text_area)
|
||||
|
||||
def _run(self):
|
||||
# show the screen for 2 seconds
|
||||
time.sleep(2)
|
||||
|
||||
class QRDisplayThread(BaseThread):
|
||||
def __init__(self, qr_encoder: EncodeQR, qr_brightness: ThreadsafeCounter, renderer: Renderer):
|
||||
super().__init__()
|
||||
@@ -669,6 +684,17 @@ class QRDisplayScreen(BaseScreen):
|
||||
|
||||
|
||||
def run(self):
|
||||
from seedsigner.models.settings import Settings
|
||||
|
||||
# Display the brightness tip screen
|
||||
show_brightness_tips = (
|
||||
Settings.get_instance().get_value(
|
||||
SettingsConstants.SETTING__QR_BRIGHTNESS_TIPS
|
||||
)
|
||||
== SettingsConstants.OPTION__ENABLED
|
||||
)
|
||||
if show_brightness_tips:
|
||||
QRDisplayScreen.AdjustBrightnessTipsScreen().display()
|
||||
# Loop whether the QR is a single frame or animated; each loop might adjust
|
||||
# brightness setting.
|
||||
while self.keep_running:
|
||||
|
||||
@@ -160,6 +160,7 @@ class SettingsConstants:
|
||||
SETTING__BIP85_CHILD_SEEDS = "bip85_child_seeds"
|
||||
SETTING__PRIVACY_WARNINGS = "privacy_warnings"
|
||||
SETTING__DIRE_WARNINGS = "dire_warnings"
|
||||
SETTING__QR_BRIGHTNESS_TIPS = "qr_brightness_tips"
|
||||
SETTING__PARTNER_LOGOS = "partner_logos"
|
||||
|
||||
SETTING__DEBUG = "debug"
|
||||
@@ -465,6 +466,12 @@ class SettingsDefinition:
|
||||
visibility=SettingsConstants.VISIBILITY__ADVANCED,
|
||||
default_value=SettingsConstants.OPTION__ENABLED),
|
||||
|
||||
SettingsEntry(category=SettingsConstants.CATEGORY__FEATURES,
|
||||
attr_name=SettingsConstants.SETTING__QR_BRIGHTNESS_TIPS,
|
||||
display_name="Show QR brightness tips",
|
||||
visibility=SettingsConstants.VISIBILITY__ADVANCED,
|
||||
default_value=SettingsConstants.OPTION__ENABLED),
|
||||
|
||||
SettingsEntry(category=SettingsConstants.CATEGORY__FEATURES,
|
||||
attr_name=SettingsConstants.SETTING__PARTNER_LOGOS,
|
||||
display_name="Show partner logos",
|
||||
|
||||
@@ -68,6 +68,7 @@ def test_missing_settings_get_defaults(reset_controller):
|
||||
assert controller.settings.get_value(SettingsConstants.SETTING__BIP85_CHILD_SEEDS) == SettingsConstants.OPTION__DISABLED
|
||||
assert controller.settings.get_value(SettingsConstants.SETTING__PRIVACY_WARNINGS) == SettingsConstants.OPTION__ENABLED
|
||||
assert controller.settings.get_value(SettingsConstants.SETTING__DIRE_WARNINGS) == SettingsConstants.OPTION__ENABLED
|
||||
assert controller.settings.get_value(SettingsConstants.SETTING__QR_BRIGHTNESS_TIPS) == SettingsConstants.OPTION__ENABLED
|
||||
assert controller.settings.get_value(SettingsConstants.SETTING__PARTNER_LOGOS) == SettingsConstants.OPTION__ENABLED
|
||||
|
||||
# Hidden Settings defaults
|
||||
|
||||
Reference in New Issue
Block a user