From 7c1dc7109e38be815f952c56ba7fc6c0d00c3574 Mon Sep 17 00:00:00 2001 From: Norbel AMBANUMBEN Date: Wed, 11 Sep 2024 13:33:01 +0100 Subject: [PATCH] chore: update ios link launch --- .../kotlin/org/ooni/probe/MainViewController.kt | 14 ++++++++++++-- iosApp/iosApp/ContentView.swift | 8 ++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/composeApp/src/iosMain/kotlin/org/ooni/probe/MainViewController.kt b/composeApp/src/iosMain/kotlin/org/ooni/probe/MainViewController.kt index a9e74001..805c6a95 100644 --- a/composeApp/src/iosMain/kotlin/org/ooni/probe/MainViewController.kt +++ b/composeApp/src/iosMain/kotlin/org/ooni/probe/MainViewController.kt @@ -1,16 +1,18 @@ package org.ooni.probe +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.ui.window.ComposeUIViewController -import kotlinx.coroutines.flow.SharedFlow +import kotlinx.coroutines.flow.MutableSharedFlow +import kotlinx.coroutines.launch import org.ooni.probe.data.models.DeepLink import org.ooni.probe.di.Dependencies import platform.UIKit.UIViewController fun mainViewController( dependencies: Dependencies, - deepLinkFlow: SharedFlow, + deepLinkFlow: MutableSharedFlow, ): UIViewController { return ComposeUIViewController { val deepLink by deepLinkFlow.collectAsState(null) @@ -18,5 +20,13 @@ fun mainViewController( dependencies = dependencies, deepLink = deepLink, ) + LaunchedEffect(deepLink) { + deepLink?.let { + // Reset the deepLinkFlow after processing the deep link + launch { + deepLinkFlow.emit(null) + } + } + } } } diff --git a/iosApp/iosApp/ContentView.swift b/iosApp/iosApp/ContentView.swift index b77062b8..713e71e6 100644 --- a/iosApp/iosApp/ContentView.swift +++ b/iosApp/iosApp/ContentView.swift @@ -4,9 +4,9 @@ import composeApp struct ComposeView: UIViewControllerRepresentable { let dependencies: Dependencies - let deepLinkFlow: Kotlinx_coroutines_coreSharedFlow + let deepLinkFlow: Kotlinx_coroutines_coreMutableSharedFlow - init(dependencies: Dependencies, deepLinkFlow: Kotlinx_coroutines_coreSharedFlow) { + init(dependencies: Dependencies, deepLinkFlow: Kotlinx_coroutines_coreMutableSharedFlow) { self.dependencies = dependencies self.deepLinkFlow = deepLinkFlow } @@ -20,9 +20,9 @@ struct ComposeView: UIViewControllerRepresentable { struct ContentView: View { let dependencies: Dependencies - let deepLinkFlow: Kotlinx_coroutines_coreSharedFlow + let deepLinkFlow: Kotlinx_coroutines_coreMutableSharedFlow - init(dependencies: Dependencies, deepLinkFlow: Kotlinx_coroutines_coreSharedFlow) { + init(dependencies: Dependencies, deepLinkFlow: Kotlinx_coroutines_coreMutableSharedFlow) { self.dependencies = dependencies self.deepLinkFlow = deepLinkFlow }