@@ -37,21 +37,26 @@ import androidx.compose.ui.graphics.Color
3737import androidx.compose.ui.res.painterResource
3838import androidx.compose.ui.res.stringResource
3939import androidx.compose.ui.unit.dp
40+ import com.nextcloud.client.assistant.AssistantViewModel
4041import com.owncloud.android.R
42+ import com.owncloud.android.lib.resources.assistant.v2.model.TaskTypeData
43+ import com.owncloud.android.lib.resources.assistant.v2.model.TranslationLanguage
44+ import com.owncloud.android.lib.resources.assistant.v2.model.TranslationLanguages
45+ import com.owncloud.android.lib.resources.assistant.v2.model.toTranslationLanguages
4146
4247@OptIn(ExperimentalMaterial3Api ::class )
4348@Composable
44- fun TranslationScreen (textToTranslate : String ) {
49+ fun TranslationScreen (task : TaskTypeData ? , viewModel : AssistantViewModel , textToTranslate : String ) {
4550 var originText by remember { mutableStateOf(textToTranslate) }
46- var originLanguage by remember { mutableStateOf(" English" ) }
51+ val languages = task?.toTranslationLanguages() ? : TranslationLanguages (listOf (), listOf ())
52+
53+ var originLanguage by remember { mutableStateOf(languages.originLanguages.first()) }
4754 var showOriginDropdownMenu by remember { mutableStateOf(false ) }
4855
4956 var targetText by remember { mutableStateOf(" " ) }
50- var targetLanguage by remember { mutableStateOf(" Spanish " ) }
57+ var targetLanguage by remember { mutableStateOf(languages.targetLanguages.first() ) }
5158 var showTargetDropdownMenu by remember { mutableStateOf(false ) }
5259
53- val languages = listOf (" English" , " Spanish" , " French" , " German" , " Turkish" , " Japanese" )
54-
5560 Scaffold (
5661 modifier = Modifier
5762 .fillMaxSize()
@@ -72,19 +77,22 @@ fun TranslationScreen(textToTranslate: String) {
7277 item {
7378 LanguageSelector (
7479 title = originLanguage,
75- languages = languages,
80+ languages = languages.originLanguages ,
7681 titleId = R .string.translation_screen_label_from,
7782 expanded = showOriginDropdownMenu,
7883 expand = {
7984 showOriginDropdownMenu = it
80- }, onLanguageSelect = {
81- originLanguage = it
85+ }, onLanguageSelect = { newLanguage ->
86+ originLanguage = newLanguage
8287 }
8388 )
8489
85- TranslationTextField (titleId = R .string.translation_screen_hint_source, originText, onValueChange = {
86- originText = it
87- })
90+ TranslationTextField (
91+ titleId = R .string.translation_screen_hint_source,
92+ originText,
93+ onValueChange = { updatedText ->
94+ originText = updatedText
95+ })
8896 }
8997
9098 item {
@@ -98,19 +106,22 @@ fun TranslationScreen(textToTranslate: String) {
98106 item {
99107 LanguageSelector (
100108 title = targetLanguage,
101- languages = languages,
109+ languages = languages.targetLanguages ,
102110 titleId = R .string.translation_screen_label_to,
103111 expanded = showTargetDropdownMenu,
104112 expand = {
105113 showTargetDropdownMenu = it
106- }, onLanguageSelect = {
107- targetLanguage = it
114+ }, onLanguageSelect = { newLanguage ->
115+ targetLanguage = newLanguage
108116 }
109117 )
110118
111- TranslationTextField (titleId = R .string.translation_screen_hint_target, targetText, onValueChange = {
112- targetText = it
113- })
119+ TranslationTextField (
120+ titleId = R .string.translation_screen_hint_target,
121+ targetText,
122+ onValueChange = { updatedText ->
123+ targetText = updatedText
124+ })
114125 }
115126 }
116127 }
@@ -145,12 +156,12 @@ private fun TranslationTextField(titleId: Int, value: String, onValueChange: (St
145156
146157@Composable
147158private fun LanguageSelector (
148- title : String ,
149- languages : List <String >,
159+ title : TranslationLanguage ,
160+ languages : List <TranslationLanguage >,
150161 titleId : Int ,
151162 expanded : Boolean ,
152163 expand : (Boolean ) -> Unit ,
153- onLanguageSelect : (String ) -> Unit
164+ onLanguageSelect : (TranslationLanguage ) -> Unit
154165) {
155166 Row (
156167 modifier = Modifier
@@ -160,15 +171,15 @@ private fun LanguageSelector(
160171 })
161172 ) {
162173 Text (
163- text = stringResource(titleId, title ),
174+ text = stringResource(titleId),
164175 style = MaterialTheme .typography.labelLarge,
165176 color = MaterialTheme .colorScheme.primary,
166177 )
167178
168179 Spacer (modifier = Modifier .width(8 .dp))
169180
170181 Text (
171- text = title,
182+ text = title.name ,
172183 style = MaterialTheme .typography.labelLarge,
173184 )
174185
@@ -178,7 +189,7 @@ private fun LanguageSelector(
178189 ) {
179190 languages.forEach { language ->
180191 DropdownMenuItem (
181- text = { Text (language) },
192+ text = { Text (language.name ) },
182193 onClick = {
183194 expand(false )
184195 onLanguageSelect(language)
0 commit comments