Fix language

okjack
okjack 2 years ago
parent 6b87e156ef
commit 7ed5fcf0cf
  1. 3
      app/build.gradle
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingCustomActivity.java
  3. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/base/BaseActivity.java
  4. 9
      app/src/main/java/com/fongmi/android/tv/App.java
  5. 21
      app/src/main/java/com/fongmi/android/tv/utils/LanguageUtil.java
  6. 17
      app/src/mobile/java/com/fongmi/android/tv/ui/base/BaseActivity.java
  7. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingCustomFragment.java

@ -132,6 +132,8 @@ dependencies {
implementation 'com.google.zxing:core:3.3.0'
implementation 'com.guolindev.permissionx:permissionx:1.7.1'
implementation 'com.hierynomus:smbj:0.13.0'
implementation 'com.tencent.tbs:tbssdk:44286'
implementation 'com.github.YarikSOffice:lingver:1.3.0'
implementation 'org.chromium.net:cronet-embedded:76.3809.111'
implementation 'org.eclipse.jetty:jetty-client:8.1.21.v20160908'
implementation 'org.eclipse.jetty:jetty-server:8.1.21.v20160908'
@ -139,7 +141,6 @@ dependencies {
implementation 'org.fourthline.cling:cling-core:2.1.1'
implementation 'org.fourthline.cling:cling-support:2.1.1'
implementation 'org.greenrobot:eventbus:3.3.1'
implementation 'com.tencent.tbs:tbssdk:44286'
implementation('org.simpleframework:simple-xml:2.7.1') { exclude group: 'stax', module: 'stax-api' exclude group: 'xpp3', module: 'xpp3' }
implementation(ext: 'aar', name: 'dlna-core', group: 'fongmi', version: 'release')
leanbackImplementation(ext: 'aar', name: 'dlna-dmr', group: 'fongmi', version: 'release')

@ -23,6 +23,7 @@ import com.fongmi.android.tv.ui.dialog.DisplayDialog;
import com.fongmi.android.tv.ui.dialog.LanguageDialog;
import com.fongmi.android.tv.ui.dialog.MenuKeyDialog;
import com.fongmi.android.tv.ui.dialog.X5WebViewDialog;
import com.fongmi.android.tv.utils.LanguageUtil;
import com.fongmi.android.tv.utils.ResUtil;
import com.fongmi.android.tv.utils.Util;
import com.github.catvod.utils.Shell;
@ -240,6 +241,7 @@ public class SettingCustomActivity extends BaseActivity implements MenuKeyCallba
@Override
public void setLanguage(int lang) {
Setting.putLanguage(lang);
LanguageUtil.setLocale(LanguageUtil.getLocale(Setting.getLanguage()));
mBinding.languageText.setText((ResUtil.getStringArray(R.array.select_language))[Setting.getLanguage()]);
Util.restartApp(this);
}

@ -25,7 +25,6 @@ import com.fongmi.android.tv.R;
import com.fongmi.android.tv.Setting;
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 com.fongmi.android.tv.utils.Util;
@ -135,7 +134,6 @@ public abstract class BaseActivity extends AppCompatActivity {
private Resources hackResources(Resources resources) {
try {
LanguageUtil.setLanguage(resources, Setting.getLanguage());
AutoSizeCompat.autoConvertDensityOfGlobal(resources);
return resources;
} catch (Exception ignored) {

@ -4,7 +4,6 @@ import android.app.Activity;
import android.app.Application;
import android.content.Context;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@ -107,6 +106,7 @@ public class App extends Application {
public void onCreate() {
super.onCreate();
Notify.createChannel();
LanguageUtil.init(this);
Logger.addLogAdapter(getLogAdapter());
OkHttp.get().setProxy(Setting.getProxy());
OkHttp.get().setDoh(Doh.objectFrom(Setting.getDoh()));
@ -149,13 +149,6 @@ public class App extends Application {
}
@Override
public Resources getResources() {
Resources resources = super.getResources();
LanguageUtil.setLanguage(resources, Setting.getLanguage());
return resources;
}
@Override
public PackageManager getPackageManager() {
if (!hook) return getBaseContext().getPackageManager();

@ -1,22 +1,29 @@
package com.fongmi.android.tv.utils;
import android.content.res.Resources;
import android.app.Application;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Setting;
import com.yariksoffice.lingver.Lingver;
import java.util.Locale;
public class LanguageUtil {
public static void setLanguage(Resources resources, int lang) {
resources.getConfiguration().locale = getLocale(lang);
resources.updateConfiguration(resources.getConfiguration(), resources.getDisplayMetrics());
public static void init(Application application) {
Lingver.init(application, getLocale(Setting.getLanguage()));
}
public static void setLocale(Locale locale) {
Lingver.getInstance().setLocale(App.get(), locale);
}
public static int locale() {
if (!Locale.getDefault().getLanguage().equals("zh")) return 0;
if (Locale.getDefault().getCountry().equals("TW")) return 2;
return 1;
if (Locale.getDefault().getCountry().equals("CN")) return 1;
return 2;
}
private static Locale getLocale(int lang) {
public static Locale getLocale(int lang) {
if (lang == 1) return Locale.SIMPLIFIED_CHINESE;
else if (lang == 2) return Locale.TRADITIONAL_CHINESE;
else return Locale.ENGLISH;

@ -2,7 +2,6 @@ package com.fongmi.android.tv.ui.base;
import android.app.Activity;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Build;
@ -26,10 +25,8 @@ import com.bumptech.glide.request.transition.Transition;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
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;
@ -139,20 +136,6 @@ public abstract class BaseActivity extends AppCompatActivity {
}
}
private Resources hackResources(Resources resources) {
try {
LanguageUtil.setLanguage(resources, Setting.getLanguage());
return resources;
} catch (Exception ignored) {
return resources;
}
}
@Override
public Resources getResources() {
return hackResources(super.getResources());
}
private void loadWall(File file) {
Glide.with(App.get()).load(file).centerCrop().skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE).apply(new RequestOptions().override(ResUtil.getScreenWidth(), ResUtil.getScreenHeight())).into(new CustomTarget<Drawable>() {
@Override

@ -14,6 +14,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.fongmi.android.tv.utils.Util;
import com.github.catvod.utils.Shell;
@ -133,6 +134,7 @@ public class SettingCustomFragment extends BaseFragment {
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);
LanguageUtil.setLocale(LanguageUtil.getLocale(Setting.getLanguage()));
dialog.dismiss();
Util.restartApp(getActivity());
}).show();

Loading…
Cancel
Save