LeOS-Genesis/app/src/main/java/com/darkweb/genesissearchengine/pluginManager/langManager.java

101 lines
4.9 KiB
Java
Raw Normal View History

2020-09-11 12:54:25 +02:00
package com.darkweb.genesissearchengine.pluginManager;
import android.app.Activity;
import android.content.res.Configuration;
2021-01-28 11:22:41 +01:00
import android.content.res.Resources;
2020-09-11 12:54:25 +02:00
import androidx.appcompat.app.AppCompatActivity;
2021-01-28 11:22:41 +01:00
import com.darkweb.genesissearchengine.constants.status;
2020-09-11 12:54:25 +02:00
import com.darkweb.genesissearchengine.helperManager.eventObserver;
2021-01-28 11:22:41 +01:00
import java.util.List;
2020-09-11 12:54:25 +02:00
import java.util.Locale;
2021-01-28 11:22:41 +01:00
class langManager {
2020-09-11 12:54:25 +02:00
/*Private Variables*/
private AppCompatActivity mAppContext;
private eventObserver.eventListener mEvent;
2021-01-28 11:22:41 +01:00
private Locale mLanguage;
2020-09-11 12:54:25 +02:00
/*Initializations*/
2021-01-28 11:22:41 +01:00
langManager(AppCompatActivity pAppContext, eventObserver.eventListener pEvent, Locale pLanguage) {
this.mAppContext = pAppContext;
this.mEvent = pEvent;
this.mLanguage = pLanguage;
2020-09-11 12:54:25 +02:00
2021-01-28 11:22:41 +01:00
onInitLanguage(pAppContext);
2020-09-11 12:54:25 +02:00
}
2021-01-28 11:22:41 +01:00
private void onInitLanguage(AppCompatActivity pAppContext) {
if(status.sSettingLanguage.equals("default")){
if(mLanguage==null || !mLanguage.getLanguage().equals(Resources.getSystem().getConfiguration().locale.getLanguage()) || !mLanguage.getCountry().equals(Resources.getSystem().getConfiguration().locale.getCountry()))
{
Locale mSystemLocale = Resources.getSystem().getConfiguration().locale;
String mSystemLangugage = mSystemLocale.toString();
2021-02-07 18:40:35 +01:00
if(mSystemLangugage.equals("en_US") || mSystemLangugage.equals("de_DE") || mSystemLangugage.equals("ur_UR") || mSystemLangugage.equals("ca_ES") || mSystemLangugage.equals("zh_CN") || mSystemLangugage.equals("ch_CZ") || mSystemLangugage.equals("nl_NL") || mSystemLangugage.equals("fr_FR") || mSystemLangugage.equals("el_GR") || mSystemLangugage.equals("hu_HU") || mSystemLangugage.equals("in_ID") || mSystemLangugage.equals("it_IT") || mSystemLangugage.equals("ja_JP") || mSystemLangugage.equals("ko_KR") || mSystemLangugage.equals("pt_PT") || mSystemLangugage.equals("ro_RO") || mSystemLangugage.equals("ru_RU") || mSystemLangugage.equals("th_TH") || mSystemLangugage.equals("tr_TR") || mSystemLangugage.equals("uk_UA") || mSystemLangugage.equals("vi_VN")){
2021-01-28 11:22:41 +01:00
mLanguage = new Locale(mSystemLocale.getLanguage(), mSystemLocale.getCountry());
}else {
mLanguage = new Locale("en", "Us");
}
}else {
return;
}
}else {
mLanguage = new Locale(status.sSettingLanguage, status.sSettingLanguageRegion);
}
Locale.setDefault(mLanguage);
Resources resources = pAppContext.getResources();
Configuration config = resources.getConfiguration();
config.setLocale(mLanguage);
resources.updateConfiguration(config, resources.getDisplayMetrics());
2020-09-11 12:54:25 +02:00
}
2021-01-28 11:22:41 +01:00
/*Helper Methods*/
private void onCreate(AppCompatActivity pActivity) {
onInitLanguage(pActivity);
2020-09-11 12:54:25 +02:00
}
2021-01-28 11:22:41 +01:00
private void onResume(AppCompatActivity pActivity) {
onInitLanguage(pActivity);
}
2020-09-11 12:54:25 +02:00
2021-01-28 11:22:41 +01:00
private String getSupportedSystemLanguageInfo() {
if(status.sSettingLanguage.equals("default")){
Locale mSystemLocale = Resources.getSystem().getConfiguration().locale;
String mSystemLangugage = mSystemLocale.toString();
if(mSystemLangugage.equals("en_US") || mSystemLangugage.equals("de_DE") || mSystemLangugage.equals("ca_ES") || mSystemLangugage.equals("zh_CN") || mSystemLangugage.equals("ch_CZ") || mSystemLangugage.equals("nl_NL") || mSystemLangugage.equals("fr_FR") || mSystemLangugage.equals("el_GR") || mSystemLangugage.equals("hu_HU") || mSystemLangugage.equals("in_ID") || mSystemLangugage.equals("it_IT") || mSystemLangugage.equals("ja_JP") || mSystemLangugage.equals("ko_KR") || mSystemLangugage.equals("pt_PT") || mSystemLangugage.equals("ro_RO") || mSystemLangugage.equals("ru_RU") || mSystemLangugage.equals("th_TH") || mSystemLangugage.equals("tr_TR") || mSystemLangugage.equals("uk_UA") || mSystemLangugage.equals("vi_VN")){
return "Default | " + mSystemLocale.getDisplayName();
}else {
return mSystemLocale.getDisplayName() + " | is unsupported";
}
}else {
return mLanguage.getDisplayName();
}
2020-09-11 12:54:25 +02:00
}
2021-01-28 11:22:41 +01:00
/*External Triggers*/
Object onTrigger(List<Object> pData, pluginEnums.eLangManager pEventType) {
if(pEventType.equals(pluginEnums.eLangManager.M_ACTIVITY_CREATED))
{
onCreate((AppCompatActivity) pData.get(0));
}
else if(pEventType.equals(pluginEnums.eLangManager.M_RESUME))
{
onResume((AppCompatActivity) pData.get(0));
}
else if(pEventType.equals(pluginEnums.eLangManager.M_SET_LANGUAGE))
{
onInitLanguage((AppCompatActivity) pData.get(0));
}
else if(pEventType.equals(pluginEnums.eLangManager.M_SUPPORTED_SYSTEM_LANGUAGE_INFO))
{
return getSupportedSystemLanguageInfo();
}
return null;
2020-09-11 12:54:25 +02:00
}
2021-01-28 11:22:41 +01:00
}