|
|
@@ -0,0 +1,54 @@
|
|
|
+package com.adealink.weparty.apm
|
|
|
+
|
|
|
+import android.view.View
|
|
|
+import androidx.viewpager2.widget.ViewPager2
|
|
|
+import com.adealink.frame.log.Log
|
|
|
+import com.flyjingfish.android_aop_annotation.ProceedJoinPoint
|
|
|
+import com.flyjingfish.android_aop_annotation.anno.AndroidAopMatchClassMethod
|
|
|
+import com.flyjingfish.android_aop_annotation.base.MatchClassMethod
|
|
|
+import com.flyjingfish.android_aop_annotation.enums.MatchType
|
|
|
+
|
|
|
+/**
|
|
|
+ * 定义一些替换操作
|
|
|
+ * Created by XiaoDongLin.
|
|
|
+ * Date: 2025/8/22
|
|
|
+ */
|
|
|
+@AndroidAopMatchClassMethod(
|
|
|
+ targetClassName = "androidx.viewpager2.widget.ScrollEventAdapter",
|
|
|
+ methodName = ["updateScrollEventValues"],
|
|
|
+ type = MatchType.SELF
|
|
|
+)
|
|
|
+class ScrollEventAdapterMethod : MatchClassMethod {
|
|
|
+ override fun invoke(joinPoint: ProceedJoinPoint, methodName: String): Any? {
|
|
|
+ try {
|
|
|
+ val target = joinPoint.target
|
|
|
+ if (target != null) {
|
|
|
+ val mViewPagerField = target::class.java.getDeclaredField("mViewPager")
|
|
|
+ mViewPagerField.isAccessible = true
|
|
|
+ val mViewPager = mViewPagerField.get(joinPoint.target) as ViewPager2
|
|
|
+ val viewPagerIdString = mViewPager.resources?.getResourceEntryName(mViewPager.id)
|
|
|
+ Log.i(
|
|
|
+ "ScrollEventAdapterMethod",
|
|
|
+ "=====updateScrollEventValues=====${mViewPager}, viewPager:$viewPagerIdString"
|
|
|
+ )
|
|
|
+ }
|
|
|
+ } catch (e: Exception) {
|
|
|
+
|
|
|
+ }
|
|
|
+ return joinPoint.proceed()
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+//@AndroidAopMatchClassMethod(
|
|
|
+// targetClassName = "android.view.View.OnClickListener",
|
|
|
+// methodName = ["onClick"],
|
|
|
+// type = MatchType.EXTENDS //type 一定是 EXTENDS 因为你想 hook 所有继承了 OnClickListener 的类
|
|
|
+//)
|
|
|
+//class MatchOnClick : MatchClassMethod {
|
|
|
+// // @SingleClick(5000) //联合 @SingleClick ,给所有点击增加防多点,6不6
|
|
|
+// override fun invoke(joinPoint: ProceedJoinPoint, methodName: String): Any? {
|
|
|
+// Log.e("MatchOnClick", "=====invoke=====$methodName")
|
|
|
+// return joinPoint.proceed()
|
|
|
+// }
|
|
|
+//}
|