diff --git a/docs/img/logo.svg b/docs/img/logo.svg new file mode 100644 index 00000000..1b94c144 --- /dev/null +++ b/docs/img/logo.svg @@ -0,0 +1,203 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/seedsigner/controller.py b/src/seedsigner/controller.py index d1f04c7a..2d2edf6b 100644 --- a/src/seedsigner/controller.py +++ b/src/seedsigner/controller.py @@ -10,7 +10,7 @@ from threading import Thread # Internal file class dependencies from .views import (View, MenuView, SeedToolsView,SigningToolsView, - SettingsToolsView, IOTestView) + SettingsToolsView, IOTestView, OpeningSplashView, ScreensaverView) from .helpers import Buttons, B, Path, Singleton from .models import (SeedStorage, Settings, DecodeQR, DecodeQRStatus, EncodeQRDensity, EncodeQR, PSBTParser, QRType) @@ -72,6 +72,7 @@ class Controller(Singleton): controller.io_test_view = IOTestView() controller.signing_tools_view = SigningToolsView(controller.storage) controller.settings_tools_view = SettingsToolsView() + controller.screensaver = ScreensaverView() @property def camera(self): @@ -80,6 +81,9 @@ class Controller(Singleton): def start(self) -> None: + opening_splash = OpeningSplashView() + opening_splash.start() + if self.DEBUG: # Let Exceptions halt execution try: diff --git a/src/seedsigner/resources/logo_black_240.png b/src/seedsigner/resources/logo_black_240.png new file mode 100644 index 00000000..68e3043f Binary files /dev/null and b/src/seedsigner/resources/logo_black_240.png differ diff --git a/src/seedsigner/views/__init__.py b/src/seedsigner/views/__init__.py index 47932cd0..bcf195a7 100644 --- a/src/seedsigner/views/__init__.py +++ b/src/seedsigner/views/__init__.py @@ -4,3 +4,4 @@ from .menu_view import * from .seed_tools_view import * from .settings_tools_view import * from .signing_tools_view import * +from .screensaver import OpeningSplashView, ScreensaverView \ No newline at end of file diff --git a/src/seedsigner/views/screensaver.py b/src/seedsigner/views/screensaver.py new file mode 100644 index 00000000..88700edf --- /dev/null +++ b/src/seedsigner/views/screensaver.py @@ -0,0 +1,45 @@ +import os +import time +from PIL import Image, ImageDraw +from . import View + + + +class OpeningSplashView(View): + + def __init__(self): + logo_url = os.path.join("seedsigner", "resources", "logo_black_240.png") + self.logo = Image.open(logo_url) + + + def start(self): + from seedsigner.controller import Controller + controller = Controller.get_instance() + + # Fade in alpha + for i in range(250, -1, -25): + self.logo.putalpha(255 - i) + background = Image.new("RGBA", self.logo.size, (0,0,0)) + View.disp.ShowImage(Image.alpha_composite(background, self.logo), 0, 0) + + # Display version num and hold for a few seconds + font = View.ROBOTOCONDENSED_REGULAR_22 + version = f"v{controller.VERSION}" + tw, th = font.getsize(version) + x = int((View.canvas_width - tw) / 2) + y = int(View.canvas_height / 2) + 40 + + draw = ImageDraw.Draw(self.logo) + draw.text((x, y), version, fill="orange", font=font) + View.DispShowImage(self.logo) + time.sleep(3) + + + +class ScreensaverView(OpeningSplashView): + def start(self): + pass + + + def stop(self): + pass \ No newline at end of file