@@ -9,18 +9,23 @@ import androidx.compose.runtime.remember
9
9
import androidx.compose.ui.Modifier
10
10
import androidx.compose.ui.platform.LocalContext
11
11
import androidx.navigation.NavGraphBuilder
12
+ import androidx.navigation.NavType
12
13
import androidx.navigation.compose.composable
13
14
import androidx.navigation.compose.rememberNavController
15
+ import androidx.navigation.navArgument
14
16
import org.zotero.android.architecture.EventBusConstants
17
+ import org.zotero.android.architecture.navigation.ARG_RETRIEVE_METADATA
15
18
import org.zotero.android.architecture.navigation.ZoteroNavigation
16
19
import org.zotero.android.architecture.navigation.addNoteScreen
17
20
import org.zotero.android.architecture.navigation.dialogDynamicHeight
21
+ import org.zotero.android.architecture.navigation.dialogFixedMaxHeight
18
22
import org.zotero.android.architecture.navigation.toAddOrEditNote
19
23
import org.zotero.android.architecture.navigation.toZoteroWebViewScreen
20
24
import org.zotero.android.architecture.navigation.zoterWebViewScreen
21
25
import org.zotero.android.pdf.pdfReaderScreenAndNavigationForTablet
22
26
import org.zotero.android.pdf.toPdfScreen
23
27
import org.zotero.android.screens.dashboard.DashboardViewModel
28
+ import org.zotero.android.screens.retrievemetadata.RetrieveMetadataScreen
24
29
import org.zotero.android.screens.tagpicker.TagPickerScreen
25
30
import org.zotero.android.uicomponents.navigation.ZoteroNavHost
26
31
import java.io.File
@@ -59,6 +64,7 @@ internal fun DashboardRootTopLevelTabletNavigation(
59
64
},
60
65
toAddOrEditNote = navigation::toAddOrEditNote,
61
66
toZoteroWebViewScreen = navigation::toZoteroWebViewScreen,
67
+ navigateToRetrieveMetadata = navigation::toRetrieveMetadata
62
68
)
63
69
pdfReaderScreenAndNavigationForTablet(
64
70
navigation = navigation,
@@ -71,6 +77,9 @@ internal fun DashboardRootTopLevelTabletNavigation(
71
77
navigateToTagPicker = navigation::toTagPickerScreen
72
78
)
73
79
zoterWebViewScreen(onClose = navigation::onBack)
80
+ retrieveMetadataDialog(onBack = {
81
+ navController.popBackStack()
82
+ })
74
83
}
75
84
}
76
85
@@ -80,6 +89,7 @@ private fun NavGraphBuilder.dashboardScreen(
80
89
onShowPdf : (String ) -> Unit ,
81
90
toAddOrEditNote : () -> Unit ,
82
91
toZoteroWebViewScreen : (String ) -> Unit ,
92
+ navigateToRetrieveMetadata : (params: String ) -> Unit ,
83
93
onOpenWebpage : (uri: Uri ) -> Unit ,
84
94
viewModel : DashboardViewModel ,
85
95
) {
@@ -93,6 +103,7 @@ private fun NavGraphBuilder.dashboardScreen(
93
103
onShowPdf = onShowPdf,
94
104
toAddOrEditNote = toAddOrEditNote,
95
105
toZoteroWebViewScreen = toZoteroWebViewScreen,
106
+ navigateToRetrieveMetadata = navigateToRetrieveMetadata,
96
107
onOpenWebpage = onOpenWebpage,
97
108
viewModel = viewModel
98
109
)
@@ -120,10 +131,23 @@ private fun NavGraphBuilder.tagPickerDialog(
120
131
}
121
132
}
122
133
134
+ private fun NavGraphBuilder.retrieveMetadataDialog (onBack : () -> Unit ) {
135
+ dialogFixedMaxHeight(
136
+ route = " ${DashboardRootDestinations .RETRIEVE_METADATA_DIALOG } /{$ARG_RETRIEVE_METADATA }" ,
137
+ arguments = listOf (
138
+ navArgument(ARG_RETRIEVE_METADATA ) { type = NavType .StringType },
139
+ ),
140
+ ) {
141
+ RetrieveMetadataScreen (onBack = onBack)
142
+ }
143
+ }
144
+
145
+
123
146
private object DashboardRootDestinations {
124
147
const val DASHBOARD_SCREEN = " dashboardScreen"
125
148
const val TAG_PICKER_SCREEN = " tagPickerScreen"
126
149
const val TAG_PICKER_DIALOG = " tagPickerDialog"
150
+ const val RETRIEVE_METADATA_DIALOG = " retrieveMetadataDialog"
127
151
}
128
152
129
153
private fun ZoteroNavigation.toTagPickerScreen () {
@@ -132,4 +156,8 @@ private fun ZoteroNavigation.toTagPickerScreen() {
132
156
133
157
private fun ZoteroNavigation.toTagPickerDialog () {
134
158
navController.navigate(DashboardRootDestinations .TAG_PICKER_DIALOG )
159
+ }
160
+
161
+ private fun ZoteroNavigation.toRetrieveMetadata (args : String ) {
162
+ navController.navigate(" ${DashboardRootDestinations .RETRIEVE_METADATA_DIALOG } /$args " )
135
163
}
0 commit comments