EarhornCastOptionsProvider.kt
package dev.stave.cast
import android.content.Context
import com.google.android.gms.cast.CastMediaControlIntent
import com.google.android.gms.cast.framework.CastOptions
import com.google.android.gms.cast.framework.OptionsProvider
import com.google.android.gms.cast.framework.SessionProvider
/**
* Registered in the play-flavor manifest. Uses Google's Default Media
* Receiver, so no Cast Developer Console registration is needed.
*/
class EarhornCastOptionsProvider : OptionsProvider {
override fun getCastOptions(context: Context): CastOptions =
CastOptions.Builder()
.setReceiverApplicationId(CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID)
// Don't try to resume saved sessions or reconnect to
// previously-connected devices. Stale session resume
// fails silently — the user taps a speaker, nothing
// happens, but other (never-before-connected) speakers
// work fine. Fresh connection every time.
.setResumeSavedSession(false)
.setEnableReconnectionService(false)
.setCastMediaOptions(
com.google.android.gms.cast.framework.media.CastMediaOptions.Builder()
.setNotificationOptions(null)
.build()
)
.build()
override fun getAdditionalSessionProviders(context: Context): MutableList<SessionProvider>? = null
}