提交 efad2066 编写于 作者: J jackjintai

modify:

[Android]-引入auto-service
上级 ef3f5cf2
......@@ -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")
......
......@@ -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")
......
......@@ -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"
]
}
/build
\ No newline at end of file
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
ARTIFACT_ID=dokitx-comm
\ No newline at end of file
# 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
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.didichuxing.doraemonkit.comm">
</manifest>
\ No newline at end of file
#!/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
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
......@@ -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) {
......
......@@ -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"]
......
......@@ -146,7 +146,8 @@ object DoraemonKitReal {
it
)
} as MutableList<KitWrapItem>
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<DoKitActivityOverrideListener>()
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()
......
......@@ -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() {
......
package com.didichuxing.doraemonkit.kit.core
import android.app.Activity
/**
* ================================================
* 作 者:jint(金台)
* 版 本:1.0
* 创建日期:2020/12/9-17:00
* 描 述:
* 修订历史:
* ================================================
*/
object DoKitActivityOverrideManager {
private val activityOverrideListener: MutableList<DoKitActivityOverrideListener> by lazy {
mutableListOf<DoKitActivityOverrideListener>()
}
fun register(doKitActivityOverrideListeners: MutableList<DoKitActivityOverrideListener>) {
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
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
......@@ -9,7 +9,7 @@ package com.didichuxing.doraemonkit.kit.core
* 修订历史:
* ================================================
*/
enum class DoKitActivityOverrideEnum {
enum class DoKitServiceEnum {
/**
* 页面生命周期
*/
......
......@@ -11,7 +11,7 @@ import android.app.Activity
* 修订历史:
* ================================================
*/
interface DoKitActivityOverrideListener {
interface DoKitServiceInterface {
/**
* 生命周期
*/
......
package com.didichuxing.doraemonkit.kit.core
import android.app.Activity
/**
* ================================================
* 作 者:jint(金台)
* 版 本:1.0
* 创建日期:2020/12/9-17:00
* 描 述:
* 修订历史:
* ================================================
*/
object DoKitServiceManager {
private var mDokitServices: List<DoKitServiceInterface>? = null
fun register(dokitServices: List<DoKitServiceInterface>) {
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
package com.didichuxing.doraemonkit.util;
import com.didichuxing.doraemonkit.util.LogUtils;
/**
* Created by wanglikun on 2018/9/10.
*/
......
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'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册