InAppPurchaseEventManager.smali
.class Lcom/facebook/appevents/internal/InAppPurchaseEventManager;
.super Ljava/lang/Object;
.source "InAppPurchaseEventManager.java"
# static fields
.field private static final AS_INTERFACE:Ljava/lang/String; = "asInterface"
.field private static final CACHE_CLEAR_TIME_LIMIT_SEC:I = 0x93a80
.field private static final DETAILS_LIST:Ljava/lang/String; = "DETAILS_LIST"
.field private static final ERROR_BILLING_NOT_SUPPORTED:I = 0x0
.field private static final ERROR_CLASS_OBJ_NULL:I = 0x1
.field private static final ERROR_EXCEEDING_QUERY_NUM:I = 0x6
.field private static final ERROR_ILLEGAL_ACCESS:I = 0x4
.field private static final ERROR_ILLEGAL_TARGET:I = 0x5
.field private static final ERROR_INVOKE_METHOD_RETURN_NULL:I = 0x7
.field private static final ERROR_METHOD_OBJ_NULL:I = 0x2
.field private static final ERROR_OBJ_NULL:I = 0x3
.field private static final GET_PURCHASES:Ljava/lang/String; = "getPurchases"
.field private static final GET_PURCHASE_HISTORY:Ljava/lang/String; = "getPurchaseHistory"
.field private static final GET_SKU_DETAILS:Ljava/lang/String; = "getSkuDetails"
.field private static final INAPP:Ljava/lang/String; = "inapp"
.field private static final INAPP_CONTINUATION_TOKEN:Ljava/lang/String; = "INAPP_CONTINUATION_TOKEN"
.field private static final INAPP_PURCHASE_DATA_LIST:Ljava/lang/String; = "INAPP_PURCHASE_DATA_LIST"
.field private static final IN_APP_BILLING_SERVICE:Ljava/lang/String; = "com.android.vending.billing.IInAppBillingService"
.field private static final IN_APP_BILLING_SERVICE_STUB:Ljava/lang/String; = "com.android.vending.billing.IInAppBillingService$Stub"
.field private static final IS_BILLING_SUPPORTED:Ljava/lang/String; = "isBillingSupported"
.field private static final ITEM_ID_LIST:Ljava/lang/String; = "ITEM_ID_LIST"
.field private static final LAST_CLEARED_TIME:Ljava/lang/String; = "LAST_CLEARED_TIME"
.field private static final LAST_LOGGED_TIME_SEC:Ljava/lang/String; = "LAST_LOGGED_TIME_SEC"
.field private static final MAX_QUERY_PURCHASE_NUM:I = 0x1e
.field private static final PACKAGE_NAME:Ljava/lang/String;
.field private static final PURCHASE_EXPIRE_TIME_SEC:I = 0x15180
.field private static final PURCHASE_INAPP_STORE:Ljava/lang/String; = "com.facebook.internal.PURCHASE"
.field private static final PURCHASE_STOP_QUERY_TIME_SEC:I = 0x4b0
.field private static final PURCHASE_SUBS_STORE:Ljava/lang/String; = "com.facebook.internal.PURCHASE_SUBS"
.field private static final RESPONSE_CODE:Ljava/lang/String; = "RESPONSE_CODE"
.field private static final SKU_DETAILS_STORE:Ljava/lang/String; = "com.facebook.internal.SKU_DETAILS"
.field private static final SKU_DETAIL_EXPIRE_TIME_SEC:I = 0xa8c0
.field private static final SUBSCRIPTION:Ljava/lang/String; = "subs"
.field private static final SUBSCRIPTION_HARTBEAT_INTERVAL:J = 0xa8c0L
.field private static final TAG:Ljava/lang/String;
.field private static final classMap:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
.end field
.field private static final methodMap:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/reflect/Method;",
">;"
}
.end annotation
.end field
.field private static final purchaseInappSharedPrefs:Landroid/content/SharedPreferences;
.field private static final purchaseSubsSharedPrefs:Landroid/content/SharedPreferences;
.field private static final skuDetailSharedPrefs:Landroid/content/SharedPreferences;
# direct methods
.method static constructor <clinit>()V
.registers 3
.line 45
const-class v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;
.line 46
invoke-virtual {v0}, Ljava/lang/Class;->getCanonicalName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->TAG:Ljava/lang/String;
.line 48
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->methodMap:Ljava/util/HashMap;
.line 50
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->classMap:Ljava/util/HashMap;
.line 88
invoke-static {}, Lcom/facebook/FacebookSdk;->getApplicationContext()Landroid/content/Context;
move-result-object v0
invoke-virtual {v0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->PACKAGE_NAME:Ljava/lang/String;
.line 101
invoke-static {}, Lcom/facebook/FacebookSdk;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const-string v1, "com.facebook.internal.SKU_DETAILS"
const/4 v2, 0x0
invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object v0
sput-object v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->skuDetailSharedPrefs:Landroid/content/SharedPreferences;
.line 105
invoke-static {}, Lcom/facebook/FacebookSdk;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const-string v1, "com.facebook.internal.PURCHASE"
invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object v0
sput-object v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseInappSharedPrefs:Landroid/content/SharedPreferences;
.line 109
invoke-static {}, Lcom/facebook/FacebookSdk;->getApplicationContext()Landroid/content/Context;
move-result-object v0
const-string v1, "com.facebook.internal.PURCHASE_SUBS"
invoke-virtual {v0, v1, v2}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object v0
sput-object v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseSubsSharedPrefs:Landroid/content/SharedPreferences;
return-void
.end method
.method constructor <init>()V
.registers 1
.line 44
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static asInterface(Landroid/content/Context;Landroid/os/IBinder;)Ljava/lang/Object;
.registers 5
const/4 v0, 0x1
new-array v0, v0, [Ljava/lang/Object;
const/4 v1, 0x0
aput-object p1, v0, v1
const-string p1, "com.android.vending.billing.IInAppBillingService$Stub"
const-string v1, "asInterface"
const/4 v2, 0x0
.line 125
invoke-static {p0, p1, v1, v2, v0}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->invokeMethod(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static clearSkuDetailsCache()V
.registers 8
.line 664
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
const-wide/16 v2, 0x3e8
div-long/2addr v0, v2
.line 667
sget-object v2, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->skuDetailSharedPrefs:Landroid/content/SharedPreferences;
const-string v3, "LAST_CLEARED_TIME"
const-wide/16 v4, 0x0
invoke-interface {v2, v3, v4, v5}, Landroid/content/SharedPreferences;->getLong(Ljava/lang/String;J)J
move-result-wide v6
cmp-long v2, v6, v4
if-nez v2, :cond_23
.line 669
sget-object v2, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->skuDetailSharedPrefs:Landroid/content/SharedPreferences;
invoke-interface {v2}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v2
.line 670
invoke-interface {v2, v3, v0, v1}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;
move-result-object v0
.line 671
invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->apply()V
goto :goto_3d
:cond_23
sub-long v4, v0, v6
const-wide/32 v6, 0x93a80
cmp-long v2, v4, v6
if-lez v2, :cond_3d
.line 673
sget-object v2, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->skuDetailSharedPrefs:Landroid/content/SharedPreferences;
invoke-interface {v2}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v2
.line 674
invoke-interface {v2}, Landroid/content/SharedPreferences$Editor;->clear()Landroid/content/SharedPreferences$Editor;
move-result-object v2
.line 675
invoke-interface {v2, v3, v0, v1}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;
move-result-object v0
.line 676
invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->apply()V
:cond_3d
:goto_3d
return-void
.end method
.method private static filterPurchasesInapp(Ljava/util/ArrayList;)Ljava/util/ArrayList;
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;)",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 532
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 533
sget-object v1, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseInappSharedPrefs:Landroid/content/SharedPreferences;
invoke-interface {v1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v1
.line 534
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
const-wide/16 v4, 0x3e8
div-long/2addr v2, v4
.line 535
invoke-virtual {p0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_16
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v6
if-eqz v6, :cond_63
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/lang/String;
.line 537
:try_start_22
new-instance v7, Lorg/json/JSONObject;
invoke-direct {v7, v6}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string v8, "productId"
.line 538
invoke-virtual {v7, v8}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
const-string v9, "purchaseTime"
.line 539
invoke-virtual {v7, v9}, Lorg/json/JSONObject;->getLong(Ljava/lang/String;)J
move-result-wide v9
const-string v11, "purchaseToken"
.line 540
invoke-virtual {v7, v11}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
.line 541
div-long/2addr v9, v4
sub-long v9, v2, v9
const-wide/32 v11, 0x15180
cmp-long v13, v9, v11
if-lez v13, :cond_44
goto :goto_16
.line 545
:cond_44
sget-object v9, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseInappSharedPrefs:Landroid/content/SharedPreferences;
const-string v10, ""
invoke-interface {v9, v8, v10}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v9
.line 547
invoke-virtual {v9, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v9
if-eqz v9, :cond_53
goto :goto_16
.line 551
:cond_53
invoke-interface {v1, v8, v7}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
.line 552
invoke-virtual {v0, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:try_end_59
.catch Lorg/json/JSONException; {:try_start_22 .. :try_end_59} :catch_5a
goto :goto_16
:catch_5a
move-exception v6
.line 554
sget-object v7, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->TAG:Ljava/lang/String;
const-string v8, "parsing purchase failure: "
invoke-static {v7, v8, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_16
.line 558
:cond_63
invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->apply()V
return-object v0
.end method
.method private static getClass(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/Class;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/String;",
")",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.line 605
sget-object v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->classMap:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Class;
if-eqz v0, :cond_b
return-object v0
.line 611
:cond_b
:try_start_b
invoke-virtual {p0}, Landroid/content/Context;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object p0
invoke-virtual {p0, p1}, Ljava/lang/ClassLoader;->loadClass(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
.line 612
sget-object p0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->classMap:Ljava/util/HashMap;
invoke-virtual {p0, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_18
.catch Ljava/lang/ClassNotFoundException; {:try_start_b .. :try_end_18} :catch_19
goto :goto_38
:catch_19
move-exception p0
.line 614
sget-object v1, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->TAG:Ljava/lang/String;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, " is not available, please add "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, " to the project."
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-static {v1, p1, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_38
return-object v0
.end method
.method private static getMethod(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Method;
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/String;",
")",
"Ljava/lang/reflect/Method;"
}
.end annotation
.line 565
sget-object v0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->methodMap:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/reflect/Method;
if-eqz v0, :cond_b
return-object v0
:cond_b
const/4 v1, 0x0
const/4 v2, -0x1
.line 572
:try_start_d
invoke-virtual {p1}, Ljava/lang/String;->hashCode()I
move-result v3
const/4 v4, 0x4
const/4 v5, 0x0
const/4 v6, 0x3
const/4 v7, 0x2
const/4 v8, 0x1
sparse-switch v3, :sswitch_data_d8
goto :goto_4b
:sswitch_1a
const-string v3, "getSkuDetails"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_4b
const/4 v2, 0x1
goto :goto_4b
:sswitch_24
const-string v3, "getPurchaseHistory"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_4b
const/4 v2, 0x4
goto :goto_4b
:sswitch_2e
const-string v3, "asInterface"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_4b
const/4 v2, 0x0
goto :goto_4b
:sswitch_38
const-string v3, "isBillingSupported"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_4b
const/4 v2, 0x2
goto :goto_4b
:sswitch_42
const-string v3, "getPurchases"
invoke-virtual {p1, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_4b
const/4 v2, 0x3
:cond_4b
:goto_4b
if-eqz v2, :cond_a3
if-eq v2, v8, :cond_90
if-eq v2, v7, :cond_81
if-eq v2, v6, :cond_6e
if-eq v2, v4, :cond_56
goto :goto_a9
:cond_56
const/4 v1, 0x5
new-array v1, v1, [Ljava/lang/Class;
.line 589
sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v2, v1, v5
const-class v2, Ljava/lang/String;
aput-object v2, v1, v8
const-class v2, Ljava/lang/String;
aput-object v2, v1, v7
const-class v2, Ljava/lang/String;
aput-object v2, v1, v6
const-class v2, Landroid/os/Bundle;
aput-object v2, v1, v4
goto :goto_a9
:cond_6e
new-array v1, v4, [Ljava/lang/Class;
.line 585
sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v2, v1, v5
const-class v2, Ljava/lang/String;
aput-object v2, v1, v8
const-class v2, Ljava/lang/String;
aput-object v2, v1, v7
const-class v2, Ljava/lang/String;
aput-object v2, v1, v6
goto :goto_a9
:cond_81
new-array v1, v6, [Ljava/lang/Class;
.line 581
sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v2, v1, v5
const-class v2, Ljava/lang/String;
aput-object v2, v1, v8
const-class v2, Ljava/lang/String;
aput-object v2, v1, v7
goto :goto_a9
:cond_90
new-array v1, v4, [Ljava/lang/Class;
.line 577
sget-object v2, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v2, v1, v5
const-class v2, Ljava/lang/String;
aput-object v2, v1, v8
const-class v2, Ljava/lang/String;
aput-object v2, v1, v7
const-class v2, Landroid/os/Bundle;
aput-object v2, v1, v6
goto :goto_a9
:cond_a3
new-array v1, v8, [Ljava/lang/Class;
.line 574
const-class v2, Landroid/os/IBinder;
aput-object v2, v1, v5
.line 594
:goto_a9
invoke-virtual {p0, p1, v1}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 595
sget-object v1, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->methodMap:Ljava/util/HashMap;
invoke-virtual {v1, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_b2
.catch Ljava/lang/NoSuchMethodException; {:try_start_d .. :try_end_b2} :catch_b3
goto :goto_d6
:catch_b3
move-exception v1
.line 597
sget-object v2, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->TAG:Ljava/lang/String;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p0
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "."
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, " method not found"
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v2, p0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_d6
return-object v0
nop
:sswitch_data_d8
.sparse-switch
-0x6b5af324 -> :sswitch_42
-0x5677d643 -> :sswitch_38
-0x42f2e6d9 -> :sswitch_2e
-0x236d29e3 -> :sswitch_24
-0x222c05a5 -> :sswitch_1a
.end sparse-switch
.end method
.method private static getPurchaseHistory(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;)Ljava/util/ArrayList;
.registers 23
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/Object;",
"Ljava/lang/String;",
")",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 480
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 482
invoke-static/range {p0 .. p2}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->isBillingSupported(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Boolean;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
if-eqz v0, :cond_ad
const/4 v2, 0x0
.line 485
invoke-static {v2}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
const/4 v3, 0x0
move-object v4, v0
move-object v0, v3
const/4 v5, 0x0
:goto_18
const/4 v6, 0x5
new-array v6, v6, [Ljava/lang/Object;
const/4 v7, 0x6
.line 489
invoke-static {v7}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v7
aput-object v7, v6, v2
sget-object v7, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->PACKAGE_NAME:Ljava/lang/String;
const/4 v8, 0x1
aput-object v7, v6, v8
const/4 v7, 0x2
aput-object p2, v6, v7
const/4 v7, 0x3
aput-object v0, v6, v7
const/4 v0, 0x4
new-instance v7, Landroid/os/Bundle;
invoke-direct {v7}, Landroid/os/Bundle;-><init>()V
aput-object v7, v6, v0
const-string v0, "com.android.vending.billing.IInAppBillingService"
const-string v7, "getPurchaseHistory"
move-object/from16 v9, p0
move-object/from16 v10, p1
.line 492
invoke-static {v9, v0, v7, v10, v6}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->invokeMethod(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
if-eqz v0, :cond_9c
.line 495
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v6
const-wide/16 v11, 0x3e8
div-long/2addr v6, v11
.line 496
move-object v13, v0
check-cast v13, Landroid/os/Bundle;
const-string v0, "RESPONSE_CODE"
.line 497
invoke-virtual {v13, v0}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I
move-result v0
if-nez v0, :cond_9c
const-string v0, "INAPP_PURCHASE_DATA_LIST"
.line 500
invoke-virtual {v13, v0}, Landroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object v0
.line 502
invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v14
:goto_5f
invoke-interface {v14}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_95
invoke-interface {v14}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
.line 504
:try_start_6b
new-instance v15, Lorg/json/JSONObject;
invoke-direct {v15, v0}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string v2, "purchaseTime"
.line 506
invoke-virtual {v15, v2}, Lorg/json/JSONObject;->getLong(Ljava/lang/String;)J
move-result-wide v16
div-long v16, v16, v11
sub-long v16, v6, v16
const-wide/16 v18, 0x4b0
cmp-long v2, v16, v18
if-lez v2, :cond_85
.line 509
invoke-static {v8}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v4
goto :goto_95
.line 512
:cond_85
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
:try_end_88
.catch Lorg/json/JSONException; {:try_start_6b .. :try_end_88} :catch_8b
add-int/lit8 v5, v5, 0x1
goto :goto_93
:catch_8b
move-exception v0
.line 516
sget-object v2, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->TAG:Ljava/lang/String;
const-string v15, "parsing purchase failure: "
invoke-static {v2, v15, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_93
const/4 v2, 0x0
goto :goto_5f
:cond_95
:goto_95
const-string v0, "INAPP_CONTINUATION_TOKEN"
.line 520
invoke-virtual {v13, v0}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
goto :goto_9d
:cond_9c
move-object v0, v3
:goto_9d
const/16 v2, 0x1e
if-ge v5, v2, :cond_ad
if-eqz v0, :cond_ad
.line 525
invoke-virtual {v4}, Ljava/lang/Boolean;->booleanValue()Z
move-result v2
if-eqz v2, :cond_aa
goto :goto_ad
:cond_aa
const/4 v2, 0x0
goto/16 :goto_18
:cond_ad
:goto_ad
return-object v1
.end method
.method public static getPurchaseHistoryInapp(Landroid/content/Context;Ljava/lang/Object;)Ljava/util/ArrayList;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/Object;",
")",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 455
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
if-nez p1, :cond_8
return-object v0
:cond_8
const-string v1, "com.android.vending.billing.IInAppBillingService"
.line 461
invoke-static {p0, v1}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getClass(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/Class;
move-result-object v1
if-nez v1, :cond_11
return-object v0
:cond_11
const-string v2, "getPurchaseHistory"
.line 466
invoke-static {v1, v2}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getMethod(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Method;
move-result-object v1
if-nez v1, :cond_1a
return-object v0
:cond_1a
const-string v0, "inapp"
.line 471
invoke-static {p0, p1, v0}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getPurchaseHistory(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object p0
.line 473
invoke-static {p0}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->filterPurchasesInapp(Ljava/util/ArrayList;)Ljava/util/ArrayList;
move-result-object p0
return-object p0
.end method
.method private static getPurchases(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;)Ljava/util/ArrayList;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/Object;",
"Ljava/lang/String;",
")",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 398
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
invoke-static {p0, p1, p2, v0}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getPurchases(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Set;)Ljava/util/ArrayList;
move-result-object p0
return-object p0
.end method
.method private static getPurchases(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Set;)Ljava/util/ArrayList;
.registers 16
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/Object;",
"Ljava/lang/String;",
"Ljava/util/Set<",
"Ljava/lang/Integer;",
">;)",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 405
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
if-nez p1, :cond_8
return-object v0
.line 411
:cond_8
invoke-static {p0, p1, p2}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->isBillingSupported(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Boolean;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z
move-result v1
const/4 v2, 0x0
if-eqz v1, :cond_72
const/4 v1, 0x0
move-object v3, v1
const/4 v4, 0x0
:cond_16
const/4 v5, 0x4
new-array v10, v5, [Ljava/lang/Object;
const/4 v5, 0x3
.line 417
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
aput-object v6, v10, v2
const/4 v6, 0x1
sget-object v7, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->PACKAGE_NAME:Ljava/lang/String;
aput-object v7, v10, v6
const/4 v6, 0x2
aput-object p2, v10, v6
aput-object v3, v10, v5
const-string v7, "com.android.vending.billing.IInAppBillingService"
const-string v8, "getPurchases"
move-object v6, p0
move-object v9, p1
move-object v11, p3
.line 418
invoke-static/range {v6 .. v11}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->invokeMethod(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;Ljava/util/Set;)Ljava/lang/Object;
move-result-object v3
const/16 v5, 0x1e
if-eqz v3, :cond_5a
.line 424
check-cast v3, Landroid/os/Bundle;
const-string v6, "RESPONSE_CODE"
.line 425
invoke-virtual {v3, v6}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I
move-result v6
if-nez v6, :cond_62
const-string v6, "INAPP_PURCHASE_DATA_LIST"
.line 428
invoke-virtual {v3, v6}, Landroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object v6
if-eqz v6, :cond_67
.line 430
invoke-virtual {v6}, Ljava/util/ArrayList;->size()I
move-result v7
add-int/2addr v4, v7
.line 431
invoke-virtual {v0, v6}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
const-string v6, "INAPP_CONTINUATION_TOKEN"
.line 432
invoke-virtual {v3, v6}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
goto :goto_63
:cond_5a
const/4 v3, 0x7
.line 438
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-interface {p3, v3}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
:cond_62
move-object v3, v1
:goto_63
if-ge v4, v5, :cond_67
if-nez v3, :cond_16
:cond_67
if-lt v4, v5, :cond_79
const/4 p0, 0x6
.line 444
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
invoke-interface {p3, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_79
.line 447
:cond_72
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
invoke-interface {p3, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
:cond_79
:goto_79
return-object v0
.end method
.method public static getPurchasesInapp(Landroid/content/Context;Ljava/lang/Object;)Ljava/util/ArrayList;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/Object;",
")",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;"
}
.end annotation
const-string v0, "inapp"
.line 241
invoke-static {p0, p1, v0}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getPurchases(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object p0
invoke-static {p0}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->filterPurchasesInapp(Ljava/util/ArrayList;)Ljava/util/ArrayList;
move-result-object p0
return-object p0
.end method
.method public static getPurchasesSubs(Landroid/content/Context;Ljava/lang/Object;)Ljava/util/Map;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/Object;",
")",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Lcom/facebook/appevents/internal/SubscriptionType;",
">;"
}
.end annotation
.line 291
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
const-string v1, "subs"
.line 294
invoke-static {p0, p1, v1}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getPurchases(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object v1
.line 296
invoke-virtual {v1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object v1
:cond_f
:goto_f
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_2b
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
.line 297
invoke-static {p0, v2, p1}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getSubsType(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Object;)Lcom/facebook/appevents/internal/SubscriptionType;
move-result-object v3
.line 298
sget-object v4, Lcom/facebook/appevents/internal/SubscriptionType;->DUPLICATED:Lcom/facebook/appevents/internal/SubscriptionType;
if-eq v3, v4, :cond_f
sget-object v4, Lcom/facebook/appevents/internal/SubscriptionType;->UNKNOWN:Lcom/facebook/appevents/internal/SubscriptionType;
if-eq v3, v4, :cond_f
.line 299
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_f
:cond_2b
return-object v0
.end method
.method static getPurchasesSubsExpire(Landroid/content/Context;Ljava/lang/Object;Ljava/util/Set;)Ljava/util/ArrayList;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/Object;",
"Ljava/util/Set<",
"Ljava/lang/Integer;",
">;)",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 246
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 248
sget-object v1, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseSubsSharedPrefs:Landroid/content/SharedPreferences;
invoke-interface {v1}, Landroid/content/SharedPreferences;->getAll()Ljava/util/Map;
move-result-object v1
.line 249
invoke-interface {v1}, Ljava/util/Map;->isEmpty()Z
move-result v2
if-eqz v2, :cond_12
return-object v0
:cond_12
const-string v2, "subs"
.line 254
invoke-static {p0, p1, v2, p2}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getPurchases(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;Ljava/util/Set;)Ljava/util/ArrayList;
move-result-object p0
.line 255
new-instance p1, Ljava/util/HashSet;
invoke-direct {p1}, Ljava/util/HashSet;-><init>()V
.line 256
invoke-virtual {p0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_21
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result p2
if-eqz p2, :cond_45
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/lang/String;
.line 258
:try_start_2d
new-instance v2, Lorg/json/JSONObject;
invoke-direct {v2, p2}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string p2, "productId"
.line 259
invoke-virtual {v2, p2}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
invoke-interface {p1, p2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
:try_end_3b
.catch Lorg/json/JSONException; {:try_start_2d .. :try_end_3b} :catch_3c
goto :goto_21
:catch_3c
move-exception p2
.line 261
sget-object v2, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->TAG:Ljava/lang/String;
const-string v3, "Error parsing purchase json"
invoke-static {v2, v3, p2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
goto :goto_21
.line 265
:cond_45
new-instance p0, Ljava/util/HashSet;
invoke-direct {p0}, Ljava/util/HashSet;-><init>()V
.line 266
invoke-interface {v1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object p2
invoke-interface {p2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p2
:cond_52
:goto_52
invoke-interface {p2}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_6e
invoke-interface {p2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/Map$Entry;
.line 267
invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
.line 268
invoke-interface {p1, v1}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v2
if-nez v2, :cond_52
.line 269
invoke-interface {p0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_52
.line 273
:cond_6e
sget-object p1, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseSubsSharedPrefs:Landroid/content/SharedPreferences;
invoke-interface {p1}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p1
.line 274
invoke-interface {p0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_78
:goto_78
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result p2
if-eqz p2, :cond_9f
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object p2
check-cast p2, Ljava/lang/String;
.line 275
sget-object v1, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseSubsSharedPrefs:Landroid/content/SharedPreferences;
const-string v2, ""
invoke-interface {v1, p2, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 276
invoke-interface {p1, p2}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
.line 277
invoke-virtual {v1}, Ljava/lang/String;->isEmpty()Z
move-result v1
if-nez v1, :cond_78
.line 278
sget-object v1, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseSubsSharedPrefs:Landroid/content/SharedPreferences;
invoke-interface {v1, p2, v2}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p2
invoke-virtual {v0, p2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_78
.line 281
:cond_9f
invoke-interface {p1}, Landroid/content/SharedPreferences$Editor;->apply()V
return-object v0
.end method
.method private static getSkuDetail(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Object;Z)Ljava/lang/String;
.registers 5
.line 133
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 134
invoke-virtual {v0, p1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 135
invoke-static {p0, v0, p2, p3}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getSkuDetails(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/Object;Z)Ljava/util/Map;
move-result-object p0
.line 136
invoke-interface {p0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
check-cast p0, Ljava/lang/String;
return-object p0
.end method
.method public static getSkuDetails(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/Object;Z)Ljava/util/Map;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;",
"Ljava/lang/Object;",
"Z)",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 143
invoke-static {p1}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->readSkuDetailsFromCache(Ljava/util/ArrayList;)Ljava/util/Map;
move-result-object v0
.line 145
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 146
invoke-virtual {p1}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object p1
:cond_d
:goto_d
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_23
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
.line 147
invoke-interface {v0, v2}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_d
.line 148
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_d
.line 152
:cond_23
invoke-static {p0, v1, p2, p3}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getSkuDetailsFromGoogle(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/Object;Z)Ljava/util/Map;
move-result-object p0
invoke-interface {v0, p0}, Ljava/util/Map;->putAll(Ljava/util/Map;)V
return-object v0
.end method
.method private static getSkuDetailsFromGoogle(Landroid/content/Context;Ljava/util/ArrayList;Ljava/lang/Object;Z)Ljava/util/Map;
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;",
"Ljava/lang/Object;",
"Z)",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 162
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
if-eqz p2, :cond_71
.line 164
invoke-virtual {p1}, Ljava/util/ArrayList;->isEmpty()Z
move-result v1
if-eqz v1, :cond_e
goto :goto_71
.line 168
:cond_e
new-instance v1, Landroid/os/Bundle;
invoke-direct {v1}, Landroid/os/Bundle;-><init>()V
const-string v2, "ITEM_ID_LIST"
.line 169
invoke-virtual {v1, v2, p1}, Landroid/os/Bundle;->putStringArrayList(Ljava/lang/String;Ljava/util/ArrayList;)V
const/4 v2, 0x4
new-array v2, v2, [Ljava/lang/Object;
const/4 v3, 0x3
.line 171
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
const/4 v5, 0x0
aput-object v4, v2, v5
sget-object v4, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->PACKAGE_NAME:Ljava/lang/String;
const/4 v6, 0x1
aput-object v4, v2, v6
const/4 v4, 0x2
if-eqz p3, :cond_2e
const-string p3, "subs"
goto :goto_30
:cond_2e
const-string p3, "inapp"
:goto_30
aput-object p3, v2, v4
aput-object v1, v2, v3
const-string p3, "com.android.vending.billing.IInAppBillingService"
const-string v1, "getSkuDetails"
.line 173
invoke-static {p0, p3, v1, p2, v2}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->invokeMethod(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
if-eqz p0, :cond_71
.line 177
check-cast p0, Landroid/os/Bundle;
const-string p2, "RESPONSE_CODE"
.line 178
invoke-virtual {p0, p2}, Landroid/os/Bundle;->getInt(Ljava/lang/String;)I
move-result p2
if-nez p2, :cond_71
const-string p2, "DETAILS_LIST"
.line 180
invoke-virtual {p0, p2}, Landroid/os/Bundle;->getStringArrayList(Ljava/lang/String;)Ljava/util/ArrayList;
move-result-object p0
if-eqz p0, :cond_6e
.line 181
invoke-virtual {p1}, Ljava/util/ArrayList;->size()I
move-result p2
invoke-virtual {p0}, Ljava/util/ArrayList;->size()I
move-result p3
if-ne p2, p3, :cond_6e
.line 182
:goto_5a
invoke-virtual {p1}, Ljava/util/ArrayList;->size()I
move-result p2
if-ge v5, p2, :cond_6e
.line 183
invoke-virtual {p1, v5}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object p2
invoke-virtual {p0, v5}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object p3
invoke-interface {v0, p2, p3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
add-int/lit8 v5, v5, 0x1
goto :goto_5a
.line 187
:cond_6e
invoke-static {v0}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->writeSkuDetailsToCache(Ljava/util/Map;)V
:cond_71
:goto_71
return-object v0
.end method
.method private static getSubsType(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Object;)Lcom/facebook/appevents/internal/SubscriptionType;
.registers 15
const-string v0, "autoRenewing"
const-string v1, "purchaseToken"
const/4 v2, 0x0
.line 327
:try_start_5
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v3
const-wide/16 v5, 0x3e8
div-long/2addr v3, v5
.line 329
new-instance v7, Lorg/json/JSONObject;
invoke-direct {v7, p1}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string p1, "productId"
.line 330
invoke-virtual {v7, p1}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 332
sget-object v8, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseSubsSharedPrefs:Landroid/content/SharedPreferences;
const-string v9, ""
invoke-interface {v8, p1, v9}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
.line 333
invoke-virtual {v8}, Ljava/lang/String;->isEmpty()Z
move-result v9
if-eqz v9, :cond_2b
new-instance v9, Lorg/json/JSONObject;
invoke-direct {v9}, Lorg/json/JSONObject;-><init>()V
goto :goto_30
:cond_2b
new-instance v9, Lorg/json/JSONObject;
invoke-direct {v9, v8}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
.line 338
:goto_30
invoke-virtual {v9, v1}, Lorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v10
.line 339
invoke-virtual {v7, v1}, Lorg/json/JSONObject;->get(Ljava/lang/String;)Ljava/lang/Object;
move-result-object v1
invoke-virtual {v10, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_73
const-string v1, "purchaseTime"
.line 340
invoke-virtual {v7, v1}, Lorg/json/JSONObject;->getLong(Ljava/lang/String;)J
move-result-wide v10
.line 341
div-long/2addr v10, v5
sub-long v5, v3, v10
const-wide/32 v10, 0x15180
cmp-long v1, v5, v10
if-gez v1, :cond_6f
const/4 v1, 0x1
.line 342
invoke-static {p0, p1, p2, v1}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getSkuDetail(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Object;Z)Ljava/lang/String;
move-result-object p0
if-eqz p0, :cond_6f
.line 345
new-instance p2, Lorg/json/JSONObject;
invoke-direct {p2, p0}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string p0, "freeTrialPeriod"
.line 346
invoke-virtual {p2, p0}, Lorg/json/JSONObject;->optString(Ljava/lang/String;)Ljava/lang/String;
move-result-object p0
if-eqz p0, :cond_6c
.line 347
invoke-virtual {p0}, Ljava/lang/String;->isEmpty()Z
move-result p0
if-eqz p0, :cond_69
goto :goto_6c
:cond_69
sget-object p0, Lcom/facebook/appevents/internal/SubscriptionType;->START_TRIAL:Lcom/facebook/appevents/internal/SubscriptionType;
goto :goto_6e
:cond_6c
:goto_6c
sget-object p0, Lcom/facebook/appevents/internal/SubscriptionType;->SUBSCRIBE:Lcom/facebook/appevents/internal/SubscriptionType;
:goto_6e
move-object v2, p0
:cond_6f
if-nez v2, :cond_73
.line 353
sget-object v2, Lcom/facebook/appevents/internal/SubscriptionType;->HEARTBEAT:Lcom/facebook/appevents/internal/SubscriptionType;
:cond_73
if-nez v2, :cond_90
.line 358
invoke-virtual {v8}, Ljava/lang/String;->isEmpty()Z
move-result p0
if-nez p0, :cond_90
.line 359
invoke-virtual {v9, v0}, Lorg/json/JSONObject;->getBoolean(Ljava/lang/String;)Z
move-result p0
.line 360
invoke-virtual {v7, v0}, Lorg/json/JSONObject;->getBoolean(Ljava/lang/String;)Z
move-result p2
if-nez p2, :cond_8a
if-eqz p0, :cond_8a
.line 363
sget-object v2, Lcom/facebook/appevents/internal/SubscriptionType;->CANCEL:Lcom/facebook/appevents/internal/SubscriptionType;
goto :goto_90
:cond_8a
if-nez p0, :cond_90
if-eqz p2, :cond_90
.line 365
sget-object v2, Lcom/facebook/appevents/internal/SubscriptionType;->RESTORE:Lcom/facebook/appevents/internal/SubscriptionType;
:try_end_90
.catch Lorg/json/JSONException; {:try_start_5 .. :try_end_90} :catch_c5
:cond_90
:goto_90
const-string p0, "LAST_LOGGED_TIME_SEC"
if-nez v2, :cond_ac
.line 370
:try_start_94
invoke-virtual {v8}, Ljava/lang/String;->isEmpty()Z
move-result p2
if-nez p2, :cond_ac
.line 371
invoke-virtual {v9, p0}, Lorg/json/JSONObject;->getLong(Ljava/lang/String;)J
move-result-wide v0
sub-long v0, v3, v0
const-wide/32 v5, 0xa8c0
cmp-long p2, v0, v5
if-lez p2, :cond_aa
.line 374
sget-object v2, Lcom/facebook/appevents/internal/SubscriptionType;->HEARTBEAT:Lcom/facebook/appevents/internal/SubscriptionType;
goto :goto_ac
.line 376
:cond_aa
sget-object v2, Lcom/facebook/appevents/internal/SubscriptionType;->DUPLICATED:Lcom/facebook/appevents/internal/SubscriptionType;
.line 380
:cond_ac
:goto_ac
sget-object p2, Lcom/facebook/appevents/internal/SubscriptionType;->DUPLICATED:Lcom/facebook/appevents/internal/SubscriptionType;
if-eq v2, p2, :cond_c4
.line 381
invoke-virtual {v7, p0, v3, v4}, Lorg/json/JSONObject;->put(Ljava/lang/String;J)Lorg/json/JSONObject;
.line 382
sget-object p0, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->purchaseSubsSharedPrefs:Landroid/content/SharedPreferences;
invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p0
.line 383
invoke-virtual {v7}, Lorg/json/JSONObject;->toString()Ljava/lang/String;
move-result-object p2
invoke-interface {p0, p1, p2}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
move-result-object p0
.line 384
invoke-interface {p0}, Landroid/content/SharedPreferences$Editor;->apply()V
:try_end_c4
.catch Lorg/json/JSONException; {:try_start_94 .. :try_end_c4} :catch_c5
:cond_c4
return-object v2
:catch_c5
move-exception p0
.line 389
sget-object p1, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->TAG:Ljava/lang/String;
const-string p2, "parsing purchase failure: "
invoke-static {p1, p2, p0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 391
sget-object p0, Lcom/facebook/appevents/internal/SubscriptionType;->UNKNOWN:Lcom/facebook/appevents/internal/SubscriptionType;
return-object p0
.end method
.method private static invokeMethod(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.registers 11
.line 627
new-instance v5, Ljava/util/HashSet;
invoke-direct {v5}, Ljava/util/HashSet;-><init>()V
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v4, p4
invoke-static/range {v0 .. v5}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->invokeMethod(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;Ljava/util/Set;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method private static invokeMethod(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;Ljava/util/Set;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/lang/String;",
"Ljava/lang/String;",
"Ljava/lang/Object;",
"[",
"Ljava/lang/Object;",
"Ljava/util/Set<",
"Ljava/lang/Integer;",
">;)",
"Ljava/lang/Object;"
}
.end annotation
.line 633
invoke-static {p0, p1}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getClass(Landroid/content/Context;Ljava/lang/String;)Ljava/lang/Class;
move-result-object p0
const/4 p1, 0x0
if-nez p0, :cond_10
const/4 p0, 0x1
.line 635
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
invoke-interface {p5, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
return-object p1
.line 639
:cond_10
invoke-static {p0, p2}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->getMethod(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Method;
move-result-object p2
if-nez p2, :cond_1f
const/4 p0, 0x2
.line 641
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
invoke-interface {p5, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
return-object p1
:cond_1f
if-eqz p3, :cond_3c
.line 646
invoke-virtual {p0, p3}, Ljava/lang/Class;->cast(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
.line 653
:try_start_25
invoke-virtual {p2, p0, p4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
:try_end_29
.catch Ljava/lang/IllegalAccessException; {:try_start_25 .. :try_end_29} :catch_33
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_25 .. :try_end_29} :catch_2a
return-object p0
:catch_2a
const/4 p0, 0x5
.line 657
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
invoke-interface {p5, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_3b
:catch_33
const/4 p0, 0x4
.line 655
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
invoke-interface {p5, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
:goto_3b
return-object p1
:cond_3c
const/4 p0, 0x3
.line 648
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p0
invoke-interface {p5, p0}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
return-object p1
.end method
.method private static isBillingSupported(Landroid/content/Context;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Boolean;
.registers 7
const/4 v0, 0x0
if-nez p1, :cond_8
.line 229
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object p0
return-object p0
:cond_8
const/4 v1, 0x3
new-array v2, v1, [Ljava/lang/Object;
.line 232
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v2, v0
sget-object v1, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->PACKAGE_NAME:Ljava/lang/String;
const/4 v3, 0x1
aput-object v1, v2, v3
const/4 v1, 0x2
aput-object p2, v2, v1
const-string p2, "com.android.vending.billing.IInAppBillingService"
const-string v1, "isBillingSupported"
.line 233
invoke-static {p0, p2, v1, p1, v2}, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->invokeMethod(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
if-eqz p0, :cond_2c
.line 236
check-cast p0, Ljava/lang/Integer;
invoke-virtual {p0}, Ljava/lang/Integer;->intValue()I
move-result p0
if-nez p0, :cond_2c
const/4 v0, 0x1
:cond_2c
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object p0
return-object p0
.end method
.method private static readSkuDetailsFromCache(Ljava/util/ArrayList;)Ljava/util/Map;
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;)",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.line 197
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
.line 198
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v1
const-wide/16 v3, 0x3e8
div-long/2addr v1, v3
.line 200
invoke-virtual {p0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator;
move-result-object p0
:cond_10
:goto_10
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_43
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/String;
.line 201
sget-object v4, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->skuDetailSharedPrefs:Landroid/content/SharedPreferences;
const/4 v5, 0x0
invoke-interface {v4, v3, v5}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
if-eqz v4, :cond_10
const/4 v5, 0x2
const-string v6, ";"
.line 203
invoke-virtual {v4, v6, v5}, Ljava/lang/String;->split(Ljava/lang/String;I)[Ljava/lang/String;
move-result-object v4
const/4 v5, 0x0
.line 204
aget-object v5, v4, v5
invoke-static {v5}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J
move-result-wide v5
sub-long v5, v1, v5
const-wide/32 v7, 0xa8c0
cmp-long v9, v5, v7
if-gez v9, :cond_10
const/4 v5, 0x1
.line 206
aget-object v4, v4, v5
invoke-interface {v0, v3, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_10
:cond_43
return-object v0
.end method
.method private static writeSkuDetailsToCache(Ljava/util/Map;)V
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;)V"
}
.end annotation
.line 215
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
const-wide/16 v2, 0x3e8
div-long/2addr v0, v2
.line 217
sget-object v2, Lcom/facebook/appevents/internal/InAppPurchaseEventManager;->skuDetailSharedPrefs:Landroid/content/SharedPreferences;
invoke-interface {v2}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v2
.line 218
invoke-interface {p0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object p0
invoke-interface {p0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p0
:goto_15
invoke-interface {p0}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_45
invoke-interface {p0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/util/Map$Entry;
.line 219
invoke-interface {v3}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/String;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v6, ";"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v3}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/lang/String;
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-interface {v2, v4, v3}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
goto :goto_15
.line 222
:cond_45
invoke-interface {v2}, Landroid/content/SharedPreferences$Editor;->apply()V
return-void
.end method