IabHelper.smali
.class public final Lcom/imo/android/imoim/billing/IabHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;,
Lcom/imo/android/imoim/billing/IabHelper$b;,
Lcom/imo/android/imoim/billing/IabHelper$a;,
Lcom/imo/android/imoim/billing/IabHelper$e;,
Lcom/imo/android/imoim/billing/IabHelper$c;,
Lcom/imo/android/imoim/billing/IabHelper$d;
}
.end annotation
# instance fields
.field a:Z
.field b:Ljava/lang/String;
.field c:Z
.field d:Z
.field e:Z
.field f:Z
.field g:Z
.field h:Z
.field i:Ljava/lang/String;
.field j:Landroid/content/Context;
.field k:Lcom/android/b/a/a;
.field l:Landroid/content/ServiceConnection;
.field m:I
.field n:Ljava/lang/String;
.field o:Ljava/lang/String;
.field p:Lcom/imo/android/imoim/billing/IabHelper$c;
.field private final q:Ljava/lang/Object;
# direct methods
.method public constructor <init>(Landroid/content/Context;Ljava/lang/String;)V
.registers 5
.line 182
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const/4 v0, 0x0
.line 79
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->a:Z
const-string v1, "IabHelper"
.line 80
iput-object v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->b:Ljava/lang/String;
.line 83
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->c:Z
.line 86
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->d:Z
.line 89
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->e:Z
.line 92
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->f:Z
.line 95
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->g:Z
.line 99
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->h:Z
.line 102
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
iput-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->q:Ljava/lang/Object;
const-string v0, ""
.line 106
iput-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->i:Ljava/lang/String;
const/4 v0, 0x0
.line 122
iput-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->o:Ljava/lang/String;
.line 183
invoke-virtual {p1}, Landroid/content/Context;->getApplicationContext()Landroid/content/Context;
move-result-object p1
iput-object p1, p0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
.line 184
iput-object p2, p0, Lcom/imo/android/imoim/billing/IabHelper;->o:Ljava/lang/String;
const-string p1, "IAB helper created."
.line 185
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
return-void
.end method
.method private a(Landroid/os/Bundle;)I
.registers 5
const-string v0, "RESPONSE_CODE"
.line 874
invoke-virtual {p1, v0}, Landroid/os/Bundle;->get(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p1
if-nez p1, :cond_f
const-string p1, "Bundle with null response code, assuming OK (known issue)"
.line 876
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
const/4 p1, 0x0
return p1
.line 879
:cond_f
instance-of v0, p1, Ljava/lang/Integer;
if-eqz v0, :cond_1a
check-cast p1, Ljava/lang/Integer;
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result p1
return p1
.line 880
:cond_1a
instance-of v0, p1, Ljava/lang/Long;
if-eqz v0, :cond_26
check-cast p1, Ljava/lang/Long;
invoke-virtual {p1}, Ljava/lang/Long;->longValue()J
move-result-wide v0
long-to-int p1, v0
return p1
:cond_26
const-string v0, "Unexpected type for bundle response code."
.line 882
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 883
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 884
new-instance v0, Ljava/lang/RuntimeException;
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Unexpected type for bundle response code: "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private a(Lcom/imo/android/imoim/billing/b;Ljava/lang/String;)I
.registers 13
.annotation system Ldalvik/annotation/Throws;
value = {
Lorg/json/JSONException;,
Landroid/os/RemoteException;
}
.end annotation
.line 945
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
const-string v1, "Querying owned items, item type: "
invoke-virtual {v1, v0}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 946
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "Package name: "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
invoke-virtual {v1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
const/4 v0, 0x0
.line 951
:cond_25
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
const-string v2, "Calling getPurchases with continuation token: "
invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->b(Ljava/lang/String;)V
.line 952
iget-object v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->k:Lcom/android/b/a/a;
if-nez v1, :cond_3e
const-string p1, "IInAppBillingService is null"
.line 953
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
const/16 p1, -0x3eb
return p1
:cond_3e
const/4 v2, 0x3
.line 956
iget-object v3, p0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v3
invoke-interface {v1, v2, v3, p2, v0}, Lcom/android/b/a/a;->a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
move-result-object v0
.line 959
invoke-direct {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->a(Landroid/os/Bundle;)I
move-result v1
.line 960
invoke-static {v1}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object v2
const-string v3, "Owned items response: "
invoke-virtual {v3, v2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-virtual {p0, v2}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
if-eqz v1, :cond_72
.line 962
new-instance p1, Ljava/lang/StringBuilder;
const-string p2, "getPurchases() failed: "
invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {v1}, Lcom/imo/android/imoim/billing/IabHelper;->a(I)Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
return v1
:cond_72
const-string v1, "INAPP_PURCHASE_ITEM_LIST"
.line 965
invoke-virtual {v0, v1}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_fd
const-string v2, "INAPP_PURCHASE_DATA_LIST"
.line 966
invoke-virtual {v0, v2}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_fd
const-string v3, "INAPP_DATA_SIGNATURE_LIST"
.line 967
invoke-virtual {v0, v3}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z
move-result v4
if-nez v4, :cond_8b
goto :goto_fd
.line 972
:cond_8b
invoke-virtual {v0, v1}, Landroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object v1
.line 974
invoke-virtual {v0, v2}, Landroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object v2
.line 976
invoke-virtual {v0, v3}, Landroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object v3
const/4 v4, 0x0
const/4 v5, 0x0
.line 979
:goto_99
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v6
if-ge v5, v6, :cond_e3
.line 980
invoke-virtual {v2, v5}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/lang/String;
.line 981
invoke-virtual {v3, v5}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/lang/String;
.line 982
invoke-virtual {v1, v5}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v8
check-cast v8, Ljava/lang/String;
.line 984
invoke-static {v8}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v8
const-string v9, "Sku is owned: "
invoke-virtual {v9, v8}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
invoke-virtual {p0, v8}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 985
new-instance v8, Lcom/imo/android/imoim/billing/c;
invoke-direct {v8, p2, v6, v7}, Lcom/imo/android/imoim/billing/c;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
.line 4059
iget-object v7, v8, Lcom/imo/android/imoim/billing/c;->h:Ljava/lang/String;
.line 987
invoke-static {v7}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v7
if-eqz v7, :cond_dd
const-string v7, "BUG: empty/null token!"
.line 988
invoke-direct {p0, v7}, Lcom/imo/android/imoim/billing/IabHelper;->f(Ljava/lang/String;)V
.line 989
invoke-static {v6}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v6
const-string v7, "Purchase data: "
invoke-virtual {v7, v6}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v6
invoke-virtual {p0, v6}, Lcom/imo/android/imoim/billing/IabHelper;->b(Ljava/lang/String;)V
.line 993
:cond_dd
invoke-virtual {p1, v8}, Lcom/imo/android/imoim/billing/b;->a(Lcom/imo/android/imoim/billing/c;)V
add-int/lit8 v5, v5, 0x1
goto :goto_99
:cond_e3
const-string v1, "INAPP_CONTINUATION_TOKEN"
.line 1003
invoke-virtual {v0, v1}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 1004
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
const-string v2, "Continuation token: "
invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->b(Ljava/lang/String;)V
.line 1005
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-eqz v1, :cond_25
return v4
:cond_fd
:goto_fd
const-string p1, "Bundle returned from getPurchases() doesn\'t contain required fields."
.line 968
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
const/16 p1, -0x3ea
return p1
.end method
.method private a(Ljava/lang/String;Lcom/imo/android/imoim/billing/b;Ljava/util/List;)I
.registers 12
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Lcom/imo/android/imoim/billing/b;",
"Ljava/util/List<",
"Ljava/lang/String;",
">;)I"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Landroid/os/RemoteException;,
Lorg/json/JSONException;
}
.end annotation
const-string v0, "Querying SKU details."
.line 1012
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 1013
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 1014
invoke-virtual {p2, p1}, Lcom/imo/android/imoim/billing/b;->c(Ljava/lang/String;)Ljava/util/List;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
if-eqz p3, :cond_2d
.line 1016
invoke-interface {p3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object p3
:cond_17
:goto_17
invoke-interface {p3}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_2d
invoke-interface {p3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
.line 1017
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->contains(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_17
.line 1018
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_17
.line 1023
:cond_2d
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result p3
const/4 v1, 0x0
if-nez p3, :cond_3a
const-string p1, "queryPrices: nothing to do because there are no SKUs."
.line 1024
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
return v1
.line 1029
:cond_3a
new-instance p3, Ljava/util/ArrayList;
invoke-direct {p3}, Ljava/util/ArrayList;-><init>()V
.line 1031
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v2
div-int/lit8 v2, v2, 0x14
.line 1032
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v3
rem-int/lit8 v3, v3, 0x14
const/4 v4, 0x0
:goto_4c
if-ge v4, v2, :cond_75
.line 1034
new-instance v5, Ljava/util/ArrayList;
invoke-direct {v5}, Ljava/util/ArrayList;-><init>()V
mul-int/lit8 v6, v4, 0x14
add-int/lit8 v7, v6, 0x14
.line 1035
invoke-virtual {v0, v6, v7}, Ljava/util/ArrayList;->subList(II)Ljava/util/List;
move-result-object v6
invoke-interface {v6}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v6
:goto_5f
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v7
if-eqz v7, :cond_6f
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/lang/String;
.line 1036
invoke-virtual {v5, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_5f
.line 1038
:cond_6f
invoke-virtual {p3, v5}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
add-int/lit8 v4, v4, 0x1
goto :goto_4c
:cond_75
if-eqz v3, :cond_9a
.line 1041
new-instance v4, Ljava/util/ArrayList;
invoke-direct {v4}, Ljava/util/ArrayList;-><init>()V
mul-int/lit8 v2, v2, 0x14
add-int/2addr v3, v2
.line 1042
invoke-virtual {v0, v2, v3}, Ljava/util/ArrayList;->subList(II)Ljava/util/List;
move-result-object v0
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_87
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_97
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
.line 1043
invoke-virtual {v4, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_87
.line 1045
:cond_97
invoke-virtual {p3, v4}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 1048
:cond_9a
invoke-virtual {p3}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object p3
:cond_9e
invoke-interface {p3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_117
invoke-interface {p3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/ArrayList;
.line 1049
new-instance v2, Landroid/os/Bundle;
invoke-direct {v2}, Landroid/os/Bundle;-><init>()V
const-string v3, "ITEM_ID_LIST"
.line 1050
invoke-virtual {v2, v3, v0}, Landroid/os/Bundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
.line 1051
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->k:Lcom/android/b/a/a;
const/4 v3, 0x3
iget-object v4, p0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
invoke-virtual {v4}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v4
invoke-interface {v0, v3, v4, p1, v2}, Lcom/android/b/a/a;->a(ILjava/lang/String;Ljava/lang/String;Landroid/os/Bundle;)Landroid/os/Bundle;
move-result-object v0
const-string v2, "DETAILS_LIST"
.line 1054
invoke-virtual {v0, v2}, Landroid/os/Bundle;->containsKey(Ljava/lang/String;)Z
move-result v3
if-nez v3, :cond_ed
.line 1055
invoke-direct {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->a(Landroid/os/Bundle;)I
move-result p1
if-eqz p1, :cond_e5
.line 1057
new-instance p2, Ljava/lang/StringBuilder;
const-string p3, "getSkuDetails() failed: "
invoke-direct {p2, p3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {p1}, Lcom/imo/android/imoim/billing/IabHelper;->a(I)Ljava/lang/String;
move-result-object p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-virtual {p0, p2}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
return p1
:cond_e5
const-string p1, "getSkuDetails() returned a bundle with neither an error nor a detail list."
.line 1060
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
const/16 p1, -0x3ea
return p1
.line 1065
:cond_ed
invoke-virtual {v0, v2}, Landroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object v0
.line 1068
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_f5
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_9e
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
.line 1069
new-instance v3, Lcom/imo/android/imoim/billing/d;
invoke-direct {v3, p1, v2}, Lcom/imo/android/imoim/billing/d;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 1070
invoke-static {v3}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v2
const-string v4, "Got sku details: "
invoke-virtual {v4, v2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
invoke-virtual {p0, v2}, Lcom/imo/android/imoim/billing/IabHelper;->b(Ljava/lang/String;)V
.line 1071
invoke-virtual {p2, v3}, Lcom/imo/android/imoim/billing/b;->a(Lcom/imo/android/imoim/billing/d;)V
goto :goto_f5
:cond_117
return v1
.end method
.method public static a(I)Ljava/lang/String;
.registers 4
const-string v0, "/"
const-string v1, "0:OK/1:User Canceled/2:Unknown/3:Billing Unavailable/4:Item unavailable/5:Developer Error/6:Error/7:Item Already Owned/8:Item not owned"
.line 840
invoke-virtual {v1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v1
const-string v2, "0:OK/-1001:Remote exception during initialization/-1002:Bad response received/-1003:Purchase signature verification failed/-1004:Send intent failed/-1005:User cancelled/-1006:Unknown purchase response/-1007:Missing token/-1008:Unknown error/-1009:Subscriptions not available/-1010:Invalid consumption attempt"
.line 850
invoke-virtual {v2, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
const/16 v2, -0x3e8
if-gt p0, v2, :cond_31
sub-int/2addr v2, p0
if-ltz v2, :cond_1b
.line 854
array-length v1, v0
if-ge v2, v1, :cond_1b
aget-object p0, v0, v2
return-object p0
.line 855
:cond_1b
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {p0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, ":Unknown IAB Helper Error"
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
:cond_31
if-ltz p0, :cond_3a
.line 857
array-length v0, v1
if-lt p0, v0, :cond_37
goto :goto_3a
.line 860
:cond_37
aget-object p0, v1, p0
return-object p0
.line 858
:cond_3a
:goto_3a
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {p0}, Ljava/lang/String;->valueOf(I)Ljava/lang/String;
move-result-object p0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, ":Unknown"
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
return-object p0
.end method
.method private e(Ljava/lang/String;)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;
}
.end annotation
.line 905
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->q:Ljava/lang/Object;
monitor-enter v0
.line 906
:try_start_3
iget-boolean v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->h:Z
if-nez v1, :cond_1b
.line 911
iput-object p1, p0, Lcom/imo/android/imoim/billing/IabHelper;->i:Ljava/lang/String;
const/4 v1, 0x1
.line 912
iput-boolean v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->h:Z
const-string v1, "Starting async operation: "
.line 913
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 914
monitor-exit v0
return-void
.line 907
:cond_1b
new-instance v1, Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Can\'t start async operation ("
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ") because another async operation ("
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p1, p0, Lcom/imo/android/imoim/billing/IabHelper;->i:Ljava/lang/String;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ") is in progress."
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v1, p1}, Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;-><init>(Ljava/lang/String;)V
throw v1
:catchall_3e
move-exception p1
.line 914
monitor-exit v0
:try_end_40
.catchall {:try_start_3 .. :try_end_40} :catchall_3e
throw p1
.end method
.method private f()V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;
}
.end annotation
.line 326
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->q:Ljava/lang/Object;
monitor-enter v0
.line 327
:try_start_3
iget-boolean v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->h:Z
if-nez v1, :cond_2f
.line 331
monitor-exit v0
:try_end_8
.catchall {:try_start_3 .. :try_end_8} :catchall_4a
const-string v0, "Disposing."
.line 332
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
const/4 v0, 0x0
.line 333
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->c:Z
.line 334
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->l:Landroid/content/ServiceConnection;
if-eqz v0, :cond_22
const-string v0, "Unbinding from service."
.line 335
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 336
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
if-eqz v0, :cond_22
iget-object v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->l:Landroid/content/ServiceConnection;
invoke-virtual {v0, v1}, Landroid/content/Context;->unbindService(Landroid/content/ServiceConnection;)V
:cond_22
const/4 v0, 0x1
.line 338
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->d:Z
const/4 v0, 0x0
.line 339
iput-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
.line 340
iput-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->l:Landroid/content/ServiceConnection;
.line 341
iput-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->k:Lcom/android/b/a/a;
.line 342
iput-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
return-void
.line 328
:cond_2f
:try_start_2f
new-instance v1, Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Can\'t dispose because an async operation ("
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v3, p0, Lcom/imo/android/imoim/billing/IabHelper;->i:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, ") is in progress."
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;-><init>(Ljava/lang/String;)V
throw v1
:catchall_4a
move-exception v1
.line 331
monitor-exit v0
:try_end_4c
.catchall {:try_start_2f .. :try_end_4c} :catchall_4a
throw v1
.end method
.method private f(Ljava/lang/String;)V
.registers 4
.line 1129
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->b:Ljava/lang/String;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
const-string v1, "In-app billing warning: "
invoke-virtual {v1, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 4075
invoke-static {v0, p1}, Lcom/imo/android/imoim/util/bt;->e(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
# virtual methods
.method public final a(ZLjava/util/List;Ljava/util/List;)Lcom/imo/android/imoim/billing/b;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(Z",
"Ljava/util/List<",
"Ljava/lang/String;",
">;",
"Ljava/util/List<",
"Ljava/lang/String;",
">;)",
"Lcom/imo/android/imoim/billing/b;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/imo/android/imoim/billing/IabException;
}
.end annotation
const-string v0, "subs"
const-string v1, "inapp"
.line 627
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->c()V
const-string v2, "queryInventory"
.line 628
invoke-virtual {p0, v2}, Lcom/imo/android/imoim/billing/IabHelper;->a(Ljava/lang/String;)V
.line 630
:try_start_c
new-instance v2, Lcom/imo/android/imoim/billing/b;
invoke-direct {v2}, Lcom/imo/android/imoim/billing/b;-><init>()V
.line 631
invoke-direct {p0, v2, v1}, Lcom/imo/android/imoim/billing/IabHelper;->a(Lcom/imo/android/imoim/billing/b;Ljava/lang/String;)I
move-result v3
if-nez v3, :cond_4c
if-eqz p1, :cond_28
.line 637
invoke-direct {p0, v1, v2, p2}, Lcom/imo/android/imoim/billing/IabHelper;->a(Ljava/lang/String;Lcom/imo/android/imoim/billing/b;Ljava/util/List;)I
move-result p2
if-nez p2, :cond_20
goto :goto_28
.line 639
:cond_20
new-instance p1, Lcom/imo/android/imoim/billing/IabException;
const-string p3, "Error refreshing inventory (querying prices of items)."
invoke-direct {p1, p2, p3}, Lcom/imo/android/imoim/billing/IabException;-><init>(ILjava/lang/String;)V
throw p1
.line 644
:cond_28
:goto_28
iget-boolean p2, p0, Lcom/imo/android/imoim/billing/IabHelper;->f:Z
if-eqz p2, :cond_4b
.line 645
invoke-direct {p0, v2, v0}, Lcom/imo/android/imoim/billing/IabHelper;->a(Lcom/imo/android/imoim/billing/b;Ljava/lang/String;)I
move-result p2
if-nez p2, :cond_43
if-eqz p1, :cond_4b
.line 651
invoke-direct {p0, v0, v2, p3}, Lcom/imo/android/imoim/billing/IabHelper;->a(Ljava/lang/String;Lcom/imo/android/imoim/billing/b;Ljava/util/List;)I
move-result p1
if-nez p1, :cond_3b
goto :goto_4b
.line 653
:cond_3b
new-instance p2, Lcom/imo/android/imoim/billing/IabException;
const-string p3, "Error refreshing inventory (querying prices of subscriptions)."
invoke-direct {p2, p1, p3}, Lcom/imo/android/imoim/billing/IabException;-><init>(ILjava/lang/String;)V
throw p2
.line 647
:cond_43
new-instance p1, Lcom/imo/android/imoim/billing/IabException;
const-string p3, "Error refreshing inventory (querying owned subscriptions)."
invoke-direct {p1, p2, p3}, Lcom/imo/android/imoim/billing/IabException;-><init>(ILjava/lang/String;)V
throw p1
:cond_4b
:goto_4b
return-object v2
.line 633
:cond_4c
new-instance p1, Lcom/imo/android/imoim/billing/IabException;
const-string p2, "Error refreshing inventory (querying owned items)."
invoke-direct {p1, v3, p2}, Lcom/imo/android/imoim/billing/IabException;-><init>(ILjava/lang/String;)V
throw p1
:try_end_54
.catch Landroid/os/RemoteException; {:try_start_c .. :try_end_54} :catch_5f
.catch Lorg/json/JSONException; {:try_start_c .. :try_end_54} :catch_54
:catch_54
move-exception p1
.line 664
new-instance p2, Lcom/imo/android/imoim/billing/IabException;
const/16 p3, -0x3ea
const-string v0, "Error parsing JSON response while refreshing inventory."
invoke-direct {p2, p3, v0, p1}, Lcom/imo/android/imoim/billing/IabException;-><init>(ILjava/lang/String;Ljava/lang/Exception;)V
throw p2
:catch_5f
move-exception p1
.line 661
new-instance p2, Lcom/imo/android/imoim/billing/IabException;
const/16 p3, -0x3e9
const-string v0, "Remote exception while refreshing inventory."
invoke-direct {p2, p3, v0, p1}, Lcom/imo/android/imoim/billing/IabException;-><init>(ILjava/lang/String;Ljava/lang/Exception;)V
throw p2
.end method
.method public final a()V
.registers 2
.line 198
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->c()V
const/4 v0, 0x0
.line 199
iput-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->a:Z
return-void
.end method
.method public final a(Landroid/app/Activity;Ljava/lang/String;ILcom/imo/android/imoim/billing/IabHelper$c;Ljava/lang/String;)V
.registers 14
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;
}
.end annotation
const-string v3, "inapp"
const/4 v4, 0x0
move-object v0, p0
move-object v1, p1
move-object v2, p2
move v5, p3
move-object v6, p4
move-object v7, p5
.line 404
invoke-virtual/range {v0 .. v7}, Lcom/imo/android/imoim/billing/IabHelper;->a(Landroid/app/Activity;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILcom/imo/android/imoim/billing/IabHelper$c;Ljava/lang/String;)V
return-void
.end method
.method public final a(Landroid/app/Activity;Ljava/lang/String;Ljava/lang/String;Ljava/util/List;ILcom/imo/android/imoim/billing/IabHelper$c;Ljava/lang/String;)V
.registers 21
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/app/Activity;",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Ljava/util/List<",
"Ljava/lang/String;",
">;I",
"Lcom/imo/android/imoim/billing/IabHelper$c;",
"Ljava/lang/String;",
")V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;
}
.end annotation
move-object v0, p0
move-object v8, p2
move-object/from16 v9, p3
move/from16 v10, p5
move-object/from16 v11, p6
.line 441
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->c()V
const-string v1, "launchPurchaseFlow"
.line 442
invoke-virtual {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->a(Ljava/lang/String;)V
.line 443
invoke-direct {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->e(Ljava/lang/String;)V
const-string v1, "subs"
.line 446
invoke-virtual {v9, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
const/4 v12, 0x0
if-eqz v1, :cond_32
iget-boolean v1, v0, Lcom/imo/android/imoim/billing/IabHelper;->f:Z
if-nez v1, :cond_32
.line 447
new-instance v1, Lcom/imo/android/imoim/billing/a;
const/16 v2, -0x3f1
const-string v3, "Subscriptions are not available."
invoke-direct {v1, v2, v3}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
.line 449
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->e()V
if-eqz v11, :cond_31
.line 450
invoke-interface {v11, v1, v12}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
:cond_31
return-void
.line 455
:cond_32
:try_start_32
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Constructing buy intent for "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ", item type: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
if-eqz p4, :cond_7f
.line 457
invoke-interface/range {p4 .. p4}, Ljava/util/List;->isEmpty()Z
move-result v1
if-eqz v1, :cond_54
goto :goto_7f
.line 464
:cond_54
iget-boolean v1, v0, Lcom/imo/android/imoim/billing/IabHelper;->g:Z
if-nez v1, :cond_6a
.line 465
new-instance v1, Lcom/imo/android/imoim/billing/a;
const/16 v2, -0x3f3
const-string v3, "Subscription updates are not available."
invoke-direct {v1, v2, v3}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
.line 467
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->e()V
if-eqz v11, :cond_69
.line 468
invoke-interface {v11, v1, v12}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
:cond_69
return-void
.line 471
:cond_6a
iget-object v1, v0, Lcom/imo/android/imoim/billing/IabHelper;->k:Lcom/android/b/a/a;
const/4 v2, 0x5
iget-object v3, v0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v3
move-object/from16 v4, p4
move-object v5, p2
move-object/from16 v6, p3
move-object/from16 v7, p7
invoke-interface/range {v1 .. v7}, Lcom/android/b/a/a;->a(ILjava/lang/String;Ljava/util/List;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
move-result-object v1
goto :goto_91
.line 459
:cond_7f
:goto_7f
iget-object v1, v0, Lcom/imo/android/imoim/billing/IabHelper;->k:Lcom/android/b/a/a;
const/4 v2, 0x3
iget-object v3, v0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v3
move-object v4, p2
move-object/from16 v5, p3
move-object/from16 v6, p7
invoke-interface/range {v1 .. v6}, Lcom/android/b/a/a;->a(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Landroid/os/Bundle;
move-result-object v1
.line 474
:goto_91
invoke-direct {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->a(Landroid/os/Bundle;)I
move-result v2
if-eqz v2, :cond_bc
.line 476
new-instance v1, Ljava/lang/StringBuilder;
const-string v3, "Unable to buy item, Error response: "
invoke-direct {v1, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {v2}, Lcom/imo/android/imoim/billing/IabHelper;->a(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 477
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->e()V
.line 478
new-instance v1, Lcom/imo/android/imoim/billing/a;
const-string v3, "Unable to buy item"
invoke-direct {v1, v2, v3}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
if-eqz v11, :cond_bb
.line 479
invoke-interface {v11, v1, v12}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
:cond_bb
return-void
:cond_bc
const-string v2, "BUY_INTENT"
.line 483
invoke-virtual {v1, v2}, Landroid/os/Bundle;->getParcelable(Ljava/lang/String;)Landroid/os/Parcelable;
move-result-object v1
check-cast v1, Landroid/app/PendingIntent;
.line 484
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "Launching buy intent for "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v2, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, ". Request code: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v10}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {p0, v2}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 485
iput v10, v0, Lcom/imo/android/imoim/billing/IabHelper;->m:I
.line 486
iput-object v11, v0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
.line 487
iput-object v9, v0, Lcom/imo/android/imoim/billing/IabHelper;->n:Ljava/lang/String;
.line 488
invoke-virtual {v1}, Landroid/app/PendingIntent;->getIntentSender()Landroid/content/IntentSender;
move-result-object v2
new-instance v4, Landroid/content/Intent;
invoke-direct {v4}, Landroid/content/Intent;-><init>()V
const/4 v5, 0x0
const/4 v6, 0x0
const/4 v7, 0x0
move-object v1, p1
move/from16 v3, p5
invoke-virtual/range {v1 .. v7}, Landroid/app/Activity;->startIntentSenderForResult(Landroid/content/IntentSender;ILandroid/content/Intent;III)V
:try_end_f5
.catch Landroid/content/IntentSender$SendIntentException; {:try_start_32 .. :try_end_f5} :catch_116
.catch Landroid/os/RemoteException; {:try_start_32 .. :try_end_f5} :catch_f6
return-void
:catch_f6
nop
.line 502
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
const-string v2, "RemoteException while launching purchase flow for sku "
invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 504
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->e()V
.line 506
new-instance v1, Lcom/imo/android/imoim/billing/a;
const/16 v2, -0x3e9
const-string v3, "Remote exception while starting purchase flow"
invoke-direct {v1, v2, v3}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
if-eqz v11, :cond_115
.line 507
invoke-interface {v11, v1, v12}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
:cond_115
return-void
:catch_116
nop
.line 494
invoke-static {p2}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
const-string v2, "SendIntentException while launching purchase flow for sku "
invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 496
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->e()V
.line 498
new-instance v1, Lcom/imo/android/imoim/billing/a;
const/16 v2, -0x3ec
const-string v3, "Failed to send intent."
invoke-direct {v1, v2, v3}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
if-eqz v11, :cond_135
.line 499
invoke-interface {v11, v1, v12}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
:cond_135
return-void
.end method
.method public final a(Lcom/imo/android/imoim/billing/IabHelper$d;)V
.registers 5
.line 224
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->c()V
.line 225
iget-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->c:Z
if-nez v0, :cond_49
const-string v0, "Starting in-app billing setup."
.line 228
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 229
new-instance v0, Lcom/imo/android/imoim/billing/IabHelper$1;
invoke-direct {v0, p0, p1}, Lcom/imo/android/imoim/billing/IabHelper$1;-><init>(Lcom/imo/android/imoim/billing/IabHelper;Lcom/imo/android/imoim/billing/IabHelper$d;)V
iput-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->l:Landroid/content/ServiceConnection;
.line 302
new-instance v0, Landroid/content/Intent;
const-string v1, "com.android.vending.billing.InAppBillingService.BIND"
invoke-direct {v0, v1}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
const-string v1, "com.android.vending"
.line 303
invoke-virtual {v0, v1}, Landroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;
.line 304
iget-object v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
invoke-virtual {v1}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v1
const/4 v2, 0x0
invoke-virtual {v1, v0, v2}, Landroid/content/pm/PackageManager;->queryIntentServices(Landroid/content/Intent;I)Ljava/util/List;
move-result-object v1
if-eqz v1, :cond_3b
.line 305
invoke-interface {v1}, Ljava/util/List;->isEmpty()Z
move-result v1
if-nez v1, :cond_3b
.line 307
iget-object p1, p0, Lcom/imo/android/imoim/billing/IabHelper;->j:Landroid/content/Context;
iget-object v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->l:Landroid/content/ServiceConnection;
const/4 v2, 0x1
invoke-virtual {p1, v0, v1, v2}, Landroid/content/Context;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
return-void
:cond_3b
if-eqz p1, :cond_48
.line 312
new-instance v0, Lcom/imo/android/imoim/billing/a;
const/4 v1, 0x3
const-string v2, "Billing service unavailable on device."
invoke-direct {v0, v1, v2}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
invoke-interface {p1, v0}, Lcom/imo/android/imoim/billing/IabHelper$d;->onIabSetupFinished(Lcom/imo/android/imoim/billing/a;)V
:cond_48
return-void
.line 225
:cond_49
new-instance p1, Ljava/lang/IllegalStateException;
const-string v0, "IAB helper is already set up."
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public final a(Lcom/imo/android/imoim/billing/c;Lcom/imo/android/imoim/billing/IabHelper$a;)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;
}
.end annotation
.line 810
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->c()V
const-string v0, "consume"
.line 811
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->a(Ljava/lang/String;)V
.line 812
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 813
invoke-interface {v1, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 3082
new-instance p1, Landroid/os/Handler;
invoke-direct {p1}, Landroid/os/Handler;-><init>()V
.line 3083
invoke-direct {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->e(Ljava/lang/String;)V
.line 4051
invoke-static {}, Lsg/bigo/core/task/a$a;->a()Lsg/bigo/core/task/a;
move-result-object v0
.line 3084
sget-object v2, Lsg/bigo/core/task/b;->BACKGROUND:Lsg/bigo/core/task/b;
new-instance v3, Lcom/imo/android/imoim/billing/IabHelper$3;
invoke-direct {v3, p0, v1, p2, p1}, Lcom/imo/android/imoim/billing/IabHelper$3;-><init>(Lcom/imo/android/imoim/billing/IabHelper;Ljava/util/List;Lcom/imo/android/imoim/billing/IabHelper$a;Landroid/os/Handler;)V
invoke-virtual {v0, v2, v3}, Lsg/bigo/core/task/a;->a(Lsg/bigo/core/task/b;Ljava/lang/Runnable;)Lbolts/e;
return-void
.end method
.method final a(Ljava/lang/String;)V
.registers 4
.line 866
iget-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->c:Z
if-eqz v0, :cond_5
return-void
.line 867
:cond_5
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "Illegal state for operation ("
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v1, "): IAB helper is not set up."
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 868
new-instance v0, Ljava/lang/IllegalStateException;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
const-string v1, "IAB helper is not set up. Can\'t perform operation: "
invoke-virtual {v1, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final a(ZLjava/util/List;Ljava/util/List;Lcom/imo/android/imoim/billing/IabHelper$e;)V
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(Z",
"Ljava/util/List<",
"Ljava/lang/String;",
">;",
"Ljava/util/List<",
"Ljava/lang/String;",
">;",
"Lcom/imo/android/imoim/billing/IabHelper$e;",
")V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException;
}
.end annotation
.line 696
new-instance v6, Landroid/os/Handler;
invoke-direct {v6}, Landroid/os/Handler;-><init>()V
.line 697
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->c()V
const-string v0, "queryInventory"
.line 698
invoke-virtual {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->a(Ljava/lang/String;)V
const-string v0, "refresh inventory"
.line 699
invoke-direct {p0, v0}, Lcom/imo/android/imoim/billing/IabHelper;->e(Ljava/lang/String;)V
.line 3051
invoke-static {}, Lsg/bigo/core/task/a$a;->a()Lsg/bigo/core/task/a;
move-result-object v7
.line 700
sget-object v8, Lsg/bigo/core/task/b;->BACKGROUND:Lsg/bigo/core/task/b;
new-instance v9, Lcom/imo/android/imoim/billing/IabHelper$2;
move-object v0, v9
move-object v1, p0
move v2, p1
move-object v3, p2
move-object v4, p3
move-object v5, p4
invoke-direct/range {v0 .. v6}, Lcom/imo/android/imoim/billing/IabHelper$2;-><init>(Lcom/imo/android/imoim/billing/IabHelper;ZLjava/util/List;Ljava/util/List;Lcom/imo/android/imoim/billing/IabHelper$e;Landroid/os/Handler;)V
invoke-virtual {v7, v8, v9}, Lsg/bigo/core/task/a;->a(Lsg/bigo/core/task/b;Ljava/lang/Runnable;)Lbolts/e;
return-void
.end method
.method public final a(IILandroid/content/Intent;)Z
.registers 11
.line 526
iget v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->m:I
const/4 v1, 0x0
if-eq p1, v0, :cond_6
return v1
.line 528
:cond_6
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->c()V
const-string p1, "handleActivityResult"
.line 529
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->a(Ljava/lang/String;)V
.line 532
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->e()V
const/16 p1, -0x3ea
const/4 v0, 0x1
const/4 v2, 0x0
if-nez p3, :cond_2b
const-string p2, "Null data in IAB activity result."
.line 535
invoke-virtual {p0, p2}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 536
new-instance p2, Lcom/imo/android/imoim/billing/a;
const-string p3, "Null data in IAB result"
invoke-direct {p2, p1, p3}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
.line 537
iget-object p1, p0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
if-eqz p1, :cond_2a
invoke-interface {p1, p2, v2}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
:cond_2a
return v0
.line 1890
:cond_2b
invoke-virtual {p3}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
move-result-object v3
const-string v4, "RESPONSE_CODE"
invoke-virtual {v3, v4}, Landroid/os/Bundle;->get(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v3
if-nez v3, :cond_3e
const-string v3, "Intent with no response code, assuming OK (known issue)"
.line 1892
invoke-virtual {p0, v3}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
const/4 v3, 0x0
goto :goto_54
.line 1895
:cond_3e
instance-of v4, v3, Ljava/lang/Integer;
if-eqz v4, :cond_49
check-cast v3, Ljava/lang/Integer;
invoke-virtual {v3}, Ljava/lang/Integer;->intValue()I
move-result v3
goto :goto_54
.line 1896
:cond_49
instance-of v4, v3, Ljava/lang/Long;
if-eqz v4, :cond_18f
check-cast v3, Ljava/lang/Long;
invoke-virtual {v3}, Ljava/lang/Long;->longValue()J
move-result-wide v3
long-to-int v3, v3
:goto_54
const-string v4, "INAPP_PURCHASE_DATA"
.line 542
invoke-virtual {p3, v4}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
const-string v5, "INAPP_DATA_SIGNATURE"
.line 543
invoke-virtual {p3, v5}, Landroid/content/Intent;->getStringExtra(Ljava/lang/String;)Ljava/lang/String;
move-result-object v5
const/4 v6, -0x1
if-ne p2, v6, :cond_10d
if-nez v3, :cond_10d
const-string p2, "Successful resultcode from purchase activity."
.line 546
invoke-virtual {p0, p2}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 547
invoke-static {v4}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p2
const-string v3, "Purchase data: "
invoke-virtual {v3, p2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
invoke-virtual {p0, p2}, Lcom/imo/android/imoim/billing/IabHelper;->b(Ljava/lang/String;)V
.line 548
invoke-static {v5}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p2
const-string v3, "Data signature: "
invoke-virtual {v3, p2}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
invoke-virtual {p0, p2}, Lcom/imo/android/imoim/billing/IabHelper;->b(Ljava/lang/String;)V
.line 549
new-instance p2, Ljava/lang/StringBuilder;
const-string v3, "Extras: "
invoke-direct {p2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p3}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
move-result-object v6
invoke-virtual {p2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-virtual {p0, p2}, Lcom/imo/android/imoim/billing/IabHelper;->b(Ljava/lang/String;)V
.line 550
new-instance p2, Ljava/lang/StringBuilder;
const-string v6, "Expected item type: "
invoke-direct {p2, v6}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v6, p0, Lcom/imo/android/imoim/billing/IabHelper;->n:Ljava/lang/String;
invoke-virtual {p2, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-virtual {p0, p2}, Lcom/imo/android/imoim/billing/IabHelper;->b(Ljava/lang/String;)V
if-eqz v4, :cond_e0
if-nez v5, :cond_b1
goto :goto_e0
.line 562
:cond_b1
:try_start_b1
new-instance p2, Lcom/imo/android/imoim/billing/c;
iget-object p3, p0, Lcom/imo/android/imoim/billing/IabHelper;->n:Ljava/lang/String;
invoke-direct {p2, p3, v4, v5}, Lcom/imo/android/imoim/billing/c;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
const-string p3, "Purchase signature successfully verified."
.line 572
invoke-virtual {p0, p3}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
:try_end_bd
.catch Lorg/json/JSONException; {:try_start_b1 .. :try_end_bd} :catch_cd
.line 582
iget-object p1, p0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
if-eqz p1, :cond_18e
.line 583
new-instance p3, Lcom/imo/android/imoim/billing/a;
const-string v2, "Success"
invoke-direct {p3, v1, v2}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
invoke-interface {p1, p3, p2}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
goto/16 :goto_18e
:catch_cd
nop
const-string p2, "Failed to parse purchase data."
.line 575
invoke-virtual {p0, p2}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 577
new-instance p3, Lcom/imo/android/imoim/billing/a;
invoke-direct {p3, p1, p2}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
.line 578
iget-object p1, p0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
if-eqz p1, :cond_df
invoke-interface {p1, p3, v2}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
:cond_df
return v0
:cond_e0
:goto_e0
const-string p1, "BUG: either purchaseData or dataSignature is null."
.line 553
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 554
new-instance p1, Ljava/lang/StringBuilder;
invoke-direct {p1, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {p3}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
move-result-object p2
invoke-virtual {p2}, Landroid/os/Bundle;->toString()Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->b(Ljava/lang/String;)V
.line 555
new-instance p1, Lcom/imo/android/imoim/billing/a;
const/16 p2, -0x3f0
const-string p3, "IAB returned null purchaseData or dataSignature"
invoke-direct {p1, p2, p3}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
.line 556
iget-object p2, p0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
if-eqz p2, :cond_10c
invoke-interface {p2, p1, v2}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
:cond_10c
return v0
:cond_10d
if-ne p2, v6, :cond_135
.line 588
new-instance p1, Ljava/lang/StringBuilder;
const-string p2, "Result code was OK but in-app billing response was not OK: "
invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {v3}, Lcom/imo/android/imoim/billing/IabHelper;->a(I)Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 589
iget-object p1, p0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
if-eqz p1, :cond_18e
.line 590
new-instance p1, Lcom/imo/android/imoim/billing/a;
const-string p2, "Problem purchashing item."
invoke-direct {p1, v3, p2}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
.line 591
iget-object p2, p0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
invoke-interface {p2, p1, v2}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
goto :goto_18e
:cond_135
if-nez p2, :cond_15d
.line 595
new-instance p1, Ljava/lang/StringBuilder;
const-string p2, "Purchase canceled - Response: "
invoke-direct {p1, p2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {v3}, Lcom/imo/android/imoim/billing/IabHelper;->a(I)Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
.line 596
new-instance p1, Lcom/imo/android/imoim/billing/a;
const/16 p2, -0x3ed
const-string p3, "User canceled."
invoke-direct {p1, p2, p3}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
.line 597
iget-object p2, p0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
if-eqz p2, :cond_18e
invoke-interface {p2, p1, v2}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
goto :goto_18e
.line 600
:cond_15d
new-instance p1, Ljava/lang/StringBuilder;
const-string p3, "Purchase failed. Result code: "
invoke-direct {p1, p3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-static {p2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p2, ". Response: "
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 601
invoke-static {v3}, Lcom/imo/android/imoim/billing/IabHelper;->a(I)Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
.line 600
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 602
new-instance p1, Lcom/imo/android/imoim/billing/a;
const/16 p2, -0x3ee
const-string p3, "Unknown purchase response."
invoke-direct {p1, p2, p3}, Lcom/imo/android/imoim/billing/a;-><init>(ILjava/lang/String;)V
.line 603
iget-object p2, p0, Lcom/imo/android/imoim/billing/IabHelper;->p:Lcom/imo/android/imoim/billing/IabHelper$c;
if-eqz p2, :cond_18e
invoke-interface {p2, p1, v2}, Lcom/imo/android/imoim/billing/IabHelper$c;->onIabPurchaseFinished(Lcom/imo/android/imoim/billing/a;Lcom/imo/android/imoim/billing/c;)V
:cond_18e
:goto_18e
return v0
:cond_18f
const-string p1, "Unexpected type for intent response code."
.line 1898
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 1899
invoke-virtual {v3}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p1
invoke-virtual {p0, p1}, Lcom/imo/android/imoim/billing/IabHelper;->d(Ljava/lang/String;)V
.line 1900
new-instance p1, Ljava/lang/RuntimeException;
new-instance p2, Ljava/lang/StringBuilder;
const-string p3, "Unexpected type for intent response code: "
invoke-direct {p2, p3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
invoke-virtual {v3}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object p3
invoke-virtual {p3}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public final b()V
.registers 3
.line 350
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->q:Ljava/lang/Object;
monitor-enter v0
.line 351
:try_start_3
iget-boolean v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->h:Z
if-eqz v1, :cond_10
const-string v1, "Will dispose after async operation finishes."
.line 352
invoke-virtual {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
const/4 v1, 0x1
.line 353
iput-boolean v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->e:Z
:try_end_f
.catchall {:try_start_3 .. :try_end_f} :catchall_15
goto :goto_13
.line 356
:cond_10
:try_start_10
invoke-direct {p0}, Lcom/imo/android/imoim/billing/IabHelper;->f()V
:try_end_13
.catch Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException; {:try_start_10 .. :try_end_13} :catch_13
.catchall {:try_start_10 .. :try_end_13} :catchall_15
.line 362
:catch_13
:goto_13
:try_start_13
monitor-exit v0
return-void
:catchall_15
move-exception v1
monitor-exit v0
:try_end_17
.catchall {:try_start_13 .. :try_end_17} :catchall_15
throw v1
.end method
.method final b(Ljava/lang/String;)V
.registers 3
.line 1117
iget-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->a:Z
if-eqz v0, :cond_9
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->b:Ljava/lang/String;
.line 4071
invoke-static {v0, p1}, Lcom/imo/android/imoim/util/bt;->d(Ljava/lang/String;Ljava/lang/String;)V
:cond_9
return-void
.end method
.method final c()V
.registers 3
.line 366
iget-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->d:Z
if-nez v0, :cond_5
return-void
:cond_5
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "IabHelper was disposed of, so it cannot be used."
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method final c(Ljava/lang/String;)V
.registers 3
.line 1121
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->b:Ljava/lang/String;
invoke-static {v0, p1}, Lcom/imo/android/imoim/util/bt;->g(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method final d(Ljava/lang/String;)V
.registers 4
.line 1125
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->b:Ljava/lang/String;
invoke-static {p1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
const-string v1, "In-app billing error: "
invoke-virtual {v1, p1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
invoke-static {v0, p1}, Lcom/imo/android/imoim/util/bt;->h(Ljava/lang/String;Ljava/lang/String;)V
return-void
.end method
.method public final d()Z
.registers 2
.line 371
invoke-virtual {p0}, Lcom/imo/android/imoim/billing/IabHelper;->c()V
.line 372
iget-boolean v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->f:Z
return v0
.end method
.method final e()V
.registers 4
.line 918
iget-object v0, p0, Lcom/imo/android/imoim/billing/IabHelper;->q:Ljava/lang/Object;
monitor-enter v0
.line 919
:try_start_3
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Ending async operation: "
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v2, p0, Lcom/imo/android/imoim/billing/IabHelper;->i:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {p0, v1}, Lcom/imo/android/imoim/billing/IabHelper;->c(Ljava/lang/String;)V
const-string v1, ""
.line 920
iput-object v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->i:Ljava/lang/String;
const/4 v1, 0x0
.line 921
iput-boolean v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->h:Z
.line 922
iget-boolean v1, p0, Lcom/imo/android/imoim/billing/IabHelper;->e:Z
:try_end_1f
.catchall {:try_start_3 .. :try_end_1f} :catchall_26
if-eqz v1, :cond_24
.line 924
:try_start_21
invoke-direct {p0}, Lcom/imo/android/imoim/billing/IabHelper;->f()V
:try_end_24
.catch Lcom/imo/android/imoim/billing/IabHelper$IabAsyncInProgressException; {:try_start_21 .. :try_end_24} :catch_24
.catchall {:try_start_21 .. :try_end_24} :catchall_26
.line 930
:catch_24
:cond_24
:try_start_24
monitor-exit v0
return-void
:catchall_26
move-exception v1
monitor-exit v0
:try_end_28
.catchall {:try_start_24 .. :try_end_28} :catchall_26
throw v1
.end method