Skip to content

Commit 971932b

Browse files
committed
fix(nav): resolve Compose width source warning in AppNavHost
1 parent ff4d4da commit 971932b

File tree

3 files changed

+19
-26
lines changed

3 files changed

+19
-26
lines changed

app/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ dependencies {
8383
implementation(libs.androidx.lifecycle.runtime.compose)
8484
implementation(libs.androidx.lifecycle.viewmodel.compose)
8585
implementation(libs.androidx.navigation.compose)
86+
implementation(libs.androidx.hilt.lifecycle.viewmodel.compose)
8687

8788
// DataStore & Security
8889
implementation(libs.androidx.datastore.preferences)

app/src/main/java/com/gadgeski/bugcodex/ui/navigation/Nav.kt

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
package com.gadgeski.bugcodex.ui.navigation
22

3+
import androidx.compose.foundation.layout.fillMaxSize
34
import androidx.compose.runtime.Composable
45
import androidx.compose.runtime.getValue
56
import androidx.compose.ui.Modifier
6-
import androidx.compose.ui.platform.LocalConfiguration
7+
import androidx.compose.ui.platform.LocalDensity
8+
import androidx.compose.ui.platform.LocalWindowInfo
79
import androidx.compose.ui.unit.dp
810
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
911
import androidx.navigation.NavGraph.Companion.findStartDestination
@@ -39,24 +41,20 @@ fun AppNavHost(
3941
navController: NavHostController,
4042
vm: NotesViewModel,
4143
) {
42-
// Foldableの状態を監視
4344
val hingePosture by rememberHingePosture()
4445

45-
// 画面幅による判定(全開時の大画面対応)
46-
val configuration = LocalConfiguration.current
47-
val screenWidth = configuration.screenWidthDp.dp
46+
// CHANGED: Configuration.screenWidthDp -> LocalWindowInfo.current.containerSize
47+
val containerSize = LocalWindowInfo.current.containerSize
48+
val density = LocalDensity.current
49+
val windowWidthDp = with(density) { containerSize.width.toDp() }
4850

49-
// 2画面モードにする条件:
50-
// 1. 本のように半開き (BOOK_MODE)
51-
// 2. または、画面幅が十分に広い (600dp以上) = タブレットやFold全開時
52-
val isTwoPane = hingePosture == HingePosture.BOOK_MODE || screenWidth > 600.dp
51+
val isTwoPane = hingePosture == HingePosture.BOOK_MODE || windowWidthDp >= 600.dp
5352

5453
NavHost(
5554
navController = navController,
5655
startDestination = Routes.ALL_NOTES,
57-
modifier = modifier,
56+
modifier = modifier.fillMaxSize(),
5857
) {
59-
// 一覧(Bugs)
6058
composable(Routes.BUGS) {
6159
BugsScreen(
6260
vm = vm,
@@ -68,53 +66,46 @@ fun AppNavHost(
6866
onOpenAllNotes = { navController.navigateTopLevel(Routes.ALL_NOTES) },
6967
)
7068
}
71-
// 検索
69+
7270
composable(Routes.SEARCH) {
7371
SearchScreen(
7472
vm = vm,
7573
onOpenEditor = { navController.navigate(Routes.EDITOR) },
7674
onOpenNotes = { navController.navigateTopLevel(Routes.ALL_NOTES) },
7775
)
7876
}
79-
// フォルダ
77+
8078
composable(Routes.FOLDERS) {
8179
FoldersScreen(
8280
vm = vm,
8381
onOpenEditor = { navController.navigate(Routes.EDITOR) },
8482
onOpenNotes = { navController.navigateTopLevel(Routes.ALL_NOTES) },
8583
)
8684
}
87-
// エディタ
85+
8886
composable(Routes.EDITOR) {
8987
NoteEditorScreen(
9088
vm = vm,
9189
onBack = { navController.navigateUp() },
9290
)
9391
}
94-
// MindMap
92+
9593
composable(Routes.MINDMAP) {
9694
val mindVm: MindMapViewModel = hiltViewModel()
9795
MindMapScreen(
9896
onClose = { navController.navigateUp() },
9997
vm = mindVm,
10098
)
10199
}
102-
// 設定
100+
103101
composable(Routes.SETTINGS) {
104-
SettingsScreen(
105-
onBack = { navController.navigateUp() },
106-
)
102+
SettingsScreen(onBack = { navController.navigateUp() })
107103
}
108-
// ALL_NOTES (Home)
104+
109105
composable(Routes.ALL_NOTES) {
110-
// Fold対応: Book Mode または 大画面なら2画面エディタを表示
111106
if (isTwoPane) {
112-
TwoPaneNoteEditor(
113-
vm = vm,
114-
modifier = Modifier,
115-
)
107+
TwoPaneNoteEditor(vm = vm)
116108
} else {
117-
// 通常時 (スマホ/閉じた状態) はリストを表示し、タップで遷移
118109
AllNotesScreen(
119110
vm = vm,
120111
onOpenEditor = { navController.navigate(Routes.EDITOR) },

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ androidx-activity-compose = { module = "androidx.activity:activity-comp
8080
androidx-navigation-compose = { module = "androidx.navigation:navigation-compose", version.ref = "navigation" }
8181
androidx-lifecycle-runtime-compose = { module = "androidx.lifecycle:lifecycle-runtime-compose", version.ref = "lifecycle" }
8282
androidx-lifecycle-viewmodel-compose = { module = "androidx.lifecycle:lifecycle-viewmodel-compose", version.ref = "lifecycle" }
83+
androidx-hilt-lifecycle-viewmodel-compose = { module = "androidx.hilt:hilt-lifecycle-viewmodel-compose", version.ref = "hiltNavigationCompose" }
8384

8485
# Markdown Preview用
8586
jeziellago-compose-markdown = { module = "com.github.jeziellago:compose-markdown", version.ref = "composeMarkdown" }

0 commit comments

Comments
 (0)