「Update」
1、换肤SDK兼容 targetSdkVersion >= 29
This commit is contained in:
@@ -86,9 +86,9 @@ public class MainActivity extends AppCompatActivity {
|
||||
Skin skin;
|
||||
if (isCheck) {
|
||||
skin = new Skin(
|
||||
"7af685334eb2b6724765dae1597cb214",
|
||||
"YiXin-skin_v1_2024_10_14.apk",
|
||||
"https://carlife-static-1255510688.cos.ap-beijing.myqcloud.com/MoGoEagleEye/YiXin-skin_v1_2024_10_14.apk"
|
||||
"ce67cbe250672c6b44720f0f08f43ca1",
|
||||
"YiXin-skin_v1_2024_10_15.apk",
|
||||
"https://carlife-static-1255510688.cos.ap-beijing.myqcloud.com/MoGoEagleEye/YiXin-skin_v1_2024_10_15.apk"
|
||||
);
|
||||
|
||||
//换肤
|
||||
|
||||
@@ -6,7 +6,7 @@ ext {
|
||||
compileSdkVersion: 29,
|
||||
buildToolsVersion: "29.0.2",
|
||||
minSdkVersion : 19,
|
||||
targetSdkVersion : 28,
|
||||
targetSdkVersion : 29,
|
||||
]
|
||||
dependencies = [
|
||||
kotlinstdlibjdk7 : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${kotlin_version}",
|
||||
|
||||
@@ -58,4 +58,4 @@ MOGO_TELEMATIC_VERSION=1.4.7.42
|
||||
# v2x
|
||||
MOGO_V2X_VERSION=1.4.7.42
|
||||
# SKIN
|
||||
MOGO_SKIN_VERSION=1.4.7.48
|
||||
MOGO_SKIN_VERSION=1.4.7.49.1-debug
|
||||
|
||||
@@ -3,11 +3,11 @@ package com.mogo.skin;
|
||||
import android.app.Activity;
|
||||
import android.app.Application;
|
||||
import android.graphics.Typeface;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
|
||||
|
||||
import androidx.core.view.LayoutInflaterCompat;
|
||||
|
||||
import com.mogo.skin.utils.SkinThemeUtils;
|
||||
@@ -35,20 +35,34 @@ public class SkinActivityLifecycle implements Application.ActivityLifecycleCallb
|
||||
/* 字体 */
|
||||
Typeface typeface = SkinThemeUtils.getSkinTypeface(activity);
|
||||
|
||||
//更新布局
|
||||
LayoutInflater layoutInflater = LayoutInflater.from(activity);
|
||||
//获得Activity的布局加载器
|
||||
try {
|
||||
//Android 布局加载器 使用 mFactorySet 标记是否设置过Factory
|
||||
//如设置过抛出一次
|
||||
//设置 mFactorySet 标签为false
|
||||
Field field = LayoutInflater.class.getDeclaredField("mFactorySet");
|
||||
field.setAccessible(true);
|
||||
field.setBoolean(layoutInflater, false);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
SkinLayoutFactory skinLayoutFactory = new SkinLayoutFactory(activity, typeface);
|
||||
LayoutInflaterCompat.setFactory2(layoutInflater, skinLayoutFactory);
|
||||
//获得Activity的布局加载器
|
||||
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.P) {
|
||||
//反射
|
||||
try {
|
||||
//Android 布局加载器 使用 mFactorySet 标记是否设置过Factory
|
||||
//如设置过抛出一次
|
||||
//设置 mFactorySet 标签为false
|
||||
Field field = LayoutInflater.class.getDeclaredField("mFactorySet");
|
||||
field.setAccessible(true);
|
||||
field.setBoolean(layoutInflater, false);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
LayoutInflaterCompat.setFactory2(layoutInflater, skinLayoutFactory);
|
||||
} else {
|
||||
// 兼容 targetSdkVersion >= 29
|
||||
try {
|
||||
Field field = LayoutInflater.class.getDeclaredField("mFactory2");
|
||||
field.setAccessible(true);
|
||||
field.set(layoutInflater, skinLayoutFactory);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
//注册观察者
|
||||
SkinManager.getInstance().addObserver(skinLayoutFactory);
|
||||
mLayoutFactoryMap.put(activity, skinLayoutFactory);
|
||||
|
||||
Reference in New Issue
Block a user