App home

Changelog

Release notes for TouchStream Radio — Android app updates, fixes, and documentation changes. Newest entries appear first.

Report a bug or feature request

Found something wrong or have an idea for TouchStream Radio? Send a message to the developer — it opens your email app with the details filled in.

Android iOS Fix 11:46
  • Wi‑Fi speakers toggle: the quick-action chip is now a true off / on switch — after Wi‑Fi speakers off, tap Wi‑Fi speakers on to restore the rooms that were playing and resume on Bose/Sonos (no phone reboot).
  • Kitchen mode: turning Wi‑Fi speakers off while Play on this phone is active no longer pins device-only mode — restore can hand audio back to speakers.
  • Sonos group stop: all-Wi‑Fi-off uses group-safe teardown (members stop first, coordinator leaves last) instead of blind Stop on every room — reduces Sonos app freezes and stuck groups when mixing TouchStream with the official Sonos app.
Android iOS 08:55
  • Backup & restore: Settings → Setup → export your full setup to a JSON file (stations, presets, speakers, Wi‑Fi profiles, DLNA, podcast shows, sync, and API keys). Import the file later after reinstall or on a new phone — also accepts catalog-only setup exports.
  • Import UX: import opens an in-app sheet first with Cancel, Choose JSON file, or Paste from clipboard — you are not sent straight to the system file browser without a way back. Settings shows Back to player when opened from the player.
  • Android build: updated file picker for current Android SDK requirements (fixes debug/release build failure after adding backup import).
Android iOS Fix 18:00
  • Station switching: mixed Bose + Sonos + Cast groups stop speakers still on the old station before the new one starts — fixes one room left behind on the previous stream.
  • First install: all room playback toggles start OFF; newly found speakers are added OFF — turn rooms on when you want them in the group.
  • Play on phone: stopping phone playback no longer turns every Wi‑Fi speaker back ON.
  • Reinstall: Stations tab restores bundled stations from standard setup instead of Station 01–03 placeholders when presets were seeded from JSON.
  • Presets tab: Reset to default stations moved here (below delete all presets), away from the Stations tab.
  • Power switch: you can turn power OFF while playback is still starting — busy state no longer blocks OFF.
  • Sonos: cold-start volume is applied after transport starts so levels match once play settles.
  • Landscape rooms: speaker cards show the room name and device label (not generic shuffle text); Cast speakers use normal room names like Kitchen.
  • Presets on player: long press a preset for Update with current playback, Settings, or Remove.
Android iOS 09:10
  • All presets / stations: live internet radio on classic ST20/ST30 now uses hosted parallel UPnP only (Phil Collins style) — Visir mount-swap and handoff routing removed for every station.
  • Visir HTTPS: all icecast.visir.is stream URLs normalize to HTTPS at play time; Iceland pack defaults updated.
  • Re-sync: manual and auto Re-sync on any hosted-parallel station uses hosted staggered align with the same timeouts as Phil Collins.
iOS Docs 15:09
  • TestFlight: iOS beta 0.98.2 (build 9) built and uploaded for external testing — same multi-room LAN player as Android, on iPhone and iPad.
  • App Store compliance: added NSLocationAlwaysAndWhenInUseUsageDescription in Info.plist (required because linked libraries reference location APIs; the app still only requests While Using the App to read the Wi‑Fi name for location profiles — not GPS tracking).
  • Release tooling: ios/APP_STORE_RELEASE.md, TestFlight build/upload scripts, and App Store Connect API key upload path documented for repeat uploads.
  • Play Store prep: Google Play listing graphics (1024×500 feature image, 512×512 icon) and android/PLAY_STORE_RELEASE.md guide added for an upcoming Play Console release.
Android iOS
  • Google Cast: discover and play on Chromecast-built-in speakers (Nest Hub, JBL, Sony, and similar) from the same station grid — one Cast sender session per play, with optional speaker groups from Google Home (~g host suffix).
  • Yamaha MusicCast: find and control MusicCast units on your LAN (UPnP on port 80); add from the discovery prompt or manually with the ~m suffix in Settings → Speakers.
  • Discovery scan: Wi‑Fi search summarizes results by type (e.g. 2 × Bose, 1 × MCast, 4 × Cast) so you can see what was found before saving speakers.
  • Speaker labels: Bose, Sonos, MCast, Cast, DLNA, and UPnP badges on the player, Settings, and Sync screens — sort By type to group mixed brands.
  • Mixed playback: when several backend types are enabled, play routes to Bose, Sonos, DLNA, MusicCast, and Cast in parallel where supported.
Android Fix 08:48
  • Play on this phone: fixed silent playback on Android — internet radio now plays through the phone speaker or Bluetooth with correct media-session audio focus (Visir, exclusive.radio, and other live streams).
  • Android Auto: choosing a station in the car decodes on the phone and sends audio to the car — the app no longer routes Android Auto playback to home Bose speakers over Wi‑Fi.
  • Phone vs speakers: when Play on this phone is active, station changes stay on the device; starting phone playback pauses Bose LAN output so you do not get double routing or a “playing on phone” banner while speakers still play.
  • Power ON: with all Wi‑Fi speakers off (or phone mode preferred), Power ON starts playback on This Phone instead of showing “Starting playback…” with no sound.
  • Playback debug: Settings → Logs includes [PHONE] lines (load, buffer, audible) to troubleshoot on-device playback separately from Bose [PLAY] lines.
Android Fix 13:49
  • Tablet + DLNA: music playing on your phone or tablet is no longer stopped when you start DLNA or NAS on Bose speakers — both can play at once (e.g. kitchen Wi‑Fi on the device while speakers play in another room). Explicit handoff from phone to speakers still works when you choose it.
  • Power ON: when no speakers are configured or every Bose room is off, Power ON starts playback on This Phone instead of failing.
  • Auto-sync: drift resync and diagnostics now cover DLNA, podcasts, presets, and local music — not only internet radio. File-based streams wait 30 s before the first sync probe so playback can settle.
  • Hosted radio (pcradio.ru): fixed multi-room routing when one speaker reported INVALID_SOURCE — the app falls back to UPnP like other hosted radio URLs.
  • Visir room join: turning a speaker on in an active Visir group no longer stops playback on speakers already playing; only the new room is joined.
  • Classic SoundTouch: faster multi-room start when every enabled room is a classic cabinet (ST20/ST30).
Android Docs
  • Legal (version 3): Terms of Use updated for Bose SoundTouch Web API interoperability — third-party beneficiary notice, Bose trademark attribution, developer contact (Hallgerðargata 11a, 105 Reykjavík), and Migvantar’s acceptance of Bose’s published API terms. The app prompts you to accept on next launch.
Android Fix
  • First launch: Wi‑Fi permission popups appear only when you tap Find speakers on Wi‑Fi — not over Terms of Use. The app no longer jumps to system Settings automatically after you tap Allow; use Ask again or Open settings on the help card if needed. Android re-reads Nearby/Location status after Allow so a second error no longer appears when permissions were granted.
  • Find speakers splash: screen 2 uses a random animated hero (radar, orbiting nodes, sound wave, network mesh, or Wi‑Fi portal) instead of a brand-specific speaker photo — a fresh look each scan.
  • Presets: preset pills fill each row evenly so the last row does not leave empty space on the right; removed the Undo action from the save-preset snackbar.
  • iPhone app: TouchStream Radio runs on iOS — local-network discovery, Bose/Sonos control on your Wi‑Fi, and TestFlight-ready builds via flutter build ipa. Use a real iPhone on the same network as your speakers (simulator cannot reach LAN devices).
Android Feature
  • Mixed Bose + Sonos sync: the sync badge no longer looks “all good” when rooms only share the same station URL — it shows Same station and prompts double-tap Re-sync if audio sounds out of step. Re-sync on mixed groups always stops and restarts all rooms together (no fast skip when already on the stream).
  • First play per station: tapping any station that has not been Re-sync’d and saved runs auto-tune, aligned play on all enabled rooms, and saves per-room offsets on that station — same outcome as Re-sync + Save, without a manual trip to Settings. Works from the station grid, power on, and presets; each station is tuned once on its own first play.
  • Sync diagnostics: mixed-brand groups report “same station” vs time-aligned sync honestly, so logs and badges match what you hear in the room.
Android Feature
  • Setup — search for more speakers: when you already have speakers saved, use Search for more speakers to run a full Wi‑Fi discovery (SSDP, mDNS, and subnet scan) and add new units without removing your list. Scan again still only refreshes saved IPs in about one second.
  • Station & preset switching: switching between live internet-radio streams on SoundTouch 20/30 (and presets that use the same stream type) is faster — mount swaps use UPnP SetURI+Play without an extra Stop when already on the target stream, with shorter timeouts and fewer false retries on two-speaker groups.
Android Feature
  • Sony DLNA speakers: add Sony wireless speakers and soundbars from Settings → DLNA (Add as speaker or Import speakers). They play in sync with Bose and Sonos using the ~d host suffix. Bravia TVs stay on Play on TV.
  • Code health: removed unused volume/discovery helpers, fixed speaker auto-name logic so DLNA flags are not dropped, and aligned DLNA speaker import with Flutter ~d host suffix handling.
Android Fix
  • Podcasts on speakers: Podbean, Acast, and other CDN episode URLs now play via UPnP :8091 (music file) instead of /select internet radio — fixes INVALID_SOURCE and silent failures when the phone was playing but Bose speakers were not.
  • Podcasts tab: the saved show you are listening to shows a Pause button (and Resume when paused) instead of always showing Play.
  • SA-5 station presets: switching between stations no longer stops at “Already playing” without changing the stream — SA-5 uses the same fast UPnP mount swap as SoundTouch 20/30, with stricter stream matching so generic metadata cannot masquerade as the wrong station.
  • SA-5 playback: power-on, room join, and station changes no longer use the unreliable fast-startup shortcut; lead STOP and full UPnP batch run when an SA-5 is in the group.
  • Wi‑Fi change: moving to a new network runs a full speaker search instead of only checking saved IPs; speakers on the old subnet are pruned, and Settings offers Search this Wi‑Fi when nothing is found.
  • Play on phone / tablet: changing a preset while listening on the device keeps playback on the phone or tablet instead of incorrectly turning off Play on this phone; starting a podcast on speakers stops lingering phone audio first.
  • Player layout: master volume sits directly under Play on all speakers for quicker access.
  • Default theme: new installs start on Vinyl (saved Prestige choice is unchanged).
  • App icon: new TouchStream icon on Android and iOS — circular play + touch ripple on a black background.
  • iOS: location and local-network permission checks deferred from cold start so first launch and resume feel smoother; discovery messaging improved when permissions are still pending.
Android Fix
  • Station changes: faster switching while already playing — removed duplicate STOP commands, skipped unnecessary lead stops on active sessions, and kept the power switch on during transitions (no off/on flicker).
  • Volume sliders: thumb follows your finger in real time; the speaker receives one volume update when you release the slider (fixes jerky / stuttering sound while dragging).
  • Settings → Logs: playback debug timeline with tagged lines ([PLAY], [STOP], [VOL], [POWER], [QUEUE]) — Clear before a test, reproduce an issue, then Copy to share.
Android Docs
  • Settings → Podcast tab: podcast catalog, API keys, and Browse podcasts moved next to Stations (Setup · Stations · Podcast · Sync · Presets · DLNA).
  • Podcast Index: Get API keys, Use built-in keys, and Paste from clipboard in Settings → Podcast; optional Listen Notes catalog (experimental).
  • Stations tab: hint on the player — Double click to add to presets — when saving a station as an app preset.
  • Phone & tablet volume: when you Play on this phone / Play on tablet (or listen off home Wi‑Fi), an in-app volume slider matches the Wi‑Fi speaker controls — handy with Bluetooth speakers and headphones paired to the device.
  • Wi‑Fi profiles: Save current setup for this Wi‑Fi now stores stations, presets, sync, room names, DLNA, podcasts, and more — not just speaker IPs.
  • Stations: reordering in Settings updates the player home grid order.
  • Discovery: speaker search copy is brand-neutral (Searching for speakers…).
  • Website: home.html — podcast Settings tab and Bluetooth-friendly phone/tablet playback.
Android Docs
  • Tablet layout: 7″+ Android tablets (e.g. Lenovo Tab M10) use the full screen width — no narrow phone column or gray side margins. Portrait layouts scale typography, TouchStream wordmark, theme picker icons, and decorative header animations.
  • Speakers on tablet: expanded speaker rooms, full-width volume sliders and room on/off switches, larger power toggle, and a Speakers section title when more screen space is available.
  • Play on tablet: on screens wider than a phone, Play on this phone is labeled Play on tablet (Settings and player).
  • Classic & Glass themes: top equalizer / spectrum animations sized to match on tablets; Classic banner uses more vertical space for the bar animation.
  • Podcasts: search free RSS shows via Podcast Index in Settings → Stations → Browse podcasts; open a show to list episodes, play on speakers or phone, and save as an app preset (latest episode each time or a fixed episode). Optional Podcasts tab on the player; API key and secret in Settings (overridable).
  • Website: home.html updated with podcast feature and tablet notes.
Android Fix
  • Faster presets on SoundTouch 20/30: switching live internet-radio stations uses Wi‑Fi UPnP stream handoff instead of a full SoundTouch stop and long recovery — typically about five seconds instead of fifteen to thirty.
  • Wi‑Fi only: power, volume, and status use the SoundTouch API on your home network; direct stream URLs are delivered over UPnP on the same Wi‑Fi — the app does not play music via Bluetooth.
  • Presets & power: preset success and “playback stopped” messages no longer get stuck on “Starting preset…”; turning power off while a switch is in progress cancels in-flight play instead of starting audio afterwards.
  • Station changes: skipping the pre-stop on UPnP mount swap avoids INVALID_SOURCE and unnecessary /select retries when the speaker is already on the target stream.
Android
  • Cross-brand sync tuning: Settings → Sync per-room lead sliders now apply to Sonos as well as Bose — use them to bring mixed rooms (e.g. SoundTouch + Era 300) closer together when playing the same station.
  • Re-sync and room join honour your saved offsets for Sonos; auto-tune still measures Bose speakers only — adjust Sonos rooms manually.
  • Sync diagnostics show when Bose and Sonos are on the same stream; lip-sync across brands remains best-effort, not Bose-style locked multi-room.
Android
  • Experimental Sonos support: Sonos speakers on your home Wi‑Fi can be found, saved, and played alongside Bose — same station, with their own volume and mute. Add them in Settings → Speakers.
  • Bose speakers supported (unchanged): SoundTouch 20 and 30; SoundTouch SA-5 amplifier (including line-in / AUX); Bose Ultra and Riviera; and the SoundTouch Wireless Link Adapter.
  • Sonos speakers supported (experimental): including Era 300, Era 100, One, Beam, and other Sonos rooms on your network. You can play the same music on Bose and Sonos together; use Settings → Sync to nudge timing when rooms are mixed.
  • Settings → Your speakers: sort your list By room or By type, with a small label on each speaker so you can see Bose vs Sonos at a glance (on the Player and Sync screens too).
  • Fixed Sonos not responding correctly after discovery, and fixed mute for Sonos when several rooms are playing.
  • Turning a Sonos room on or off from the player is quicker and more responsive.
Android Fix
  • Solo speaker: tap a speaker name on the player to play on that room only — other room switches turn off automatically.
  • Room toggles stay as you left them after power off and when you reopen the app; Wi‑Fi location profiles no longer reset them to all on.
  • Reopening the app while music is already playing shows the right station and rooms without starting every speaker again.
  • Changing station while listening targets only the speaker(s) in your current session, not every enabled room.
  • Power starts off on launch; turning power on after picking one speaker keeps group play to that room.
06:00 Android
  • Sleep timer: tap to stop playback after 15–120 minutes; live countdown on the player with one-tap cancel.
  • Station artwork: Now Playing shows the station logo (radio/music icon fallback) beside the title.
  • Play on this phone: listen on the phone speaker or Bluetooth headphones, with play/pause from the lock screen; starting speaker playback stops phone audio automatically.
  • Now Playing labels internet radio clearly: Internet Radio on top with the station name beneath.
19:00 Android Site
  • Terms of Use (version 1): agreement with Migvantar; Bose Corporation is a separate, non-party entity.
  • Android: accept/decline on first launch; full text under Settings → About → Terms of Use.
  • Website: Terms of Use page; footer link on home and changelog.
18:30 Android
  • Single-room preset: turns that speaker on if it was off, then plays.
  • Whole-group preset (no fixed room list): only speakers already turned on.
  • Multi-room preset with several saved speakers: plays only to rooms still turned on.
18:00 Android Fix
  • Turning on a second speaker no longer jumps to a loud default — it matches the volume of the speaker already playing.
17:00 Android Fix
  • Master volume and lock take less room on Playback so speaker switches and sliders stay visible.
  • With one speaker on, a slim lock row still lets you lock volume without showing the full master slider.
16:00 Android
  • Master volume only when two or more speakers are on; one on speaker uses its own slider only.
  • Master changes apply only to speakers that are turned on.
  • Changing station keeps volume; Startup volume in Setup → Playback defaults applies to Play on all only.
  • Volume lock prevents accidental volume changes until you unlock.
  • Sliders no longer jump to a wrong default when the real level is already known.
15:30 Android Fix
  • Preset list shows only the preset name.
15:00 Android Fix
  • Turning a speaker off or using Power off feels noticeably faster.
14:30 Android Fix
  • Switching station keeps your current volume instead of resetting to a default.
  • Volume sliders match what you hear after a station change.
  • When only one speaker is on, its level is used as master volume.
12:00 Android
  • Setup: clearer appearance text; reset moved to the bottom.
  • Sync: advanced options tucked under “Advanced settings”.
  • Presets: saving the same name updates the preset instead of duplicating it.
  • Diagnostics: copy and clear only appear when there is something to share.
21:00 Android
  • Station cards show in sync or out of sync after you start play.
  • Optional auto re-sync in Sync settings (off by default).
  • Switching station keeps speaker volume.
19:45 Android Fix
  • One speaker: name, on/off switch, and volume now show on Player.
  • Faster station and volume changes on compatible Bose speakers.
  • Now playing bar stays hidden until something is actually playing.
14:30 Android Fix
  • Find speakers on Wi‑Fi is faster and finds more Bose models (including Ultra and newer soundbars).
22:15 Android
  • Find speakers on Wi‑Fi shows a 60-second countdown while scanning.
21:45 Website
  • Home page lists which Bose speakers are tested and working.
  • Hero notes Android app first, iOS next.
  • Simpler footer and links to the user manual and changelog.
  • Report a bug or feature request from the changelog page.
14:00 Website
  • Release notes page added (newest updates first).
09:58 Android
  • New Glass look with a live spectrum bar on Player.
  • New Aurora look with northern-lights style background.
  • Four themes to choose from: Prestige, Glass, Aurora, and Classic.
20:15 Website
  • User manual updated for Wi‑Fi profiles and hardware preset buttons.
  • Home page updated with setup tips and supported speakers.
16:45 Android
  • Save speaker setup per Wi‑Fi network and restore it automatically.
  • Stations, presets, and theme stay the same on every network.
19:30 Android Fix
  • Easier setup for physical preset buttons 1–6 on the speaker.
  • Test a preset from the app without pressing the button on the speaker.
  • More reliable preset save on SoundTouch 20.
  • Presets screen fixes and an easier way to copy details for support.