Added
-
๐ก Allow System Brightness Management (#65): New toggle "App Brightness Control" in Display settings
- When disabled, FreeKiosk never touches screen brightness โ system tools like Tasker, Android adaptive brightness, or other automation apps retain full control
- Applies to both WebView and External App modes
- All brightness-related UI (manual slider, auto-brightness, screensaver brightness) is hidden when disabled
- REST API brightness commands are also ignored when disabled
-
๐งช Beta Update Channel: Opt-in toggle to receive pre-release versions before stable releases
- New "๐งช Beta Updates" toggle in the Updates section (Settings โ Advanced)
- When enabled, the in-app updater checks GitHub pre-releases (tagged
v1.2.15-beta.1, etc.) - When disabled (default), behavior is unchanged โ only stable releases are shown
- Update alert shows a ๐งช badge and "(pre-release)" label for beta versions
- Semver-aware version comparison:
1.2.15-beta.1 < 1.2.15-beta.2 < 1.2.15(stable always wins) - No downgrade: switching beta OFF won't propose installing an older stable over a newer beta
Fixed
-
๐ MQTT Password Field Adding Extra Characters: Removed custom bullet-masking logic in
SettingsInputand replaced with nativesecureTextEntry- Same fix as PinInput (v1.2.5)
- Custom masking reconstructed the real value from display text lengths, which broke with Samsung/Gboard predictive text, autocorrect, and paste, silently injecting extra characters
- Affects MQTT password, API key, and all other password fields using
SettingsInput
-
๐ง REST API Camera Photo Endpoint Returns "Invalid or Missing API Key" After Settings Change:
ApiSettingsSectionnow always restarts the HTTP server with the current stored settings when the REST API settings page is opened- Previously, if the server was started by
KioskScreenwith an API key that was later cleared in settings, the running server kept its stale config - Fixed a related race condition in the port/key/control change handlers where they checked a potentially-stale React
serverRunningstate instead of querying the native module
- Previously, if the server was started by
-
๐ง Motion Detection Shows "No Cameras Available" on Non-Standard SoCs (Rockchip, Amlogic, etc.): react-native-vision-camera's ProcessCameraProvider initializes asynchronously
- On slow hardware it resolves after the settings screen already read the empty camera list
- Fixed by subscribing to
CameraDevicesChangedso the UI updates as soon as cameras become available