11package com.gadgeski.bugcodex.ui.navigation
22
3+ import androidx.compose.foundation.layout.fillMaxSize
34import androidx.compose.runtime.Composable
45import androidx.compose.runtime.getValue
56import 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
79import androidx.compose.ui.unit.dp
810import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
911import 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 ) },
0 commit comments