Skip to content

Commit cf1b739

Browse files
author
dengshiwei
committed
Release 3.2.6
1 parent 6c54b04 commit cf1b739

File tree

3 files changed

+53
-9
lines changed

3 files changed

+53
-9
lines changed

plugin/ext.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
project.ext {
2-
pluginVersion = '3.2.5'
2+
pluginVersion = '3.2.6'
33
Properties properties = new Properties()
44
if (project.file('local.properties').exists()) {
55
properties.load(project.file('local.properties').newDataInputStream())

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/SensorsAnalyticsClassVisitor.groovy

Lines changed: 51 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -236,10 +236,23 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
236236
methodVisitor.visitVarInsn(ALOAD, 1)
237237
methodVisitor.visitVarInsn(ASTORE, variableID)
238238
} else if (nameDesc == 'onItemClick(Landroid/widget/AdapterView;Landroid/view/View;IJ)V' && pubAndNoStaticAccess) {
239+
localIds = new ArrayList<>()
239240
isOnItemClickMethod = true
240-
variableID = newLocal(Type.getObjectType("java/lang/Integer"))
241+
242+
int first = newLocal(Type.getObjectType("android/widget/AdapterView"))
241243
methodVisitor.visitVarInsn(ALOAD, 1)
242-
methodVisitor.visitVarInsn(ASTORE, variableID)
244+
methodVisitor.visitVarInsn(ASTORE, first)
245+
localIds.add(first)
246+
247+
int second = newLocal(Type.getObjectType("android/view/View"))
248+
methodVisitor.visitVarInsn(ALOAD, 2)
249+
methodVisitor.visitVarInsn(ASTORE, second)
250+
localIds.add(second)
251+
252+
int third = newLocal(Type.INT_TYPE)
253+
methodVisitor.visitVarInsn(ILOAD, 3)
254+
methodVisitor.visitVarInsn(ISTORE, third)
255+
localIds.add(third)
243256
} else if (nameDesc == 'setUserVisibleHint(Z)V' && pubAndNoStaticAccess) {
244257
isSetUserVisibleHint = true
245258
variableID = newLocal(Type.getObjectType("java/lang/Integer"))
@@ -265,6 +278,26 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
265278
methodVisitor.visitVarInsn(ILOAD, 2)
266279
methodVisitor.visitVarInsn(ISTORE, secondLocalId)
267280
localIds.add(secondLocalId)
281+
} else if (nameDesc == "onClick(Landroid/content/DialogInterface;I)V" && pubAndNoStaticAccess) {
282+
localIds = new ArrayList<>()
283+
int firstLocalId = newLocal(Type.getObjectType("android/content/DialogInterface"))
284+
methodVisitor.visitVarInsn(ALOAD, 1)
285+
methodVisitor.visitVarInsn(ASTORE, firstLocalId)
286+
localIds.add(firstLocalId)
287+
int secondLocalId = newLocal(Type.INT_TYPE)
288+
methodVisitor.visitVarInsn(ILOAD, 2)
289+
methodVisitor.visitVarInsn(ISTORE, secondLocalId)
290+
localIds.add(secondLocalId)
291+
} else if (SensorsAnalyticsUtil.isTargetMenuMethodDesc(nameDesc) && pubAndNoStaticAccess) {
292+
localIds = new ArrayList<>()
293+
int firstLocalId = newLocal(Type.getObjectType("java/lang/Object"))
294+
methodVisitor.visitVarInsn(ALOAD, 0)
295+
methodVisitor.visitVarInsn(ASTORE, firstLocalId)
296+
localIds.add(firstLocalId)
297+
int secondLocalId = newLocal(Type.getObjectType("android/view/MenuItem"))
298+
methodVisitor.visitVarInsn(ALOAD, 1)
299+
methodVisitor.visitVarInsn(ASTORE, secondLocalId)
300+
localIds.add(secondLocalId)
268301
}
269302
if (transformHelper.isHookOnMethodEnter) {
270303
handleCode()
@@ -370,8 +403,8 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
370403
* 目前支持 onContextItemSelected(MenuItem item)、onOptionsItemSelected(MenuItem item)
371404
*/
372405
if (SensorsAnalyticsUtil.isTargetMenuMethodDesc(nameDesc)) {
373-
methodVisitor.visitVarInsn(ALOAD, 0)
374-
methodVisitor.visitVarInsn(ALOAD, 1)
406+
methodVisitor.visitVarInsn(ALOAD, localIds[0])
407+
methodVisitor.visitVarInsn(ALOAD, localIds[1])
375408
methodVisitor.visitMethodInsn(INVOKESTATIC, SensorsAnalyticsHookConfig.SENSORS_ANALYTICS_API, "trackMenuItem", "(Ljava/lang/Object;Landroid/view/MenuItem;)V", false)
376409
isHasTracked = true
377410
return
@@ -426,9 +459,9 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
426459

427460
if (mInterfaces != null && mInterfaces.length > 0) {
428461
if (isOnItemClickMethod && mInterfaces.contains('android/widget/AdapterView$OnItemClickListener')) {
429-
methodVisitor.visitVarInsn(ALOAD, variableID)
430-
methodVisitor.visitVarInsn(ALOAD, 2)
431-
methodVisitor.visitVarInsn(ILOAD, 3)
462+
methodVisitor.visitVarInsn(ALOAD, localIds.get(0))
463+
methodVisitor.visitVarInsn(ALOAD, localIds.get(1))
464+
methodVisitor.visitVarInsn(ILOAD, localIds.get(2))
432465
methodVisitor.visitMethodInsn(INVOKESTATIC, SensorsAnalyticsHookConfig.SENSORS_ANALYTICS_API, "trackListView", "(Landroid/widget/AdapterView;Landroid/view/View;I)V", false)
433466
isHasTracked = true
434467
return
@@ -443,6 +476,17 @@ class SensorsAnalyticsClassVisitor extends ClassVisitor {
443476
isHasTracked = true
444477
return
445478
}
479+
} else if (mInterfaces.contains('android/content/DialogInterface$OnClickListener')
480+
&& nameDesc == 'onClick(Landroid/content/DialogInterface;I)V') {
481+
SensorsAnalyticsMethodCell sensorsAnalyticsMethodCell = SensorsAnalyticsHookConfig.INTERFACE_METHODS
482+
.get('android/content/DialogInterface$OnClickListeneronClick(Landroid/content/DialogInterface;I)V')
483+
if (sensorsAnalyticsMethodCell != null) {
484+
methodVisitor.visitVarInsn(ALOAD, localIds.get(0))
485+
methodVisitor.visitVarInsn(ILOAD, localIds.get(1))
486+
methodVisitor.visitMethodInsn(INVOKESTATIC, SensorsAnalyticsHookConfig.SENSORS_ANALYTICS_API, sensorsAnalyticsMethodCell.agentName, sensorsAnalyticsMethodCell.agentDesc, false)
487+
isHasTracked = true
488+
return
489+
}
446490
} else {
447491
for (interfaceName in mInterfaces) {
448492
SensorsAnalyticsMethodCell sensorsAnalyticsMethodCell = SensorsAnalyticsHookConfig.INTERFACE_METHODS.get(interfaceName + nameDesc)

plugin/src/main/groovy/com/sensorsdata/analytics/android/plugin/SensorsAnalyticsTransform.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import java.util.jar.JarOutputStream
4646

4747
class SensorsAnalyticsTransform extends Transform {
4848
private SensorsAnalyticsTransformHelper transformHelper
49-
public static final String VERSION = "3.2.5"
49+
public static final String VERSION = "3.2.6"
5050
public static final String MIN_SDK_VERSION = "4.0.7"
5151
private WaitableExecutor waitableExecutor
5252
private URLClassLoader urlClassLoader

0 commit comments

Comments
 (0)