mirror of
https://github.com/myronblair/jarvis
synced 2026-06-30 17:50:23 -05:00
Add kiosk mode button for Fire tablet Silk browser
This commit is contained in:
@@ -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 = ""; }
|
||||
}
|
||||
});
|
||||
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user