From 95771d3dec6f5ab5978d6d7fbe9560042df20342 Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Fri, 23 May 2025 09:47:53 +0200 Subject: [PATCH] Start work on LightningPiggy's DisplayWallet --- .../META-INF/MANIFEST.JSON | 12 +++++ .../assets/displaywallet.py | 41 ++++++++++++++++++ .../res/mipmap-mdpi/icon_64x64.png | Bin 0 -> 4640 bytes .../com.example.appstore/assets/appstore.py | 2 +- 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 internal_filesystem/apps/com.lightningpiggy.displaywallet/META-INF/MANIFEST.JSON create mode 100644 internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/displaywallet.py create mode 100644 internal_filesystem/apps/com.lightningpiggy.displaywallet/res/mipmap-mdpi/icon_64x64.png diff --git a/internal_filesystem/apps/com.lightningpiggy.displaywallet/META-INF/MANIFEST.JSON b/internal_filesystem/apps/com.lightningpiggy.displaywallet/META-INF/MANIFEST.JSON new file mode 100644 index 00000000..552723aa --- /dev/null +++ b/internal_filesystem/apps/com.lightningpiggy.displaywallet/META-INF/MANIFEST.JSON @@ -0,0 +1,12 @@ +{ +"name": "Lightning Piggy", +"publisher": "LightningPiggy Foundation", +"short_description": "Display wallet that shows balance, transactions, receive QR code etc.", +"long_description": "See https://www.LightningPiggy.com", +"icon_url": "http://demo.lnpiggy.com:2121/apps/com.lightningpiggy.displaywallet_0.0.1.mpk_icon_64x64.png", +"download_url": "http://demo.lnpiggy.com:2121/apps/com.lightningpiggy.displaywallet_0.0.1.mpk", +"fullname": "com.lightningpiggy.displaywallet", +"version": "0.0.1", +"entrypoint": "assets/displaywallet.py", +"category": "finance" +} diff --git a/internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/displaywallet.py b/internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/displaywallet.py new file mode 100644 index 00000000..feaeca9e --- /dev/null +++ b/internal_filesystem/apps/com.lightningpiggy.displaywallet/assets/displaywallet.py @@ -0,0 +1,41 @@ +import time + +def build_main_ui(): + appscreen.clean() + balance_label = lv.label(appscreen) + balance_label.align(lv.ALIGN.TOP_LEFT, 0, 0) + balance_label.set_style_text_font(lv.font_montserrat_16, 0) + balance_label.set_text('123456') + point1 = lv.point_precise_t() + point1.x = 10 + point1.y = 10 + point2 = lv.point_precise_t() + point2.x = 200 + point2.y = 200 + line_points = [ + point1, + point2 + ] + style_line = lv.style_t() + style_line.init() + style_line.set_line_width(8) + style_line.set_line_color(lv.palette_main(lv.PALETTE.BLUE)) + style_line.set_line_rounded(True) + balance_line = lv.line() + balance_line.set_points(line_points, 2) + balance_line.add_style(style_line, 0) + balance_line.center() + l = lv.line(appscreen) + l.set_points([{'x':100,'y':100},{'x':150,'y':100},{'x':150,'y':150}],3) + l.add_style(style_line, 0) + +def janitor_cb(timer): + if lv.screen_active() != appscreen: + print("app backgrounded, cleaning up...") + janitor.delete() + # No cleanups to do, but in a real app, you might stop timers, deinitialize hardware devices you used, close network connections, etc. + +appscreen = lv.screen_active() +janitor = lv.timer_create(janitor_cb, 1000, None) + +build_main_ui() diff --git a/internal_filesystem/apps/com.lightningpiggy.displaywallet/res/mipmap-mdpi/icon_64x64.png b/internal_filesystem/apps/com.lightningpiggy.displaywallet/res/mipmap-mdpi/icon_64x64.png new file mode 100644 index 0000000000000000000000000000000000000000..be7ff467d88a07ef188e4aeab9c1babf59cd1266 GIT binary patch literal 4640 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 literal 0 HcmV?d00001 diff --git a/internal_filesystem/builtin/apps/com.example.appstore/assets/appstore.py b/internal_filesystem/builtin/apps/com.example.appstore/assets/appstore.py index 0f7693dd..944cacce 100644 --- a/internal_filesystem/builtin/apps/com.example.appstore/assets/appstore.py +++ b/internal_filesystem/builtin/apps/com.example.appstore/assets/appstore.py @@ -301,7 +301,7 @@ def create_apps_list(): desc_label.add_event_cb(lambda e, a=app: show_app_detail(a), lv.EVENT.CLICKED, None) print("create_apps_list app done") try: - _thread.stack_size(12*1024) + _thread.stack_size(16*1024) _thread.start_new_thread(download_icons,()) except Exception as e: print("Could not start thread to download icons: ", e)