Files
dadaloop82 80303f7900 docs(wiki): full English pass + update for v1.7.13 and built-in scale gateway
- Features.md: translate all Italian UI strings to English (chat examples,
  Avvia cottura → Start Cooking, Spiega → Explain, La quantità è giusta → correct)
- Android-Kiosk.md: translate Italian button labels (Concedi permessi →
  Grant permissions, Rileva automaticamente → Auto-discover); fix
  REQUEST_INSTALL_PACKAGES description (OTA kiosk self-updates, not scale APK);
  fix REORDER_TASKS description; add 'Header Overlay Buttons' section documenting
  the three web overlay buttons (✕ ↻ ⚙️) and the permanent native button hiding
- Scale-Gateway.md: translate Italian button labels (Cerca Bilance Bluetooth →
  Find Bluetooth Scales, Leggi bilancia → Read Scale, Disconnetti/Riconnetti →
  Disconnect/Reconnect)
- FAQ.md: translate all Italian strings (AI non disponibile → AI not available,
  Bring! non configurato, Leggi bilancia, Carica altri → Load more); replace
  outdated 'Gateway install fails' section (separate APK no longer exists for
  kiosk users) with 'Kiosk app update fails'; update ✕ button description to
  reflect the new 3-button overlay (✕ ↻ ⚙️); restore missing Getting Help section
- Home.md: update What's New v1.7.13 with complete list of changes; mark
  evershelf-scale-gateway/ as DEPRECATED in repo structure
2026-05-16 06:32:53 +00:00

4.9 KiB

📺 Android Kiosk App

The EverShelf Kiosk app turns any Android tablet into a dedicated, locked-down kitchen display running EverShelf full-screen.


Download

⬇ Download latest APK

Current version: v1.6.0 — requires Android 7.0+


What it does

  • Displays the EverShelf web app in a full-screen WebView (no browser chrome)
  • Locks the screen with Android's startLockTask — home, recents, and back buttons are blocked
  • Runs the built-in BLE scale gateway as an integrated foreground service — no external app required
  • Provides a native TTS bridge so Cooking Mode reads steps aloud via Android TextToSpeech
  • Auto-detects your EverShelf server on the LAN with a smart discovery scanner
  • Reports errors and install failures back to the developer automatically

Setup Wizard (6 steps)

The wizard runs automatically on first launch.

Step 1 — Language

Select the app and web interface language (Italian, English, German).

Step 2 — Welcome

Overview of what the wizard will configure.

Step 3 — Permissions

Grant camera, microphone, and storage permissions needed by the web app.

The button transforms from "Grant permissions" to " Permissions granted — Continue →" (green) once all permissions are granted.

Step 4 — Server URL

Enter your EverShelf server URL (e.g. https://192.168.1.100/dispensa).

Or tap "Auto-discover" to let the wizard scan your LAN:

  • 60 parallel threads, TCP pre-check, ports 80/443/8080/8443
  • Only scans your actual Wi-Fi/Ethernet subnet (VPN and cellular interfaces ignored)
  • Real-time feedback as hosts are tested

Step 5 — Smart Scale

If you have a Bluetooth LE smart scale, configure it here:

  1. Tap "Yes, I have a scale" — the app scans for nearby BLE devices
  2. Tap your scale in the list (devices most likely to be scales are marked with )
  3. On selection, the app automatically writes scale_enabled=true and scale_gateway_url=ws://127.0.0.1:8765 to your EverShelf server

The BLE gateway runs as a built-in foreground service — no external APK needed.

Step 6 — Screensaver

Choose whether the screen should go dark after inactivity.

Summary

All done — the web app loads in full-screen kiosk mode.


Header Overlay Buttons

Three buttons are injected into the top-left of the web header by the kiosk app:

Button Action
Exit kiosk mode (confirmation dialog)
Hard-refresh — clears WebView cache and reloads the app
⚙️ Open EverShelf Settings

The native Android settings button is permanently hidden once the overlay is injected — the ⚙️ web button replaces it entirely.


Exiting Kiosk Mode

Tap the button in the header overlay (top-left). A confirmation dialog appears.


Hard Refresh

Tap the button in the header to clear the WebView cache and reload the latest version of the web app.


Update Notifications

Every 6 hours the app checks GitHub releases. If a newer version is available, a banner appears with a one-tap download and install flow.


Native TTS Bridge

When Cooking Mode reads recipe steps, the kiosk app:

  1. Intercepts the TTS call from the web app via a JavaScript bridge
  2. Uses the Android TextToSpeech engine directly
  3. Falls back to the browser Web Speech API if the bridge is unavailable

No internet connection required for TTS. No extra voice packs to install.


SSL / Self-signed Certificates

The WebView accepts self-signed certificates automatically. No configuration needed for local HTTPS servers.


Troubleshooting

"Server non trovato" during auto-discovery

  • Make sure your tablet and server are on the same Wi-Fi network
  • Ensure the server is not on a VPN-only interface
  • Try entering the URL manually

Screen pinning / back button not working

  • Screen pinning requires the app to be set as Device Owner or the user to confirm the pin prompt
  • Some Android skins (Samsung, Xiaomi) may require additional accessibility permissions

App crashes on startup

  • Force-stop the app, clear its data (Settings → Apps → EverShelf Kiosk → Clear data), and relaunch

Building from Source

cd evershelf-kiosk
./gradlew assembleRelease
# APK: app/build/outputs/apk/release/app-release.apk

Requires Android Studio or JDK 17+ with the Android SDK.


Permissions

Permission Purpose
INTERNET Load the EverShelf web app
CAMERA Barcode scanning and AI photo identification
RECORD_AUDIO Voice input in AI chat
WAKE_LOCK Keep the screen on
REQUEST_INSTALL_PACKAGES Over-the-air kiosk self-updates (installs new APK from GitHub releases)
ACCESS_WIFI_STATE LAN auto-discovery
REORDER_TASKS Bring the kiosk app to foreground when needed