RadioWave
Deutsch | English
Roadmap
The public roadmap is available in ROADMAP.md.
- Focus: stability and user value
- Updated continuously with releases and polish passes
- Feedback is welcome through GitHub Issues
- RadioWave is live on Google Play; beta/sideload notes now only apply to GitHub APKs and test installs
Availability
Highlights
New in 1.0.20: car mode with big buttons for the dashboard, an audio spectrum in the player, a home screen you can customise (genres, sorted favourites, “Continue listening”), saved songs, reorganised settings with search, light/dark/system theme, separate quality for Wi-Fi and mobile, Wi-Fi-only playback, fallback streams and a new design.
- No account required; favorites, history and settings stay on the device
- Completely ad-free, no analytics, no behavior tracking
- 45,000+ stations via Radio Browser
- Album art lookup via the iTunes Search API
- Launcher quick actions for
Search, Favorites, Player, and Settings
- Android Auto support with favorites, quick access, search, and previous/next in the car player
- Chromecast / Google Cast support with direct route selection from the player
- Sleep timer and direct share action in the fullscreen player
- Free EQ presets (Bass Boost, Treble Boost, Vocal) — no paywall
- Favorites backup/restore (JSON) and bulk station import from M3U/PLS playlists
- Local crash-report export with share action and prefilled GitHub issue handoff
Screenshots
A tour of the new design is on the website.
| Android Auto 1 | Android Auto 2 |
|---|
| |
| Android Auto 3 | Android Auto 4 |
|---|
| |
Tech Stack
- Kotlin 2.3
- Jetpack Compose + Material 3
- DataStore
- Clean Architecture + MVVM
- Hilt
- Media3 / ExoPlayer
- Room
- Retrofit + Kotlinx Serialization
Quick Start
git clone https://github.com/darksoon/RadioWave.git
cd RadioWave
chmod +x gradlew
./gradlew :build-logic:build
./gradlew assembleDebug
Local Builds
# Full build
./gradlew build
# Lint + tests
./gradlew lint
./gradlew test
# Install debug APK
./gradlew installDebug
# GitHub-flavor debug build
./gradlew :app:assembleGithubDebug
# Play Store debug build
./gradlew :app:assemblePlayDebug
Restricted Networks / Proxy
If Gradle downloads are blocked, use a mirror or proxy:
# ~/.gradle/gradle.properties
systemProp.http.proxyHost=<proxy-host>
systemProp.http.proxyPort=<proxy-port>
systemProp.https.proxyHost=<proxy-host>
systemProp.https.proxyPort=<proxy-port>
Release Signing
Signed release builds are handled through GitHub Actions.
- For GitHub/direct download use the signed
github APK
- For Google Play distribution use the signed
play App Bundle (.aab)
For local signing experiments only:
cp keystore.properties.example keystore.properties
# edit keystore.properties
Installation
Google Play
Install RadioWave from Google Play:
https://play.google.com/store/apps/details?id=de.darksoon.radiowave
GitHub APK
- Open the latest release page:
https://github.com/darksoon/RadioWave/releases/latest
- Download the current APK asset.
- Allow installs from unknown sources if your device asks for it.
- Open the APK and install it.
Player Improvements
- Dead spots and network switches: reconnects with growing pauses (up to 10 attempts), and switches to another stream address of the same station if one fails — never to a less secure or heavier stream
- Navigation prompts duck the station (or mute it, if you prefer) instead of pausing, so it stays live
- Separate quality for Wi-Fi and mobile data, optional Wi-Fi-only playback
- The playback timer now reflects actual listening time and pauses during buffering
- Fullscreen player includes a share action and a sleep timer
- Favorites can be reordered more easily from the favorites screen
- Active Chromecast sessions can be started directly from the fullscreen player, station changes are handed over to TV, and in-app play/pause controls route to the cast device
Android Auto
- Browse is optimized for in-car usage:
Favorites, Quick Access, Top Stations, Genres
- Quick Access combines favorites and recents
- Search merges local and remote results more robustly
- Previous/next in the car player now works as real station navigation
- Browse/search callbacks run asynchronously so Android Auto is not blocked by repository or network work
- The player only holds the WiFiLock while the active network is Wi-Fi; WakeLock stays active for stable playback
See also: docs/ANDROID_AUTO_DEV_MODE.md
Chromecast / Google Cast
- Cast devices can be selected directly from the fullscreen player
- Starting a cast session moves the current station to TV and stops parallel phone playback
- Changing stations while casting updates the TV stream instead of starting a separate local stream
- In-app play/pause controls work on the active cast session
- The player UI shows when playback is currently running on TV
- Alexa / Echo streaming is not part of this cast integration and would require a separate Amazon-specific solution
GitHub Actions
Manual Android Build
Available under Actions -> Manual Android Build -> Run workflow.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗