mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-31 23:03:54 +01:00
change the original logic of changing language in app, to adapt to google apl
This commit is contained in:
parent
3dce3b189a
commit
8f25fda19a
2 changed files with 17 additions and 18 deletions
|
|
@ -124,7 +124,7 @@ public class MainActivity extends BaseActivity
|
||||||
setContentView(binding.getRoot());
|
setContentView(binding.getRoot());
|
||||||
setSupportActionBar(binding.toolbarBinding.toolbar);
|
setSupportActionBar(binding.toolbarBinding.toolbar);
|
||||||
tabLayout = binding.fragmentMainNavTabLayout;
|
tabLayout = binding.fragmentMainNavTabLayout;
|
||||||
loadLocale();
|
// loadLocale();
|
||||||
|
|
||||||
binding.toolbarBinding.toolbar.setNavigationOnClickListener(view -> {
|
binding.toolbarBinding.toolbar.setNavigationOnClickListener(view -> {
|
||||||
onSupportNavigateUp();
|
onSupportNavigateUp();
|
||||||
|
|
@ -485,13 +485,13 @@ public class MainActivity extends BaseActivity
|
||||||
/**
|
/**
|
||||||
* Load default language in onCreate from SharedPreferences
|
* Load default language in onCreate from SharedPreferences
|
||||||
*/
|
*/
|
||||||
private void loadLocale() {
|
// private void loadLocale() {
|
||||||
final SharedPreferences preferences = getSharedPreferences("Settings",
|
// final SharedPreferences preferences = getSharedPreferences("Settings",
|
||||||
Activity.MODE_PRIVATE);
|
// Activity.MODE_PRIVATE);
|
||||||
final String language = preferences.getString("language", "");
|
// final String language = preferences.getString("language", "");
|
||||||
final SettingsFragment settingsFragment = new SettingsFragment();
|
// final SettingsFragment settingsFragment = new SettingsFragment();
|
||||||
settingsFragment.setLocale(this, language);
|
// settingsFragment.setLocale(this, language);
|
||||||
}
|
// }
|
||||||
|
|
||||||
public NavTabLayout.OnNavigationItemSelectedListener getNavListener() {
|
public NavTabLayout.OnNavigationItemSelectedListener getNavListener() {
|
||||||
return navListener;
|
return navListener;
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ package fr.free.nrw.commons.settings;
|
||||||
import static android.content.Context.MODE_PRIVATE;
|
import static android.content.Context.MODE_PRIVATE;
|
||||||
|
|
||||||
import android.Manifest.permission;
|
import android.Manifest.permission;
|
||||||
|
import android.annotation.SuppressLint;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
|
@ -21,6 +22,8 @@ import android.widget.TextView;
|
||||||
import androidx.activity.result.ActivityResultCallback;
|
import androidx.activity.result.ActivityResultCallback;
|
||||||
import androidx.activity.result.ActivityResultLauncher;
|
import androidx.activity.result.ActivityResultLauncher;
|
||||||
import androidx.activity.result.contract.ActivityResultContracts;
|
import androidx.activity.result.contract.ActivityResultContracts;
|
||||||
|
import androidx.appcompat.app.AppCompatDelegate;
|
||||||
|
import androidx.core.os.LocaleListCompat;
|
||||||
import androidx.preference.ListPreference;
|
import androidx.preference.ListPreference;
|
||||||
import androidx.preference.MultiSelectListPreference;
|
import androidx.preference.MultiSelectListPreference;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
|
@ -267,6 +270,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("RestrictedApi")
|
||||||
@Override
|
@Override
|
||||||
protected Adapter onCreateAdapter(final PreferenceScreen preferenceScreen) {
|
protected Adapter onCreateAdapter(final PreferenceScreen preferenceScreen) {
|
||||||
return new PreferenceGroupAdapter(preferenceScreen) {
|
return new PreferenceGroupAdapter(preferenceScreen) {
|
||||||
|
|
@ -314,7 +318,7 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
|
|
||||||
assert languageCode != null;
|
assert languageCode != null;
|
||||||
if (languageCode.equals("")) {
|
if (languageCode.equals("")) {
|
||||||
selectedLanguages.put(0, Locale.getDefault().getLanguage());
|
selectedLanguages.put(0, AppCompatDelegate.getApplicationLocales().toLanguageTags());
|
||||||
} else {
|
} else {
|
||||||
selectedLanguages.put(0, languageCode);
|
selectedLanguages.put(0, languageCode);
|
||||||
}
|
}
|
||||||
|
|
@ -396,14 +400,11 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
recentLanguagesDao.deleteRecentLanguage(languageCode);
|
recentLanguagesDao.deleteRecentLanguage(languageCode);
|
||||||
}
|
}
|
||||||
recentLanguagesDao.addRecentLanguage(new Language(languageName, languageCode));
|
recentLanguagesDao.addRecentLanguage(new Language(languageName, languageCode));
|
||||||
saveLanguageValue(languageCode, keyListPreference);
|
|
||||||
Locale defLocale = createLocale(languageCode);
|
Locale defLocale = createLocale(languageCode);
|
||||||
if(keyListPreference.equals("appUiDefaultLanguagePref")) {
|
if(keyListPreference.equals("appUiDefaultLanguagePref")) {
|
||||||
appUiLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
|
appUiLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
|
||||||
setLocale(requireActivity(), languageCode);
|
LocaleListCompat appLocale = LocaleListCompat.forLanguageTags(languageCode);
|
||||||
getActivity().recreate();
|
AppCompatDelegate.setApplicationLocales(appLocale);
|
||||||
final Intent intent = new Intent(getActivity(), MainActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
}else if(keyListPreference.equals("descriptionDefaultLanguagePref")){
|
}else if(keyListPreference.equals("descriptionDefaultLanguagePref")){
|
||||||
descriptionLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
|
descriptionLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
|
||||||
}
|
}
|
||||||
|
|
@ -468,10 +469,8 @@ public class SettingsFragment extends PreferenceFragmentCompat {
|
||||||
final Locale defLocale = createLocale(recentLanguageCode);
|
final Locale defLocale = createLocale(recentLanguageCode);
|
||||||
if (keyListPreference.equals("appUiDefaultLanguagePref")) {
|
if (keyListPreference.equals("appUiDefaultLanguagePref")) {
|
||||||
appUiLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
|
appUiLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
|
||||||
setLocale(requireActivity(), recentLanguageCode);
|
LocaleListCompat appLocale = LocaleListCompat.forLanguageTags(recentLanguageCode);
|
||||||
getActivity().recreate();
|
AppCompatDelegate.setApplicationLocales(appLocale);
|
||||||
final Intent intent = new Intent(getActivity(), MainActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
} else {
|
} else {
|
||||||
descriptionLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
|
descriptionLanguageListPreference.setSummary(defLocale.getDisplayLanguage(defLocale));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue