You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- TTS engine is initialized when the HTTP server starts
47
+
- Handled natively (no JS bridge dependency — works even if React Native is unresponsive)
48
+
- Auto-retries if TTS engine is not ready on first call
49
+
- 📊 **Volume Read API** (`GET /api/volume`): New endpoint to read current volume level
50
+
- Returns `{ level: 0-100, maxLevel: 100 }` for easy integration with Home Assistant sensors
51
+
52
+
### Fixed
53
+
- 🐛 **Screen Sleep Scheduler - Black Screen & Navigation Lockout**: Fixed 4 critical bugs causing scheduler to malfunction
54
+
-**Feedback loop**: Scheduler re-entered sleep immediately after wake due to `isScheduledSleep` in useEffect dependency array
55
+
-**Navigation lockout**: Scheduler interval kept running while on PIN/Settings screen, calling `lockNow()` and locking user out
56
+
-**Wake-on-touch broken**: Touch events during sleep did nothing — never restored brightness or called `exitScheduledSleep()`
57
+
-**Stale closure**: `checkScreenSchedule()` used outdated state variable instead of ref
58
+
-**N-tap during sleep**: 5-tap for settings now properly exits scheduled sleep before navigating to PIN
59
+
-**Activity null after lockNow()**: `turnScreenOn()` now acquires WakeLock before checking for activity availability
60
+
- Fixes black screen issue on Android 8.1+ and impossible settings access during sleep windows
61
+
- 🐛 **Power menu dismissed immediately on some devices (TECNO/HiOS)**: Fixed GlobalActions (power menu) being closed ~900ms after appearing when "Allow Power Button" is enabled in Lock Mode
62
+
- Root cause: `onWindowFocusChanged` aggressively re-applied immersive mode, stealing focus back from the system power menu window
63
+
- Additionally, `onResume` would re-trigger `startLockTask()` during the brief focus transition, compounding the issue
64
+
- Fix: debounced `hideSystemUI()` by 600ms on focus regain, and deferred `startLockTask()` re-lock when power button is allowed and focus was recently lost
65
+
- No security impact: Lock Task Mode remains fully active throughout — only the cosmetic immersive mode re-application is delayed
66
+
- Affects TECNO, Infinix, itel (HiOS) and potentially other OEMs with aggressive WindowManager behavior on Android 14+
67
+
- 🐛 **Device Owner Status Hardcoded `false` in API**: Fixed `/api/info` and `/api/status` always reporting `isDeviceOwner: false`
68
+
- Was hardcoded to `false` in `HttpServerModule.getDeviceStatus()`
69
+
- Now performs a real `DevicePolicyManager.isDeviceOwnerApp()` check
70
+
- This caused external dashboards to incorrectly show Device Owner as inactive
71
+
- 📺 **Screen On Not Working After lockNow()**: Fixed `GET /api/screen/on` failing when screen was off
72
+
-`reactContext.currentActivity` was `null` after `lockNow()` and the code silently did nothing
73
+
- WakeLock is now acquired **before** checking for activity (WakeLock works without activity)
74
+
- Added keyguard dismissal to properly wake from locked state
75
+
- Screen now reliably turns on whether activity is available or not
76
+
- 🧹 **Clear Cache Now Actually Clears**: Fixed `/api/clearCache` which only reloaded the WebView
77
+
- Now performs a full native cache clear: WebView HTTP cache, cookies, Web Storage (localStorage/sessionStorage), form data
78
+
- Then forces a WebView remount on the JS side for a complete fresh start
0 commit comments