diff --git a/app/src/main/java/com/mogo/cloud/MainActivity.java b/app/src/main/java/com/mogo/cloud/MainActivity.java index 2e1f6ef..d8ae05a 100644 --- a/app/src/main/java/com/mogo/cloud/MainActivity.java +++ b/app/src/main/java/com/mogo/cloud/MainActivity.java @@ -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" ); //换肤 diff --git a/config.gradle b/config.gradle index 5298873..5292837 100644 --- a/config.gradle +++ b/config.gradle @@ -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}", diff --git a/gradle.properties b/gradle.properties index 1ca9780..174979a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -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 diff --git a/libraries/mogo-skin/src/main/java/com/mogo/skin/SkinActivityLifecycle.java b/libraries/mogo-skin/src/main/java/com/mogo/skin/SkinActivityLifecycle.java index fec48fc..058df63 100644 --- a/libraries/mogo-skin/src/main/java/com/mogo/skin/SkinActivityLifecycle.java +++ b/libraries/mogo-skin/src/main/java/com/mogo/skin/SkinActivityLifecycle.java @@ -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);