Implemented ProcessLifecycleOwner

This commit is contained in:
gianlucaparadise 2019-11-10 22:51:35 +01:00
parent f88d9d578c
commit 0285b3759f
2 changed files with 18 additions and 5 deletions

View file

@ -40,7 +40,13 @@ android {
} }
dependencies { dependencies {
def lifecycle_version = "2.0.0"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation "com.google.android.gms:play-services-cast-framework:17.1.0" implementation "com.google.android.gms:play-services-cast-framework:17.1.0"
// Lifecycle
implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"
implementation "androidx.lifecycle:lifecycle-common-java8:$lifecycle_version"
} }

View file

@ -1,6 +1,10 @@
package com.gianlucaparadise.flutter_cast_framework package com.gianlucaparadise.flutter_cast_framework
import android.util.Log import android.util.Log
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleObserver
import androidx.lifecycle.OnLifecycleEvent
import androidx.lifecycle.ProcessLifecycleOwner
import androidx.mediarouter.app.MediaRouteChooserDialog import androidx.mediarouter.app.MediaRouteChooserDialog
import androidx.mediarouter.app.MediaRouteControllerDialog import androidx.mediarouter.app.MediaRouteControllerDialog
import com.google.android.gms.cast.framework.CastContext import com.google.android.gms.cast.framework.CastContext
@ -10,14 +14,10 @@ import io.flutter.plugin.common.MethodChannel.MethodCallHandler
import io.flutter.plugin.common.MethodChannel.Result import io.flutter.plugin.common.MethodChannel.Result
import io.flutter.plugin.common.PluginRegistry.Registrar import io.flutter.plugin.common.PluginRegistry.Registrar
class FlutterCastFrameworkPlugin(private val registrar: Registrar, private val channel: MethodChannel) : MethodCallHandler { class FlutterCastFrameworkPlugin(private val registrar: Registrar, private val channel: MethodChannel) : MethodCallHandler, LifecycleObserver {
companion object { companion object {
const val TAG = "AndroidCastPlugin" const val TAG = "AndroidCastPlugin"
// @StyleRes
// var customStyleResId: Int? = null
// private val themeResId get() = customStyleResId ?: R.style.Theme_AppCompat_DayNight_Dialog_Alert
@JvmStatic @JvmStatic
fun registerWith(registrar: Registrar) { fun registerWith(registrar: Registrar) {
val channel = MethodChannel(registrar.messenger(), "flutter_cast_framework") val channel = MethodChannel(registrar.messenger(), "flutter_cast_framework")
@ -26,12 +26,19 @@ class FlutterCastFrameworkPlugin(private val registrar: Registrar, private val c
} }
init { init {
ProcessLifecycleOwner.get().lifecycle.addObserver(this)
CastContext.getSharedInstance(registrar.activeContext()).addCastStateListener { i -> CastContext.getSharedInstance(registrar.activeContext()).addCastStateListener { i ->
Log.d(TAG, "Cast state changed: $i") Log.d(TAG, "Cast state changed: $i")
channel.invokeMethod("onCastStateChanged", i) channel.invokeMethod("onCastStateChanged", i)
} }
} }
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun onResume() {
Log.d(TAG, "App: ON_RESUME")
}
override fun onMethodCall(call: MethodCall, result: Result) { override fun onMethodCall(call: MethodCall, result: Result) {
when (call.method) { when (call.method) {
"showCastDialog" -> showCastDialog() "showCastDialog" -> showCastDialog()