From d8eb3569b94e878a71d292c252a7ef5db5f1660d Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Mon, 23 Nov 2020 10:11:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=9D=97=E4=BE=9D=E8=B5=96=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- app/functions/backwidget.gradle | 2 +- app/functions/mediaui.gradle | 9 ++ .../com/mogo/launcher/MogoApplication.java | 3 +- .../mogo/map/impl/amap/AMapViewHandler.java | 5 + .../independent/MainIndependentActivity.java | 13 ++ .../mogo/module/common/MogoModulePaths.java | 5 + .../com/mogo/module/main/MainActivity.java | 3 + .../module-media-res/values-xhdpi/dimens.xml | 122 ++++++++++++++++++ .../main/module-media-res/values/dimens.xml | 122 ++++++++++++++++++ .../support/impl/SkinSupportInstaller.java | 6 + .../support/noop/SkinSupportInstaller.java | 5 + .../support/IMogoSkinSupportInstaller.java | 2 + .../support/app/SkinActivityLifecycle.java | 17 +++ 14 files changed, 312 insertions(+), 6 deletions(-) create mode 100644 app/functions/mediaui.gradle create mode 100644 skin/mogo-skin-light/src/main/module-media-res/values-xhdpi/dimens.xml create mode 100644 skin/mogo-skin-light/src/main/module-media-res/values/dimens.xml diff --git a/app/build.gradle b/app/build.gradle index 374e60534d..72fb85954d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -355,8 +355,6 @@ dependencies { implementation rootProject.ext.dependencies.modulesearch implementation rootProject.ext.dependencies.mogomoduleguide implementation rootProject.ext.dependencies.mogomoduleauth - implementation rootProject.ext.dependencies.modulemedia - implementation rootProject.ext.dependencies.moduleservice implementation rootProject.ext.dependencies.modulesplash implementation rootProject.ext.dependencies.mogoservice implementation rootProject.ext.dependencies.moduleV2x @@ -371,7 +369,6 @@ dependencies { implementation project(':modules:mogo-module-common') implementation project(':modules:mogo-module-search') implementation project(':modules:mogo-module-authorize') - implementation project(':modules:mogo-module-media') implementation project(':modules:mogo-module-service') implementation project(':modules:mogo-module-splash') implementation project(':modules:mogo-module-service') @@ -394,6 +391,7 @@ dependencies { apply from: "./functions/widgets.gradle" apply from: "./functions/tts.gradle" apply from: "./functions/backwidget.gradle" + apply from: "./functions/mediaui.gradle" // implementation group: "com.tencent.matrix", name: "matrix-android-lib", version: '0.6.6', changing: true // implementation group: "com.tencent.matrix", name: "matrix-android-commons", version: '0.6.6', changing: true diff --git a/app/functions/backwidget.gradle b/app/functions/backwidget.gradle index 7329178c45..6763cd6271 100644 --- a/app/functions/backwidget.gradle +++ b/app/functions/backwidget.gradle @@ -1,4 +1,4 @@ -// 辅助驾驶占位模块,目前部分车机不上辅助驾驶功能,使用该模块能力代替 +// 返回桌面悬浮按钮 project.dependencies { if (Boolean.valueOf(RELEASE)) { diff --git a/app/functions/mediaui.gradle b/app/functions/mediaui.gradle new file mode 100644 index 0000000000..fab92e7f71 --- /dev/null +++ b/app/functions/mediaui.gradle @@ -0,0 +1,9 @@ +// 音乐播放模块 + +project.dependencies { + if (Boolean.valueOf(RELEASE)) { + launcherImplementation rootProject.ext.dependencies.modulemedia + } else { + launcherImplementation project(':modules:mogo-module-media') + } +} \ No newline at end of file diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 4f479ae1cb..b355c40d13 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -18,7 +18,6 @@ import com.mogo.module.common.MogoApisHandler; import com.mogo.module.common.MogoModule; import com.mogo.module.common.MogoModulePaths; import com.mogo.module.main.service.MogoMainService; -import com.mogo.module.media.MediaConstants; import com.mogo.module.push.base.PushUIConstants; import com.mogo.module.service.ServiceConst; import com.mogo.module.share.constant.ShareConstants; @@ -68,7 +67,7 @@ public class MogoApplication extends AbsMogoApplication { if ( DebugConfig.isLauncher() ) { MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_BACK, MogoServicePaths.PATH_BACK ) ); - MogoModulePaths.addModule( new MogoModule( MediaConstants.TAG, MediaConstants.MODULE_TYPE ) ); + MogoModulePaths.addModule( new MogoModule( MogoModulePaths.PATH_MEDIA, MogoModulePaths.PATH_MEDIA ) ); } MogoModulePaths.addModule( new MogoModule( ServiceConst.PATH_TTS_CONFIG, ServiceConst.PATH_TTS_CONFIG ) ); diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewHandler.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewHandler.java index a3135b59d6..8023a7a6d1 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewHandler.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewHandler.java @@ -1,11 +1,13 @@ package com.mogo.map.impl.amap; import android.content.Context; +import android.view.ViewGroup; import com.amap.api.maps.MapView; import com.amap.api.navi.AMapNaviView; import com.mogo.commons.debug.DebugConfig; import com.mogo.map.IMogoMapView; +import com.mogo.utils.logger.Logger; public /** @@ -16,6 +18,8 @@ public */ class AMapViewHandler { + private static final String TAG = "AMapViewHandler"; + private static IMogoMapView sMapView; public static void createMapView( Context context ) { @@ -24,6 +28,7 @@ class AMapViewHandler { } else { sMapView = new AMapNaviViewWrapper( new AMapNaviView( context ) ); } + Logger.d( TAG, "初始化地图实例" ); } public static IMogoMapView getMapView() { diff --git a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java index d02c248b56..c210412915 100644 --- a/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java +++ b/main-extensions/mogo-module-main-independent/src/main/java/com/zhidao/mogo/module/main/independent/MainIndependentActivity.java @@ -11,6 +11,7 @@ import androidx.annotation.Nullable; import com.mogo.module.common.map.CustomNaviInterrupter; import com.mogo.module.main.MainActivity; import com.mogo.utils.TipToast; +import com.mogo.utils.UiThreadHandler; /** * 针对独立应用形式,做单独定制 @@ -83,4 +84,16 @@ public class MainIndependentActivity extends MainActivity { } return false; } + + @Override + protected void onDestroy() { + super.onDestroy(); + forceStop(); + } + + private void forceStop(){ + UiThreadHandler.postDelayed( ()->{ + System.exit( 0 ); + }, 1_000L ); + } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java index 9faa90e816..de44e7c25e 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/MogoModulePaths.java @@ -36,6 +36,11 @@ public class MogoModulePaths { */ public static final String PATH_ENTRANCE = "/extension/entrance"; + /** + * 音乐播放入口 + */ + public static final String PATH_MEDIA = "/media/ui"; + /** * 添加卡片模块 * diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java index eb3be1a916..82dac79cf9 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/MainActivity.java @@ -3,11 +3,13 @@ package com.mogo.module.main; import android.content.Intent; import android.os.Bundle; import android.util.Log; +import android.view.LayoutInflater; import android.view.View; import android.widget.FrameLayout; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.view.LayoutInflaterCompat; import com.mogo.commons.context.ContextHolderUtil; import com.mogo.commons.debug.DebugConfig; @@ -30,6 +32,7 @@ import com.mogo.service.fragmentmanager.IMogoFragmentManager; import com.mogo.service.module.IMogoModuleProvider; import com.mogo.service.statusmanager.IMogoStatusManager; import com.mogo.skin.support.SkinMode; +import com.mogo.utils.UiThreadHandler; import com.mogo.utils.logger.Logger; import com.zhidao.adasconfig.api.AdasConfigApiController; import com.zhidao.adasconfig.common.log.LoggerController; diff --git a/skin/mogo-skin-light/src/main/module-media-res/values-xhdpi/dimens.xml b/skin/mogo-skin-light/src/main/module-media-res/values-xhdpi/dimens.xml new file mode 100644 index 0000000000..0a24dc4ad3 --- /dev/null +++ b/skin/mogo-skin-light/src/main/module-media-res/values-xhdpi/dimens.xml @@ -0,0 +1,122 @@ + + + 872px + 1067px + + + 660px + 660px + 20px + 23px + 67.5px + 67.5px + 67.5px + 10px + 23px + 116px + 30px + 145px + 20px + 30px + 90px + 90px + 21px + 24px + 23px + 26px + 30px + 16px + 68px + 68px + 23px + 35px + 56px + 56px + 126px + 3px + 116px + 116px + 22px + 37.5px + 28px + + + + 790px + 525px + 55px + 61px + 20px + 136px + 20px + 136px + 34px + 40px + 30px + 34px + 40px + 60px + 96px + 130px + 4px + 6px + + 600px + 140px + 112px + 30px + 80px + 230px + 14px + 35px + 24px + 56px + 40px + 8px + 16px + 16px + 500px + 350px + 20px + 120px + 36px + 20px + + 660px + 660px + 20px + 22px + 22px + 348px + 348px + 226px + 226px + 36px + 28px + 4px + 2px + 11px + 22px + 21px + 4px + 6px + 2px + + 15px + 78px + 107px + 53px + 2px + 64px + 6px + 12px + 6px + 8px + 180px + + 60px + 750px + 120px + 270px + 30px + \ No newline at end of file diff --git a/skin/mogo-skin-light/src/main/module-media-res/values/dimens.xml b/skin/mogo-skin-light/src/main/module-media-res/values/dimens.xml new file mode 100644 index 0000000000..9d4c23c8d3 --- /dev/null +++ b/skin/mogo-skin-light/src/main/module-media-res/values/dimens.xml @@ -0,0 +1,122 @@ + + + 467px + 573px + + + 352px + 352px + 10.67px + 12px + 36px + 36px + 36px + 5px + 12px + 62px + 16px + 78px + 10.6px + 16px + 48px + 48px + 11px + 12px + 12px + 14px + 16px + 8px + 36px + 36px + 12px + 18px + 30px + 30px + 67.2px + 3px + 62px + 62px + 12px + 20px + 15px + + + + 421px + 280px + 28px + 32.5px + 11.5px + 72.5px + 10.7px + 72.5px + 10px + 22px + 16px + 18px + 22px + 32px + 51px + 68px + 2px + 3.2px + + 338px + 82px + 60px + 18px + 44px + 123px + 10px + 18px + 14px + 30px + 21px + 4px + 8px + 7px + + 267px + 187px + 10px + 64px + 18px + 11px + + 352px + 352px + 10.5px + 11px + 11.5px + 175px + 175px + 114px + 114px + 20px + 15px + 4px + 2px + 6px + 12px + 11px + 4px + 1px + + 8px + 44px + 62px + 28px + 1px + 35px + 3.2px + 6.4px + 3px + 4px + 96px + + 32px + 400px + 80px + 150px + 16px + \ No newline at end of file diff --git a/skin/mogo-skin-support-impl/src/main/java/com/mogo/skin/support/impl/SkinSupportInstaller.java b/skin/mogo-skin-support-impl/src/main/java/com/mogo/skin/support/impl/SkinSupportInstaller.java index a9b4e2a514..73b7836a5b 100644 --- a/skin/mogo-skin-support-impl/src/main/java/com/mogo/skin/support/impl/SkinSupportInstaller.java +++ b/skin/mogo-skin-support-impl/src/main/java/com/mogo/skin/support/impl/SkinSupportInstaller.java @@ -11,6 +11,7 @@ import androidx.appcompat.app.AppCompatDelegate; import androidx.appcompat.app.SkinAppCompatDelegateImpl; import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.commons.AbsMogoApplication; import com.mogo.skin.support.IMogoSkinSupportInstaller; import com.mogo.skin.support.SkinMode; import com.mogo.skin.support.SkinSupportInstallerConstants; @@ -75,4 +76,9 @@ class SkinSupportInstaller implements IMogoSkinSupportInstaller { public void init( Context context ) { } + + @Override + public void onDestroy() { + SkinActivityLifecycle.init( AbsMogoApplication.getApp() ).restoreOldFactory2( AbsMogoApplication.getApp() ); + } } diff --git a/skin/mogo-skin-support-noop/src/main/java/com/mogo/skin/support/noop/SkinSupportInstaller.java b/skin/mogo-skin-support-noop/src/main/java/com/mogo/skin/support/noop/SkinSupportInstaller.java index 94ab26fbcf..85ddce06fa 100644 --- a/skin/mogo-skin-support-noop/src/main/java/com/mogo/skin/support/noop/SkinSupportInstaller.java +++ b/skin/mogo-skin-support-noop/src/main/java/com/mogo/skin/support/noop/SkinSupportInstaller.java @@ -51,4 +51,9 @@ class SkinSupportInstaller implements IMogoSkinSupportInstaller { public void init( Context context ) { } + + @Override + public void onDestroy() { + + } } diff --git a/skin/mogo-skin-support/src/main/java/com/mogo/skin/support/IMogoSkinSupportInstaller.java b/skin/mogo-skin-support/src/main/java/com/mogo/skin/support/IMogoSkinSupportInstaller.java index 0cb5fd30a4..d31d4bfd6c 100644 --- a/skin/mogo-skin-support/src/main/java/com/mogo/skin/support/IMogoSkinSupportInstaller.java +++ b/skin/mogo-skin-support/src/main/java/com/mogo/skin/support/IMogoSkinSupportInstaller.java @@ -26,4 +26,6 @@ interface IMogoSkinSupportInstaller extends IProvider { AppCompatDelegate getSkinAppCompatDelegate( AppCompatActivity activity, AppCompatDelegate superDelegate, AppCompatCallback callback ); void onCompensateActivityCreated( Activity activity, Bundle savedInstanceState ); + + void onDestroy(); } diff --git a/skin/skin-support/src/main/java/skin/support/app/SkinActivityLifecycle.java b/skin/skin-support/src/main/java/skin/support/app/SkinActivityLifecycle.java index 1eb25ffa39..2c863713ae 100755 --- a/skin/skin-support/src/main/java/skin/support/app/SkinActivityLifecycle.java +++ b/skin/skin-support/src/main/java/skin/support/app/SkinActivityLifecycle.java @@ -17,6 +17,7 @@ import skin.support.observe.SkinObservable; import skin.support.observe.SkinObserver; import skin.support.utils.Slog; import skin.support.view.LayoutInflaterCompat; +import skin.support.view.LayoutInflaterFactory; import skin.support.widget.SkinCompatSupportable; import skin.support.content.res.SkinCompatThemeUtils; @@ -33,6 +34,9 @@ public class SkinActivityLifecycle implements Application.ActivityLifecycleCallb */ private WeakReference< Activity > mCurActivityRef; + private LayoutInflater.Factory2 mOldFactory2 = null; + private LayoutInflater.Factory mOldFactory = null; + public static SkinActivityLifecycle init( Application application ) { if ( sInstance == null ) { synchronized ( SkinActivityLifecycle.class ) { @@ -109,6 +113,8 @@ public class SkinActivityLifecycle implements Application.ActivityLifecycleCallb private void installLayoutFactory( Context context ) { try { LayoutInflater layoutInflater = LayoutInflater.from( context ); + mOldFactory2 = layoutInflater.getFactory2(); + mOldFactory = layoutInflater.getFactory(); LayoutInflaterCompat.setFactory2( layoutInflater, getSkinDelegate( context ) ); } catch ( Throwable e ) { Slog.i( "SkinActivity", "A factory has already been set on this LayoutInflater" ); @@ -201,4 +207,15 @@ public class SkinActivityLifecycle implements Application.ActivityLifecycleCallb mMarkNeedUpdate = false; } } + + + public void restoreOldFactory2(Context context){ + try { + LayoutInflater layoutInflater = LayoutInflater.from( context ); + layoutInflater.setFactory2( mOldFactory2 ); + layoutInflater.setFactory( mOldFactory ); + } catch ( Throwable e ) { + + } + } } \ No newline at end of file