EARHORNMUSIC UPnP · Android TV · Phones · Android Auto · GNU/Linux
Release 0.5.0

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
}