Commit Graph
5 Commits
Author SHA1 Message Date
Claude 4cc1646738 Implement consistent Return to Rotation UX across all sites
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.
2025-11-16 21:44:36 +00:00
Claude 785c74b0d1 Update v0.9.8: Rename "Return to Home" to "Return to Rotation"
Changed the inactivity prompt behavior based on user feedback:

Changes:
- Renamed button from "🏠 Return to home now" to "🔄 Return to rotation"
- Reverted inactivity check to work on ALL pages (including home screen)
- Updated returnToHome() function comments to clarify rotation behavior

Behavior:
- Inactivity prompt now appears on home screen AND other pages
- If user is viewing a recipe (or any page), they can extend time
- Clicking "Return to Rotation":
  * If NOT on home page: goes to home page first, then starts rotation
  * If on home page: just starts the rotation
- This allows users to get "30 extra minutes" before touching the screen
  with dirty hands (e.g., when following a recipe)

Use Case:
User navigates to a recipe on menu app, inactivity prompt appears,
they can click "30 more minutes" to read the recipe without any
further screen interaction needed.
2025-11-16 20:22:52 +00:00
Claude d586792108 Release v0.9.8 - Password Lock & Bug Fixes
This release adds password-protected session lockout and fixes several
reported bugs from v0.9.9.1 testing.

New Features:
- Password-protected session lockout
  * Configurable lockout password (separate from sudo user)
  * Auto-lock after configurable timeout (default 30 minutes)
  * Black lockout screen with password prompt
  * Session unlocks with correct password
  * New "Configure Session Lockout" menu option

Bug Fixes:
- Fixed return-to-home popup appearing on home screen
  * Popup now only appears on timed sites
  * Home screen no longer triggers inactivity prompt
  * Updated logic: only check inactivity when NOT on home page

- Fixed site edit menu flow
  * Edit site URL function now returns properly to menu
  * Added explicit return statement to prevent bail
  * Added blank line for better UX

Version Updates:
- Updated to semantic versioning: v0.9.8
- Updated all version references in header and script
- Updated changelog with new features and fixes

Technical Changes:
- Added LOCKOUT_ENABLED, LOCKOUT_PASSWORD, LOCKOUT_TIMEOUT config vars
- Created lockout.html template with black screen and password entry
- Added lockout state tracking in main.js
- Implemented showLockout() and hideLockout() functions
- Added unlock-session IPC handler
- Integrated lockout check into master timer
- Updated save_config() to persist lockout settings
- Updated loadConfig() to load lockout settings

Addresses user feedback from testing:
- Time extensions now work correctly
- Return to home popup fixed
- Site edit menu no longer bails
2025-11-16 18:56:07 +00:00
outis1one 673d2d7124 Add files via upload 2025-11-16 10:51:18 -05:00
outis1one 738a2a038b Add files via upload 2025-11-14 16:52:06 -05:00