14
14
import android .widget .LinearLayout ;
15
15
import android .widget .TextView ;
16
16
17
- import butterknife .BindView ;
18
- import butterknife .ButterKnife ;
19
- import fr .free .nrw .commons .R ;
20
- import fr .free .nrw .commons .utils .BiMap ;
21
-
22
17
import java .util .ArrayList ;
23
18
import java .util .Arrays ;
24
19
import java .util .List ;
20
+ import java .util .Locale ;
25
21
26
22
import butterknife .BindView ;
27
23
import butterknife .ButterKnife ;
28
24
import fr .free .nrw .commons .R ;
25
+ import fr .free .nrw .commons .utils .BiMap ;
29
26
30
27
public class SpinnerLanguagesAdapter extends ArrayAdapter {
31
28
@@ -51,14 +48,29 @@ public SpinnerLanguagesAdapter(@NonNull Context context,
51
48
52
49
private void prepareLanguages (Context context ) {
53
50
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 ++) {
55
58
languageNamesList .add (resources .getString (Language .languageGroups [i ]));
56
59
languageCodesList .add ("" );
57
60
languageNamesList .addAll (Arrays .asList (resources .getStringArray (Language .languageNames [i ])));
58
61
languageCodesList .addAll (Arrays .asList (resources .getStringArray (Language .languageCodes [i ])));
59
62
}
60
63
}
61
64
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
+
62
74
@ Override
63
75
public boolean isEnabled (int position ) {
64
76
return !languageCodesList .get (position ).isEmpty ()&&
0 commit comments