4cc16467387c9eecc3f1844a89b869d38010e76f
This update provides a unified, predictable inactivity prompt behavior regardless of how the user navigated to a page. Changes: - Added userInteractedWithCurrentSite flag to track user touch on each site - Modified markActivity() to set flag when user interacts (tap, swipe, scroll) - Modified attachView() to clear flag when site changes - Updated inactivity check to use interaction flag instead of navigation mode New Behavior (Consistent UX): ✅ Scenario A: Auto-rotation to recipe → user taps → prompt after timeout - Site auto-rotates to recipe page - User taps screen to scroll/interact - userInteractedWithCurrentSite = true - After 2 min idle → prompt appears - User can extend time or return to rotation ✅ Scenario B: User swiping through photos every 30 seconds - Each swipe resets inactivity timer via markActivity() - No prompt appears (user is actively interacting) - Prompt only appears after they stop swiping for timeout period ✅ Scenario C: Sites auto-rotating with no user interaction - userInteractedWithCurrentSite = false on each site - No prompt appears - Rotation continues normally Technical Details: - Single-finger swipes (in-page content): Reset timer via markActivity() - Two-finger swipes (tab navigation): Also sets manualNavigationMode - Both types of interaction trigger the flag - Flag cleared on every site change (auto or manual) - If manual swipe, markActivity() re-sets it immediately Use Cases: - Recipe viewing: User can interact with page, get timeout prompt, extend time - Photo browsing: Continuous swiping prevents timeout - Digital signage: No interaction = no prompt = smooth rotation - MagicMirror modules: Single-finger swipes keep resetting timer This provides the consistent UX requested where ANY user interaction on ANY site enables the inactivity prompt logic.
Languages
Shell
94.1%
JavaScript
4.7%
HTML
0.9%
CSS
0.3%