Context
In Lite Mode the WebView is disabled and KioskService no longer brings MainActivity to the foreground — which is correct, but it means ShellyElevate doesn't manage any foreground app. Keeping the chosen dashboard app (HA Companion, Fully Kiosk, WallPanel) alive/on top is left entirely to an external launcher.
Request
Add an optional setting, e.g. liteForegroundPackage (string, default empty), and an optional liteForegroundActivity. When Lite Mode is on and this is set:
BootReceiver launches that package on boot (instead of nothing).
- The existing
KioskService 30s watchdog checks whether the configured package is foreground; if not, it relaunches it (the same mechanism already used for MainActivity in normal mode, just pointed at a configurable target).
- Empty value keeps current behaviour (no foreground management).
Why
This reuses the watchdog/boot logic already in place and turns Lite Mode into a full appliance experience with a third-party dashboard: crash/background recovery for the chosen app, without needing a separate kiosk launcher. Settable via the existing POST /settings so it fits the current config model.
Offer to help
Happy to actively contribute here, not just test. I have three different Wall Display models on hand — X2, X2i and XL — so I can validate behaviour across the model range, which should help catch the model-specific edge cases. Specifically I can:
- test builds on real hardware (X2 / X2i / XL) and provide logs/feedback,
- validate the watchdog and boot behaviour across reboots/crash scenarios on each model,
- and contribute the code itself via PR — wiring
liteForegroundPackage/liteForegroundActivity into BootReceiver and the existing KioskService 30s foreground check, plus the POST /settings handling.
Just let me know your preferred approach for the watchdog target resolution and I'll align the implementation with the existing patterns.
Context
In Lite Mode the WebView is disabled and
KioskServiceno longer bringsMainActivityto the foreground — which is correct, but it means ShellyElevate doesn't manage any foreground app. Keeping the chosen dashboard app (HA Companion, Fully Kiosk, WallPanel) alive/on top is left entirely to an external launcher.Request
Add an optional setting, e.g.
liteForegroundPackage(string, default empty), and an optionalliteForegroundActivity. When Lite Mode is on and this is set:BootReceiverlaunches that package on boot (instead of nothing).KioskService30s watchdog checks whether the configured package is foreground; if not, it relaunches it (the same mechanism already used forMainActivityin normal mode, just pointed at a configurable target).Why
This reuses the watchdog/boot logic already in place and turns Lite Mode into a full appliance experience with a third-party dashboard: crash/background recovery for the chosen app, without needing a separate kiosk launcher. Settable via the existing POST /settings so it fits the current config model.
Offer to help
Happy to actively contribute here, not just test. I have three different Wall Display models on hand — X2, X2i and XL — so I can validate behaviour across the model range, which should help catch the model-specific edge cases. Specifically I can:
liteForegroundPackage/liteForegroundActivityintoBootReceiverand the existingKioskService30s foreground check, plus thePOST /settingshandling.Just let me know your preferred approach for the watchdog target resolution and I'll align the implementation with the existing patterns.