1616 */
1717package com.sensorsdata.analytics.android.plugin
1818
19+ import com.sensorsdata.analytics.android.plugin.hook.SensorsPushInjected
1920import org.objectweb.asm.AnnotationVisitor
2021import org.objectweb.asm.ClassVisitor
2122import org.objectweb.asm.FieldVisitor
@@ -24,8 +25,6 @@ import org.objectweb.asm.MethodVisitor
2425import org.objectweb.asm.Opcodes
2526import org.objectweb.asm.Type
2627
27- import com.sensorsdata.analytics.android.plugin.hook.SensorsPushInjected
28-
2928class SensorsAnalyticsClassVisitor extends ClassVisitor {
3029 private String mClassName
3130 private String mSuperName
@@ -375,6 +374,12 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
375374 methodVisitor. visitVarInsn(ILOAD , 3 )
376375 methodVisitor. visitVarInsn(ISTORE , thirdLocalId)
377376 localIds. add(thirdLocalId)
377+ } else if (nameDesc == " onStopTrackingTouch(Landroid/widget/SeekBar;)V" ) {
378+ localIds = new ArrayList<> ()
379+ int firstLocalId = newLocal(Type . getObjectType(" android/widget/SeekBar" ))
380+ methodVisitor. visitVarInsn(ALOAD , 1 )
381+ methodVisitor. visitVarInsn(ASTORE , firstLocalId)
382+ localIds. add(firstLocalId)
378383 }
379384 } else if (protectedAndNotStaticAccess) {
380385 if (nameDesc == " onListItemClick(Landroid/widget/ListView;Landroid/view/View;IJ)V" ) {
@@ -679,6 +684,16 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
679684 return
680685 }
681686 }
687+ } else if (mInterfaces. contains(' android/widget/SeekBar$OnSeekBarChangeListener' )
688+ && nameDesc == ' onStopTrackingTouch(Landroid/widget/SeekBar;)V' ) {
689+ SensorsAnalyticsMethodCell sensorsAnalyticsMethodCell = SensorsAnalyticsHookConfig . INTERFACE_METHODS
690+ .get(' android/widget/SeekBar$OnSeekBarChangeListeneronStopTrackingTouch(Landroid/widget/SeekBar;)V' )
691+ if (sensorsAnalyticsMethodCell != null ) {
692+ methodVisitor. visitVarInsn(ALOAD , localIds. get(0 ))
693+ methodVisitor. visitMethodInsn(INVOKESTATIC , SensorsAnalyticsHookConfig . SENSORS_ANALYTICS_API , sensorsAnalyticsMethodCell. agentName, sensorsAnalyticsMethodCell. agentDesc, false )
694+ isHasTracked = true
695+ return
696+ }
682697 } else {
683698 for (interfaceName in mInterfaces) {
684699 SensorsAnalyticsMethodCell sensorsAnalyticsMethodCell = SensorsAnalyticsHookConfig . INTERFACE_METHODS . get(interfaceName + nameDesc)
0 commit comments