diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java index 076bfbd08..76dc12bf4 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java @@ -19,6 +19,7 @@ import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.api.config.WallConfig; import com.fongmi.android.tv.event.RefreshEvent; import com.fongmi.android.tv.utils.FileUtil; +import com.fongmi.android.tv.utils.LanguageUtil; import com.fongmi.android.tv.utils.ResUtil; import org.greenrobot.eventbus.EventBus; @@ -34,6 +35,7 @@ public abstract class BaseActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + LanguageUtil.setLanguage(this.getResources(),Setting.getLanguage()); if (transparent()) setTransparent(this); setContentView(getBinding().getRoot()); EventBus.getDefault().register(this); diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java index 7040f079c..a7321fb0a 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java @@ -13,6 +13,7 @@ import com.fongmi.android.tv.Setting; import com.fongmi.android.tv.databinding.FragmentSettingCustomBinding; import com.fongmi.android.tv.event.RefreshEvent; import com.fongmi.android.tv.ui.base.BaseFragment; +import com.fongmi.android.tv.utils.LanguageUtil; import com.fongmi.android.tv.utils.ResUtil; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -23,6 +24,8 @@ public class SettingCustomFragment extends BaseFragment { private FragmentSettingCustomBinding mBinding; private String[] size; + private String[] lang; + public static SettingCustomFragment newInstance() { return new SettingCustomFragment(); } @@ -44,6 +47,7 @@ public class SettingCustomFragment extends BaseFragment { mBinding.incognitoText.setText(getSwitch(Setting.isIncognito())); mBinding.aggregatedSearchText.setText(getSwitch(Setting.isAggregatedSearch())); mBinding.homeChangeConfigText.setText(getSwitch(Setting.isHomeChangeConfig())); + mBinding.languageText.setText((lang = ResUtil.getStringArray(R.array.select_language))[Setting.getLanguage()]); } @Override @@ -56,6 +60,8 @@ public class SettingCustomFragment extends BaseFragment { mBinding.incognito.setOnClickListener(this::setIncognito); mBinding.aggregatedSearch.setOnClickListener(this::setAggregatedSearch); mBinding.homeChangeConfig.setOnClickListener(this::setHomeChangeConfig); + mBinding.language.setOnClickListener(this::setLanguage); + } private boolean onTitle(View view) { @@ -111,4 +117,13 @@ public class SettingCustomFragment extends BaseFragment { RefreshEvent.config(); } + private void setLanguage(View view) { + new MaterialAlertDialogBuilder(getActivity()).setTitle(R.string.setting_language).setNegativeButton(R.string.dialog_negative, null).setSingleChoiceItems(lang, Setting.getLanguage(), (dialog, which) -> { + mBinding.languageText.setText(lang[which]); + Setting.putLanguage(which); + dialog.dismiss(); + LanguageUtil.restartApp(getActivity()); + }).show(); + } + } diff --git a/app/src/mobile/res/layout/fragment_setting_custom.xml b/app/src/mobile/res/layout/fragment_setting_custom.xml index 3470facb9..252beac15 100644 --- a/app/src/mobile/res/layout/fragment_setting_custom.xml +++ b/app/src/mobile/res/layout/fragment_setting_custom.xml @@ -206,6 +206,31 @@ + + + + + + \ No newline at end of file