Skip to content

Commit 29b4246

Browse files
committed
完善路由
1 parent 9a6f567 commit 29b4246

File tree

5 files changed

+22
-9
lines changed

5 files changed

+22
-9
lines changed

module-communication-annotation/src/main/java/com/flyjingfish/module_communication_annotation/interfaces/BaseRouterClass.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ interface BaseRouterClass {
99
params: MutableMap<String, Any?>,
1010
byPath: Boolean,
1111
pathInfo: PathInfo,
12+
intent:Any,
1213
invokeRoute: Runnable
1314
)
1415
}

module-communication-intercept/src/main/java/com/flyjingfish/module_communication_intercept/cut/RouteInterceptCut.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.flyjingfish.module_communication_intercept.cut
22

3+
import android.content.Intent
34
import com.flyjingfish.android_aop_annotation.ProceedJoinPoint
45
import com.flyjingfish.android_aop_annotation.anno.AndroidAopMatchClassMethod
56
import com.flyjingfish.android_aop_annotation.base.MatchClassMethod
@@ -19,7 +20,8 @@ internal class RouteInterceptCut : MatchClassMethod{
1920
val map = joinPoint.args?.get(1)
2021
val byPath = joinPoint.args?.get(2)
2122
val pathInfo = joinPoint.args?.get(3)
22-
val proceed = Proceed(joinPoint,path as String,map as MutableMap<String,Any?>,pathInfo as PathInfo,byPath as Boolean)
23+
val intent = joinPoint.args?.get(4)
24+
val proceed = Proceed(joinPoint,path as String,map as MutableMap<String,Any?>,pathInfo as PathInfo,byPath as Boolean,intent as Intent)
2325
RouterInterceptManager.notifyIntercept(proceed)
2426
return null
2527
}

module-communication-intercept/src/main/java/com/flyjingfish/module_communication_intercept/intercept/Proceed.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.flyjingfish.module_communication_intercept.intercept
22

3+
import android.content.Intent
34
import com.flyjingfish.android_aop_annotation.ProceedJoinPoint
45
import com.flyjingfish.module_communication_annotation.bean.PathInfo
56

@@ -20,7 +21,12 @@ class Proceed(
2021
/**
2122
* true则时通过 ModuleRoute 类跳转的,false则是通过帮助类
2223
*/
23-
val byPath:Boolean
24+
val byPath:Boolean,
25+
/**
26+
* 页面跳转的 [Intent]
27+
*
28+
*/
29+
val intent: Intent
2430
) {
2531
internal var hasNext = false
2632
internal lateinit var listener: OnProceedListener

module-communication-ksp/src/main/java/com/flyjingfish/module_communication_ksp/CommunicationKspSymbolProcessor.kt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -292,11 +292,9 @@ class CommunicationKspSymbolProcessor(
292292
)
293293
}
294294
}
295+
295296
whatsMyName1.addStatement(
296-
"routeClazz.goByPath(\"$usePath\",paramMap,false,pathInfo){"
297-
)
298-
whatsMyName1.addStatement(
299-
" val intent = %T(context,routeClazz.$classFunName())",
297+
"val intent = %T(context,routeClazz.$classFunName())",
300298
ClassName.bestGuess(
301299
"android.content.Intent"
302300
)
@@ -309,12 +307,15 @@ class CommunicationKspSymbolProcessor(
309307
typeName?.let {
310308
whatsMyName1.addParameter(paramsName,it)
311309
whatsMyName1.addStatement(
312-
" intent.putExtra(\"$paramsName\",$paramsName)",
310+
"intent.putExtra(\"$paramsName\",$paramsName)",
313311
)
314312
}
315313

316314
}
317315
}
316+
whatsMyName1.addStatement(
317+
"routeClazz.goByPath(\"$usePath\",paramMap,false,pathInfo,intent){"
318+
)
318319
whatsMyName1.addStatement(
319320
" context.startActivity(intent)",
320321
)
@@ -464,6 +465,7 @@ class CommunicationKspSymbolProcessor(
464465
,ClassName.bestGuess(Any::class.qualifiedName!!).copy(nullable = true)))
465466
.addParameter("byPath", Boolean::class)
466467
.addParameter("pathInfo", PathInfo::class)
468+
.addParameter("intent", Any::class)
467469
.addParameter("invokeRoute", Runnable::class)
468470
.addStatement("invokeRoute.run()")
469471
.addModifiers(KModifier.OVERRIDE)

module-communication-route/src/main/java/com/flyjingfish/module_communication_route/ModuleRoute.kt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,10 @@ object ModuleRoute {
126126
}
127127

128128
val clazzInfo = getClassInfo()
129-
clazzInfo?.goRouterClazz?.goByPath(usePath, paramsMap, true,clazzInfo.pathInfo) {
130-
intent.setClass(context, clazzInfo.pathInfo.clazz.java)
129+
clazzInfo?.let {
130+
intent.setClass(context, it.pathInfo.clazz.java)
131+
}
132+
clazzInfo?.goRouterClazz?.goByPath(usePath, paramsMap, true,clazzInfo.pathInfo,intent) {
131133
context.startActivity(intent)
132134
}
133135
}

0 commit comments

Comments
 (0)