mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-10-31 14:53:59 +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
	
	 u7759158
						u7759158