Skip to content

Commit e57444d

Browse files
author
maskara
committed
wip
1 parent e6eaa6e commit e57444d

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

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

+18-6
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,15 @@
1414
import android.widget.LinearLayout;
1515
import android.widget.TextView;
1616

17-
import butterknife.BindView;
18-
import butterknife.ButterKnife;
19-
import fr.free.nrw.commons.R;
20-
import fr.free.nrw.commons.utils.BiMap;
21-
2217
import java.util.ArrayList;
2318
import java.util.Arrays;
2419
import java.util.List;
20+
import java.util.Locale;
2521

2622
import butterknife.BindView;
2723
import butterknife.ButterKnife;
2824
import fr.free.nrw.commons.R;
25+
import fr.free.nrw.commons.utils.BiMap;
2926

3027
public class SpinnerLanguagesAdapter extends ArrayAdapter {
3128

@@ -51,14 +48,29 @@ public SpinnerLanguagesAdapter(@NonNull Context context,
5148

5249
private void prepareLanguages(Context context) {
5350
Resources resources = context.getResources();
54-
for (int i = 0; i < Language.languageNames.length; i++) {
51+
List<Language> languages = getLocaleSupportedByDevice();
52+
53+
for(Language language: languages) {
54+
languageNamesList.add(language.getLocale().getDisplayName());
55+
languageCodesList.add(language.getLocale().getDisplayScript());
56+
}
57+
for (int i = 0; i < languages.size(); i++) {
5558
languageNamesList.add(resources.getString(Language.languageGroups[i]));
5659
languageCodesList.add("");
5760
languageNamesList.addAll(Arrays.asList(resources.getStringArray(Language.languageNames[i])));
5861
languageCodesList.addAll(Arrays.asList(resources.getStringArray(Language.languageCodes[i])));
5962
}
6063
}
6164

65+
private List<Language> getLocaleSupportedByDevice() {
66+
List<Language> languages = new ArrayList<>();
67+
Locale[] localesArray = Locale.getAvailableLocales();
68+
for (Locale locale : localesArray) {
69+
languages.add(new Language(locale));
70+
}
71+
return languages;
72+
}
73+
6274
@Override
6375
public boolean isEnabled(int position) {
6476
return !languageCodesList.get(position).isEmpty()&&

0 commit comments

Comments
 (0)