/Radio

Simple Android webradio player

Primary LanguageJava

Radio

A simple web radio player, which uses a lot of libraries:

  • Appcompat: Downward compatibility to version 16 (Android 4.1 - JELLY_BEAN)
  • Design: Snackbar + FloatingActionButton
  • MultiSelect RecyclerView: Efficient viewholder pattern + nice animation/layouting capabilities
  • MaterialFavoriteButton: Animated favorite button
  • ActiveAndroid: Data persistence through object relation mapping (ORM) of Java objects to SQL rows
  • Otto: Heavy use of events to decouple fragments, services, etc
  • Retrofit + OkHttp: Querying of the RadioTime API to discover new stations
  • JUnit + Hamcrest + Espresso: Automated UI tests
  • Mockito + Retrofit-Mock: Mocking of dependencies for decoupled testing

The app supports system callbacks, like audiofocus gain or loss (e.g. when receiving a call), headphone disconnects or media button clicks.
It also uses a service and notification for background playback and allows searching, adding and removing of stations.
The current song's title and artist is decoded from the stream's shoutcast metadata.