# HG changeset patch # User Da Risk # Date 1691522993 14400 # Node ID fea78676d18e98d2ba9cfa4a354524a1466fcf76 # Parent a788fed2958432daf5ae1a961da1e97dea984822 BrowserLauncher: expose the Component used as a StateFlow diff -r a788fed29584 -r fea78676d18e geekdroid/src/main/java/com/geekorum/geekdroid/network/BrowserLauncher.kt --- a/geekdroid/src/main/java/com/geekorum/geekdroid/network/BrowserLauncher.kt Tue Aug 08 15:29:04 2023 -0400 +++ b/geekdroid/src/main/java/com/geekorum/geekdroid/network/BrowserLauncher.kt Tue Aug 08 15:29:53 2023 -0400 @@ -35,6 +35,8 @@ import androidx.browser.customtabs.CustomTabsSession import androidx.core.net.toUri import androidx.core.os.bundleOf +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow import javax.inject.Inject /** @@ -48,17 +50,21 @@ private var customTabsClient: CustomTabsClient? = null private var customTabsSession: CustomTabsSession? = null private var serviceBinded: Boolean = false + private val _browserComponentName = MutableStateFlow(null) + val browserComponent: StateFlow = _browserComponentName private val customTabsConnection = object : CustomTabsServiceConnection() { override fun onCustomTabsServiceConnected(name: ComponentName, client: CustomTabsClient) { customTabsClient = client customTabsClient?.warmup(0) customTabsSession = customTabsClient?.newSession(null) + _browserComponentName.value = name } override fun onServiceDisconnected(name: ComponentName) { customTabsSession = null customTabsClient = null + _browserComponentName.value = null } }