diff --git a/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt b/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt index 556c5e2fed..feff6ff573 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt @@ -42,7 +42,6 @@ import chat.simplex.app.views.newchat.* import chat.simplex.app.views.onboarding.* import kotlinx.coroutines.delay import kotlinx.coroutines.flow.distinctUntilChanged -import kotlinx.coroutines.flow.filter import kotlinx.coroutines.launch class MainActivity: FragmentActivity() { @@ -479,7 +478,6 @@ fun processExternalIntent(intent: Intent?, chatModel: ChatModel) { fun connectIfOpenedViaUri(uri: Uri, chatModel: ChatModel) { Log.d(TAG, "connectIfOpenedViaUri: opened via link") if (chatModel.currentUser.value == null) { - // TODO open from chat list view chatModel.appOpenUrl.value = uri } else { withUriAction(uri) { linkType -> diff --git a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt index 2696596147..67adf84a25 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/model/SimpleXAPI.kt @@ -264,10 +264,6 @@ open class ChatController(var ctrl: ChatCtrl?, val ntfManager: NtfManager, val a chatModel.onboardingStage.value = OnboardingStage.OnboardingComplete chatModel.controller.appPrefs.chatLastStart.set(Clock.System.now()) chatModel.chatRunning.value = true - chatModel.appOpenUrl.value?.let { - chatModel.appOpenUrl.value = null - connectIfOpenedViaUri(it, chatModel) - } startReceiver() Log.d(TAG, "startChat: started") } else { diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListView.kt index 5dc2394a47..a91795a966 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/chatlist/ChatListView.kt @@ -22,6 +22,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.intl.Locale import androidx.compose.ui.unit.dp import chat.simplex.app.R +import chat.simplex.app.connectIfOpenedViaUri import chat.simplex.app.model.* import chat.simplex.app.ui.theme.* import chat.simplex.app.views.helpers.* @@ -44,6 +45,13 @@ fun ChatListView(chatModel: ChatModel, setPerformLA: (Boolean) -> Unit, stopped: LaunchedEffect(chatModel.clearOverlays.value) { if (chatModel.clearOverlays.value && newChatSheetState.value.isVisible()) hideNewChatSheet(false) } + LaunchedEffect(chatModel.appOpenUrl.value) { + val url = chatModel.appOpenUrl.value + if (url != null) { + chatModel.appOpenUrl.value = null + connectIfOpenedViaUri(url, chatModel) + } + } var searchInList by rememberSaveable { mutableStateOf("") } val scaffoldState = rememberScaffoldState() Scaffold(