Added advanced option to force English language

This commit is contained in:
M66B
2019-03-27 10:37:27 +00:00
parent 5b699d0687
commit dc5dfff6c3
6 changed files with 70 additions and 2 deletions

View File

@@ -25,12 +25,15 @@ import android.app.NotificationChannel;
import android.app.NotificationChannelGroup;
import android.app.NotificationManager;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.media.Ringtone;
import android.media.RingtoneManager;
import android.net.Uri;
import android.os.Build;
import android.os.DeadSystemException;
import android.os.RemoteException;
import android.preference.PreferenceManager;
import android.webkit.CookieManager;
import org.json.JSONArray;
@@ -44,6 +47,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import androidx.annotation.RequiresApi;
@@ -54,6 +58,11 @@ public class ApplicationEx extends Application {
"service", "notification", "warning", "error"
));
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(getLocalizedContext(base));
}
@Override
public void onCreate() {
super.onCreate();
@@ -86,6 +95,18 @@ public class ApplicationEx extends Application {
Core.init(this);
}
static Context getLocalizedContext(Context context) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean english = prefs.getBoolean("english", false);
if (english) {
Configuration config = new Configuration(context.getResources().getConfiguration());
config.setLocale(Locale.US);
return context.createConfigurationContext(config);
} else
return context;
}
private void createNotificationChannels() {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
NotificationManager nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);