445 Commits
Author SHA1 Message Date
Thomas Farstrike 4efe22f4bf Bigger logo 2026-01-23 18:50:50 +01:00
Thomas Farstrike 30b3764710 Harmonize frameworks
All frameworks now follow the same singleton class pattern with class methods:

AudioFlinger (already had this pattern)
DownloadManager (refactored)
ConnectivityManager (refactored)
CameraManager (refactored)
SensorManager (refactored)
Pattern Structure:

class FrameworkName:
    _initialized = False
    _instance_data = {}

    @classmethod
    def init(cls, *args, **kwargs):
        """Initialize the framework"""
        cls._initialized = True
        # initialization logic

    @classmethod
    def is_available(cls):
        """Check if framework is available"""
        return cls._initialized

    @classmethod
    def method_name(cls, *args):
        """Framework methods as class methods"""
        # implementation

2. Standardized Imports in __init__.py
All frameworks are now imported consistently as classes:

from .content.package_manager import PackageManager
from .config import SharedPreferences
from .net.connectivity_manager import ConnectivityManager
from .net.wifi_service import WifiService
from .audio.audioflinger import AudioFlinger
from .net.download_manager import DownloadManager
from .task_manager import TaskManager
from .camera_manager import CameraManager
from .sensor_manager import SensorManager
3. Updated Board Initialization Files
Fixed imports in all board files to use the new class-based pattern:

linux.py
fri3d_2024.py
fri3d_2026.py
waveshare_esp32_s3_touch_lcd_2.py
4. Updated UI Components
Fixed topmenu.py to import SensorManager as a class instead of a module.

5. Benefits of This Harmonization
 Consistency: All frameworks follow the same pattern - no more mixing of module imports and class imports  Simplicity: Single, clear way to use frameworks - always as classes with class methods  Functionality: All frameworks work identically - init(), is_available(), and other methods are consistent  Maintainability: New developers see one pattern to follow across all frameworks  No Breaking Changes: Apps continue to work without modification (Quasi apps, Lightning Piggy, etc.)

6. Testing
All tests pass successfully, confirming:

Framework initialization works correctly
Board hardware detection functions properly
UI components render without errors
No regressions in existing functionality
The harmonization is complete and production-ready. All frameworks now provide a unified, predictable interface that's easy to understand and extend.
2026-01-23 15:31:47 +01:00
Thomas Farstrike a76d2b7826 Fix logo in dark mode 2026-01-21 16:18:44 +01:00
Thomas Farstrike 1a39a64979 OSUpdate: simplify 2026-01-21 13:32:51 +01:00
Thomas Farstrike 0accfa269f OSUpdate: eliminate requests library 2026-01-21 13:32:04 +01:00
Thomas Farstrike 71968b743c Reduce size of logo while increasing font size
From 5633 to 3210 bytes while reducing borders around the text.

How:
- import MicroPythonOS-logo-black-long.svg into Gimp, rasterized at 266x59 at 130 dpi
- crop it to 240x35 px, making sure to have at least 0.5 pixel border around the content to make sure no half-transparent pixels are cut off
- export as PNG with maximal compression and all options (like save resolution, save background color) unchecked
2026-01-20 19:39:26 +01:00
Thomas Farstrike e916515a3d Update logo 2026-01-20 16:02:02 +01:00
Thomas Farstrike d0b2eff89d AppStore: update progress 2026-01-20 15:39:04 +01:00
Thomas Farstrike 0367accbe9 Fix appstore BadgeHub 2026-01-20 15:18:56 +01:00
Thomas Farstrike e986f8e56f Increment version numbers 2026-01-15 08:37:52 +01:00
Thomas Farstrike 036f65f17c About app: format unique ID as MAC address 2026-01-15 08:17:20 +01:00
Thomas Farstrike 22a16661ba Add display.get_dpi() and show in About app 2026-01-15 08:09:34 +01:00
Thomas Farstrike 2f69b08c02 Wifi app: only show Scan QR button if there's a camera 2026-01-14 21:57:22 +01:00
Thomas Farstrike a343fac7ed AppStore: improve UX 2026-01-14 21:14:03 +01:00
Thomas Farstrike b88b02e0c3 About app: more esp32 stuff 2026-01-14 12:12:48 +01:00
Thomas Farstrike 15f5cefb6f Improve About app 2026-01-14 12:04:14 +01:00
Thomas Farstrike 74894ec524 About app: use theme color 2026-01-14 11:59:12 +01:00
Thomas Farstrike fd3104a02d About app: make more beautiful 2026-01-14 11:56:40 +01:00
Thomas Farstrike 0d422ec47c About app: refactor more DRY 2026-01-14 11:24:09 +01:00
Thomas Farstrike 01ead760d7 Tweak about app 2026-01-14 00:39:51 +01:00
Thomas Farstrike 89537246ab Simplify imports 2026-01-13 10:35:04 +01:00
Thomas Farstrike 7842ebb74f OSUpdate: make sure still foreground before showing update info 2026-01-13 01:13:02 +01:00
Thomas Farstrike 4ad4e1ed20 Refactor to simplify imports 2026-01-13 00:38:17 +01:00
Thomas Farstrike a4687a9937 Use simpler imports 2026-01-12 23:07:15 +01:00
Thomas Farstrike 6f745d232b Rename CameraApp to CameraActivity 2026-01-12 22:58:09 +01:00