Add kiosk mode button for Fire tablet Silk browser

This commit is contained in:
2026-06-19 16:02:51 +00:00
parent 1979c5f667
commit ab1aa16ac8
2 changed files with 48 additions and 0 deletions
+47
View File
@@ -1754,3 +1754,50 @@ document.addEventListener('keydown', function(e) {
});
}
});
// ── KIOSK MODE ───────────────────────────────────────────────────────────────────────
let _wakeLock = null;
async function toggleKiosk() {
const btn = document.getElementById("kioskBtn");
const isFs = !!(document.fullscreenElement || document.webkitFullscreenElement);
if (!isFs) {
const el = document.documentElement;
const req = el.requestFullscreen || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen;
if (req) req.call(el).catch(() => {});
// Screen Wake Lock — keeps tablet display on
if ("wakeLock" in navigator) {
try { _wakeLock = await navigator.wakeLock.request("screen"); } catch(e) {}
}
if (btn) { btn.textContent = "⛶ EXIT"; btn.style.color = "var(--cyan)"; }
} else {
const ex = document.exitFullscreen || document.webkitExitFullscreen || document.mozCancelFullScreen || document.msExitFullscreen;
if (ex) ex.call(document).catch(() => {});
if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; }
if (btn) { btn.textContent = "⛶ KIOSK"; btn.style.color = ""; }
}
}
// Re-acquire wake lock if released by system (e.g. tab switch)
document.addEventListener("visibilitychange", async () => {
if (_wakeLock && document.visibilityState === "visible") {
try { _wakeLock = await navigator.wakeLock.request("screen"); } catch(e) {}
}
});
// Sync button label when fullscreen is exited via Esc key
document.addEventListener("fullscreenchange", () => {
const btn = document.getElementById("kioskBtn");
if (!document.fullscreenElement && !document.webkitFullscreenElement) {
if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; }
if (btn) { btn.textContent = "⛶ KIOSK"; btn.style.color = ""; }
}
});
document.addEventListener("webkitfullscreenchange", () => {
const btn = document.getElementById("kioskBtn");
if (!document.webkitFullscreenElement && !document.fullscreenElement) {
if (_wakeLock) { _wakeLock.release().catch(() => {}); _wakeLock = null; }
if (btn) { btn.textContent = "⛶ KIOSK"; btn.style.color = ""; }
}
});
+1
View File
@@ -65,6 +65,7 @@
<div class="status-dot"></div>
<button id="cameraBtn" class="btn-camera" onclick="toggleCamera()" title="Auto-mic when face detected (hands-free)">◉ CAMERA</button>
<button id="panelToggleBtn" class="btn-panels" onclick="togglePanels()" title="Toggle side panels (or say 'focus mode')">◧ PANELS</button>
<button id="kioskBtn" class="btn-panels" onclick="toggleKiosk()" title="Full-screen kiosk mode">⛶ KIOSK</button>
<button id="agentBtn" class="btn-agent" onclick="openAgentModal()" title="Install JARVIS Agent on this machine"><div class="agent-dot"></div>AGENT</button>
<div id="themeBar" style="display:flex;gap:3px;align-items:center;margin-right:2px">