Why integration of Google Cast alongside Exoplayer really sucks?

Recently I played around with the integration of Google Cast inside Exoplayer and I was really amazed to see how bad it is and how much it sucks. I decided to write this post with the idea it will help someone else who is also struggling with the Google Cast integration for exoplayer.

Requirements

So the requirements I had for the integration of Google Cast are quite simple:

  • Play an item on cast
  • Play a list of items – when you press Next you go to the next item
  • Forward / Backwards with 30 seconds – so you can skip through the track
  • Play / Pause support
  • Switch between lists of items – you can player item 2 of List A, you should be able to switch to item 3 of List B
  • Switch between phone playback and cast playback – switch from cast to app and from app to cast
  • Update the progress when casting – time elapsed should also be updated
  • Volume up/down are supported
Continue reading “Why integration of Google Cast alongside Exoplayer really sucks?”

Publishing a private Android library

Recently I played around with a library that is used in multiple projects. This library has a huge list of dependencies like: coroutines, rxjava, navigation library from Google, material library, custom edit texts that come from 3rd party libraries and many more. Basically this library has also a rich set of screens available to the users that open given certain conditions. But our issues was bigger.

Continue reading “Publishing a private Android library”

Android Oauth2 token refresh mechanism – OkHttp vs RxJava layering

The RxJava approach

I am currently working on an app where the devs before me took this strange decision in regard to the refresh token mechanism – have a single entry point of the app which is called every time whenever you need to have a fresh token. What I mean is this:

Continue reading “Android Oauth2 token refresh mechanism – OkHttp vs RxJava layering”