FacebookDialogBase.smali
.class public abstract Lcom/facebook/internal/FacebookDialogBase;
.super Ljava/lang/Object;
.source "FacebookDialogBase.java"
# interfaces
.implements Lcom/facebook/FacebookDialog;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/facebook/internal/FacebookDialogBase$ModeHandler;
}
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"<CONTENT:",
"Ljava/lang/Object;",
"RESU",
"LT:Ljava/lang/Object;",
">",
"Ljava/lang/Object;",
"Lcom/facebook/FacebookDialog<",
"TCONTENT;TRESU",
"LT;",
">;"
}
.end annotation
# static fields
.field protected static final BASE_AUTOMATIC_MODE:Ljava/lang/Object;
.field private static final TAG:Ljava/lang/String; = "FacebookDialog"
# instance fields
.field private final activity:Landroid/app/Activity;
.field private final fragmentWrapper:Lcom/facebook/internal/FragmentWrapper;
.field private modeHandlers:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/facebook/internal/FacebookDialogBase<",
"TCONTENT;TRESU",
"LT;",
">.ModeHandler;>;"
}
.end annotation
.end field
.field private requestCode:I
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 50
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lcom/facebook/internal/FacebookDialogBase;->BASE_AUTOMATIC_MODE:Ljava/lang/Object;
return-void
.end method
.method protected constructor <init>(Landroid/app/Activity;I)V
.registers 4
.line 57
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, "activity"
.line 58
invoke-static {p1, v0}, Lcom/facebook/internal/Validate;->notNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 59
iput-object p1, p0, Lcom/facebook/internal/FacebookDialogBase;->activity:Landroid/app/Activity;
const/4 p1, 0x0
.line 60
iput-object p1, p0, Lcom/facebook/internal/FacebookDialogBase;->fragmentWrapper:Lcom/facebook/internal/FragmentWrapper;
.line 61
iput p2, p0, Lcom/facebook/internal/FacebookDialogBase;->requestCode:I
return-void
.end method
.method protected constructor <init>(Lcom/facebook/internal/FragmentWrapper;I)V
.registers 4
.line 64
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, "fragmentWrapper"
.line 65
invoke-static {p1, v0}, Lcom/facebook/internal/Validate;->notNull(Ljava/lang/Object;Ljava/lang/String;)V
.line 66
iput-object p1, p0, Lcom/facebook/internal/FacebookDialogBase;->fragmentWrapper:Lcom/facebook/internal/FragmentWrapper;
const/4 v0, 0x0
.line 67
iput-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->activity:Landroid/app/Activity;
.line 68
iput p2, p0, Lcom/facebook/internal/FacebookDialogBase;->requestCode:I
.line 70
invoke-virtual {p1}, Lcom/facebook/internal/FragmentWrapper;->getActivity()Landroid/app/Activity;
move-result-object p1
if-eqz p1, :cond_16
return-void
.line 71
:cond_16
new-instance p1, Ljava/lang/IllegalArgumentException;
const-string p2, "Cannot use a fragment that is not attached to an activity"
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method private cachedModeHandlers()Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/facebook/internal/FacebookDialogBase<",
"TCONTENT;TRESU",
"LT;",
">.ModeHandler;>;"
}
.end annotation
.line 236
iget-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->modeHandlers:Ljava/util/List;
if-nez v0, :cond_a
.line 237
invoke-virtual {p0}, Lcom/facebook/internal/FacebookDialogBase;->getOrderedModeHandlers()Ljava/util/List;
move-result-object v0
iput-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->modeHandlers:Ljava/util/List;
.line 240
:cond_a
iget-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->modeHandlers:Ljava/util/List;
return-object v0
.end method
.method private createAppCallForMode(Ljava/lang/Object;Ljava/lang/Object;)Lcom/facebook/internal/AppCall;
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(TCONTENT;",
"Ljava/lang/Object;",
")",
"Lcom/facebook/internal/AppCall;"
}
.end annotation
.line 207
sget-object v0, Lcom/facebook/internal/FacebookDialogBase;->BASE_AUTOMATIC_MODE:Ljava/lang/Object;
const/4 v1, 0x1
if-ne p2, v0, :cond_7
const/4 v0, 0x1
goto :goto_8
:cond_7
const/4 v0, 0x0
:goto_8
const/4 v2, 0x0
.line 210
invoke-direct {p0}, Lcom/facebook/internal/FacebookDialogBase;->cachedModeHandlers()Ljava/util/List;
move-result-object v3
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:goto_11
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_3e
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/facebook/internal/FacebookDialogBase$ModeHandler;
if-nez v0, :cond_2a
.line 211
invoke-virtual {v4}, Lcom/facebook/internal/FacebookDialogBase$ModeHandler;->getMode()Ljava/lang/Object;
move-result-object v5
invoke-static {v5, p2}, Lcom/facebook/internal/Utility;->areObjectsEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_2a
goto :goto_11
.line 214
:cond_2a
invoke-virtual {v4, p1, v1}, Lcom/facebook/internal/FacebookDialogBase$ModeHandler;->canShow(Ljava/lang/Object;Z)Z
move-result v5
if-nez v5, :cond_31
goto :goto_11
.line 219
:cond_31
:try_start_31
invoke-virtual {v4, p1}, Lcom/facebook/internal/FacebookDialogBase$ModeHandler;->createAppCall(Ljava/lang/Object;)Lcom/facebook/internal/AppCall;
move-result-object v2
:try_end_35
.catch Lcom/facebook/FacebookException; {:try_start_31 .. :try_end_35} :catch_36
goto :goto_3e
:catch_36
move-exception p1
.line 221
invoke-virtual {p0}, Lcom/facebook/internal/FacebookDialogBase;->createBaseAppCall()Lcom/facebook/internal/AppCall;
move-result-object v2
.line 222
invoke-static {v2, p1}, Lcom/facebook/internal/DialogPresenter;->setupAppCallForValidationError(Lcom/facebook/internal/AppCall;Lcom/facebook/FacebookException;)V
:cond_3e
:goto_3e
if-nez v2, :cond_47
.line 228
invoke-virtual {p0}, Lcom/facebook/internal/FacebookDialogBase;->createBaseAppCall()Lcom/facebook/internal/AppCall;
move-result-object v2
.line 229
invoke-static {v2}, Lcom/facebook/internal/DialogPresenter;->setupAppCallForCannotShowError(Lcom/facebook/internal/AppCall;)V
:cond_47
return-object v2
.end method
# virtual methods
.method public canShow(Ljava/lang/Object;)Z
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TCONTENT;)Z"
}
.end annotation
.line 126
sget-object v0, Lcom/facebook/internal/FacebookDialogBase;->BASE_AUTOMATIC_MODE:Ljava/lang/Object;
invoke-virtual {p0, p1, v0}, Lcom/facebook/internal/FacebookDialogBase;->canShowImpl(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
return p1
.end method
.method protected canShowImpl(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(TCONTENT;",
"Ljava/lang/Object;",
")Z"
}
.end annotation
.line 131
sget-object v0, Lcom/facebook/internal/FacebookDialogBase;->BASE_AUTOMATIC_MODE:Ljava/lang/Object;
const/4 v1, 0x1
const/4 v2, 0x0
if-ne p2, v0, :cond_8
const/4 v0, 0x1
goto :goto_9
:cond_8
const/4 v0, 0x0
.line 133
:goto_9
invoke-direct {p0}, Lcom/facebook/internal/FacebookDialogBase;->cachedModeHandlers()Ljava/util/List;
move-result-object v3
invoke-interface {v3}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v3
:cond_11
:goto_11
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_31
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/facebook/internal/FacebookDialogBase$ModeHandler;
if-nez v0, :cond_2a
.line 134
invoke-virtual {v4}, Lcom/facebook/internal/FacebookDialogBase$ModeHandler;->getMode()Ljava/lang/Object;
move-result-object v5
invoke-static {v5, p2}, Lcom/facebook/internal/Utility;->areObjectsEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_2a
goto :goto_11
.line 139
:cond_2a
invoke-virtual {v4, p1, v2}, Lcom/facebook/internal/FacebookDialogBase$ModeHandler;->canShow(Ljava/lang/Object;Z)Z
move-result v4
if-eqz v4, :cond_11
return v1
:cond_31
return v2
.end method
.method protected abstract createBaseAppCall()Lcom/facebook/internal/AppCall;
.end method
.method protected getActivityContext()Landroid/app/Activity;
.registers 2
.line 172
iget-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->activity:Landroid/app/Activity;
if-eqz v0, :cond_5
return-object v0
.line 176
:cond_5
iget-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->fragmentWrapper:Lcom/facebook/internal/FragmentWrapper;
if-eqz v0, :cond_e
.line 177
invoke-virtual {v0}, Lcom/facebook/internal/FragmentWrapper;->getActivity()Landroid/app/Activity;
move-result-object v0
return-object v0
:cond_e
const/4 v0, 0x0
return-object v0
.end method
.method protected abstract getOrderedModeHandlers()Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/facebook/internal/FacebookDialogBase<",
"TCONTENT;TRESU",
"LT;",
">.ModeHandler;>;"
}
.end annotation
.end method
.method public getRequestCode()I
.registers 2
.line 121
iget v0, p0, Lcom/facebook/internal/FacebookDialogBase;->requestCode:I
return v0
.end method
.method public final registerCallback(Lcom/facebook/CallbackManager;Lcom/facebook/FacebookCallback;)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/facebook/CallbackManager;",
"Lcom/facebook/FacebookCallback<",
"TRESU",
"LT;",
">;)V"
}
.end annotation
.line 80
instance-of v0, p1, Lcom/facebook/internal/CallbackManagerImpl;
if-eqz v0, :cond_a
.line 84
check-cast p1, Lcom/facebook/internal/CallbackManagerImpl;
invoke-virtual {p0, p1, p2}, Lcom/facebook/internal/FacebookDialogBase;->registerCallbackImpl(Lcom/facebook/internal/CallbackManagerImpl;Lcom/facebook/FacebookCallback;)V
return-void
.line 81
:cond_a
new-instance p1, Lcom/facebook/FacebookException;
const-string p2, "Unexpected CallbackManager, please use the provided Factory."
invoke-direct {p1, p2}, Lcom/facebook/FacebookException;-><init>(Ljava/lang/String;)V
throw p1
.end method
.method public final registerCallback(Lcom/facebook/CallbackManager;Lcom/facebook/FacebookCallback;I)V
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/facebook/CallbackManager;",
"Lcom/facebook/FacebookCallback<",
"TRESU",
"LT;",
">;I)V"
}
.end annotation
.line 92
invoke-virtual {p0, p3}, Lcom/facebook/internal/FacebookDialogBase;->setRequestCode(I)V
.line 93
invoke-virtual {p0, p1, p2}, Lcom/facebook/internal/FacebookDialogBase;->registerCallback(Lcom/facebook/CallbackManager;Lcom/facebook/FacebookCallback;)V
return-void
.end method
.method protected abstract registerCallbackImpl(Lcom/facebook/internal/CallbackManagerImpl;Lcom/facebook/FacebookCallback;)V
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/facebook/internal/CallbackManagerImpl;",
"Lcom/facebook/FacebookCallback<",
"TRESU",
"LT;",
">;)V"
}
.end annotation
.end method
.method protected setRequestCode(I)V
.registers 5
.line 108
invoke-static {p1}, Lcom/facebook/FacebookSdk;->isFacebookRequestCode(I)Z
move-result v0
if-nez v0, :cond_9
.line 112
iput p1, p0, Lcom/facebook/internal/FacebookDialogBase;->requestCode:I
return-void
.line 109
:cond_9
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Request code "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string p1, " cannot be within the range reserved by the Facebook SDK."
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/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public show(Ljava/lang/Object;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TCONTENT;)V"
}
.end annotation
.line 149
sget-object v0, Lcom/facebook/internal/FacebookDialogBase;->BASE_AUTOMATIC_MODE:Ljava/lang/Object;
invoke-virtual {p0, p1, v0}, Lcom/facebook/internal/FacebookDialogBase;->showImpl(Ljava/lang/Object;Ljava/lang/Object;)V
return-void
.end method
.method protected showImpl(Ljava/lang/Object;Ljava/lang/Object;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(TCONTENT;",
"Ljava/lang/Object;",
")V"
}
.end annotation
.line 154
invoke-direct {p0, p1, p2}, Lcom/facebook/internal/FacebookDialogBase;->createAppCallForMode(Ljava/lang/Object;Ljava/lang/Object;)Lcom/facebook/internal/AppCall;
move-result-object p1
if-eqz p1, :cond_14
.line 156
iget-object p2, p0, Lcom/facebook/internal/FacebookDialogBase;->fragmentWrapper:Lcom/facebook/internal/FragmentWrapper;
if-eqz p2, :cond_e
.line 157
invoke-static {p1, p2}, Lcom/facebook/internal/DialogPresenter;->present(Lcom/facebook/internal/AppCall;Lcom/facebook/internal/FragmentWrapper;)V
goto :goto_21
.line 159
:cond_e
iget-object p2, p0, Lcom/facebook/internal/FacebookDialogBase;->activity:Landroid/app/Activity;
invoke-static {p1, p2}, Lcom/facebook/internal/DialogPresenter;->present(Lcom/facebook/internal/AppCall;Landroid/app/Activity;)V
goto :goto_21
:cond_14
const-string p1, "No code path should ever result in a null appCall"
const-string p2, "FacebookDialog"
.line 164
invoke-static {p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 165
invoke-static {}, Lcom/facebook/FacebookSdk;->isDebugEnabled()Z
move-result p2
if-nez p2, :cond_22
:goto_21
return-void
.line 166
:cond_22
new-instance p2, Ljava/lang/IllegalStateException;
invoke-direct {p2, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p2
.end method
.method protected startActivityForResult(Landroid/content/Intent;I)V
.registers 5
.line 185
iget-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->activity:Landroid/app/Activity;
const-string v1, "Failed to find Activity or Fragment to startActivityForResult "
if-eqz v0, :cond_a
.line 186
invoke-virtual {v0, p1, p2}, Landroid/app/Activity;->startActivityForResult(Landroid/content/Intent;I)V
goto :goto_2f
.line 187
:cond_a
iget-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->fragmentWrapper:Lcom/facebook/internal/FragmentWrapper;
if-eqz v0, :cond_30
.line 188
invoke-virtual {v0}, Lcom/facebook/internal/FragmentWrapper;->getNativeFragment()Landroid/app/Fragment;
move-result-object v0
if-eqz v0, :cond_1e
.line 189
iget-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->fragmentWrapper:Lcom/facebook/internal/FragmentWrapper;
invoke-virtual {v0}, Lcom/facebook/internal/FragmentWrapper;->getNativeFragment()Landroid/app/Fragment;
move-result-object v0
invoke-virtual {v0, p1, p2}, Landroid/app/Fragment;->startActivityForResult(Landroid/content/Intent;I)V
goto :goto_2f
.line 190
:cond_1e
iget-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->fragmentWrapper:Lcom/facebook/internal/FragmentWrapper;
invoke-virtual {v0}, Lcom/facebook/internal/FragmentWrapper;->getSupportFragment()Landroidx/fragment/app/Fragment;
move-result-object v0
if-eqz v0, :cond_30
.line 191
iget-object v0, p0, Lcom/facebook/internal/FacebookDialogBase;->fragmentWrapper:Lcom/facebook/internal/FragmentWrapper;
invoke-virtual {v0}, Lcom/facebook/internal/FragmentWrapper;->getSupportFragment()Landroidx/fragment/app/Fragment;
move-result-object v0
invoke-virtual {v0, p1, p2}, Landroidx/fragment/app/Fragment;->startActivityForResult(Landroid/content/Intent;I)V
:goto_2f
const/4 v1, 0x0
:cond_30
if-eqz v1, :cond_40
.line 199
sget-object p1, Lcom/facebook/LoggingBehavior;->DEVELOPER_ERRORS:Lcom/facebook/LoggingBehavior;
const/4 p2, 0x6
.line 201
invoke-virtual {p0}, 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
.line 199
invoke-static {p1, p2, v0, v1}, Lcom/facebook/internal/Logger;->log(Lcom/facebook/LoggingBehavior;ILjava/lang/String;Ljava/lang/String;)V
:cond_40
return-void
.end method