mirror of
https://github.com/SeedSigner/seedsigner.git
synced 2026-10-05 15:08:25 +00:00
Merge pull request #651 from kdmukai/update_SeedAddressVerificationSuccess
[Screen Redesign] Light rearrangement of SeedAddressVerificationSuccess
This commit is contained in:
+28
-30
@@ -6,9 +6,9 @@
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: seedsigner 0.8.5\n"
|
||||
"Project-Id-Version: seedsigner 0.8.5-rc1\n"
|
||||
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
|
||||
"POT-Creation-Date: 2024-11-03 14:15-0600\n"
|
||||
"POT-Creation-Date: 2024-12-30 13:43-0600\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -121,9 +121,8 @@ msgid "OP_RETURN"
|
||||
msgstr ""
|
||||
|
||||
#. Label for a change output in the PSBT Overview flow diagram
|
||||
#. Used in a sentence describing the address type (change or receive)
|
||||
#: src/seedsigner/gui/screens/psbt_screens.py
|
||||
#: src/seedsigner/views/psbt_views.py src/seedsigner/views/seed_views.py
|
||||
#: src/seedsigner/views/psbt_views.py
|
||||
msgid "change"
|
||||
msgstr ""
|
||||
|
||||
@@ -204,11 +203,15 @@ msgstr ""
|
||||
msgid "Darker"
|
||||
msgstr ""
|
||||
|
||||
#: src/seedsigner/gui/screens/screen.py src/seedsigner/views/seed_views.py
|
||||
#: src/seedsigner/gui/screens/screen.py
|
||||
#: src/seedsigner/gui/screens/seed_screens.py
|
||||
#: src/seedsigner/views/seed_views.py
|
||||
msgid "Success!"
|
||||
msgstr ""
|
||||
|
||||
#: src/seedsigner/gui/screens/screen.py src/seedsigner/views/seed_views.py
|
||||
#: src/seedsigner/gui/screens/screen.py
|
||||
#: src/seedsigner/gui/screens/seed_screens.py
|
||||
#: src/seedsigner/views/seed_views.py
|
||||
msgid "OK"
|
||||
msgstr ""
|
||||
|
||||
@@ -391,6 +394,25 @@ msgstr ""
|
||||
msgid "Checking address {}"
|
||||
msgstr ""
|
||||
|
||||
#: src/seedsigner/gui/screens/seed_screens.py
|
||||
msgid "Address Verified"
|
||||
msgstr ""
|
||||
|
||||
#. Describes the address type (change or receive)
|
||||
#: src/seedsigner/gui/screens/seed_screens.py
|
||||
msgid "change address"
|
||||
msgstr ""
|
||||
|
||||
#. Describes the address type (change or receive)
|
||||
#: src/seedsigner/gui/screens/seed_screens.py
|
||||
msgid "receive address"
|
||||
msgstr ""
|
||||
|
||||
#. Describes the address index (e.g. "index 7")
|
||||
#: src/seedsigner/gui/screens/seed_screens.py
|
||||
msgid "index {}"
|
||||
msgstr ""
|
||||
|
||||
#: src/seedsigner/gui/screens/seed_screens.py
|
||||
msgid "Multisig Verification"
|
||||
msgstr ""
|
||||
@@ -1262,30 +1284,6 @@ msgstr ""
|
||||
msgid "Can't validate a single sig addr without specifying a seed"
|
||||
msgstr ""
|
||||
|
||||
#: src/seedsigner/views/seed_views.py
|
||||
msgid "multisig"
|
||||
msgstr ""
|
||||
|
||||
#. Inserts the seed fingerprint
|
||||
#: src/seedsigner/views/seed_views.py
|
||||
msgid "seed {}"
|
||||
msgstr ""
|
||||
|
||||
#. Used in a sentence describing the address type (change or receive)
|
||||
#: src/seedsigner/views/seed_views.py
|
||||
msgid "receive"
|
||||
msgstr ""
|
||||
|
||||
#. Address verification success message (e.g. "bc1qabc = seed 12345678's
|
||||
#. receive address #0.")
|
||||
#: src/seedsigner/views/seed_views.py
|
||||
msgid "{} = {}'s {} address #{}."
|
||||
msgstr ""
|
||||
|
||||
#: src/seedsigner/views/seed_views.py
|
||||
msgid "Address Verified"
|
||||
msgstr ""
|
||||
|
||||
#: src/seedsigner/views/seed_views.py
|
||||
msgid "Scan Descriptor"
|
||||
msgstr ""
|
||||
|
||||
@@ -332,7 +332,7 @@ class ButtonListScreen(BaseTopNavScreen):
|
||||
active_button_label = button_option.active_button_label
|
||||
|
||||
else:
|
||||
raise Exception("Refactor needed!")
|
||||
raise Exception("Refactor to ButtonOption approach needed!")
|
||||
|
||||
button_kwargs = dict(
|
||||
text=_(button_label), # Wrap here for just-in-time translations
|
||||
@@ -923,13 +923,14 @@ class LargeIconStatusScreen(ButtonListScreen):
|
||||
self.components.append(self.warning_headline_textarea)
|
||||
next_y = next_y + self.warning_headline_textarea.height
|
||||
|
||||
self.components.append(TextArea(
|
||||
height=self.buttons[0].screen_y - next_y,
|
||||
text=_(self.text),
|
||||
width=self.canvas_width,
|
||||
edge_padding=self.text_edge_padding, # Don't render all the way up to the far left/right edges
|
||||
screen_y=next_y,
|
||||
))
|
||||
if self.text:
|
||||
self.components.append(TextArea(
|
||||
height=self.buttons[0].screen_y - next_y,
|
||||
text=_(self.text),
|
||||
width=self.canvas_width,
|
||||
edge_padding=self.text_edge_padding, # Don't render all the way up to the far left/right edges
|
||||
screen_y=next_y,
|
||||
))
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,26 +1,26 @@
|
||||
import math
|
||||
import logging
|
||||
import math
|
||||
import time
|
||||
|
||||
from dataclasses import dataclass
|
||||
from gettext import gettext as _
|
||||
from PIL import Image, ImageDraw, ImageFilter
|
||||
from typing import List
|
||||
|
||||
from PIL import Image, ImageDraw, ImageFilter
|
||||
from seedsigner.gui.renderer import Renderer
|
||||
from seedsigner.hardware.buttons import HardwareButtons, HardwareButtonsConstants
|
||||
from seedsigner.helpers.qr import QR
|
||||
from seedsigner.gui.components import (Button, FontAwesomeIconConstants, Fonts, FormattedAddress, IconButton,
|
||||
IconTextLine, SeedSignerIconConstants, TextArea, GUIConstants, reflow_text_into_pages)
|
||||
from seedsigner.gui.keyboard import Keyboard, TextEntryDisplay
|
||||
from seedsigner.gui.renderer import Renderer
|
||||
from seedsigner.models.threads import BaseThread, ThreadsafeCounter
|
||||
|
||||
from .screen import RET_CODE__BACK_BUTTON, BaseScreen, BaseTopNavScreen, ButtonListScreen, ButtonOption, KeyboardScreen, WarningEdgesMixin
|
||||
from ..components import (Button, FontAwesomeIconConstants, Fonts, FormattedAddress, IconButton,
|
||||
IconTextLine, SeedSignerIconConstants, TextArea, GUIConstants, reflow_text_into_pages)
|
||||
|
||||
from seedsigner.gui.keyboard import Keyboard, TextEntryDisplay
|
||||
from seedsigner.hardware.buttons import HardwareButtons, HardwareButtonsConstants
|
||||
from .screen import RET_CODE__BACK_BUTTON, BaseScreen, BaseTopNavScreen, ButtonListScreen, ButtonOption, KeyboardScreen, LargeIconStatusScreen, WarningEdgesMixin
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class SeedMnemonicEntryScreen(BaseTopNavScreen):
|
||||
initial_letters: list = None
|
||||
@@ -1057,7 +1057,6 @@ class SeedAddPassphraseScreen(BaseTopNavScreen):
|
||||
self.hw_button2.render()
|
||||
|
||||
self.renderer.show_image()
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1512,6 +1511,49 @@ class SeedAddressVerificationScreen(ButtonListScreen):
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class SeedAddressVerificationSuccessScreen(LargeIconStatusScreen):
|
||||
address: str = None
|
||||
verified_index: int = None
|
||||
verified_index_is_change: bool = None
|
||||
|
||||
|
||||
def __post_init__(self):
|
||||
# Customize defaults
|
||||
self.title = _("Success!")
|
||||
self.status_headline = _("Address Verified")
|
||||
self.button_data = [ButtonOption("OK")]
|
||||
self.is_bottom_list = True
|
||||
self.show_back_button = False
|
||||
super().__post_init__()
|
||||
|
||||
if self.verified_index_is_change:
|
||||
# TRANSLATOR_NOTE: Describes the address type (change or receive)
|
||||
address_type = _("change address")
|
||||
else:
|
||||
# TRANSLATOR_NOTE: Describes the address type (change or receive)
|
||||
address_type = _("receive address")
|
||||
|
||||
self.components.append(FormattedAddress(
|
||||
screen_y=self.components[-1].screen_y + self.components[-1].height + GUIConstants.COMPONENT_PADDING,
|
||||
address=self.address,
|
||||
max_lines=1, # Use abbreviated format w/ellipsis
|
||||
))
|
||||
|
||||
self.components.append(TextArea(
|
||||
text=address_type,
|
||||
screen_y=self.components[-1].screen_y + self.components[-1].height + 2*GUIConstants.COMPONENT_PADDING,
|
||||
))
|
||||
|
||||
# TRANSLATOR_NOTE: Describes the address index (e.g. "index 7")
|
||||
index_str = _("index {}").format(self.verified_index)
|
||||
self.components.append(TextArea(
|
||||
text=index_str,
|
||||
screen_y=self.components[-1].screen_y + self.components[-1].height + GUIConstants.COMPONENT_PADDING,
|
||||
))
|
||||
|
||||
|
||||
|
||||
@dataclass
|
||||
class LoadMultisigWalletDescriptorScreen(ButtonListScreen):
|
||||
def __post_init__(self):
|
||||
|
||||
@@ -1977,36 +1977,12 @@ class SeedAddressVerificationSuccessView(View):
|
||||
|
||||
|
||||
def run(self):
|
||||
from seedsigner.gui.screens.screen import LargeIconStatusScreen
|
||||
address = self.controller.unverified_address["address"]
|
||||
sig_type = self.controller.unverified_address["sig_type"]
|
||||
verified_index = self.controller.unverified_address["verified_index"]
|
||||
verified_index_is_change = self.controller.unverified_address["verified_index_is_change"]
|
||||
|
||||
if sig_type == SettingsConstants.MULTISIG:
|
||||
source = _("multisig")
|
||||
else:
|
||||
# TRANSLATOR_NOTE: Inserts the seed fingerprint
|
||||
source = _("seed {}").format(self.seed.get_fingerprint())
|
||||
|
||||
# TRANSLATOR_NOTE: Used in a sentence describing the address type (change or receive)
|
||||
change_text = _("change")
|
||||
|
||||
# TRANSLATOR_NOTE: Used in a sentence describing the address type (change or receive)
|
||||
receive_text = _("receive")
|
||||
|
||||
# TRANSLATOR_NOTE: Address verification success message (e.g. "bc1qabc = seed 12345678's receive address #0.")
|
||||
text = _("{} = {}'s {} address #{}.").format(
|
||||
address[:7],
|
||||
source,
|
||||
change_text if verified_index_is_change else receive_text,
|
||||
verified_index
|
||||
self.run_screen(
|
||||
seed_screens.SeedAddressVerificationSuccessScreen,
|
||||
address = self.controller.unverified_address["address"],
|
||||
verified_index = self.controller.unverified_address["verified_index"],
|
||||
verified_index_is_change = self.controller.unverified_address["verified_index_is_change"],
|
||||
)
|
||||
LargeIconStatusScreen(
|
||||
status_headline=_("Address Verified"),
|
||||
text=text,
|
||||
show_back_button=False,
|
||||
).display()
|
||||
|
||||
return Destination(MainMenuView)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user