4242import com .sevtinge .hyperceiler .ui .fragment .base .SettingsPreferenceFragment ;
4343import com .sevtinge .hyperceiler .utils .BackupUtils ;
4444import com .sevtinge .hyperceiler .utils .DialogHelper ;
45+ import com .sevtinge .hyperceiler .utils .LanguageHelper ;
4546import com .sevtinge .hyperceiler .utils .prefs .PrefsUtils ;
4647import com .sevtinge .hyperceiler .utils .shell .ShellInit ;
4748
5152import moralnorm .preference .SwitchPreference ;
5253
5354public class ModuleSettingsFragment extends SettingsPreferenceFragment
54- implements Preference .OnPreferenceChangeListener {
55+ implements Preference .OnPreferenceChangeListener {
5556 DropDownPreference mIconModePreference ;
5657 DropDownPreference mIconModeValue ;
5758 SwitchPreference mHideAppIcon ;
5859
5960 DropDownPreference mLogLevel ;
61+ DropDownPreference mLanguage ;
6062
6163 @ Override
6264 public int getContentResId () {
@@ -68,21 +70,56 @@ public void initPrefs() {
6870 int mIconMode = Integer .parseInt (PrefsUtils .getSharedStringPrefs (getContext (), "prefs_key_settings_icon" , "0" ));
6971 mIconModePreference = findPreference ("prefs_key_settings_icon" );
7072 mIconModeValue = findPreference ("prefs_key_settings_icon_mode" );
73+ mLanguage = findPreference ("prefs_key_settings_app_language" );
7174 mHideAppIcon = findPreference ("prefs_key_settings_hide_app_icon" );
7275 mLogLevel = findPreference ("prefs_key_log_level" );
7376
7477 setIconMode (mIconMode );
7578 mIconModePreference .setOnPreferenceChangeListener (this );
79+ String language = LanguageHelper .getLanguage (getContext ());
80+ int value = LanguageHelper .resultIndex (LanguageHelper .appLanguages , language );
81+ mLanguage .setValueIndex (value );
82+ mLanguage .setOnPreferenceChangeListener (
83+ new Preference .OnPreferenceChangeListener () {
84+ @ Override
85+ public boolean onPreferenceChange (@ NonNull Preference preference , Object o ) {
86+ String v = LanguageHelper .appLanguages [Integer .parseInt ((String ) o )];
87+ switch (v ) {
88+ case "CN" -> {
89+ LanguageHelper .setLanguage (getContext (), "zh" , "CN" );
90+ getActivity ().recreate ();
91+ }
92+ case "TW" -> {
93+ LanguageHelper .setLanguage (getContext (), "zh" , "TW" );
94+ getActivity ().recreate ();
95+ }
96+ case "HK" -> {
97+ LanguageHelper .setLanguage (getContext (), "zh" , "HK" );
98+ getActivity ().recreate ();
99+ }
100+ case "en" -> {
101+ LanguageHelper .setLanguage (getContext (), "en" );
102+ getActivity ().recreate ();
103+ }
104+ case "JP" -> {
105+ LanguageHelper .setLanguage (getContext (), "ja" , "JP" );
106+ getActivity ().recreate ();
107+ }
108+ }
109+ return true ;
110+ }
111+ }
112+ );
76113
77114 switch (BuildConfig .BUILD_TYPE ) {
78115 case "canary" -> {
79116 mLogLevel .setValueIndex (0 );
80117 mLogLevel .setEntries (new CharSequence []{"Info" , "Debug" });
81118 mLogLevel .setOnPreferenceChangeListener (
82- (preference , o ) -> {
83- setLogLevel (Integer .parseInt ((String ) o ) + 3 );
84- return true ;
85- }
119+ (preference , o ) -> {
120+ setLogLevel (Integer .parseInt ((String ) o ) + 3 );
121+ return true ;
122+ }
86123 );
87124 }
88125 /*case "debug" -> {
@@ -92,10 +129,10 @@ public void initPrefs() {
92129 }*/
93130 default -> {
94131 mLogLevel .setOnPreferenceChangeListener (
95- (preference , o ) -> {
96- setLogLevel (Integer .parseInt ((String ) o ));
97- return true ;
98- }
132+ (preference , o ) -> {
133+ setLogLevel (Integer .parseInt ((String ) o ));
134+ return true ;
135+ }
99136 );
100137 }
101138 }
@@ -173,7 +210,7 @@ public WindowInsetsCompat onApplyWindowInsets(@NonNull View v, @NonNull WindowIn
173210 Insets inset = Insets .max (insets .getInsets (WindowInsetsCompat .Type .systemBars ()),
174211 insets .getInsets (WindowInsetsCompat .Type .displayCutout ()));
175212 // 22dp + 2dp + 12sp + 10dp + 18dp + 0.5dp + inset.bottom + 4dp(?)
176- v .setPadding (inset .left , 0 , inset .right , inset .bottom + dip2px (requireContext (), 56.5F ) + sp2px (requireContext (),12 ));
213+ v .setPadding (inset .left , 0 , inset .right , inset .bottom + dip2px (requireContext (), 56.5F ) + sp2px (requireContext (), 12 ));
177214 return insets ;
178215 }
179216 });
0 commit comments