Skip to content

Commit 0289ae1

Browse files
madhurgupta10neslihanturan
authored andcommitted
Fixed commons-app#2825 where user was able to add one lang twice (commons-app#2834)
* Fixed commons-app#2825 where user was able to add one lang twice * Added Comments
1 parent 835b797 commit 0289ae1

File tree

1 file changed

+15
-1
lines changed

1 file changed

+15
-1
lines changed

app/src/main/java/fr/free/nrw/commons/upload/DescriptionsAdapter.java

+15-1
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,21 @@ private void initLanguageSpinner(int position, Description description) {
229229
int defaultLocaleIndex = languagesAdapter.getIndexOfUserDefaultLocale(context);
230230
spinnerDescriptionLanguages.setSelection(defaultLocaleIndex);
231231
} else {
232-
spinnerDescriptionLanguages.setSelection(0);
232+
// availableLangIndex gives the index of first non-selected language
233+
int availableLangIndex = -1;
234+
235+
// loops over the languagesAdapter and finds the index of first non-selected language
236+
for (int i = 0; i < languagesAdapter.getCount(); i++) {
237+
if (!selectedLanguages.containsKey(languagesAdapter.getLanguageCode(i))) {
238+
availableLangIndex = i;
239+
break;
240+
}
241+
}
242+
if (availableLangIndex >= 0) {
243+
// sets the spinner value to the index of first non-selected language
244+
spinnerDescriptionLanguages.setSelection(availableLangIndex);
245+
selectedLanguages.put(spinnerDescriptionLanguages, languagesAdapter.getLanguageCode(position));
246+
}
233247
}
234248
} else {
235249
spinnerDescriptionLanguages.setSelection(description.getSelectedLanguageIndex());

0 commit comments

Comments
 (0)