Add QR brightness tips screen

This commit is contained in:
overcat
2023-06-13 10:33:38 +08:00
parent dbb1d6b1d7
commit 4833bffdca
3 changed files with 34 additions and 0 deletions
+26
View File
@@ -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",
+1
View File
@@ -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