Releases: sauso/nightlight-mobile
Releases · sauso/nightlight-mobile
Release list
0.8.2
Fixed
- An unreachable server no longer strands the app on the browser's raw "webpage not available" error.
Previously, if the server became unreachable while the app was already open (Wi-Fi/data dropped, or the
WebView reloaded on resume with no connection), the WebView fell through to the system error page and the
only way out was to force-quit. The app now drops back to the connect screen, where your saved server is
one tap away to retry — or you can switch to a different one.
Changed
- The server-setup screen now uses the same gold accent as the rest of the app (it was a slightly
paler shade).
0.8.1
Fixed
- iOS: the committed Swift Package manifest now lists the plugins.
ios/App/CapApp-SPM/Package.swift
had been stale since the platform was scaffolded (zero plugins), so a localxcodebuildwithout a
precedingnpx cap sync ioswould produce an app missing Filesystem/Share/App/PushNotifications. CI
regenerates it on every build (so released IPAs were always correct), but the tracked file now matches
whatcap syncgenerates.
0.8.0
Added
- File download to the Downloads folder. A native
Downloadplugin saves exported files (e.g.
the diagnostics bundle from Settings → Logs) straight into the phone's public Downloads folder via
MediaStore — no permission needed on Android 10+ — so they're easy to then attach to a GitHub
issue. Falls back to the share sheet (@capacitor/filesystem+@capacitor/share) on older
devices where a direct download isn't allowed. The WebView can't do a browser-style download at all.
Fixed
- The hardware back button and the OS edge back-gesture now go back a screen instead of exiting
the app. Added the@capacitor/appplugin so the back event is dispatched to the web app, which
steps back through the in-app history (Settings → Camera → Live) via react-router and only leaves
the app from the first screen. (An earlier native-only attempt couldn't work: Android's WebView
doesn't track the single-page hash-router's history, so it always fell through to exit.)
0.7.2
Fixed
- Firebase notifications show the crescent-moon icon, not a white circle. The status-bar small
icon for background FCM alerts wasn't registered, so Android fell back to the app icon and rendered
its opaque shape as a plain white blob. It now uses the proper monochrome crescent-moon silhouette. - Switching servers now works after opening from a Firebase notification too. 0.7.1 fixed this
for Pushover deep links but not Firebase: an FCM notification tap was re-delivered by the push
plugin on every internal restart (it keys off the notification's message id, which the launch
intent kept carrying), so after tapping an alert and then changing servers the app looped back to
the alert's server. Both kinds of launch intent are now consumed once, so changing servers behaves
normally regardless of how the app was opened.
0.7.1
Fixed
- Switching servers works after opening from a deep link. When the app was cold-started by
tapping an alert's deep link, trying to change servers afterwards just reloaded the same server
instead of going to the setup screen (the launch deep link was being reprocessed on every internal
restart). The deep link is now consumed once, so switching servers behaves normally. (Closing and
reopening the app was the previous workaround.)
0.7.0
Added
- Alerts open the correct server (multi-server deep links). If you point the app at more than one
Nightlight server, tapping an alert now switches the app to the server that sent it before
showing the nursery — a production alert tapped while the app was last on staging now opens
production, not staging. Works for both a tapped Pushover notification (nativenightlight://…
deep link carrying?server=) and a Firebase alert (server in the payload); if the tapped server
matches the one already loaded, nothing switches. Requires the matching server change (nightlight
server app) that stamps each alert with its own address.
0.6.0
Added
- Deep-link support (
nightlight://). Tapping a Pushover motion-alert notification now opens the
Nightlight app (Android and iOS), bringing it straight to the front. Pairs with Pushover
notifications added in the nightlight server app.
0.5.0
Fixed
- An offline/stopped server now drops you to the setup screen — not a blank screen or a dead error
page. At launch the app checks the saved server is reachable (a quick health check, short
timeout); if it isn't, it loads the bundled setup screen — a local page where the native bridge
works, so Connect and your saved servers actually respond — instead of hanging the WebView
on a long connection timeout, or Capacitor's error page (into which the bridge isn't injected, so
its "Try again" / "Use a different server" buttons could never work). That broken error page is
removed. Also removed Firebase's auto-init provider (Firebase is configured at runtime now).
Added
- Push notifications. The app can now receive motion/detection alerts from your server while
backgrounded or closed (via FCM). Because Nightlight is self-hosted, the app ships with no
Firebase project baked in — it initializes Firebase at runtime from your own server's config,
so every install uses its own Firebase project (the released APK is generic). With notifications
enabled it asks for permission on sign-in and registers the device; tapping an alert opens the app.
Requires the server configured with Firebase credentials (see the app's Notifications docs). Android
only for now.
0.4.3
Added
- Microphone permission for two-way audio (talk-back). The app now requests mic access so the
talk button can capture it — Android viaRECORD_AUDIO, iOS viaNSMicrophoneUsageDescription
(WKWebView blocks the mic entirely without it). Prompted the first time you press talk. Note:
talk-back needs the app pointed at the server over HTTPS (WebViews only allow microphone access
in a secure context) — camera viewing still works over plain HTTP.
0.4.1
Added
- Pause/Resume on the background-listening notification, next to Stop. It mutes/unmutes
the stream audio (via the web app) rather than dropping the connection, so resuming is
instant. The notification's button and text toggle between Pause and Resume.
Fixed
- The on-video overlay buttons (mute / settings / fullscreen) are now hidden while a camera
is floating in Picture-in-Picture — the app reports PiP enter/leave to the web app so it
can clear them from the tiny window. Pairs with nightlight 0.4.6.