MediaQueue callbacks android
This commit is contained in:
parent
6224955962
commit
638a2034b7
1 changed files with 54 additions and 0 deletions
|
|
@ -20,6 +20,7 @@ import com.google.android.gms.cast.framework.CastContext
|
|||
import com.google.android.gms.cast.framework.CastSession
|
||||
import com.google.android.gms.cast.framework.SessionManager
|
||||
import com.google.android.gms.cast.framework.SessionManagerListener
|
||||
import com.google.android.gms.cast.framework.media.MediaQueue
|
||||
import com.google.android.gms.cast.framework.media.RemoteMediaClient
|
||||
import com.google.android.gms.cast.framework.media.TracksChooserDialogFragment
|
||||
import io.flutter.embedding.engine.plugins.FlutterPlugin
|
||||
|
|
@ -105,6 +106,7 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
|
|||
private lateinit var mSessionManager: SessionManager
|
||||
private val mSessionManagerListener = CastSessionManagerListener()
|
||||
private val remoteMediaClientListener = RemoteMediaClientListener()
|
||||
private val mediaQueueListener = MediaQueueListener()
|
||||
|
||||
private var castApi: PlatformBridgeApis.CastHostApi? = null
|
||||
private var flutterApi: PlatformBridgeApis.CastFlutterApi? = null
|
||||
|
|
@ -138,6 +140,18 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
|
|||
value?.addProgressListener(remoteMediaClientListener, periodMs)
|
||||
|
||||
field = value
|
||||
|
||||
mediaQueue = value?.mediaQueue
|
||||
}
|
||||
|
||||
private var mediaQueue: MediaQueue? = null
|
||||
set(value) {
|
||||
Log.d(TAG, "Updating mediaQueue - mediaQueue changed: ${field != value}")
|
||||
|
||||
field?.unregisterCallback(mediaQueueListener)
|
||||
value?.registerCallback(mediaQueueListener)
|
||||
|
||||
field = value
|
||||
}
|
||||
|
||||
//region LifecycleObserver
|
||||
|
|
@ -273,6 +287,46 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
|
|||
}
|
||||
}
|
||||
|
||||
private inner class MediaQueueListener : MediaQueue.Callback() {
|
||||
override fun mediaQueueWillChange() {
|
||||
Log.d(TAG, "MediaQueue - mediaQueueWillChange")
|
||||
super.mediaQueueWillChange()
|
||||
flutterApi?.mediaQueueWillChange { }
|
||||
}
|
||||
|
||||
override fun mediaQueueChanged() {
|
||||
Log.d(TAG, "MediaQueue - mediaQueueChanged")
|
||||
super.mediaQueueChanged()
|
||||
flutterApi?.mediaQueueChanged { }
|
||||
}
|
||||
|
||||
override fun itemsReloaded() {
|
||||
Log.d(TAG, "MediaQueue - itemsReloaded")
|
||||
super.itemsReloaded()
|
||||
flutterApi?.itemsReloaded { }
|
||||
}
|
||||
|
||||
override fun itemsInsertedInRange(insertIndex: Int, insertCount: Int) {
|
||||
Log.d(TAG, "MediaQueue - itemsInsertedInRange")
|
||||
super.itemsInsertedInRange(insertIndex, insertCount)
|
||||
flutterApi?.itemsInsertedInRange(insertIndex.toLong(), insertCount.toLong()) { }
|
||||
}
|
||||
|
||||
override fun itemsUpdatedAtIndexes(indexes: IntArray?) {
|
||||
Log.d(TAG, "MediaQueue - itemsUpdatedAtIndexes")
|
||||
super.itemsUpdatedAtIndexes(indexes)
|
||||
val longIndexes = indexes?.map { it.toLong() }
|
||||
flutterApi?.itemsUpdatedAtIndexes(longIndexes) { }
|
||||
}
|
||||
|
||||
override fun itemsRemovedAtIndexes(indexes: IntArray?) {
|
||||
Log.d(TAG, "MediaQueue itemsRemovedAtIndexeseWillChange")
|
||||
super.itemsRemovedAtIndexes(indexes)
|
||||
val longIndexes = indexes?.map { it.toLong() }
|
||||
flutterApi?.itemsRemovedAtIndexes(longIndexes) { }
|
||||
}
|
||||
}
|
||||
|
||||
private inner class MyApi : PlatformBridgeApis.CastHostApi {
|
||||
override fun sendMessage(message: PlatformBridgeApis.CastMessage?) {
|
||||
mMessageCastingChannel?.sendMessage(mCastSession, message)
|
||||
|
|
|
|||
Loading…
Reference in a new issue