Commit 012ee973 by sikang

UPDATE

parent 2b413d0c
...@@ -43,6 +43,8 @@ dependencies { ...@@ -43,6 +43,8 @@ dependencies {
//noinspection GradleCompatible //noinspection GradleCompatible
androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
// multidex
api 'com.android.support:multidex:1.0.3'
//support包 //support包
api "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion" api "com.android.support:appcompat-v7:$rootProject.ext.supportLibraryVersion"
......
...@@ -22,6 +22,9 @@ ...@@ -22,6 +22,9 @@
<uses-permission android:name="android.permission.READ_SMS" /> <uses-permission android:name="android.permission.READ_SMS" />
<!--发送短信--> <!--发送短信-->
<uses-permission android:name="android.permission.SEND_SMS" /> <uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION"
tools:ignore="ProtectedPermissions" />
<!--读取手机状态--> <!--读取手机状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--访问手机网络状态--> <!--访问手机网络状态-->
......
package tech.starwin; package tech.starwin;
import android.app.Application; import android.app.Application;
import android.content.BroadcastReceiver;
import android.content.Context; import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Configuration;
import android.os.Build;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.View; import android.view.View;
import com.google.firebase.remoteconfig.FirebaseRemoteConfig; import com.google.firebase.remoteconfig.FirebaseRemoteConfig;
...@@ -17,6 +24,8 @@ import com.scwang.smartrefresh.layout.header.ClassicsHeader; ...@@ -17,6 +24,8 @@ import com.scwang.smartrefresh.layout.header.ClassicsHeader;
import com.tencent.bugly.crashreport.CrashReport; import com.tencent.bugly.crashreport.CrashReport;
import java.util.Locale;
import cn.fraudmetrix.octopus.aspirit.main.OctopusManager; import cn.fraudmetrix.octopus.aspirit.main.OctopusManager;
import tech.starwin.database.DataBaseHelper; import tech.starwin.database.DataBaseHelper;
import tech.starwin.network.Gateway; import tech.starwin.network.Gateway;
...@@ -65,6 +74,7 @@ public class LibConfig { ...@@ -65,6 +74,7 @@ public class LibConfig {
public static String ZENDESK_OAUTH_CLIENT_ID; public static String ZENDESK_OAUTH_CLIENT_ID;
public static String TONGDUN_PARENT_CODE; public static String TONGDUN_PARENT_CODE;
public static String TONGDUN_PARENT_KEY; public static String TONGDUN_PARENT_KEY;
public static String LANGUAGE = "en";
public static int HARVESTER_PORT;// public static int HARVESTER_PORT;//
public static int LOADING_ICON;//loading图标 public static int LOADING_ICON;//loading图标
public static int LOADING_BACKGROUND;//loading旋转背景 public static int LOADING_BACKGROUND;//loading旋转背景
...@@ -85,6 +95,11 @@ public class LibConfig { ...@@ -85,6 +95,11 @@ public class LibConfig {
public static void initLib(Application application) { public static void initLib(Application application) {
if (application != null) { if (application != null) {
CONTEXT = application; CONTEXT = application;
// if (!TextUtils.isEmpty(LANGUAGE)) {
// loadAppLanguage(application, LANGUAGE);
// }
//上传工具 //上传工具
UploadManager.init(CONTEXT); UploadManager.init(CONTEXT);
...@@ -120,6 +135,33 @@ public class LibConfig { ...@@ -120,6 +135,33 @@ public class LibConfig {
} }
} }
/**
* 切换应用语言环境
*
* @param context
*/
private static void loadAppLanguage(Context context, String language) {
Locale locale;
if (language.equals("zh")) {
locale = Locale.SIMPLIFIED_CHINESE;
} else if (language.equals("en")) {
locale = Locale.US;
} else {
return;
}
Configuration config = context.getResources().getConfiguration();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
config.setLocale(locale);
} else {
//noinspection deprecation
config.locale = locale;
}
context.getResources().updateConfiguration(config, context.getResources().getDisplayMetrics());
Locale.setDefault(locale);
}
/** /**
* 用于在Base 中 实现Butterknife.bind()的功能 * 用于在Base 中 实现Butterknife.bind()的功能
......
package tech.starwin.base; package tech.starwin.base;
import android.app.Activity; import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.support.annotation.CheckResult; import android.support.annotation.CheckResult;
import android.support.annotation.IdRes; import android.support.annotation.IdRes;
...@@ -16,7 +16,6 @@ import android.view.LayoutInflater; ...@@ -16,7 +16,6 @@ import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.RelativeLayout;
import com.google.firebase.messaging.RemoteMessage; import com.google.firebase.messaging.RemoteMessage;
import com.qmuiteam.qmui.widget.QMUITopBar; import com.qmuiteam.qmui.widget.QMUITopBar;
...@@ -31,7 +30,7 @@ import tech.starwin.LibConfig; ...@@ -31,7 +30,7 @@ import tech.starwin.LibConfig;
import tech.starwin.R; import tech.starwin.R;
import tech.starwin.service.MsgHandleService; import tech.starwin.service.MsgHandleService;
import tech.starwin.mvp.IView; import tech.starwin.mvp.IView;
import tech.starwin.utils.LogUtils; import tech.starwin.utils.context_utils.AppLanguageUtils;
import tech.starwin.utils.PresenterHoler; import tech.starwin.utils.PresenterHoler;
import tech.starwin.utils.context_utils.FragmentLauncher; import tech.starwin.utils.context_utils.FragmentLauncher;
import tech.starwin.utils.ui_utils.DialogFactory; import tech.starwin.utils.ui_utils.DialogFactory;
...@@ -76,6 +75,11 @@ public abstract class BaseActivity extends AppCompatActivity implements IView { ...@@ -76,6 +75,11 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
@Override @Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(AppLanguageUtils.attachBaseContext(newBase, LibConfig.LANGUAGE));
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
TAG = getClass().getSimpleName(); TAG = getClass().getSimpleName();
...@@ -132,7 +136,6 @@ public abstract class BaseActivity extends AppCompatActivity implements IView { ...@@ -132,7 +136,6 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
presenterHelper.onDestory(); presenterHelper.onDestory();
} }
@Override @Override
@NonNull @NonNull
@CheckResult @CheckResult
......
package tech.starwin.base;
import android.content.Context;
import android.content.res.Configuration;
import android.support.multidex.MultiDexApplication;
import tech.starwin.LibConfig;
import tech.starwin.utils.context_utils.AppLanguageUtils;
/**
* Created by SiKang on 2018/11/2.
*/
public abstract class BaseApplication extends MultiDexApplication {
@Override
protected void attachBaseContext(Context base) {
initLibCnofig();
super.attachBaseContext(AppLanguageUtils.attachBaseContext(base, LibConfig.LANGUAGE));
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
AppLanguageUtils.setLanguage(this, LibConfig.LANGUAGE);
}
@Override
public void onCreate() {
super.onCreate();
AppLanguageUtils.setLanguage(this, LibConfig.LANGUAGE);
LibConfig.initLib(this);
}
public abstract void initLibCnofig();
}
...@@ -28,7 +28,8 @@ public class LatestLoanAppBean extends LoanAppBeanFather implements Parcelable { ...@@ -28,7 +28,8 @@ public class LatestLoanAppBean extends LoanAppBeanFather implements Parcelable {
* totalAmount ; 0 * totalAmount ; 0
*/ */
public static final String WITHDRAWN = "WITHDRAWN";//撤回
public static final String GRACE_PERIOD = "GRACE_PERIOD";//撤回
public static final String OVERDUE = "OVERDUE";//逾期 public static final String OVERDUE = "OVERDUE";//逾期
public static final String CURRENT = "CURRENT";//已放款 public static final String CURRENT = "CURRENT";//已放款
public static final String SUBMITTED = "SUBMITTED";//已经提交 public static final String SUBMITTED = "SUBMITTED";//已经提交
......
package tech.starwin.utils.context_utils;
import android.annotation.TargetApi;
import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
import android.os.LocaleList;
import android.util.DisplayMetrics;
import java.util.HashMap;
import java.util.Locale;
public class AppLanguageUtils {
private static String currentLanguage = "";
public static HashMap<String, Locale> allLanguages = new HashMap<String, Locale>(8) {{
put("en", Locale.ENGLISH);
put("zh", Locale.SIMPLIFIED_CHINESE);
put("in", Locale.FRANCE);//设置一个未翻译的语言,使用默认values,即印尼语
}};
@SuppressWarnings("deprecation")
public static void setLanguage(Context context, String language) {
Resources resources = context.getApplicationContext().getResources();
DisplayMetrics dm = resources.getDisplayMetrics();
Configuration config = resources.getConfiguration();
Locale locale = getLocale(language);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
config.setLocale(locale);
} else {
config.locale = locale;
}
resources.updateConfiguration(config, dm);
}
public static Locale getLocale(String language) {
if (allLanguages.containsKey(language)) {
return allLanguages.get(language);
} else {
return Locale.getDefault();
}
}
public static Context attachBaseContext(Context context, String language) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
return updateResources(context, getLocale(language));
} else {
return context;
}
}
@TargetApi(Build.VERSION_CODES.N)
private static Context updateResources(Context context, Locale locale) {
Resources resources = context.getResources();
Configuration configuration = resources.getConfiguration();
configuration.setLocale(locale);
configuration.setLocales(new LocaleList(locale));
return context.createConfigurationContext(configuration);
}
}
\ No newline at end of file
...@@ -52,7 +52,7 @@ public class DialogFactory { ...@@ -52,7 +52,7 @@ public class DialogFactory {
* 创建一个带有文本提示的对话框 * 创建一个带有文本提示的对话框
*/ */
public static void showMessageDialog(Context context, String msg) { public static void showMessageDialog(Context context, String msg) {
createMessageDialog(context, "Tip", msg, "ok").show(); createMessageDialog(context, "Tip", msg, "ok", null).show();
} }
public static Dialog createMessageDialog(Context context, String title, String message, String btnText) { public static Dialog createMessageDialog(Context context, String title, String message, String btnText) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment