diff --git a/Android/java/app/doraemonkit.gradle b/Android/java/app/doraemonkit.gradle index fbb4d2893502c6b657b62167c524edaf5aadc28a..1657a4e4cf6d46a592a98a67d9f547a8724aa515 100644 --- a/Android/java/app/doraemonkit.gradle +++ b/Android/java/app/doraemonkit.gradle @@ -6,7 +6,7 @@ if (runType == 0) { // 这里引用正常库 dependencies { //外部平台依赖 - debugImplementation project(":doraemonkit-mc") +// debugImplementation project(":doraemonkit-mc") debugImplementation project(":doraemonkit") // debugImplementation project(":doraemonkit-weex") // releaseImplementation project(":doraemonkit-no-op") diff --git a/Android/java/app/src/main/java/com/didichuxing/doraemondemo/amap/NaviRouteOverlay.kt b/Android/java/app/src/main/java/com/didichuxing/doraemondemo/amap/NaviRouteOverlay.kt index d92d3dbf9e6588e5a021e67334f5f20d4c4867e1..763a449ddbbe3c2724ee7f5c49eddd3d5b09f16a 100644 --- a/Android/java/app/src/main/java/com/didichuxing/doraemondemo/amap/NaviRouteOverlay.kt +++ b/Android/java/app/src/main/java/com/didichuxing/doraemondemo/amap/NaviRouteOverlay.kt @@ -24,7 +24,7 @@ import com.didichuxing.doraemonkit.util.ReflectUtils class NaviRouteOverlay( private val aMap: AMap, aMapNaviPath: AMapNaviPath?, - private val mContext: Context + val mContext: Context ) : RouteOverLay( aMap, aMapNaviPath, mContext ) { @@ -41,10 +41,10 @@ class NaviRouteOverlay( private fun setupOptions(shadow: Boolean) { val options: RouteOverlayOptions if (shadow) { - options = customShadowRouteTexture(mContext) + options = customShadowRouteTexture() setZindex(ROUTE_SHADOW_Z_INDEX) } else { - options = customRouteTexture(mContext) + options = customRouteTexture() setZindex(ROUTE_NORMAL_Z_INDEX) } options.setOnRouteCameShow(false) @@ -94,7 +94,7 @@ class NaviRouteOverlay( } } - private fun customShadowRouteTexture(context: Context?): RouteOverlayOptions { + private fun customShadowRouteTexture(): RouteOverlayOptions { val routeOverlayOptions = RouteOverlayOptions() var fis = BitmapDescriptorFactory::class.java.getResourceAsStream("/assets/img/dk_custtexture_aolr.png") @@ -132,7 +132,7 @@ class NaviRouteOverlay( companion object { private const val LINE_WIDTH_DP = 14 - fun customRouteTexture(context: Context?): RouteOverlayOptions { + fun customRouteTexture(): RouteOverlayOptions { val routeOverlayOptions = RouteOverlayOptions() var fis = BitmapDescriptorFactory::class.java.getResourceAsStream("/assets/img/dk_custtexture_aolr.png") diff --git a/Android/java/config.gradle b/Android/java/config.gradle index 4eed4f5be6943367813d6db4a6ea709ae328481a..95392fb7fd1c6c6f2f18c8394e960c57afbc650d 100755 --- a/Android/java/config.gradle +++ b/Android/java/config.gradle @@ -35,7 +35,7 @@ ext { "appcompat" : 'androidx.appcompat:appcompat:1.1.0', "cardview" : 'androidx.cardview:cardview:1.0.0', "recyclerview" : 'androidx.recyclerview:recyclerview:1.1.0', - "material" : 'com.google.android.material:material:1.1.0', + "material" : 'com.google.android.material:material:1.1.0', "annotation" : "androidx.annotation:annotation:1.1.0", "kotlin" : "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${android["kotlin_version"]}", "core-ktx" : "androidx.core:core-ktx:1.3.0", @@ -133,8 +133,8 @@ ext { //tencent x5 浏览器 https://x5.tencent.com/ "tbs" : "com.tencent.tbs.tbssdk:sdk:43903", // "swipeback" : "me.imid.swipebacklayout.lib:library:1.1.0" - "tencent-map" : "com.tencent.map:tencent-map-vector-sdk:4.3.4", "flexbox" : 'com.google.android:flexbox:1.0.0', + "auto_service" : "com.google.auto.service:auto-service:1.0-rc7" ] } diff --git a/Android/java/doraemonkit-comm/.gitignore b/Android/java/doraemonkit-comm/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..42afabfd2abebf31384ca7797186a27a4b7dbee8 --- /dev/null +++ b/Android/java/doraemonkit-comm/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/Android/java/doraemonkit-comm/build.gradle b/Android/java/doraemonkit-comm/build.gradle new file mode 100644 index 0000000000000000000000000000000000000000..eff4792db77450b0f7e7a9f75d847152cfcf3912 --- /dev/null +++ b/Android/java/doraemonkit-comm/build.gradle @@ -0,0 +1,42 @@ +apply plugin: 'com.android.library' +apply plugin: 'kotlin-android' +apply plugin: 'kotlin-android-extensions' +apply from: '../upload.gradle' + +android { + compileSdkVersion rootProject.ext.android["compileSdkVersion"] + + defaultConfig { + minSdkVersion rootProject.ext.android["minSdkVersion"] + targetSdkVersion rootProject.ext.android["targetSdkVersion"] + versionCode rootProject.ext.android["versionCode"] + versionName rootProject.ext.android["versionName"] + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } } + } + + buildTypes { + debug { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + + lintOptions { + abortOnError false + } + +} + +dependencies { + implementation fileTree(include: ['*.jar'], dir: 'libs') + //implementation rootProject.ext.dependencies["appcompat"] + //compileOnly rootProject.ext.dependencies["okio"] + implementation rootProject.ext.dependencies["kotlin"] + +} \ No newline at end of file diff --git a/Android/java/doraemonkit-comm/gradle.properties b/Android/java/doraemonkit-comm/gradle.properties new file mode 100644 index 0000000000000000000000000000000000000000..df0c363e700a3b1a02b99b9e495e52361ac6197e --- /dev/null +++ b/Android/java/doraemonkit-comm/gradle.properties @@ -0,0 +1 @@ +ARTIFACT_ID=dokitx-comm \ No newline at end of file diff --git a/Android/java/doraemonkit-comm/proguard-rules.pro b/Android/java/doraemonkit-comm/proguard-rules.pro new file mode 100644 index 0000000000000000000000000000000000000000..fed85b436c2c5d92238207e53b0f9f9cbb258940 --- /dev/null +++ b/Android/java/doraemonkit-comm/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original from file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/Android/java/doraemonkit-comm/src/main/AndroidManifest.xml b/Android/java/doraemonkit-comm/src/main/AndroidManifest.xml new file mode 100644 index 0000000000000000000000000000000000000000..abd74370d7a5a4d25a9baccb5179d25b98cef1b0 --- /dev/null +++ b/Android/java/doraemonkit-comm/src/main/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/Android/java/doraemonkit-comm/upload.sh b/Android/java/doraemonkit-comm/upload.sh new file mode 100755 index 0000000000000000000000000000000000000000..26d23a617e8ba51800ee26b7bd83bfc6e09331f4 --- /dev/null +++ b/Android/java/doraemonkit-comm/upload.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +echo -n "please enter bintray userid ->" +read userid_bintray +echo -n "please enter bintray apikey ->" +read apikey_bintray +../gradlew clean build --stacktrace --info bintrayUpload -PbintrayUser=${userid_bintray} -PbintrayKey=${apikey_bintray} -PdryRun=false \ No newline at end of file diff --git a/Android/java/doraemonkit-mc/build.gradle b/Android/java/doraemonkit-mc/build.gradle index 804c20417c93515d668115f46d06b648b065bc57..e8abe38729cc540e1ccd4e6bdaf092243bbaddff 100644 --- a/Android/java/doraemonkit-mc/build.gradle +++ b/Android/java/doraemonkit-mc/build.gradle @@ -1,6 +1,7 @@ apply plugin: 'com.android.library' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' +apply plugin: 'kotlin-kapt' apply from: '../upload.gradle' android { @@ -69,6 +70,9 @@ dependencies { compileOnly rootProject.ext.dependencies["ktor_server_cio"] //此处需要使用api的形式 向上暴露内部api api project(':doraemonkit') + //auto-service + implementation rootProject.ext.dependencies["auto_service"] + kapt rootProject.ext.dependencies["auto_service"] } publish.dependsOn(':doraemonkit:publish') \ No newline at end of file diff --git a/Android/java/doraemonkit-mc/src/main/java/com/didichuxing/doraemonkit/kit/mc/all/McActivityOverrideImpl.kt b/Android/java/doraemonkit-mc/src/main/java/com/didichuxing/doraemonkit/kit/mc/all/McDoKitServiceImpl.kt similarity index 61% rename from Android/java/doraemonkit-mc/src/main/java/com/didichuxing/doraemonkit/kit/mc/all/McActivityOverrideImpl.kt rename to Android/java/doraemonkit-mc/src/main/java/com/didichuxing/doraemonkit/kit/mc/all/McDoKitServiceImpl.kt index 036d9e4fb10d79b203354b6e6aea2dc9321f8991..c6bbb50e499368735db29a8c682db1ae69714fb8 100644 --- a/Android/java/doraemonkit-mc/src/main/java/com/didichuxing/doraemonkit/kit/mc/all/McActivityOverrideImpl.kt +++ b/Android/java/doraemonkit-mc/src/main/java/com/didichuxing/doraemonkit/kit/mc/all/McDoKitServiceImpl.kt @@ -4,9 +4,10 @@ import android.app.Activity import com.didichuxing.doraemonkit.constant.DoKitConstant import com.didichuxing.doraemonkit.constant.WSEType import com.didichuxing.doraemonkit.constant.WSMode -import com.didichuxing.doraemonkit.kit.core.DoKitActivityOverrideListener +import com.didichuxing.doraemonkit.kit.core.DoKitServiceAbs +import com.didichuxing.doraemonkit.kit.core.DoKitServiceInterface import com.didichuxing.doraemonkit.kit.mc.server.DoKitWsServer -import com.didichuxing.doraemonkit.util.LogHelper +import com.google.auto.service.AutoService /** * ================================================ @@ -17,47 +18,12 @@ import com.didichuxing.doraemonkit.util.LogHelper * 修订历史: * ================================================ */ -class McActivityOverrideImpl : DoKitActivityOverrideListener { +@AutoService(DoKitServiceInterface::class) +class McDoKitServiceImpl : DoKitServiceAbs() { companion object { const val TAG = "McActivityOverrideImpl" } - override fun onCreate(activity: Activity) { - } - - override fun onStart(activity: Activity) { - } - - override fun onResume(activity: Activity) { - } - - override fun onPause(activity: Activity) { - } - - override fun onStop(activity: Activity) { - } - - override fun onDestroy(activity: Activity) { - } - - override fun finish(activity: Activity) { -// if (DoKitConstant.WS_MODE == WSMode.HOST) { -// val wsEvent = WSEvent( -// WSMode.HOST, -// WSEType.ACTIVITY_FINISH, -// mutableMapOf( -// "activityName" to activity::class.java.canonicalName!!, -// "command" to "finish" -// ), -// null -// ) -// DoKitWsServer.send(wsEvent) -// } - } - - override fun onConfigurationChanged(activity: Activity) { - - } override fun onBackPressed(activity: Activity) { if (DoKitConstant.WS_MODE == WSMode.HOST) { @@ -74,12 +40,6 @@ class McActivityOverrideImpl : DoKitActivityOverrideListener { } } - override fun dispatchTouchEvent(activity: Activity) { - - } - - override fun other(activity: Activity) { - } override fun onForeground(className: String) { if (DoKitConstant.WS_MODE == WSMode.HOST) { diff --git a/Android/java/doraemonkit/build.gradle b/Android/java/doraemonkit/build.gradle index 1027a831632edb6a88a7de41cad7e98072ba9c00..710426602f39ceaac2cded84b96fa1a704e350d8 100644 --- a/Android/java/doraemonkit/build.gradle +++ b/Android/java/doraemonkit/build.gradle @@ -95,6 +95,10 @@ dependencies { // implementation rootProject.ext.dependencies["ktor-gson"] kapt rootProject.ext.dependencies["room_compile"] + //auto-service + implementation rootProject.ext.dependencies["auto_service"] + kapt rootProject.ext.dependencies["auto_service"] + //三大图片框架 compileOnly rootProject.ext.dependencies["glide"] diff --git a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.kt b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.kt index e93e756138adeb88e0842e2930d11a0304c00c5c..3a05abe4c5387f075069375f3daa393f6e5b5278 100644 --- a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.kt +++ b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/DoraemonKitReal.kt @@ -146,7 +146,8 @@ object DoraemonKitReal { it ) } as MutableList - DoKitConstant.GLOBAL_KITS[DoKitCommUtil.getString(R.string.dk_category_biz)] = kitWraps + DoKitConstant.GLOBAL_KITS[DoKitCommUtil.getString(R.string.dk_category_biz)] = + kitWraps } } @@ -179,8 +180,6 @@ object DoraemonKitReal { } - - /** * 注册全局回调 */ @@ -189,16 +188,16 @@ object DoraemonKitReal { AppUtils.registerAppStatusChangedListener(object : Utils.OnAppStatusChangedListener { //进入前台 override fun onForeground(activity: Activity?) { - DoKitActivityOverrideManager.dispatch( - DoKitActivityOverrideEnum.onForeground, + DoKitServiceManager.dispatch( + DoKitServiceEnum.onForeground, activity!! ) } //进入后台 override fun onBackground(activity: Activity?) { - DoKitActivityOverrideManager.dispatch( - DoKitActivityOverrideEnum.onBackground, + DoKitServiceManager.dispatch( + DoKitServiceEnum.onBackground, activity!! ) } @@ -206,12 +205,10 @@ object DoraemonKitReal { }) //跨模块通信监听 try { - val doKitActivityOverrideListeners = mutableListOf() - val mcOverrideListener: DoKitActivityOverrideListener = - ReflectUtils.reflect("com.didichuxing.doraemonkit.kit.mc.all.McActivityOverrideImpl") - .newInstance().get() - doKitActivityOverrideListeners.add(mcOverrideListener) - DoKitActivityOverrideManager.register(doKitActivityOverrideListeners) + val dokitServices = + ServiceLoader.load(DoKitServiceInterface::class.java, javaClass.classLoader) + .toList() + DoKitServiceManager.register(dokitServices) } catch (e: Exception) { } @@ -236,9 +233,11 @@ object DoraemonKitReal { ToolPanelUtil.jsonConfig2InnerKits(json) //悬浮窗模式 - DoKitConstant.GLOBAL_KITS[DoKitCommUtil.getString(R.string.dk_category_mode)] = mutableListOf() + DoKitConstant.GLOBAL_KITS[DoKitCommUtil.getString(R.string.dk_category_mode)] = + mutableListOf() //添加退出项 - DoKitConstant.GLOBAL_KITS[DoKitCommUtil.getString(R.string.dk_category_exit)] = mutableListOf() + DoKitConstant.GLOBAL_KITS[DoKitCommUtil.getString(R.string.dk_category_exit)] = + mutableListOf() //版本号 DoKitConstant.GLOBAL_KITS[DoKitCommUtil.getString(R.string.dk_category_version)] = mutableListOf() diff --git a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/aop/mc/DoKitProxyActivity.kt b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/aop/mc/DoKitProxyActivity.kt index 3d495304a9a9daab7c97d03ea6d405194e16c4c5..932d1f8367805e9779cb20fbd31c97df5e24a474 100644 --- a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/aop/mc/DoKitProxyActivity.kt +++ b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/aop/mc/DoKitProxyActivity.kt @@ -2,15 +2,12 @@ package com.didichuxing.doraemonkit.aop.mc import android.app.Activity import android.content.res.Configuration -import android.nfc.Tag import android.os.Build import android.os.Bundle import android.view.MotionEvent import androidx.annotation.RequiresApi -import com.didichuxing.doraemonkit.kit.core.DoKitActivityOverrideEnum -import com.didichuxing.doraemonkit.kit.core.DoKitActivityOverrideManager -import com.didichuxing.doraemonkit.util.LogHelper -import java.util.logging.Logger +import com.didichuxing.doraemonkit.kit.core.DoKitServiceEnum +import com.didichuxing.doraemonkit.kit.core.DoKitServiceManager /** @@ -31,26 +28,26 @@ public open class DoKitProxyActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - DoKitActivityOverrideManager.dispatch(DoKitActivityOverrideEnum.onCreate, this) + DoKitServiceManager.dispatch(DoKitServiceEnum.onCreate, this) } override fun onStart() { super.onStart() - DoKitActivityOverrideManager.dispatch(DoKitActivityOverrideEnum.onStart, this) + DoKitServiceManager.dispatch(DoKitServiceEnum.onStart, this) } override fun onResume() { super.onResume() - DoKitActivityOverrideManager.dispatch(DoKitActivityOverrideEnum.onResume, this) + DoKitServiceManager.dispatch(DoKitServiceEnum.onResume, this) } @RequiresApi(Build.VERSION_CODES.M) override fun dispatchTouchEvent(ev: MotionEvent): Boolean { - DoKitActivityOverrideManager.dispatch(DoKitActivityOverrideEnum.dispatchTouchEvent, this) + DoKitServiceManager.dispatch(DoKitServiceEnum.dispatchTouchEvent, this) return super.dispatchTouchEvent(ev) @@ -59,8 +56,8 @@ public open class DoKitProxyActivity : Activity() { override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) - DoKitActivityOverrideManager.dispatch( - DoKitActivityOverrideEnum.onConfigurationChanged, + DoKitServiceManager.dispatch( + DoKitServiceEnum.onConfigurationChanged, this ) } @@ -68,29 +65,29 @@ public open class DoKitProxyActivity : Activity() { override fun onBackPressed() { super.onBackPressed() - DoKitActivityOverrideManager.dispatch(DoKitActivityOverrideEnum.onBackPressed, this) + DoKitServiceManager.dispatch(DoKitServiceEnum.onBackPressed, this) } override fun onPause() { super.onPause() - DoKitActivityOverrideManager.dispatch(DoKitActivityOverrideEnum.onPause, this) + DoKitServiceManager.dispatch(DoKitServiceEnum.onPause, this) } override fun onStop() { super.onStop() - DoKitActivityOverrideManager.dispatch(DoKitActivityOverrideEnum.onStop, this) + DoKitServiceManager.dispatch(DoKitServiceEnum.onStop, this) } override fun onDestroy() { super.onDestroy() - DoKitActivityOverrideManager.dispatch(DoKitActivityOverrideEnum.onDestroy, this) + DoKitServiceManager.dispatch(DoKitServiceEnum.onDestroy, this) } override fun finish() { super.finish() - DoKitActivityOverrideManager.dispatch(DoKitActivityOverrideEnum.finish, this) + DoKitServiceManager.dispatch(DoKitServiceEnum.finish, this) } override fun onAttachedToWindow() { diff --git a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitActivityOverrideManager.kt b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitActivityOverrideManager.kt deleted file mode 100644 index 1255770f09b459347a7d4154ef3c6bb3ee6a4d95..0000000000000000000000000000000000000000 --- a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitActivityOverrideManager.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.didichuxing.doraemonkit.kit.core - -import android.app.Activity - -/** - * ================================================ - * 作 者:jint(金台) - * 版 本:1.0 - * 创建日期:2020/12/9-17:00 - * 描 述: - * 修订历史: - * ================================================ - */ -object DoKitActivityOverrideManager { - private val activityOverrideListener: MutableList by lazy { - mutableListOf() - } - - fun register(doKitActivityOverrideListeners: MutableList) { - activityOverrideListener.clear() - activityOverrideListener.addAll(doKitActivityOverrideListeners) - } - - fun dispatch(activityOverrideEnum: DoKitActivityOverrideEnum, activity: Activity) { - activityOverrideListener.forEach { - when (activityOverrideEnum) { - DoKitActivityOverrideEnum.onCreate -> it.onCreate(activity) - DoKitActivityOverrideEnum.onStart -> it.onStart(activity) - DoKitActivityOverrideEnum.onResume -> it.onResume(activity) - DoKitActivityOverrideEnum.onPause -> it.onPause(activity) - DoKitActivityOverrideEnum.onStop -> it.onStop(activity) - DoKitActivityOverrideEnum.onDestroy -> it.onDestroy(activity) - DoKitActivityOverrideEnum.finish -> it.finish(activity) - DoKitActivityOverrideEnum.onConfigurationChanged -> it.onConfigurationChanged( - activity - ) - DoKitActivityOverrideEnum.onBackPressed -> it.onBackPressed(activity) - DoKitActivityOverrideEnum.dispatchTouchEvent -> it.dispatchTouchEvent(activity) - DoKitActivityOverrideEnum.onBackground -> it.onBackground() - DoKitActivityOverrideEnum.onForeground -> it.onForeground(activity::class.java.canonicalName!!) - else -> it.other(activity) - - } - } - } -} \ No newline at end of file diff --git a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceAbs.kt b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceAbs.kt new file mode 100644 index 0000000000000000000000000000000000000000..56f4905b1e88607a2174d06f7e6de6601c2feda1 --- /dev/null +++ b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceAbs.kt @@ -0,0 +1,43 @@ +package com.didichuxing.doraemonkit.kit.core + +import android.app.Activity + +/** + * ================================================ + * 作 者:jint(金台) + * 版 本:1.0 + * 创建日期:2020/12/9-17:00 + * 描 述: + * 修订历史: + * ================================================ + */ +abstract class DoKitServiceAbs : DoKitServiceInterface { + /** + * 生命周期 + */ + override fun onCreate(activity: Activity) {} + override fun onStart(activity: Activity) {} + override fun onResume(activity: Activity) {} + override fun onPause(activity: Activity) {} + override fun onStop(activity: Activity) {} + override fun onDestroy(activity: Activity) {} + override fun finish(activity: Activity) {} + + /** + * 页面事件 + */ + override fun onConfigurationChanged(activity: Activity) {} + override fun onBackPressed(activity: Activity) {} + override fun dispatchTouchEvent(activity: Activity) {} + override fun other(activity: Activity) {} + + /** + * app 切换到前台 + */ + override fun onForeground(className: String) {} + + /** + * app 切换到后台 + */ + override fun onBackground() {} +} \ No newline at end of file diff --git a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitActivityOverrideEnum.kt b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceEnum.kt similarity index 94% rename from Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitActivityOverrideEnum.kt rename to Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceEnum.kt index 506c7ced0d14e8cbc8d0fb1ae46dd0ea145c7ba7..d8b47922d6ef55837b43a01582438192788c8e58 100644 --- a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitActivityOverrideEnum.kt +++ b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceEnum.kt @@ -9,7 +9,7 @@ package com.didichuxing.doraemonkit.kit.core * 修订历史: * ================================================ */ -enum class DoKitActivityOverrideEnum { +enum class DoKitServiceEnum { /** * 页面生命周期 */ diff --git a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitActivityOverrideListener.kt b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceInterface.kt similarity index 95% rename from Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitActivityOverrideListener.kt rename to Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceInterface.kt index f448feb0001a1edbed5d2b8a8b95eb51ac8cf51c..6eb11f507059abef9acee590b031663d004219cf 100644 --- a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitActivityOverrideListener.kt +++ b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceInterface.kt @@ -11,7 +11,7 @@ import android.app.Activity * 修订历史: * ================================================ */ -interface DoKitActivityOverrideListener { +interface DoKitServiceInterface { /** * 生命周期 */ diff --git a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceManager.kt b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceManager.kt new file mode 100644 index 0000000000000000000000000000000000000000..bd5daab4b7a41046786b94670e322e61f5dc6d6e --- /dev/null +++ b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/kit/core/DoKitServiceManager.kt @@ -0,0 +1,46 @@ +package com.didichuxing.doraemonkit.kit.core + +import android.app.Activity + +/** + * ================================================ + * 作 者:jint(金台) + * 版 本:1.0 + * 创建日期:2020/12/9-17:00 + * 描 述: + * 修订历史: + * ================================================ + */ +object DoKitServiceManager { + private var mDokitServices: List? = null + + fun register(dokitServices: List) { + mDokitServices = dokitServices + } + + fun dispatch(activityOverrideEnum: DoKitServiceEnum, activity: Activity) { + if (mDokitServices == null) { + return + } + mDokitServices?.forEach { + when (activityOverrideEnum) { + DoKitServiceEnum.onCreate -> it.onCreate(activity) + DoKitServiceEnum.onStart -> it.onStart(activity) + DoKitServiceEnum.onResume -> it.onResume(activity) + DoKitServiceEnum.onPause -> it.onPause(activity) + DoKitServiceEnum.onStop -> it.onStop(activity) + DoKitServiceEnum.onDestroy -> it.onDestroy(activity) + DoKitServiceEnum.finish -> it.finish(activity) + DoKitServiceEnum.onConfigurationChanged -> it.onConfigurationChanged( + activity + ) + DoKitServiceEnum.onBackPressed -> it.onBackPressed(activity) + DoKitServiceEnum.dispatchTouchEvent -> it.dispatchTouchEvent(activity) + DoKitServiceEnum.onBackground -> it.onBackground() + DoKitServiceEnum.onForeground -> it.onForeground(activity::class.java.canonicalName!!) + else -> it.other(activity) + + } + } + } +} \ No newline at end of file diff --git a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/LogHelper.java b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/LogHelper.java index c28ecd5a42f84fdcd2eb9dd187a88b5c0e622cdf..f1198b6bab2f39c8f8663276cf10bd42bf5c6cce 100644 --- a/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/LogHelper.java +++ b/Android/java/doraemonkit/src/main/java/com/didichuxing/doraemonkit/util/LogHelper.java @@ -1,7 +1,5 @@ package com.didichuxing.doraemonkit.util; -import com.didichuxing.doraemonkit.util.LogUtils; - /** * Created by wanglikun on 2018/9/10. */ diff --git a/Android/java/settings.gradle b/Android/java/settings.gradle index bebb29b88a64fa39cf6d67e7dff7c72ae358fe9c..42e8089c2efcb551330d54d7894daedaa776002d 100644 --- a/Android/java/settings.gradle +++ b/Android/java/settings.gradle @@ -1,8 +1,9 @@ include ':app' +include ':doraemonkit-util' +include ':doraemonkit-comm' include ':doraemonkit' include ':doraemonkit-mc' include ':doraemonkit-plugin' -include ':doraemonkit-util' include ':doraemonkit-no-op' include ':doraemonkit-okhttp-v3' include ':doraemonkit-okhttp-v4'