smali语法笔记以及QQ7.5.0普通红包点击分析

    if-eqz v4, :cond_a #如果!=null

表示如果v4为true就跳转到cond_a 否则继续执行

    if-nez v4, :cond_a #如果!=null

表示如果v4不为true就跳转到cond_a 否则继续执行

    if-ltz v4, :cond_a 

如果小于boolean小于0 就跳转到cond_a

    if-gez v4, :cond_a 

如果大于等于0 就跳转到cond_a

更多

“if-eq vA, vB, :cond_**” 如果vA等于vB则跳转到:cond_**

“if-ne vA, vB, :cond_**” 如果vA不等于vB则跳转到:cond_**

“if-lt vA, vB, :cond_**” 如果vA小于vB则跳转到:cond_**

“if-ge vA, vB, :cond_**” 如果vA大于等于vB则跳转到:cond_**

“if-gt vA, vB, :cond_**” 如果vA大于vB则跳转到:cond_**

“if-le vA, vB, :cond_**” 如果vA小于等于vB则跳转到:cond_**

“if-eqz vA, :cond_**” 如果vA等于0则跳转到:cond_**

“if-nez vA, :cond_**” 如果vA不等于0则跳转到:cond_**

“if-ltz vA, :cond_**” 如果vA小于0则跳转到:cond_**

“if-gez vA, :cond_**” 如果vA大于等于0则跳转到:cond_**

“if-gtz vA, :cond_**” 如果vA大于0则跳转到:cond_**

“if-lez vA, :cond_**” 如果vA小于等于0则跳转到:cond_**
field  定义变量

.method  方法

.parameter  方法参数

.prologue  方法开始

.line 12  此方法位于第12行

invoke-super  调用父函数

const/high16  v0, 0x7fo3  把0x7fo3赋值给v0

invoke-direct  调用函数

return-void  函数返回void

.end method  函数结束

new-instance  创建实例

iput-object  对象赋值

iget-object  调用对象

invoke-static  调用静态函数

实战qq红包点击事件

.class public Luhx;
.super Ljava/lang/Object;
.source "ProGuard"

# interfaces
.implements Landroid/view/View$OnClickListener;


# instance fields
.field final synthetic a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;


# direct methods
.method public constructor (Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;)V
    .registers 2

    .prologue
 #.line 435
    iput-object p1, p0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    invoke-direct {p0}, Ljava/lang/Object;->()V

    return-void
.end method


# virtual methods
.method public onClick(Landroid/view/View;)V
    .registers 21

    .prologue
 #.line 441
    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    invoke-static {v2}, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a(Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;)Z

    move-result v2

    if-eqz v2, :cond_b #为true就跳转到cond_a   (!QQWalletMsgItemBuilder.a(this.a)) {

 #.line 609
    :cond_a
    :goto_a
    return-void

 #.line 447
    :cond_b
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v2

 #.line 448
    move-object/from16 v0, p0

    iget-object v4, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-wide v4, v4, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->c:J

    invoke-static {v4, v5, v2, v3}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->a(JJ)Z

    move-result v4

    if-eqz v4, :cond_a #如果!=null  // if (QWalletRedPkgUtils.a(this.a.c, currentTimeMillis)) {   否则跳出去了cond_a

 #.line 452
    move-object/from16 v0, p0

    iget-object v4, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iput-wide v2, v4, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->c:J

 #.line 454
    invoke-static/range {p1 .. p1}, Lcom/tencent/mobileqq/activity/aio/AIOUtils;->a(Landroid/view/View;)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder$QWalletMsgHolder;

 #.line 455
    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder$QWalletMsgHolder;->a:Lcom/tencent/mobileqq/data/ChatMessage;

    move-object v14, v2

    check-cast v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;

 #.line 457
    const/4 v2, 0x0

 #.line 458
    const/16 v16, 0x0

 #.line 459
    move-object/from16 v0, p0

    iget-object v3, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v3, v3, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget-object v15, v3, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Ljava/lang/String;

 #.line 460
    if-eqz v14, :cond_a #  if (messageForQQWalletMsg != null) { 否则又跳出去了

 #.line 463
    invoke-static {v14}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->a(Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;)Z

    move-result v3

 #.line 464
    if-nez v3, :cond_116

    iget-object v4, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;

    if-eqz v4, :cond_116 # if (!a && messageForQQWalletMsg.mQQWalletTransferMsg != null) {  就会走类型是不是等于9

 #.line 465
    iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;

    iget-object v0, v2, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;

    move-object/from16 v17, v0

 #.line 467
    iget v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->messageType:I

    const/16 v3, 0x9

    if-ne v2, v3, :cond_de

 #.line 468
    iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;

    iget-object v2, v2, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->body:Lcom/tencent/mobileqq/data/QQWalletAioBodys;

 #.line 470
    if-eqz v2, :cond_b7

    iget v2, v2, Lcom/tencent/mobileqq/data/QQWalletAioBodys;->pfa_type:I

    move/from16 v18, v2

 #.line 471
    :goto_59
    const/4 v2, 0x1

    move/from16 v0, v18

    if-ne v0, v2, :cond_bb

 #.line 472
    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;

    const-string v3, "P_CliOper"

    const-string v4, "Vip_pay_mywallet"

    const-string v5, ""

    const-string v6, "wallet"

    const-string v7, "autofriendpay.aio.qiukaitong.click"

    const/4 v8, 0x0

    const/4 v9, 0x0

    const-string v10, ""

    const-string v11, ""

    const-string v12, ""

    const-string v13, ""

    invoke-static/range {v2 .. v13}, Lcom/tencent/mobileqq/statistics/ReportController;->b(Lcom/tencent/mobileqq/app/QQAppInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

 #.line 476
    :cond_7b
    :goto_7b
    invoke-static {}, Lcom/tencent/qphone/base/util/QLog;->isColorLevel()Z

    move-result v2

    if-eqz v2, :cond_9c

 #.line 477
    const-string v2, "QQWalletMsgItemBuilder"

    const/4 v3, 0x2

    new-instance v4, Ljava/lang/StringBuilder;

    invoke-direct {v4}, Ljava/lang/StringBuilder;->()V

    const-string v5, "onClick pfa_type="

    invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v4

    move/from16 v0, v18

    invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v4

    invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v4

    invoke-static {v2, v3, v4}, Lcom/tencent/qphone/base/util/QLog;->d(Ljava/lang/String;ILjava/lang/String;)V

    :cond_9c
    move-object v6, v15

    move-object/from16 v5, v16

    move-object/from16 v10, v17

 #.line 566
    :goto_a1
    const/4 v3, 0x0#=================== 从领取红包那边过来的

 #.line 567
    if-eqz v10, :cond_a

 #.line 570
    iget-object v2, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->actionsPriority:Ljava/lang/String;

    invoke-static {v2}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v2

    if-eqz v2, :cond_262 #判断  actionsPriority是否不为空

 #.line 571
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getContext()Landroid/content/Context; #为空的话  QWalletRedPkgUtils.b(view.getContext(), qQWalletTransferMsgElem.linkUrl);并返回

    move-result-object v2

    iget-object v3, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->linkUrl:Ljava/lang/String;

    invoke-static {v2, v3}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->b(Landroid/content/Context;Ljava/lang/String;)Z

    goto/16 :goto_a

 #.line 470
    :cond_b7
    const/4 v2, 0x0

    move/from16 v18, v2

    goto :goto_59

 #.line 473
    :cond_bb
    const/4 v2, 0x2

    move/from16 v0, v18

    if-ne v0, v2, :cond_7b

 #.line 474
    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;

    const-string v3, "P_CliOper"

    const-string v4, "Vip_pay_mywallet"

    const-string v5, ""

    const-string v6, "wallet"

    const-string v7, "autofriendpay.aio.yikaitong.click"

    const/4 v8, 0x0

    const/4 v9, 0x0

    const-string v10, ""

    const-string v11, ""

    const-string v12, ""

    const-string v13, ""

    invoke-static/range {v2 .. v13}, Lcom/tencent/mobileqq/statistics/ReportController;->b(Lcom/tencent/mobileqq/app/QQAppInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    goto :goto_7b

 #.line 481
    :cond_de
    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;

    const-string v3, "P_CliOper"

    const-string v4, "Vip_pay_mywallet"

    const-string v5, ""

    const-string v6, "transferaccountmsg"

    const-string v7, "show"

    const/4 v8, 0x0

    const/4 v9, 0x0

    new-instance v10, Ljava/lang/StringBuilder;

    invoke-direct {v10}, Ljava/lang/StringBuilder;->()V

    const-string v11, ""

    invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v10

    iget-object v11, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;

    iget v11, v11, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->templateId:I

    invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v10

    invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v10

    const-string v11, ""

    const-string v12, ""

    const-string v13, ""

    invoke-static/range {v2 .. v13}, Lcom/tencent/mobileqq/statistics/ReportController;->b(Lcom/tencent/mobileqq/app/QQAppInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    move-object v6, v15

    move-object/from16 v5, v16

    move-object/from16 v10, v17

    goto :goto_a1

 #.line 484
    :cond_116
    if-eqz v3, :cond_17e

    iget-object v4, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;#if (!a && messageForQQWalletMsg.mQQWalletTransferMsg != null) {第二条判断不是否为空 否则走第二个或者第三个else

    if-eqz v4, :cond_17e #不等于空就继续??  又到了   Object obj = (this.a.a.a == 0 || this.a.a.a == 1000 || this.a.a.a == 1004 |

 #.line 485
    iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;

    iget-object v2, v2, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;

 #.line 490
    new-instance v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    invoke-direct {v3}, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->()V

    iput-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

 #.line 491
    iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    iget-object v4, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;

    iget-object v4, v4, Lcom/tencent/mobileqq/data/QQWalletTransferMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;

    iput-object v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;

 #.line 492
    const/16 v3, -0x7e9

    iput v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgtype:I

 #.line 493
    iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    const-string v4, ""

    iput-object v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->authkey:Ljava/lang/String;

 #.line 494
    iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    const-string v4, ""

    iput-object v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->redPacketId:Ljava/lang/String;

 #.line 495
    iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    const/4 v4, 0x0

    iput v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->redtype:I

 #.line 496
    iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    const/4 v4, 0x0

    iput v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->templateId:I

 #.line 497
    iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    const/4 v4, 0x1

    iput-boolean v4, v3, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->isOpened:Z

 #.line 498
    const/4 v3, 0x0

    iput-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletTransferMsg:Lcom/tencent/mobileqq/data/QQWalletTransferMsg;

 #.line 499
    invoke-virtual {v14}, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->getBytes()[B

    move-result-object v3

    iput-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgData:[B

 #.line 500
    move-object/from16 v0, p0

    iget-object v3, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v3, v3, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;

    invoke-virtual {v3}, Lcom/tencent/mobileqq/app/QQAppInterface;->a()Lcom/tencent/mobileqq/app/message/QQMessageFacade;

    move-result-object v3

    move-object/from16 v0, p0

    iget-object v4, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v4, v4, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget-object v4, v4, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Ljava/lang/String;

    move-object/from16 v0, p0

    iget-object v5, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v5, v5, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget v5, v5, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I

    iget-wide v6, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->uniseq:J

    iget-object v8, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgData:[B

    invoke-virtual/range {v3 .. v8}, Lcom/tencent/mobileqq/app/message/QQMessageFacade;->a(Ljava/lang/String;IJ[B)V

    move-object v6, v15

    move-object/from16 v5, v16

    move-object v10, v2

    goto/16 :goto_a1

 #.line 502
    :cond_17e
    if-eqz v3, :cond_2f8  #y真正领取红包逻辑1

    iget-object v3, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    if-eqz v3, :cond_2f8 #可能是判断是否不为空 那么这里肯定不为空

 #.line 504
    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I
#===========
    if-eqz v2, :cond_1d6

    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I

    const/16 v3, 0x3e8 #1000

    if-eq v2, v3, :cond_1d6

    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;#正常领取逻辑某

    iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I

    const/16 v3, 0x3ec

    if-eq v2, v3, :cond_1d6

    move-object/from16 v0, p0#pass

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I

    const/16 v3, 0x3e9

    if-eq v2, v3, :cond_1d6

    move-object/from16 v0, p0#===========

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I

    const/16 v3, 0x2712

    if-eq v2, v3, :cond_1d6

    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;#======exit

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I

    const/16 v3, 0x2714 #1004

    if-eq v2, v3, :cond_1d6 #如果不等于1004就跳转cond_1d6这里等于 继续往下走

    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;#pase

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget v2, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I

    const/16 v3, 0x3f0 #1008

    if-ne v2, v3, :cond_25f #如果v2的值不等于1008就跳转到cond_25f显然城里

    :cond_1d6
    const/4 v2, 0x1

 #.line 512
    :goto_1d7
    if-eqz v2, :cond_1ea  #判断是否是一件发送  刚刚默认为0?

 #.line 513
    invoke-virtual {v14}, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->isSend()Z

    move-result v2

    if-nez v2, :cond_1ea

 #.line 514
    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;

    invoke-virtual {v2}, Lcom/tencent/mobileqq/app/QQAppInterface;->getCurrentAccountUin()Ljava/lang/String;

    move-result-object v2

    move-object v15, v2

 #.line 518
    :cond_1ea #又到了authkey来了
    iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    iget-object v0, v2, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->elem:Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;

    move-object/from16 v17, v0
#开始autokey
 #.line 519
    iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    iget-object v0, v2, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->authkey:Ljava/lang/String;

    move-object/from16 v16, v0

 #.line 520
    const/16 v2, -0x7e9#-2025

    iput v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgtype:I#赋值msgtype=

 #.line 521
    iget-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    const/4 v3, 0x1 #给isOpened设置为true

    iput-boolean v3, v2, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->isOpened:Z

 #.line 522
    invoke-virtual {v14}, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->getBytes()[B

    move-result-object v2

    iput-object v2, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgData:[B

 #.line 524
    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;

    invoke-virtual {v2}, Lcom/tencent/mobileqq/app/QQAppInterface;->a()Lcom/tencent/mobileqq/app/message/QQMessageFacade;

    move-result-object v3

    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget-object v4, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:Ljava/lang/String;

    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    iget v5, v2, Lcom/tencent/mobileqq/activity/aio/SessionInfo;->a:I

    iget-wide v6, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->uniseq:J

    iget-object v8, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->msgData:[B

    invoke-virtual/range {v3 .. v8}, Lcom/tencent/mobileqq/app/message/QQMessageFacade;->a(Ljava/lang/String;IJ[B)V
#=============没打开都执行了
 #.line 561
    move-object/from16 v0, p0

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v2, v2, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/app/QQAppInterface;

    const-string v3, "P_CliOper"#======================这里的代码是领取未打卡的红包会执行的逻辑

    const-string v4, "Vip_pay_mywallet"

    const-string v5, ""

    const-string v6, "transferaccountmsg"

    const-string v7, "show"

    const/4 v8, 0x0

    const/4 v9, 0x0

    new-instance v10, Ljava/lang/StringBuilder;

    invoke-direct {v10}, Ljava/lang/StringBuilder;->()V

    const-string v11, ""

    invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v10

    iget-object v11, v14, Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;->mQQWalletRedPacketMsg:Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;

    iget v11, v11, Lcom/tencent/mobileqq/data/QQWalletRedPacketMsg;->templateId:I

    invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v10

    invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v10

    const-string v11, ""

    const-string v12, ""

    const-string v13, ""

    invoke-static/range {v2 .. v13}, Lcom/tencent/mobileqq/statistics/ReportController;->b(Lcom/tencent/mobileqq/app/QQAppInterface;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

    move-object v6, v15

    move-object/from16 v5, v16

    move-object/from16 v10, v17

    goto/16 :goto_a1#跳转到另外一个段代码块了

 #.line 504
    :cond_25f #直接跳转到这里来了
    const/4 v2, 0x0

    goto/16 :goto_1d7

 #.line 575
    :cond_262 #刚刚不为空那么进入了分割字符串逻辑 可惜as调试不能知道具体局部变量代码是多少。
    iget-object v2, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->actionsPriority:Ljava/lang/String;

    const-string v4, "\\|"

    invoke-virtual {v2, v4}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;

    move-result-object v11

 #.line 576
    const/4 v2, 0x0

    move v9, v2

    move v2, v3

    :goto_26d
    array-length v3, v11

    if-ge v9, v3, :cond_a#如果v9大于v3就跳转到cond_a也就是退出了

 #.line 577
    aget-object v3, v11, v9 #显然没有大于 进入while循环

    invoke-static {v3}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z

    move-result v3

    if-eqz v3, :cond_27e #如果不为空就跳转到cond_27e

    move v3, v2

 #.line 576
    :goto_279
    add-int/lit8 v2, v9, 0x1

    move v9, v2

    move v2, v3

    goto :goto_26d

 #.line 581
    :cond_27e
    :try_start_27e
    aget-object v3, v11, v9

    invoke-static {v3}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;#    i3 = Integer.valueOf(split[i2]).intValue();

    move-result-object v3

    invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
    :try_end_287
    .catch Ljava/lang/Exception; {:try_start_27e .. :try_end_287} :catch_299

    move-result v2

 #.line 591
    :cond_288
    :goto_288
    const/4 v3, 0x1

    if-ne v2, v3, :cond_2cb# if (i3 == 1)   #如果不等于1就跳转到cond_2cb

 #.line 592
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getContext()Landroid/content/Context;

    move-result-object v2

    iget-object v3, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->linkUrl:Ljava/lang/String;

    invoke-static {v2, v3}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->b(Landroid/content/Context;Ljava/lang/String;)Z

    move-result v2

    if-nez v2, :cond_a

 #.line 605
    :cond_297
    const/4 v3, -0x1

    goto :goto_279

 #.line 582
    :catch_299
    move-exception v3

 #.line 583
    invoke-static {}, Lcom/tencent/qphone/base/util/QLog;->isDevelopLevel()Z

    move-result v4

    if-eqz v4, :cond_2a3

 #.line 584
    invoke-virtual {v3}, Ljava/lang/Exception;->printStackTrace()V

 #.line 586
    :cond_2a3
    invoke-static {}, Lcom/tencent/qphone/base/util/QLog;->isColorLevel()Z

    move-result v4

    if-eqz v4, :cond_288

 #.line 587
    const-string v4, "QQWalletMsgItemBuilder"

    const/4 v7, 0x2

    new-instance v8, Ljava/lang/StringBuilder;

    invoke-direct {v8}, Ljava/lang/StringBuilder;->()V

    const-string v12, "QQWalletMsgItemBuilder failed to convert String:"

    invoke-virtual {v8, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v8

    aget-object v12, v11, v9

    invoke-virtual {v8, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v8

    const-string v12, " to Interger,"

    invoke-virtual {v8, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v8

    invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v8

    invoke-static {v4, v7, v8, v3}, Lcom/tencent/qphone/base/util/QLog;->d(Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V

    goto :goto_288

 #.line 595
    :cond_2cb
    const/4 v3, 0x2#刚才不等于1那么判断是否不等于 ==2 不等于的话继续跳转

    if-ne v2, v3, :cond_2dc

 #.line 596
    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getContext()Landroid/content/Context;

    move-result-object v2

    iget-object v3, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->jumpUrl:Ljava/lang/String;

    invoke-static {v2, v3}, Lcom/tencent/mobileqq/activity/qwallet/utils/QWalletRedPkgUtils;->a(Landroid/content/Context;Ljava/lang/String;)Z

    move-result v2

    if-eqz v2, :cond_297

    goto/16 :goto_a

 #.line 599
    :cond_2dc
    const/4 v3, 0x3 #由于还是不等于又跳到我这里来了

    if-ne v2, v3, :cond_297 #还是不等于3就继续跳转

 #.line 600
    move-object/from16 v0, p0#等于3 执行了   if (QQWalletMsgItemBuilder.a(this.a, view.getContext(), qQWalletTransferMsgElem.nativeAndroi

    iget-object v2, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    invoke-virtual/range {p1 .. p1}, Landroid/view/View;->getContext()Landroid/content/Context;

    move-result-object v3

    iget-object v4, v10, Lcom/tencent/mobileqq/data/QQWalletTransferMsgElem;->nativeAndroid:Ljava/lang/String;

    move-object/from16 v0, p0

    iget-object v7, v0, Luhx;->a:Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;

    iget-object v8, v7, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a:Lcom/tencent/mobileqq/activity/aio/SessionInfo;

    move-object v7, v14

    invoke-static/range {v2 .. v8}, Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;->a(Lcom/tencent/mobileqq/activity/aio/item/QQWalletMsgItemBuilder;Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/tencent/mobileqq/data/MessageForQQWalletMsg;Lcom/tencent/mobileqq/activity/aio/SessionInfo;)Z

    move-result v2

    if-eqz v2, :cond_297 #如果是true就返回了。

    goto/16 :goto_a #果然为true

    :cond_2f8
    move-object v6, v15

    move-object/from16 v5, v16

    move-object v10, v2

    goto/16 :goto_a1
.end method

对应的源代码


/* compiled from: ProGuard */
public class uhx implements OnClickListener {
    final /* synthetic */ QQWalletMsgItemBuilder a;

    public uhx(QQWalletMsgItemBuilder qQWalletMsgItemBuilder) {
        this.a = qQWalletMsgItemBuilder;
    }

    public void onClick(View view) {
        if (!QQWalletMsgItemBuilder.a(this.a)) {
            long currentTimeMillis = System.currentTimeMillis();
            if (QWalletRedPkgUtils.a(this.a.c, currentTimeMillis)) {
                this.a.c = currentTimeMillis;
                MessageForQQWalletMsg messageForQQWalletMsg = (MessageForQQWalletMsg) ((QWalletMsgHolder) AIOUtils.a(view)).a;
                String str = this.a.a.a;
                if (messageForQQWalletMsg != null) {
                    String str2;
                    String str3;
                    QQWalletTransferMsgElem qQWalletTransferMsgElem;
                    boolean a = QWalletRedPkgUtils.a(messageForQQWalletMsg);//如果已经领取了
                    QQWalletTransferMsgElem qQWalletTransferMsgElem2;
                    if (!a && messageForQQWalletMsg.mQQWalletTransferMsg != null) {
                        qQWalletTransferMsgElem2 = messageForQQWalletMsg.mQQWalletTransferMsg.elem;
                        if (messageForQQWalletMsg.messageType == 9) {
                            QQWalletAioBodys qQWalletAioBodys = messageForQQWalletMsg.mQQWalletTransferMsg.body;
                            int i = qQWalletAioBodys != null ? qQWalletAioBodys.pfa_type : 0;
                            if (i == 1) {
                                ReportController.b(this.a.a, "P_CliOper", "Vip_pay_mywallet", "", "wallet", "autofriendpay.aio.qiukaitong.click", 0, 0, "", "", "", "");
                            } else if (i == 2) {
                                ReportController.b(this.a.a, "P_CliOper", "Vip_pay_mywallet", "", "wallet", "autofriendpay.aio.yikaitong.click", 0, 0, "", "", "", "");
                            }
                            if (QLog.isColorLevel()) {
                                QLog.d("QQWalletMsgItemBuilder", 2, "onClick pfa_type=" + i);
                            }
                            str2 = str;
                            str3 = null;
                            qQWalletTransferMsgElem = qQWalletTransferMsgElem2;
                        } else {
                            ReportController.b(this.a.a, "P_CliOper", "Vip_pay_mywallet", "", "transferaccountmsg", "show", 0, 0, "" + messageForQQWalletMsg.mQQWalletTransferMsg.templateId, "", "", "");
                            str2 = str;
                            str3 = null;
                            qQWalletTransferMsgElem = qQWalletTransferMsgElem2;
                        }
                    } else if (a && messageForQQWalletMsg.mQQWalletTransferMsg != null) {
                        QQWalletTransferMsgElem qQWalletTransferMsgElem3 = messageForQQWalletMsg.mQQWalletTransferMsg.elem;
                        messageForQQWalletMsg.mQQWalletRedPacketMsg = new QQWalletRedPacketMsg();
                        messageForQQWalletMsg.mQQWalletRedPacketMsg.elem = messageForQQWalletMsg.mQQWalletTransferMsg.elem;
                        messageForQQWalletMsg.msgtype = -2025;
                        messageForQQWalletMsg.mQQWalletRedPacketMsg.authkey = "";
                        messageForQQWalletMsg.mQQWalletRedPacketMsg.redPacketId = "";
                        messageForQQWalletMsg.mQQWalletRedPacketMsg.redtype = 0;
                        messageForQQWalletMsg.mQQWalletRedPacketMsg.templateId = 0;
                        messageForQQWalletMsg.mQQWalletRedPacketMsg.isOpened = true;
                        messageForQQWalletMsg.mQQWalletTransferMsg = null;
                        messageForQQWalletMsg.msgData = messageForQQWalletMsg.getBytes();
                        this.a.a.a().a(this.a.a.a, this.a.a.a, messageForQQWalletMsg.uniseq, messageForQQWalletMsg.msgData);
                        str2 = str;
                        str3 = null;
                        qQWalletTransferMsgElem = qQWalletTransferMsgElem3;
                    } else if (!a || messageForQQWalletMsg.mQQWalletRedPacketMsg == null) {
                        str2 = str;
                        str3 = null;
                        qQWalletTransferMsgElem = null;
                    } else { //可疑执行代码  又是执行这里看来是知道有没有领取的啊
                    Object obj = (this.a.a.a == 0 || this.a.a.a == 1000 || this.a.a.a == 1004 || this.a.a.a == 1001 || this.a.a.a == 10002 || this.a.a.a == 10004 || this.a.a.a == 1008) ? 1 : null;
                        if (!(obj == null || messageForQQWalletMsg.isSend())) {
                            str = this.a.a.getCurrentAccountUin();
                        }//这里是真实领取红包调用的代码
                        qQWalletTransferMsgElem2 = messageForQQWalletMsg.mQQWalletRedPacketMsg.elem;
                        String str4 = messageForQQWalletMsg.mQQWalletRedPacketMsg.authkey;
                        messageForQQWalletMsg.msgtype = -2025;
                        messageForQQWalletMsg.mQQWalletRedPacketMsg.isOpened = true;
                        messageForQQWalletMsg.msgData = messageForQQWalletMsg.getBytes();
                        this.a.a.a().a(this.a.a.a, this.a.a.a, messageForQQWalletMsg.uniseq, messageForQQWalletMsg.msgData);
                        ReportController.b(this.a.a, "P_CliOper", "Vip_pay_mywallet", "", "transferaccountmsg", "show", 0, 0, "" + messageForQQWalletMsg.mQQWalletRedPacketMsg.templateId, "", "", "");
                        str2 = str;
                        str3 = str4;
                        qQWalletTransferMsgElem = qQWalletTransferMsgElem2;
                    }
                    if (qQWalletTransferMsgElem == null) {
                        return;
                    }
                    if (TextUtils.isEmpty(qQWalletTransferMsgElem.actionsPriority)) {
                        QWalletRedPkgUtils.b(view.getContext(), qQWalletTransferMsgElem.linkUrl);
                        return;
                    }
                    String[] split = qQWalletTransferMsgElem.actionsPriority.split("\\|");
                    int i2 = 0;
                    int i3 = 0;
                    while (i2 < split.length) {
                        int i4;
                        if (TextUtils.isEmpty(split[i2])) {
                            i4 = i3;
                        } else {
                            try {
                                i3 = Integer.valueOf(split[i2]).intValue();
                            } catch (Throwable e) {
                                if (QLog.isDevelopLevel()) {
                                    e.printStackTrace();
                                }
                                if (QLog.isColorLevel()) {
                                    QLog.d("QQWalletMsgItemBuilder", 2, "QQWalletMsgItemBuilder failed to convert String:" + split[i2] + " to Interger,", e);
                                }
                            }
                            if (i3 == 1) {
                                if (QWalletRedPkgUtils.b(view.getContext(), qQWalletTransferMsgElem.linkUrl)) {
                                    return;
                                }
                            } else if (i3 == 2) {
                                if (QWalletRedPkgUtils.a(view.getContext(), qQWalletTransferMsgElem.jumpUrl)) {
                                    return;
                                }
                            } else if (i3 == 3) {//执行了这个代码 if -ne v2 v3
                                if (QQWalletMsgItemBuilder.a(this.a, view.getContext(), qQWalletTransferMsgElem.nativeAndroid, str3, str2, messageForQQWalletMsg, this.a.a)) {
                                    return;
                                }
                            }
                            i4 = -1;
                        }
                        i2++;
                        i3 = i4;
                    }
                }
            }
        }
    }

最后不得不吐槽,smali跳转的晕头转向的。没有一个api如果记不住还真的有点晕!
最后调用了这里

 private boolean a(Context context, String str, String str2, String str3, MessageForQQWalletMsg messageForQQWalletMsg, SessionInfo sessionInfo) {
        if (context == null || TextUtils.isEmpty(str)) {
            return false;
        }
        String[] split = str.split("\\?");
        String str4 = split[0];
        if (TextUtils.isEmpty(str4)) {
            return false;
        }
        HashMap parseUrlParams;
        Intent intent;
        if (split.length > 1) {
            parseUrlParams = messageForQQWalletMsg.parseUrlParams(split[1]);
        } else {
            parseUrlParams = new HashMap();
        }
        String str5;
        String str6;
        if (str4.equals("pay")) {
            str5 = (String) parseUrlParams.get("payData");
            str6 = (String) parseUrlParams.get("reqCode");
            if (TextUtils.isEmpty(str6) || TextUtils.isEmpty(str5)) {
                return false;
            }
            Bundle bundle = new Bundle();
            bundle.putString("json", str5);
            bundle.putString("callbackSn", "0");
            intent = new Intent(context, PayBridgeActivity.class);
            intent.putExtras(bundle);
            intent.putExtra("pay_requestcode", Integer.valueOf(str6).intValue());
        } else if (str4.equals("red")) {
            String str7 = (String) parseUrlParams.get("id");
            if (TextUtils.isEmpty(str7)) {
                return false;
            }
            String str8 = messageForQQWalletMsg.mQQWalletRedPacketMsg.elem.cftImage;
            Bundle a = QWalletRedPkgUtils.a(this.a, sessionInfo, messageForQQWalletMsg);
            int i = a.getInt("groupType");
            String string = a.getString("name");
            r2 = QWalletRedPkgUtils.a(this.a, messageForQQWalletMsg, sessionInfo, i, string, str7, str2, str3, "appid#1344242394|bargainor_id#1000030201|channel#msg", "graphb", str8);
            if (this.f6783a != null && messageForQQWalletMsg.mQQWalletRedPacketMsg.envelopeid > 0) {
                try {
                    JSONObject jSONObject = r2.getJSONObject("extra_data");
                    r4 = this.f6783a.a(String.valueOf(messageForQQWalletMsg.mQQWalletRedPacketMsg.envelopeid), messageForQQWalletMsg.mQQWalletRedPacketMsg.envelopeName);
                    if (QLog.isColorLevel()) {
                        QLog.d("vipBgImage", 2, r4);
                    }
                    jSONObject.put("vipBgImage", r4);
                } catch (Exception e) {
                }
            }
            Bundle bundle2 = new Bundle();
            bundle2.putString("json", r2.toString());
            bundle2.putString("callbackSn", "0");
            if (str8 != null) {
                bundle2.putString("cftImageUrl", str8);
            }
            if (str7 != null && str7.length() > 4) {
                str7 = "****" + str7.substring(4);
            }
            bundle2.putLong("vacreport_key_seq", VACDReportUtil.a(null, "qqwallet", "graphb", "open", "groupType=" + i + "&msgType=" + messageForQQWalletMsg.messageType + "&redId=" + str7, 0, null));
            intent = new Intent(context, PayBridgeActivity.class);
            intent.putExtras(bundle2);
            intent.putExtra("pay_requestcode", 5);
        } else if (str4.equals("pfa")) {
            r4 = "appid#1344242394|bargainor_id#1000030201|channel#paymsg";
            String str9 = "payByFriendConfirm";
            str5 = (String) parseUrlParams.get("data");
            str6 = (String) parseUrlParams.get("tokenid");
            if (TextUtils.isEmpty(str6) || TextUtils.isEmpty(str5)) {
                return false;
            }
            JSONObject jSONObject2 = new JSONObject();
            try {
                jSONObject2.put("userId", this.a.getCurrentAccountUin());
                jSONObject2.put("viewTag", str9);
                jSONObject2.put("appInfo", r4);
                jSONObject2.put("comeForm", 2);
                r2 = new JSONObject();
                r2.put("pfa_req", str);
                r2.put("token_id", str6);
                jSONObject2.put("extra_data", r2);
            } catch (Exception e2) {
                if (QLog.isDevelopLevel()) {
                    e2.printStackTrace();
                }
            }
            Bundle bundle3 = new Bundle();
            bundle3.putString("json", jSONObject2.toString());
            bundle3.putString("callbackSn", "0");
            intent = new Intent(context, PayBridgeActivity.class);
            intent.putExtras(bundle3);
            intent.putExtra("pay_requestcode", 5);
        } else {
            Class loadClass;
            try {
                ClassLoader classLoader = QQWalletMsgItemBuilder.class.getClassLoader();
                if (classLoader == null) {
                    return false;
                }
                loadClass = classLoader.loadClass(str4);
                if (loadClass == null) {
                    return false;
                }
                Intent intent2 = new Intent(context, loadClass);
                for (Entry entry : parseUrlParams.entrySet()) {
                    intent2.putExtra((String) entry.getKey(), (String) entry.getValue());
                }
                intent = intent2;
            } catch (Throwable e3) {
                if (QLog.isDevelopLevel()) {
                    e3.printStackTrace();
                }
                if (QLog.isColorLevel()) {
                    QLog.d("QQWalletMsgItemBuilder", 2, "QQWalletMsgItemBuilder failed to find Class : " + str4, e3);
                }
                loadClass = null;
            }
        }
        try {
            context.startActivity(intent);
            return true;
        } catch (Throwable e32) {
            if (QLog.isDevelopLevel()) {
                e32.printStackTrace();
            }
            if (QLog.isColorLevel()) {
                QLog.d("QQWalletMsgItemBuilder", 2, "QQWalletMsgItemBuilder failed to startActivity : " + str4, e32);
            }
            return false;
        }
    }

你可能感兴趣的:(smali语法笔记以及QQ7.5.0普通红包点击分析)