Skip to content

Commit ce588be

Browse files
committed
修复在 OneUI 上调用 DateUtils.formatDateTime 获得的结果不正确的问题
1 parent 721c1e1 commit ce588be

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

library/src/main/java/com/hjq/language/LanguagesUtils.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,17 @@ static Locale getSystemLocale(Context context) {
6464
return LanguagesUtils.getLocale(Resources.getSystem().getConfiguration());
6565
}
6666

67+
/**
68+
* 获取默认的语种环境
69+
*/
70+
static Locale getDefaultLocale() {
71+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
72+
return LocaleList.getDefault().get(0);
73+
} else {
74+
return Locale.getDefault();
75+
}
76+
}
77+
6778
/**
6879
* 设置默认的语种环境(日期格式化会用到)
6980
*/

library/src/main/java/com/hjq/language/MultiLanguages.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,14 @@ public static void updateAppLanguage(Context context, Resources resources) {
9696
if (resources == null) {
9797
return;
9898
}
99-
if (LanguagesUtils.getLocale(resources.getConfiguration()).equals(getAppLanguage(context))) {
100-
return;
99+
Locale locale = getAppLanguage(context);
100+
if (!locale.equals(LanguagesUtils.getLocale(resources.getConfiguration()))) {
101+
LanguagesUtils.updateLanguages(resources, locale);
102+
}
103+
if (!locale.equals(LanguagesUtils.getDefaultLocale())) {
104+
// Github issue 地址:https://github.com/getActivity/MultiLanguages/issues/59
105+
LanguagesUtils.setDefaultLocale(context);
101106
}
102-
LanguagesUtils.updateLanguages(resources, getAppLanguage(context));
103107
}
104108

105109
/**
@@ -137,8 +141,9 @@ public static boolean setAppLanguage(Context context, Locale newLocale) {
137141
// 更新 Application 的语种
138142
LanguagesUtils.updateLanguages(sApplication.getResources(), newLocale);
139143
}
140-
144+
// 重新设置默认的语种环境
141145
LanguagesUtils.setDefaultLocale(context);
146+
142147
if (sLanguageListener != null) {
143148
sLanguageListener.onAppLocaleChange(oldLocale, newLocale);
144149
}

0 commit comments

Comments
 (0)