* BugFix in SpinnerDescriptionsAdapter and SpinnerLanguagesAdapter (use the langguage code provided by the spinner, donot set the language to the one returned by the locale)
This commit is contained in:
Ashish Kumar 2019-07-28 21:33:49 +05:30 committed by Josephine Lim
parent 8cd9bd5524
commit 9b769df0e8
2 changed files with 3 additions and 10 deletions

View file

@ -147,7 +147,6 @@ public class DescriptionsAdapter extends RecyclerView.Adapter<DescriptionsAdapte
spinnerDescriptionLanguages.getContext(), spinnerDescriptionLanguages.getContext(),
R.layout.row_item_languages_spinner, selectedLanguages, R.layout.row_item_languages_spinner, selectedLanguages,
savedLanguageValue); savedLanguageValue);
languagesAdapter.notifyDataSetChanged();
spinnerDescriptionLanguages.setAdapter(languagesAdapter); spinnerDescriptionLanguages.setAdapter(languagesAdapter);
spinnerDescriptionLanguages.setOnItemSelectedListener(new OnItemSelectedListener() { spinnerDescriptionLanguages.setOnItemSelectedListener(new OnItemSelectedListener() {
@ -162,6 +161,7 @@ public class DescriptionsAdapter extends RecyclerView.Adapter<DescriptionsAdapte
selectedLanguages.put(adapterView, languageCode); selectedLanguages.put(adapterView, languageCode);
((SpinnerLanguagesAdapter) adapterView ((SpinnerLanguagesAdapter) adapterView
.getAdapter()).selectedLangCode = languageCode; .getAdapter()).selectedLangCode = languageCode;
spinnerDescriptionLanguages.setSelection(position);
Timber.d("Description language code is: "+languageCode); Timber.d("Description language code is: "+languageCode);
} }
@ -171,7 +171,7 @@ public class DescriptionsAdapter extends RecyclerView.Adapter<DescriptionsAdapte
}); });
if (description.getSelectedLanguageIndex() == -1) { if (description.getSelectedLanguageIndex() == -1) {
if (savedLanguageValue != null) { if (!TextUtils.isEmpty(savedLanguageValue)) {
// If user has chosen a default language from settings activity savedLanguageValue is not null // If user has chosen a default language from settings activity savedLanguageValue is not null
spinnerDescriptionLanguages.setSelection(languagesAdapter.getIndexOfLanguageCode(savedLanguageValue)); spinnerDescriptionLanguages.setSelection(languagesAdapter.getIndexOfLanguageCode(savedLanguageValue));
} else { } else {
@ -180,7 +180,7 @@ public class DescriptionsAdapter extends RecyclerView.Adapter<DescriptionsAdapte
.getIndexOfUserDefaultLocale(spinnerDescriptionLanguages.getContext()); .getIndexOfUserDefaultLocale(spinnerDescriptionLanguages.getContext());
spinnerDescriptionLanguages.setSelection(defaultLocaleIndex, true); spinnerDescriptionLanguages.setSelection(defaultLocaleIndex, true);
} else { } else {
spinnerDescriptionLanguages.setSelection(0); spinnerDescriptionLanguages.setSelection(0,true);
} }
} }

View file

@ -139,14 +139,7 @@ public class SpinnerLanguagesAdapter extends ArrayAdapter {
String languageCode = LangCodeUtils.fixLanguageCode(languageCodesList.get(position)); String languageCode = LangCodeUtils.fixLanguageCode(languageCodesList.get(position));
final String languageName = StringUtils.capitalize(languageNamesList.get(position)); final String languageName = StringUtils.capitalize(languageNamesList.get(position));
if(savedLanguageValue.equals("")){
savedLanguageValue = Locale.getDefault().getLanguage();
}
if (!isDropDownView) { if (!isDropDownView) {
if( !dropDownClicked){
languageCode = LangCodeUtils.fixLanguageCode(savedLanguageValue);
}
view.setVisibility(View.GONE); view.setVisibility(View.GONE);
if (languageCode.length() > 2) if (languageCode.length() > 2)
tvLanguage.setText(languageCode.substring(0, 2)); tvLanguage.setText(languageCode.substring(0, 2));