Skip to content

Commit 47f2489

Browse files
committed
fix: 네비게이션 그래프가 정상적이지 않은 문제가 수정됩니다
1 parent 91a7bcd commit 47f2489

8 files changed

Lines changed: 53 additions & 42 deletions

File tree

.idea/kotlinc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

core/navigation/src/main/java/com/lanpet/core/navigation/AppNavigation.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ import androidx.compose.ui.platform.LocalContext
2626
import androidx.lifecycle.compose.collectAsStateWithLifecycle
2727
import androidx.navigation.NavController
2828
import androidx.navigation.NavDestination
29-
import androidx.navigation.NavGraph.Companion.findStartDestination
3029
import androidx.navigation.NavHostController
3130
import androidx.navigation.NavOptions
3231
import androidx.navigation.compose.NavHost
@@ -156,11 +155,7 @@ fun AppNavigation(
156155
onNavigateToHumanAge = { navController.navigateToProfileCreateHumanAge() },
157156
onNavigateToDone = { navController.navigateToProfileCreateDone() },
158157
onNavigateToPreferPet = { navController.navigateToProfileCreatePreferPet() },
159-
onNavigateToMain = {
160-
navController.navigateToMainScreen(
161-
idRes = navController.graph.findStartDestination().id,
162-
)
163-
},
158+
onNavigateToMain = { navController.navigateToMainScreen() },
164159
navController = navController,
165160
)
166161

core/navigation/src/main/java/com/lanpet/core/navigation/MainNavigation.kt

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
11
package com.lanpet.core.navigation
22

3+
import android.annotation.SuppressLint
34
import androidx.navigation.NavController
45
import com.lanpet.core.common.widget.BottomNavItem
56
import com.lanpet.free.navigation.FreeBoardBaseRoute
67
import com.lanpet.myprofile.navigation.MyProfileBaseRoute
78
import com.lanpet.wiki.navigation.WikiBaseRoute
89
import kotlinx.serialization.Serializable
10+
import timber.log.Timber
911

12+
@SuppressLint("RestrictedApi")
1013
fun NavController.navigateToMainScreen(
11-
idRes: Int,
1214
bottomNavItem: BottomNavItem = BottomNavItem.MyPage,
1315
) {
16+
val startDestinationId =
17+
this.currentBackStack.value
18+
.first()
19+
.destination.id
20+
Timber.i("navigateToMainScreen :: idRes = $startDestinationId, bottomNavItem = $bottomNavItem")
21+
Timber.i("navigateToMainScreen :: currentDestination = ${currentDestination?.route}")
22+
Timber.i("navigateToMainScreen :: currentBackStackEntry = ${currentBackStackEntry?.destination?.route}")
23+
Timber.i("navigateToMainScreen :: currentBackStackEntryId = ${currentBackStackEntry?.destination?.id}")
24+
1425
navigate(getBottomNavItemRoute(bottomNavItem)) {
15-
popUpTo(idRes) {
26+
popUpTo(startDestinationId) {
1627
inclusive = true
1728
saveState = true
1829
}

core/navigation/src/main/java/com/lanpet/core/navigation/NavigationHandler.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ class NavigationHandler(
4040
navController.navigateToProfileCreateHasPet()
4141
} else {
4242
navController.navigateToMainScreen(
43-
idRes = navController.graph.startDestinationId,
4443
bottomNavItem = BottomNavItem.MyPage,
4544
)
4645
}

feature/auth/build.gradle.kts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@ android {
1414
compose = true
1515
}
1616

17-
dependencies {
18-
implementation(projects.domain.model)
19-
implementation(projects.domain.usecase)
20-
implementation(projects.core.auth)
21-
implementation(libs.androidx.lifecycle.viewmodel.android)
22-
}
17+
}
18+
19+
dependencies {
20+
implementation(projects.domain.model)
21+
implementation(projects.domain.usecase)
22+
implementation(projects.core.auth)
23+
implementation(libs.androidx.lifecycle.viewmodel.android)
2324
}
Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,37 @@
11
package com.lanpet.feature.auth.navigation
22

3+
import android.annotation.SuppressLint
34
import androidx.navigation.NavController
45
import androidx.navigation.NavGraphBuilder
56
import androidx.navigation.compose.composable
67
import androidx.navigation.navOptions
78
import com.lanpet.feature.auth.LoginScreen
89
import kotlinx.serialization.Serializable
10+
import timber.log.Timber
911

1012
fun NavGraphBuilder.authNavGraph() {
1113
composable<Login> {
1214
LoginScreen()
1315
}
1416
}
1517

18+
@SuppressLint("RestrictedApi")
1619
fun NavController.navigateToLoginScreen() {
17-
this.navigate(
20+
val startDestinationId = this.currentBackStack.value.first().destination.id
21+
22+
navigate(
1823
Login,
19-
navOptions {
20-
popUpTo(0) {
21-
// 0은 시작 destination 을 의미
22-
inclusive = true // true: 시작 destination 도 제거, false: 시작 destination 유지
23-
}
24-
launchSingleTop = true // 중복 destination 방지
25-
},
24+
navOptions =
25+
navOptions {
26+
popUpTo(startDestinationId) {
27+
inclusive = true
28+
saveState = true
29+
}
30+
launchSingleTop = true
31+
restoreState = true
32+
},
2633
)
2734
}
2835

2936
@Serializable
30-
object Login
37+
data object Login

feature/free/src/main/java/com/lanpet/free/navigation/FreeNavGraph.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,13 @@ import androidx.navigation.NavGraphBuilder
1111
import androidx.navigation.NavOptions
1212
import androidx.navigation.NavType
1313
import androidx.navigation.compose.composable
14-
import androidx.navigation.navOptions
1514
import androidx.navigation.navigation
1615
import com.lanpet.domain.model.free.FreeBoardComment
1716
import com.lanpet.free.screen.FreeBoardCommentDetailScreen
1817
import com.lanpet.free.screen.FreeBoardDetailScreen
1918
import com.lanpet.free.screen.FreeBoardScreen
2019
import com.lanpet.free.screen.FreeBoardWriteScreen
2120
import kotlinx.serialization.Serializable
22-
import kotlinx.serialization.encodeToString
2321
import kotlinx.serialization.json.Json
2422
import kotlin.reflect.typeOf
2523

gradle/libs.versions.toml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
[versions]
2-
agp = "8.7.2"
2+
agp = "8.7.3"
33
amplifyAuthenticator = "1.4.0"
44
coreSplashscreen = "1.0.1"
55
datastorePreferences = "1.1.3"
6-
kotlinTestJunit5 = "2.0.20"
6+
kotlinTestJunit5 = "2.1.10"
77
ktlint = "12.1.2"
88
amplifyCore = "2.24.0"
99
androidJunit5Version = "1.9.3.0"
@@ -13,43 +13,43 @@ browser = "1.8.0"
1313
coilCompose = "2.7.0"
1414
coilNetworkOkhttp = "3.0.3"
1515
coilSvg = "3.0.3"
16-
comGoogleDevtoolsKspGradlePlugin = "2.0.21-1.0.25"
16+
comGoogleDevtoolsKspGradlePlugin = "2.1.10-1.0.30"
1717
converterGson = "2.11.0"
1818
credentialsPlayServicesAuth = "1.3.0"
1919
credentials = "1.3.0"
2020
desugar_jdk_libs = "2.1.3"
2121
googleid = "1.1.1"
2222
gradle = "8.1.4"
23-
hiltAndroid = "2.52"
23+
hiltAndroid = "2.55"
2424
junitBom = "5.11.2"
2525
junitJupiterApi = "5.11.2"
2626
junitJupiterEngine = "5.11.2"
2727
junitJupiterParams = "5.11.2"
28-
kotlin = "2.0.21"
28+
kotlin = "2.1.10"
2929
coreKtx = "1.15.0"
3030
espressoCore = "3.6.1"
3131
kotlinGradlePlugin = "1.9.0"
3232
kotlinxCoroutinesTest = "1.7.3"
3333
lifecycleRuntimeKtx = "2.8.7"
34-
activityCompose = "1.9.3"
35-
composeBom = "2024.11.00"
34+
activityCompose = "1.10.1"
35+
composeBom = "2025.02.00"
3636
appcompat = "1.7.0"
3737
material = "1.12.0"
38-
jetbrainsKotlinJvm = "2.0.21"
39-
jetbrainsKotlinSerialization = "2.0.21"
40-
constraintlayout = "2.2.0"
38+
jetbrainsKotlinJvm = "2.1.10"
39+
jetbrainsKotlinSerialization = "2.1.10"
40+
constraintlayout = "2.2.1"
4141
mockkAndroid = "1.13.13"
42-
navigationFragmentKtx = "2.8.4"
43-
navigationUiKtx = "2.8.4"
42+
navigationFragmentKtx = "2.8.8"
43+
navigationUiKtx = "2.8.8"
4444
androidxLifecycle = "2.8.7"
45-
androidxNavigation = "2.8.4"
45+
androidxNavigation = "2.8.8"
4646
androidxHiltNavigationCompose = "1.2.0"
4747
lifecycleViewmodelAndroid = "2.8.7"
4848
kotlinxSerialization = "1.7.3"
4949
awsCore = "2.24.0"
50-
activity = "1.9.3"
50+
activity = "1.10.1"
5151
retrofit = "2.11.0"
52-
animationCore = "1.7.5"
52+
animationCore = "1.7.8"
5353
composeMaterial = "1.4.0"
5454
junitJupiter = "5.11.2"
5555
androidJunit5 = "1.11.2.0"

0 commit comments

Comments
 (0)