From 297fb2a7a0f28c395ce74771d0f7c61bbc543e41 Mon Sep 17 00:00:00 2001 From: veenm Date: Mon, 26 Oct 2026 22:34:52 +0100 Subject: [PATCH] Dashboard Studio 1.14.1: Android app, phone menu button, install fix - Android app (android/, built with build.sh): signs in to Home Assistant once, opens Dashboard Studio full screen, renews the ingress session; downloadable from Install as an app - Phone dashboards: a round menu button brings back the top bar with Edit, Kiosk and Install as an app - Install as an app explains what works per device (Android app, https for browser install, iPhone limits) - Fixed: browser install failed because the manifest was fetched without the Home Assistant sign-in Co-Authored-By: Claude Opus 5.5 --- android/.gitignore | 1 + android/AndroidManifest.xml | 37 +++ android/assets/icon.png | Bin 0 -> 19944 bytes android/assets/setup.html | 63 ++++ android/build.sh | 38 +++ android/res/drawable-xxxhdpi/ic_fg.png | Bin 0 -> 26710 bytes android/res/drawable/ic_bg.xml | 4 + android/res/mipmap-anydpi-v26/ic_launcher.xml | 5 + android/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 6906 bytes android/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 4085 bytes android/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 10672 bytes android/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 19944 bytes android/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 31751 bytes android/res/values/values.xml | 11 + .../dashboardstudio/MainActivity.java | 299 ++++++++++++++++++ dashboard_studio/CHANGELOG.md | 7 + dashboard_studio/DOCS.md | 9 +- dashboard_studio/config.yaml | 2 +- dashboard_studio/server/main.py | 8 + dashboard_studio/web/app.js | 76 +++-- dashboard_studio/web/dashboard-studio.apk | Bin 0 -> 124057 bytes dashboard_studio/web/i18n.js | 13 +- dashboard_studio/web/index.html | 5 +- dashboard_studio/web/style.css | 9 + 24 files changed, 561 insertions(+), 26 deletions(-) create mode 100644 android/.gitignore create mode 100644 android/AndroidManifest.xml create mode 100644 android/assets/icon.png create mode 100644 android/assets/setup.html create mode 100755 android/build.sh create mode 100644 android/res/drawable-xxxhdpi/ic_fg.png create mode 100644 android/res/drawable/ic_bg.xml create mode 100644 android/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 android/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/res/values/values.xml create mode 100644 android/src/nl/melvanveen/dashboardstudio/MainActivity.java create mode 100644 dashboard_studio/web/dashboard-studio.apk diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..567609b --- /dev/null +++ b/android/.gitignore @@ -0,0 +1 @@ +build/ diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml new file mode 100644 index 0000000..2768dcc --- /dev/null +++ b/android/AndroidManifest.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/assets/icon.png b/android/assets/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..99486d4e4fa49128176465eb641e3c1f92108e36 GIT binary patch literal 19944 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 Y0cy;k&o3Wi + + + + + + + +
+ +

Connect to Home Assistant

+

Enter the address you use to open Home Assistant. You sign in once; the app remembers it.

+

+
+ + +

You can also paste the link from Dashboard Studio: Install as an app, Open in the app.

+ +
+
+ + + diff --git a/android/build.sh b/android/build.sh new file mode 100755 index 0000000..75caf48 --- /dev/null +++ b/android/build.sh @@ -0,0 +1,38 @@ +#!/bin/sh +# Builds the Android app without Gradle, with the Android SDK's own tools, and copies it into the +# Home Assistant app, which offers it for download (Install as an app on an Android phone). +# ./build.sh the release build, signed with ~/.android/dashboard-studio.jks (made the first time) +# ./build.sh debug a debuggable build, for testing in the emulator (Chrome can inspect its pages) +# Keep the key: Android only installs an update that is signed with the same key as the installed app. +set -e +cd "$(dirname "$0")" +SDK="${ANDROID_HOME:-$HOME/Library/Android/sdk}" +BT="$SDK/build-tools/$(ls "$SDK/build-tools" | sort -V | tail -1)" +JAR="$SDK/platforms/$(ls "$SDK/platforms" | sort -V | tail -1)/android.jar" +KEY="${DS_KEYSTORE:-$HOME/.android/dashboard-studio.jks}" +OUT=build +rm -rf "$OUT" && mkdir -p "$OUT/res" "$OUT/classes" "$OUT/gen" + +DEBUG="" +[ "$1" = "debug" ] && DEBUG="--debug-mode" +"$BT/aapt2" compile --dir res -o "$OUT/res" +"$BT/aapt2" link -o "$OUT/app.unsigned.apk" -I "$JAR" --manifest AndroidManifest.xml -A assets \ + --java "$OUT/gen" $DEBUG "$OUT"/res/*.flat +javac -nowarn --release 17 -classpath "$JAR" -d "$OUT/classes" $(find src "$OUT/gen" -name '*.java') +"$BT/d8" --release --min-api 24 --lib "$JAR" --output "$OUT" $(find "$OUT/classes" -name '*.class') +(cd "$OUT" && zip -q app.unsigned.apk classes.dex) +"$BT/zipalign" -f -p 4 "$OUT/app.unsigned.apk" "$OUT/app.aligned.apk" + +if [ ! -f "$KEY" ]; then + mkdir -p "$(dirname "$KEY")" + keytool -genkeypair -keystore "$KEY" -storepass dashboard-studio -keypass dashboard-studio -alias app \ + -keyalg RSA -keysize 4096 -validity 36500 -dname "CN=Dashboard Studio" >/dev/null + echo "Made a new signing key: $KEY (keep it, updates need the same key)" +fi +"$BT/apksigner" sign --ks "$KEY" --ks-pass pass:dashboard-studio --ks-key-alias app --out "$OUT/dashboard-studio.apk" "$OUT/app.aligned.apk" +if [ -z "$DEBUG" ]; then + cp "$OUT/dashboard-studio.apk" ../dashboard_studio/web/dashboard-studio.apk + echo "Built and copied to dashboard_studio/web/dashboard-studio.apk" +else + echo "Built $OUT/dashboard-studio.apk (debug)" +fi diff --git a/android/res/drawable-xxxhdpi/ic_fg.png b/android/res/drawable-xxxhdpi/ic_fg.png new file mode 100644 index 0000000000000000000000000000000000000000..276a6f2d6dce10cdce2a5be329da7418d5d05e15 GIT binary patch literal 26710 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 literal 0 HcmV?d00001 diff --git a/android/res/drawable/ic_bg.xml b/android/res/drawable/ic_bg.xml new file mode 100644 index 0000000..4ca414c --- /dev/null +++ b/android/res/drawable/ic_bg.xml @@ -0,0 +1,4 @@ + + + + diff --git a/android/res/mipmap-anydpi-v26/ic_launcher.xml b/android/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..d197ca3 --- /dev/null +++ b/android/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/android/res/mipmap-hdpi/ic_launcher.png b/android/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..c5432e1e62804a8f3ab38da1aea48fc5806133c0 GIT binary patch literal 6906 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 M*Nt=uaHr`10iEtxa{vGU literal 0 HcmV?d00001 diff --git a/android/res/mipmap-xhdpi/ic_launcher.png b/android/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4525c5721cadc384f02ce5cab67a018b1d1cd891 GIT binary patch literal 10672 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 literal 0 HcmV?d00001 diff --git a/android/res/mipmap-xxhdpi/ic_launcher.png b/android/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..99486d4e4fa49128176465eb641e3c1f92108e36 GIT binary patch literal 19944 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 Y0cy;k&o3Wi^>=8E`QF?kbzMu>U4#3o&^y0H8h& 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 X$BxdI9x6uM00000NkvXXu0mjf<|D}E literal 0 HcmV?d00001 diff --git a/android/res/values/values.xml b/android/res/values/values.xml new file mode 100644 index 0000000..dbd0745 --- /dev/null +++ b/android/res/values/values.xml @@ -0,0 +1,11 @@ + + + Dashboards + + #0f1526 + diff --git a/android/src/nl/melvanveen/dashboardstudio/MainActivity.java b/android/src/nl/melvanveen/dashboardstudio/MainActivity.java new file mode 100644 index 0000000..5f4a7f9 --- /dev/null +++ b/android/src/nl/melvanveen/dashboardstudio/MainActivity.java @@ -0,0 +1,299 @@ +package nl.melvanveen.dashboardstudio; + +import android.app.Activity; +import android.content.ActivityNotFoundException; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.ApplicationInfo; +import android.graphics.Color; +import android.net.Uri; +import android.os.Bundle; +import android.view.View; +import android.view.WindowManager; +import android.webkit.CookieManager; +import android.webkit.JavascriptInterface; +import android.webkit.ValueCallback; +import android.webkit.WebChromeClient; +import android.webkit.WebResourceError; +import android.webkit.WebResourceRequest; +import android.webkit.WebResourceResponse; +import android.webkit.WebSettings; +import android.webkit.WebView; +import android.webkit.WebViewClient; + +/** + * Dashboard Studio as an Android app: a full-screen window on the Dashboard Studio app inside Home Assistant. + * + * Home Assistant only lets a signed-in browser into an app's page (its "ingress"). So the app first opens + * Home Assistant itself, where you sign in once; then, on Home Assistant's page, it asks for an ingress + * session the way Home Assistant's own page does, and opens Dashboard Studio. From then on Dashboard Studio + * renews that session itself, with the login Home Assistant kept in this app. + */ +public class MainActivity extends Activity { + private static final String SETUP = "file:///android_asset/setup.html"; + private static final int PICK_FILE = 1; + + private WebView web; + private SharedPreferences prefs; + private String message = "", detail = ""; + private long connectedAt = 0; + private ValueCallback fileCallback; + + /** Runs on Home Assistant's own page: wait until it's signed in, open an ingress session, then go to Dashboard Studio. */ + private static final String CONNECT_JS = """ + (function () { + if (window.__dsConnect) return; + window.__dsConnect = true; + const known = DSApp.appUrl(); + let tries = 0; + const tick = async () => { + const hass = document.querySelector("home-assistant")?.hass; + if (!hass?.connected || !hass.panels || !Object.keys(hass.panels).length) { + if (++tries < 1200) setTimeout(tick, 250); + return; + } + try { + // keep the login (as "Keep me logged in" does), so Dashboard Studio can renew its session later + if (!localStorage.getItem("hassTokens") && hass.auth?.data) localStorage.setItem("hassTokens", JSON.stringify(hass.auth.data)); + let url = known; + if (!url) { + const panel = Object.values(hass.panels).find((p) => /(^|_)dashboard_studio$/.test(p.config?.ingress || "")); + if (!panel) return DSApp.fail("notfound", ""); + let info; + try { info = await hass.callWS({ type: "supervisor/api", endpoint: `/addons/${panel.config.ingress}/info`, method: "get" }); } + catch { info = (await hass.callApi("GET", `hassio/addons/${panel.config.ingress}/info`).catch(() => null))?.data; } + if (!info?.ingress_url) return DSApp.fail("noaddress", ""); + url = location.origin + info.ingress_url; + } + const res = await hass.callApi("POST", "hassio/ingress/session"); + const session = res?.data?.session || res?.session; + document.cookie = `ingress_session=${session};path=/api/hassio_ingress/;SameSite=Strict${location.protocol === "https:" ? ";Secure" : ""}`; + DSApp.open(url); + } catch (e) { + DSApp.fail("error", String(e?.message || e?.body?.message || e?.code || e)); + } + }; + tick(); + })(); + """; + + @Override + protected void onCreate(Bundle state) { + super.onCreate(state); + prefs = getSharedPreferences("app", MODE_PRIVATE); + if ((getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) WebView.setWebContentsDebuggingEnabled(true); + + web = new WebView(this); + web.setBackgroundColor(Color.parseColor("#0f1526")); + setContentView(web); + WebSettings s = web.getSettings(); + s.setJavaScriptEnabled(true); + s.setDomStorageEnabled(true); + s.setDatabaseEnabled(true); + s.setMediaPlaybackRequiresUserGesture(false); // camera streams and the doorbell sound + s.setMixedContentMode(WebSettings.MIXED_CONTENT_COMPATIBILITY_MODE); + s.setUserAgentString(s.getUserAgentString() + " DashboardStudioApp/1.0"); + CookieManager.getInstance().setAcceptCookie(true); + web.addJavascriptInterface(new Bridge(), "DSApp"); + web.setWebViewClient(new Client()); + web.setWebChromeClient(new Chrome()); + + if (!fromLink(getIntent()) && state == null) start(); + } + + @Override + protected void onNewIntent(Intent intent) { + super.onNewIntent(intent); + fromLink(intent); + } + + /** "Open in the app" in Dashboard Studio: dashboardstudio://open?url=... */ + private boolean fromLink(Intent intent) { + Uri data = intent == null ? null : intent.getData(); + if (data == null || !"dashboardstudio".equals(data.getScheme())) return false; + String url = data.getQueryParameter("url"); + if (url == null || !url.matches("(?i)https?://.+")) return false; + save(origin(Uri.parse(url)), url); + start(); + return true; + } + + private String ha() { return prefs.getString("ha", ""); } + private String app() { return prefs.getString("app", ""); } + private void save(String ha, String app) { prefs.edit().putString("ha", ha).putString("app", app).apply(); } + + private static String origin(Uri u) { + return u.getScheme() + "://" + u.getHost() + (u.getPort() > 0 ? ":" + u.getPort() : ""); + } + private static boolean isIngress(String url) { return url != null && url.contains("/api/hassio_ingress/"); } + + private void start() { + message = ""; detail = ""; + if (ha().isEmpty()) { web.loadUrl(SETUP); return; } + // With the address known, try it straight away: a session may still be valid, or the page is cached for offline use. + web.loadUrl(app().isEmpty() ? ha() + "/" : app()); + } + + private void connect() { + connectedAt = System.currentTimeMillis(); + web.loadUrl(ha() + "/"); + } + + private void showSetup(String why, String more) { + message = why; detail = more == null ? "" : more; + web.loadUrl(SETUP); + } + + private class Client extends WebViewClient { + @Override + public void onPageFinished(WebView view, String url) { + if (url == null || ha().isEmpty() || !url.startsWith(ha())) return; + String page = app().replaceAll("[?#].*", ""); + if (isIngress(url) || (!page.isEmpty() && url.startsWith(page))) view.clearHistory(); // back leaves the app instead of going to Home Assistant + else view.evaluateJavascript(CONNECT_JS, null); + } + + @Override + public void onReceivedHttpError(WebView view, WebResourceRequest req, WebResourceResponse res) { + if (!req.isForMainFrame() || !isIngress(req.getUrl().toString())) return; + int code = res.getStatusCode(); + if (code != 401 && code != 403) return; + // The ingress session ran out: get a new one from Home Assistant's page, unless that just failed. + if (System.currentTimeMillis() - connectedAt < 20000) showSetup("error", "Home Assistant refused the session (" + code + ")"); + else connect(); + } + + @Override + public void onReceivedError(WebView view, WebResourceRequest req, WebResourceError err) { + if (req.isForMainFrame() && !req.getUrl().toString().startsWith("file:")) showSetup("offline", ""); + } + + @Override + public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest req) { + Uri u = req.getUrl(); + String scheme = u.getScheme() == null ? "" : u.getScheme(); + if ((scheme.equals("http") || scheme.equals("https")) && !ha().isEmpty() && origin(u).equalsIgnoreCase(ha())) return false; + if (scheme.equals("file")) return false; + // other sites and apps: the browser or the app they belong to + try { + Intent i = scheme.equals("intent") ? Intent.parseUri(u.toString(), Intent.URI_INTENT_SCHEME) : new Intent(Intent.ACTION_VIEW, u); + i.addCategory(Intent.CATEGORY_BROWSABLE); + i.setComponent(null); + startActivity(i); + } catch (Exception ignored) { /* nothing to open it with */ } + return true; + } + } + + private class Chrome extends WebChromeClient { + @Override + public boolean onShowFileChooser(WebView view, ValueCallback callback, FileChooserParams params) { + if (fileCallback != null) fileCallback.onReceiveValue(null); + fileCallback = callback; + try { + startActivityForResult(params.createIntent(), PICK_FILE); + } catch (ActivityNotFoundException e) { + fileCallback = null; + return false; + } + return true; + } + } + + @Override + protected void onActivityResult(int request, int result, Intent data) { + if (request == PICK_FILE && fileCallback != null) { + fileCallback.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(result, data)); + fileCallback = null; + } else super.onActivityResult(request, result, data); + } + + @Override + public void onBackPressed() { + if (web.canGoBack()) web.goBack(); + else super.onBackPressed(); + } + + @Override + protected void onPause() { super.onPause(); web.onPause(); CookieManager.getInstance().flush(); } + + @Override + protected void onResume() { super.onResume(); web.onResume(); } + + @Override + protected void onSaveInstanceState(Bundle out) { super.onSaveInstanceState(out); web.saveState(out); } + + @Override + protected void onRestoreInstanceState(Bundle state) { + super.onRestoreInstanceState(state); + if (web.restoreState(state) == null) start(); + } + + /** What the pages can call, as window.DSApp. */ + private class Bridge { + @JavascriptInterface public String address() { return ha(); } + @JavascriptInterface public String appUrl() { return app(); } + @JavascriptInterface public String message() { return message; } + @JavascriptInterface public String detail() { return detail; } + + /** The setup page: a Home Assistant address, or the link from Dashboard Studio. */ + @JavascriptInterface public void setup(String input) { + runOnUiThread(() -> { + String text = input == null ? "" : input.trim(); + if (text.isEmpty()) return; + if (!text.matches("(?i)https?://.*")) text = "http://" + text; + Uri u = Uri.parse(text); + if (u.getHost() == null || u.getHost().isEmpty()) { showSetup("offline", ""); return; } + save(origin(u), isIngress(text) ? text : ""); + start(); + }); + } + + @JavascriptInterface public void open(String url) { + runOnUiThread(() -> { + if (url == null || !url.startsWith(ha())) return; + save(ha(), url); + web.loadUrl(url); + }); + } + + @JavascriptInterface public void fail(String why, String more) { runOnUiThread(() -> showSetup(why, more)); } + + /** Dashboard Studio: Install as an app, Change address. */ + @JavascriptInterface public void reset() { runOnUiThread(() -> { message = ""; detail = ""; web.loadUrl(SETUP); }); } + + /** Kiosk mode: keep the screen on and hide the system bars. */ + @JavascriptInterface public void keepAwake(boolean on) { + runOnUiThread(() -> { + View decor = getWindow().getDecorView(); + if (on) { + getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + decor.setSystemUiVisibility(View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + | View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); + } else { + getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); + decor.setSystemUiVisibility(0); + } + }); + } + + /** The status and navigation bars take the dashboard's background color. */ + @JavascriptInterface public void setBarColor(String css) { + runOnUiThread(() -> { + try { + String c = css.trim(); + if (c.matches("#[0-9a-fA-F]{3}")) c = "#" + c.charAt(1) + c.charAt(1) + c.charAt(2) + c.charAt(2) + c.charAt(3) + c.charAt(3); + if (c.matches("#[0-9a-fA-F]{8}")) c = "#" + c.substring(7) + c.substring(1, 7); // CSS #rrggbbaa, Android #aarrggbb + int color = Color.parseColor(c) | 0xff000000; + getWindow().setStatusBarColor(color); + getWindow().setNavigationBarColor(color); + double light = 0.299 * Color.red(color) + 0.587 * Color.green(color) + 0.114 * Color.blue(color); + View decor = getWindow().getDecorView(); + int flags = decor.getSystemUiVisibility() & ~(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR); + if (light > 150) flags |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR | View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR; + decor.setSystemUiVisibility(flags); + } catch (IllegalArgumentException ignored) { /* not a color Android knows */ } + }); + } + } +} diff --git a/dashboard_studio/CHANGELOG.md b/dashboard_studio/CHANGELOG.md index 84ef097..5e1d35f 100644 --- a/dashboard_studio/CHANGELOG.md +++ b/dashboard_studio/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 1.14.1 + +- **Android app:** Dashboard Studio as a real app for Android phones and tablets. Download it from **Install as an app**, sign in to Home Assistant once, and it opens full screen on your dashboard from then on, with its own icon. It works with plain http addresses too. +- **Phone dashboards:** a round **⋯** button in the corner brings back the top bar with **Edit**, **Kiosk** and **Install as an app**, so you no longer have to find an empty spot to touch and hold. +- **Install as an app** now says what works on your device: the app on Android, https for installing from the browser, and why it can't work from the home screen on iPhone. +- Fixed: installing from the browser could fail with "can't be installed", because the browser fetched the app's details without the Home Assistant sign-in. + ## 1.14.0 - **Seven new cards:** parcels on the way (PostNL, DHL), air quality per room with a hint to open a window, water and gas use per day, the solar forecast with the best time to run the washer, a garage and gate button that asks first, sports scores (TeamTracker, optionally only on match days) and Formula One (next race, sessions, standings and results). diff --git a/dashboard_studio/DOCS.md b/dashboard_studio/DOCS.md index 5c91510..b10dff8 100644 --- a/dashboard_studio/DOCS.md +++ b/dashboard_studio/DOCS.md @@ -214,12 +214,15 @@ In edit mode, hidden widgets stay visible but faded, with a **Hidden now** label Turn on **Designed for phones** under **Grid** in the dashboard settings. The dashboard switches to a 4-column layout that you design at phone width, so what you see while editing is what the phone shows. Existing widgets are converted: small tiles become half width, larger cards full width, and nothing overlaps. Turning it off converts back to 12 columns. -On a phone, such a dashboard fills the whole screen, without the top bar with the dashboard picker and **Edit**. To bring the bar back, touch and hold an empty spot for a moment; it hides again after 10 seconds. On a computer, a phone dashboard shows as a phone-width column. Dashboards that aren't designed for phones keep reflowing into two columns on phones, with the top bar. With the phone on its side, a phone dashboard shows two columns of its layout next to each other. +On a phone, such a dashboard fills the whole screen, without the top bar with the dashboard picker and **Edit**. To bring the bar back, tap the round **⋯** button in the top right corner (or touch and hold an empty spot); it hides again after 15 seconds or when you tap **⋯** again. On a computer, a phone dashboard shows as a phone-width column. Dashboards that aren't designed for phones keep reflowing into two columns on phones, with the top bar. With the phone on its side, a phone dashboard shows two columns of its layout next to each other. ### On phones -- **Install as an app:** **⋯ → Install as an app…** explains how. Home Assistant's own page can't be installed, so open Dashboard Studio in its own tab first (the dialog has a button for it). Installed, it opens full screen with its own icon and the dashboard's colors in the status bar. Dashboard Studio keeps Home Assistant's sign-in fresh in the background while it's open, using the login Home Assistant saved in that browser (with *Keep me logged in*). If it was closed for a long time and shows an error, open Home Assistant once. -- **Shortcuts:** tick **Shortcut on the app icon** in the settings of a button, tile, light, thermostat or garage card. On Android, long-press the installed app's icon to run it straight away (up to four shortcuts; iPhones don't support this). +- **Install as an app:** tap the phone button in the top bar (or **⋯ → Install as an app…** in edit mode). What it offers depends on the phone: + - **Android:** the Dashboard Studio app. Tap **Download the app**, open the downloaded file and allow installing apps from that source when Android asks (once). Then come back and tap **Open in the app**, or open the app and enter the address you use for Home Assistant. Sign in to Home Assistant once in the app; after that it opens straight on Dashboard Studio, full screen with its own icon and the dashboard's colors in the status bar, and keeps you signed in. Kiosk mode keeps the screen on and hides Android's bars. To connect to another Home Assistant, choose **Install as an app → Change address** in the app. The app finds Dashboard Studio by itself if you sign in as an administrator; other people can tap **Open in the app** on their phone instead. + - **From the browser** (Android and computers): the browser can also install Dashboard Studio as a web app, but only when Home Assistant is opened over **https** (for example Home Assistant Cloud or your own certificate). Home Assistant's own page can't be installed, so open Dashboard Studio in its own tab first (the dialog has a button for it). + - **iPhone and iPad:** apps on the home screen get their own storage there, without Home Assistant's sign-in, so they can't open an app that runs inside Home Assistant. Use Dashboard Studio from the sidebar in the Home Assistant app. +- **Shortcuts:** tick **Shortcut on the app icon** in the settings of a button, tile, light, thermostat or garage card. When Dashboard Studio is installed from the browser on Android, long-press its icon to run one straight away (up to four shortcuts; the Android app and iPhones don't support this). - **Offline:** each device keeps the last known states of its dashboard. When the connection drops, the dashboard keeps showing them with a small note saying from when, and catches up when it reconnects. - **Swipe** left or right over the dashboard to go to the next or previous tab (not over cards that swipe or scroll themselves). - **Pull down** at the top of the dashboard to reload every state. diff --git a/dashboard_studio/config.yaml b/dashboard_studio/config.yaml index 243b6cd..b28e56b 100644 --- a/dashboard_studio/config.yaml +++ b/dashboard_studio/config.yaml @@ -1,5 +1,5 @@ name: Dashboard Studio -version: "1.14.0" +version: "1.14.1" slug: dashboard_studio description: Drag-and-drop dashboard builder with a free-form grid, live entity widgets and themes. url: https://git.melvanveen.nl/veenm/ha-dashboard-studio diff --git a/dashboard_studio/server/main.py b/dashboard_studio/server/main.py index 6f425b0..0b53888 100644 --- a/dashboard_studio/server/main.py +++ b/dashboard_studio/server/main.py @@ -234,6 +234,13 @@ async def service_worker(request): return web.Response(text=js, content_type="application/javascript", headers={"Cache-Control": "no-store"}) +async def android_app(request): + """The Android app (built from android/ in the repository), to download on a phone.""" + return web.FileResponse(WEB_DIR / "dashboard-studio.apk", headers={ + "Content-Type": "application/vnd.android.package-archive", + "Content-Disposition": 'attachment; filename="Dashboard Studio.apk"', "Cache-Control": "no-store"}) + + async def get_dashboards(request): return web.json_response(load_store()) @@ -372,6 +379,7 @@ def make_app(): app.router.add_get("/api/version", version) app.router.add_get("/manifest.webmanifest", manifest) app.router.add_get("/sw.js", service_worker) + app.router.add_get("/android.apk", android_app) app.router.add_get("/api/changelog", changelog) app.router.add_get("/api/whoami", whoami) app.router.add_get("/api/users", users) diff --git a/dashboard_studio/web/app.js b/dashboard_studio/web/app.js index 1336b55..a7d33ce 100644 --- a/dashboard_studio/web/app.js +++ b/dashboard_studio/web/app.js @@ -246,21 +246,50 @@ let installPrompt = null; window.addEventListener("beforeinstallprompt", (e) => { e.preventDefault(); installPrompt = e; }); const standalone = () => matchMedia("(display-mode: standalone)").matches || navigator.standalone === true; + // The Android app (android/ in the repository) shows this page in its own window and adds window.DSApp. + const IN_APP = !!window.DSApp; + const APK_ID = "nl.melvanveen.dashboardstudio"; async function installDialog() { let inFrame = false; try { inFrame = window.top !== window; } catch { inFrame = true; } - const ios = /iphone|ipad|ipod/i.test(navigator.userAgent) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1); - const how = inFrame - ? tr("Home Assistant’s page can’t be installed itself. Open Dashboard Studio in its own tab first, then choose Install as an app again there.") - : ios ? tr("In Safari, tap the Share button, then Add to Home Screen.") - : installPrompt ? tr("Your browser can install Dashboard Studio as an app with its own icon. It opens full screen, without the browser’s bars.") - : tr("In your browser’s menu, choose Install app or Add to Home screen."); - const choice = await openModal(`

${tr("Install as an app")}

${esc(how)}

-

${tr("It opens on the dashboard chosen for that device. Mark buttons as a shortcut to use them from the app icon.")}

- `, - (e, close) => { const x = e.target.closest("[data-x]")?.dataset.x; if (x) close(x); }); - if (choice === "tab") window.open(new URL(`?ds=${current.id}`, BASE).href, "_blank", "noopener"); + const ua = navigator.userAgent; + const ios = /iphone|ipad|ipod/i.test(ua) || (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1); + const android = /android/i.test(ua); + const link = new URL(`?ds=${encodeURIComponent(current.id)}`, BASE).href; + const browserInstall = !inFrame && window.isSecureContext && installPrompt && !standalone(); + const p = (t, cls = "") => `${esc(t)}

`; + let body, actions = ``; + if (IN_APP) { + body = p(tr("This is the Dashboard Studio app, connected to {0}.", location.host)); + actions += ``; + } else if (android) { + // A home screen app from the browser needs https, and Home Assistant's own app can't make one at all: the Android app always works. + body = p(tr("Get the Dashboard Studio app for Android. It opens full screen with its own icon and keeps you signed in.")) + + `
  1. ${esc(tr("Download the app and open the file to install it. Android asks once to allow apps from this source."))}
  2. +
  3. ${esc(tr("Come back here and tap Open in the app. Or open the app and enter the address of Home Assistant."))}
` + + (browserInstall ? p(tr("Or install it from the browser, without the app."), "muted small") : ""); + actions += (browserInstall ? `` : "") + + `${tr("Download the app")}` + + `${tr("Open in the app")}`; + } else if (ios) { + // Home screen web apps on iPhone get their own storage, without Home Assistant's sign-in: they can't open an app inside Home Assistant. + body = p(tr("On iPhone and iPad, apps added to the home screen can’t use Home Assistant’s sign-in, so Dashboard Studio can’t run on its own there. Open it from the sidebar in the Home Assistant app instead.")); + } else if (inFrame) { + body = p(tr("Home Assistant’s page can’t be installed itself. Open Dashboard Studio in its own tab first, then choose Install as an app again there.")); + actions += ``; + } else if (!window.isSecureContext) { + body = p(tr("Browsers only install apps from a secure address (https), and Home Assistant is open over http here. Open Home Assistant through its https address, for example Home Assistant Cloud, and try again.")); + } else { + body = p(browserInstall ? tr("Your browser can install Dashboard Studio as an app with its own icon. It opens full screen, without the browser’s bars.") : tr("In your browser’s menu, choose Install app or Add to Home screen.")); + if (browserInstall) actions += ``; + } + const choice = await openModal(`

${tr("Install as an app")}

${body} + ${IN_APP || ios ? "" : p(tr("It opens on the dashboard chosen for that device. Mark buttons as a shortcut to use them from the app icon."), "muted small")} + `, + (e, close) => { const x = e.target.closest("[data-x], a.btn"); if (x) close(x.dataset.x || "link"); }); + if (choice === "tab") window.open(link, "_blank", "noopener"); if (choice === "install" && installPrompt) { installPrompt.prompt(); installPrompt = null; } + if (choice === "reset") window.DSApp.reset(); } /** Opened on its own (as an app, or in a tab), nobody renews Home Assistant's ingress session, so @@ -770,7 +799,9 @@ const bg = t.preset !== "System" && t.bg ? t.bg : "var(--canvas)"; if (t.bgImage) s.setProperty("--d-bg", `center / cover no-repeat url("${t.bgImage.replace(/"/g, "")}"), ${bg}`); s.setProperty("--d-radius", `${t.radius ?? 20}px`); - document.querySelector('meta[name="theme-color"]')?.setAttribute("content", /^#[0-9a-f]{3,8}$/i.test(t.bg || "") && t.preset !== "System" ? t.bg : prefersDark() ? "#000000" : "#f2f2f7"); + const bar = /^#[0-9a-f]{3,8}$/i.test(t.bg || "") && t.preset !== "System" ? t.bg : prefersDark() ? "#000000" : "#f2f2f7"; + document.querySelector('meta[name="theme-color"]')?.setAttribute("content", bar); + window.DSApp?.setBarColor(bar); s.setProperty("--d-gap", `${Number(current.grid.gap) || 14}px`); stageEl.classList.toggle("theme-outline", !!t.outline && t.preset !== "System"); s.setProperty("--d-blur", `${t.blur || 0}px`); @@ -2450,6 +2481,7 @@ async function requestWakeLock() { try { wakeLock = await navigator.wakeLock?.request("screen"); } catch { wakeLock = null; } + window.DSApp?.keepAwake(true); // the Android app has no wake lock: it keeps the screen on itself } const cornerName = () => (current.kiosk.exitCorner || "top-right").replace("-", " "); @@ -2474,6 +2506,7 @@ closeDoorbell(); clearTimeout(idleTimer); clearTimeout(saverTimer); wakeLock?.release?.(); wakeLock = null; + window.DSApp?.keepAwake(false); if (document.fullscreenElement) document.exitFullscreen?.(); history.replaceState(null, "", location.pathname); renderGrid(); @@ -2880,18 +2913,18 @@ canvasEl.addEventListener("pointerdown", (e) => { if (!document.body.classList.contains("phone-ui") || e.target.closest(".w")) return; holdTimer2 = setTimeout(() => { - document.body.classList.add("peek"); - clearTimeout(peekTimer); - peekTimer = setTimeout(() => document.body.classList.remove("peek"), 10000); + peek(true); navigator.vibrate?.(10); }, 600); }); for (const ev of ["pointerup", "pointercancel", "pointermove"]) canvasEl.addEventListener(ev, (e) => { if (ev !== "pointermove" || e.movementX || e.movementY) clearTimeout(holdTimer2); }); - function phoneHint() { - if (!document.body.classList.contains("phone-ui") || lsGet("ds.peekHint")) return; - lsSet("ds.peekHint", "1"); - toast(tr("Touch and hold an empty spot to show the menu.")); + // The round button in the corner does the same, for dashboards without an empty spot. + function peek(on) { + document.body.classList.toggle("peek", on); + clearTimeout(peekTimer); + if (on) peekTimer = setTimeout(() => document.body.classList.remove("peek"), 15000); } + $("#phone-menu").onclick = () => peek(!document.body.classList.contains("peek")); // ------------------------------------------------------------ chrome wiring function setCurrent(id) { @@ -2954,6 +2987,8 @@ $("#btn-edit").onclick = () => setEdit(!editMode); $("#btn-kiosk").onclick = () => enterKiosk(); + $("#btn-app").onclick = () => installDialog(); + $("#btn-app").hidden = IN_APP || standalone(); $("#btn-undo").onclick = undo; $("#btn-redo").onclick = redo; $("#dash-select").onchange = (e) => setCurrent(e.target.value); @@ -3200,6 +3235,8 @@ $("#btn-redo").innerHTML = Icons.svg("redo"); $("#btn-menu").innerHTML = Icons.svg("more"); $("#btn-kiosk").insertAdjacentHTML("afterbegin", Icons.svg("kiosk")); + $("#btn-app").innerHTML = Icons.svg("phone"); + $("#phone-menu").innerHTML = Icons.svg("more"); document.querySelectorAll("#menu [data-icon]").forEach((b) => b.insertAdjacentHTML("afterbegin", Icons.svg(b.dataset.icon))); } @@ -3272,7 +3309,6 @@ const exists = (id) => id && store.dashboards.some((d) => d.id === id); setCurrent([hashId, dev?.dashboard, forUser, lsGet("ds.current")].find(exists)); if (location.hash.includes("kiosk") || shared.get("ds_kiosk") === "1" || (dev?.kiosk && !hashId)) enterKiosk({ fullscreen: false }); - setTimeout(phoneHint, 1500); const action = shared.get("ds_action"); if (action) { history.replaceState(null, "", location.pathname + location.hash); runShortcut(action); } // After an update, point at what changed (once per device). diff --git a/dashboard_studio/web/dashboard-studio.apk b/dashboard_studio/web/dashboard-studio.apk new file mode 100644 index 0000000000000000000000000000000000000000..f744a4bbcd42eee35e427a5e64003be40d2ba2e5 GIT binary patch literal 124057 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 Studio - + + @@ -37,6 +38,7 @@ + @@ -82,6 +84,7 @@

+ diff --git a/dashboard_studio/web/style.css b/dashboard_studio/web/style.css index 440a48e..cc5206f 100644 --- a/dashboard_studio/web/style.css +++ b/dashboard_studio/web/style.css @@ -1327,6 +1327,15 @@ body:not(.editing) .w { -webkit-touch-callout: none; } /* ============================================================ phone dashboards */ body.phone-ui:not(.peek) #topbar { display: none; } +#phone-menu { display: none; position: fixed; z-index: 62; top: calc(8px + env(safe-area-inset-top)); right: 10px; width: 36px; height: 36px; border-radius: 50%; + background: rgba(120, 120, 128, .28); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); color: var(--text); box-shadow: 0 2px 8px rgba(0, 0, 0, .15); } +#phone-menu svg { width: 20px; height: 20px; stroke-width: 2.6; } +body.phone-ui:not(.peek):not(.kiosk) #phone-menu { display: grid; } +/* the install button in the top bar is for phones and tablets; computers have it in the menu */ +@media (pointer: fine) { #btn-app { display: none; } } +#btn-app[hidden] { display: none; } +a.btn { text-decoration: none; color: inherit; } +.modal-card ol.steps { margin: 0 0 12px; padding-left: 20px; display: grid; gap: 6px; } body.phone-ui #stage { padding-top: calc(env(safe-area-inset-top) + 6px); } body.phone-ui.peek #stage { padding-top: 72px; } body.phone-ui.peek #topbar { animation: peek-in .2s ease-out; }