diff --git a/presentation/src/main/java/com/nexters/boolti/presentation/screen/home/HomeScreen.kt b/presentation/src/main/java/com/nexters/boolti/presentation/screen/home/HomeScreen.kt index 42f5dc38..878bf106 100644 --- a/presentation/src/main/java/com/nexters/boolti/presentation/screen/home/HomeScreen.kt +++ b/presentation/src/main/java/com/nexters/boolti/presentation/screen/home/HomeScreen.kt @@ -1,5 +1,6 @@ package com.nexters.boolti.presentation.screen.home +import android.content.Context import android.content.Intent import android.net.Uri import android.widget.Toast @@ -77,6 +78,8 @@ fun HomeScreen( var dialog: GiftStatus? by rememberSaveable { mutableStateOf(null) } + removeInvalidDeepLink(LocalContext.current) + LaunchedEffect(Unit) { viewModel.events.collect { event -> when (event) { @@ -206,6 +209,19 @@ fun HomeScreen( } } +/** + * issue #209를 해결하기 위한 메서드. + * 처리하지 말아야 할 deep link가 부적절한 destination과 match되는 것을 방지하기 위함. + */ +private fun removeInvalidDeepLink(context: Context) { + runCatching { + val intent = context.requireActivity().intent + if (intent.action == null) return + val deepLink = intent.action!! + if (!deepLink.contains("home")) intent.setAction(null) + } +} + @Stable private enum class Destination( val route: String,