StateMachine$SmHandler.smali
.class Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;
.super Landroid/os/Handler;
.source "StateMachine.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcn/rongcloud/rtc/stateMachine/StateMachine;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0xa
name = "SmHandler"
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$QuittingState;,
Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$HaltingState;,
Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
}
.end annotation
# static fields
.field private static final mSmHandlerObj:Ljava/lang/Object;
# instance fields
.field private mDbg:Z
.field private mDeferredMessages:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Landroid/os/Message;",
">;"
}
.end annotation
.end field
.field private mDestState:Lcn/rongcloud/rtc/stateMachine/State;
.field private mHaltingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$HaltingState;
.field private mHasQuit:Z
.field private mInitialState:Lcn/rongcloud/rtc/stateMachine/State;
.field private mIsConstructionCompleted:Z
.field private mLogRecords:Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;
.field private mMsg:Landroid/os/Message;
.field private mQuittingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$QuittingState;
.field private mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
.field private mStateInfo:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Lcn/rongcloud/rtc/stateMachine/State;",
"Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;",
">;"
}
.end annotation
.end field
.field private mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.field private mStateStackIndexLock:Ljava/lang/Object;
.field private mStateStackTopIndex:I
.field private mTempStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.field private mTempStateStackCount:I
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 1
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSmHandlerObj:Ljava/lang/Object;
return-void
.end method
.method private constructor <init>(Landroid/os/Looper;Lcn/rongcloud/rtc/stateMachine/StateMachine;)V
.registers 4
.line 2
invoke-direct {p0, p1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
const/4 p1, 0x0
.line 3
iput-boolean p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mHasQuit:Z
.line 4
iput-boolean p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
.line 5
new-instance p1, Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;
const/4 v0, 0x0
invoke-direct {p1, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;-><init>(Lcn/rongcloud/rtc/stateMachine/StateMachine$1;)V
iput-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mLogRecords:Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;
.line 6
new-instance p1, Ljava/lang/Object;
invoke-direct {p1}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackIndexLock:Ljava/lang/Object;
const/4 p1, -0x1
.line 7
iput p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
.line 8
new-instance p1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$HaltingState;
invoke-direct {p1, p0, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$HaltingState;-><init>(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;Lcn/rongcloud/rtc/stateMachine/StateMachine$1;)V
iput-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mHaltingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$HaltingState;
.line 9
new-instance p1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$QuittingState;
invoke-direct {p1, p0, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$QuittingState;-><init>(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;Lcn/rongcloud/rtc/stateMachine/StateMachine$1;)V
iput-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mQuittingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$QuittingState;
.line 10
new-instance p1, Ljava/util/HashMap;
invoke-direct {p1}, Ljava/util/HashMap;-><init>()V
iput-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateInfo:Ljava/util/HashMap;
.line 11
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
iput-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDeferredMessages:Ljava/util/ArrayList;
.line 12
iput-object p2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
.line 13
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mHaltingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$HaltingState;
invoke-direct {p0, p1, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->addState(Lcn/rongcloud/rtc/stateMachine/State;Lcn/rongcloud/rtc/stateMachine/State;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.line 14
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mQuittingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$QuittingState;
invoke-direct {p0, p1, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->addState(Lcn/rongcloud/rtc/stateMachine/State;Lcn/rongcloud/rtc/stateMachine/State;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
return-void
.end method
.method synthetic constructor <init>(Landroid/os/Looper;Lcn/rongcloud/rtc/stateMachine/StateMachine;Lcn/rongcloud/rtc/stateMachine/StateMachine$1;)V
.registers 4
.line 1
invoke-direct {p0, p1, p2}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;-><init>(Landroid/os/Looper;Lcn/rongcloud/rtc/stateMachine/StateMachine;)V
return-void
.end method
.method static synthetic access$1000(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)Landroid/os/Message;
.registers 1
.line 1
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->getCurrentMessage()Landroid/os/Message;
move-result-object p0
return-object p0
.end method
.method static synthetic access$1100(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)Lcn/rongcloud/rtc/stateMachine/IState;
.registers 1
.line 1
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->getCurrentState()Lcn/rongcloud/rtc/stateMachine/IState;
move-result-object p0
return-object p0
.end method
.method static synthetic access$1200(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;Lcn/rongcloud/rtc/stateMachine/IState;)V
.registers 2
.line 1
invoke-direct {p0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->transitionTo(Lcn/rongcloud/rtc/stateMachine/IState;)V
return-void
.end method
.method static synthetic access$1300(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$HaltingState;
.registers 1
.line 1
iget-object p0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mHaltingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$HaltingState;
return-object p0
.end method
.method static synthetic access$1400(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;Landroid/os/Message;)V
.registers 2
.line 1
invoke-direct {p0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->deferMessage(Landroid/os/Message;)V
return-void
.end method
.method static synthetic access$1500(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)Z
.registers 1
.line 1
iget-boolean p0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
return p0
.end method
.method static synthetic access$1600(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;
.registers 1
.line 1
iget-object p0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mLogRecords:Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;
return-object p0
.end method
.method static synthetic access$1800(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.registers 1
.line 1
iget-object p0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
return-object p0
.end method
.method static synthetic access$1900(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)I
.registers 1
.line 1
iget p0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
return p0
.end method
.method static synthetic access$2000(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)Lcn/rongcloud/rtc/stateMachine/State;
.registers 1
.line 1
iget-object p0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
return-object p0
.end method
.method static synthetic access$2100(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;Landroid/os/Message;)Z
.registers 2
.line 1
invoke-direct {p0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->isQuit(Landroid/os/Message;)Z
move-result p0
return p0
.end method
.method static synthetic access$2200(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)V
.registers 1
.line 1
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->quit()V
return-void
.end method
.method static synthetic access$2300(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)V
.registers 1
.line 1
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->quitNow()V
return-void
.end method
.method static synthetic access$2400(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)Z
.registers 1
.line 1
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->isDbg()Z
move-result p0
return p0
.end method
.method static synthetic access$2500(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;Z)V
.registers 2
.line 1
invoke-direct {p0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->setDbg(Z)V
return-void
.end method
.method static synthetic access$2600(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)V
.registers 1
.line 1
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->completeConstruction()V
return-void
.end method
.method static synthetic access$300(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)Lcn/rongcloud/rtc/stateMachine/StateMachine;
.registers 1
.line 1
iget-object p0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
return-object p0
.end method
.method static synthetic access$800(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;Lcn/rongcloud/rtc/stateMachine/State;Lcn/rongcloud/rtc/stateMachine/State;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.registers 3
.line 1
invoke-direct {p0, p1, p2}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->addState(Lcn/rongcloud/rtc/stateMachine/State;Lcn/rongcloud/rtc/stateMachine/State;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
move-result-object p0
return-object p0
.end method
.method static synthetic access$900(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;Lcn/rongcloud/rtc/stateMachine/State;)V
.registers 2
.line 1
invoke-direct {p0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->setInitialState(Lcn/rongcloud/rtc/stateMachine/State;)V
return-void
.end method
.method private addState(Lcn/rongcloud/rtc/stateMachine/State;Lcn/rongcloud/rtc/stateMachine/State;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.registers 6
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_2f
.line 2
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "addStateInternal: E state="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Lcn/rongcloud/rtc/stateMachine/State;->getName()Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ",parent="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
if-nez p2, :cond_21
const-string v2, ""
goto :goto_25
.line 3
:cond_21
invoke-virtual {p2}, Lcn/rongcloud/rtc/stateMachine/State;->getName()Ljava/lang/String;
move-result-object v2
:goto_25
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
.line 4
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
:cond_2f
const/4 v0, 0x0
if-eqz p2, :cond_43
.line 5
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateInfo:Ljava/util/HashMap;
invoke-virtual {v1, p2}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
if-nez v1, :cond_41
.line 6
invoke-direct {p0, p2, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->addState(Lcn/rongcloud/rtc/stateMachine/State;Lcn/rongcloud/rtc/stateMachine/State;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
move-result-object p2
goto :goto_44
:cond_41
move-object p2, v1
goto :goto_44
:cond_43
move-object p2, v0
.line 7
:goto_44
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateInfo:Ljava/util/HashMap;
invoke-virtual {v1, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
if-nez v1, :cond_58
.line 8
new-instance v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
invoke-direct {v1, p0, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;-><init>(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;Lcn/rongcloud/rtc/stateMachine/StateMachine$1;)V
.line 9
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateInfo:Ljava/util/HashMap;
invoke-virtual {v0, p1, v1}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 10
:cond_58
iget-object v0, v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->parentStateInfo:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
if-eqz v0, :cond_67
if-ne v0, p2, :cond_5f
goto :goto_67
.line 11
:cond_5f
new-instance p1, Ljava/lang/RuntimeException;
const-string p2, "state already added"
invoke-direct {p1, p2}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw p1
.line 12
:cond_67
:goto_67
iput-object p1, v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
.line 13
iput-object p2, v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->parentStateInfo:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
const/4 p1, 0x0
.line 14
iput-boolean p1, v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->active:Z
.line 15
iget-boolean p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz p1, :cond_88
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "addStateInternal: X stateInfo: "
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, v1}, 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 {p1, p2}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
:cond_88
return-object v1
.end method
.method private cleanupAfterQuitting()V
.registers 3
.line 1
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
# getter for: Lcn/rongcloud/rtc/stateMachine/StateMachine;->mSmThread:Landroid/os/HandlerThread;
invoke-static {v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->access$400(Lcn/rongcloud/rtc/stateMachine/StateMachine;)Landroid/os/HandlerThread;
move-result-object v0
const/4 v1, 0x0
if-eqz v0, :cond_15
.line 2
invoke-virtual {p0}, Landroid/os/Handler;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-virtual {v0}, Landroid/os/Looper;->quit()V
.line 3
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
# setter for: Lcn/rongcloud/rtc/stateMachine/StateMachine;->mSmThread:Landroid/os/HandlerThread;
invoke-static {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->access$402(Lcn/rongcloud/rtc/stateMachine/StateMachine;Landroid/os/HandlerThread;)Landroid/os/HandlerThread;
.line 4
:cond_15
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
# setter for: Lcn/rongcloud/rtc/stateMachine/StateMachine;->mSmHandler:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;
invoke-static {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->access$502(Lcn/rongcloud/rtc/stateMachine/StateMachine;Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;
.line 5
iput-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
.line 6
iput-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mMsg:Landroid/os/Message;
.line 7
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mLogRecords:Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;
invoke-virtual {v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;->cleanup()V
.line 8
iput-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.line 9
iput-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.line 10
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateInfo:Ljava/util/HashMap;
invoke-virtual {v0}, Ljava/util/HashMap;->clear()V
.line 11
iput-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mInitialState:Lcn/rongcloud/rtc/stateMachine/State;
.line 12
iput-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
.line 13
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDeferredMessages:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
const/4 v0, 0x1
.line 14
iput-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mHasQuit:Z
return-void
.end method
.method private completeConstruction()V
.registers 6
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_b
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
const-string v1, "completeConstruction: E"
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 2
:cond_b
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateInfo:Ljava/util/HashMap;
invoke-virtual {v0}, Ljava/util/HashMap;->values()Ljava/util/Collection;
move-result-object v0
invoke-interface {v0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v0
const/4 v1, 0x0
const/4 v2, 0x0
:cond_17
:goto_17
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_2f
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
const/4 v4, 0x0
:goto_24
if-eqz v3, :cond_2b
.line 3
iget-object v3, v3, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->parentStateInfo:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
add-int/lit8 v4, v4, 0x1
goto :goto_24
:cond_2b
if-ge v2, v4, :cond_17
move v2, v4
goto :goto_17
.line 4
:cond_2f
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_49
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "completeConstruction: maxDepth="
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 5
:cond_49
new-array v0, v2, [Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
iput-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.line 6
new-array v0, v2, [Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
iput-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.line 7
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->setupInitialStateStack()V
const/4 v0, -0x2
.line 8
sget-object v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSmHandlerObj:Ljava/lang/Object;
invoke-virtual {p0, v0, v1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
invoke-virtual {p0, v0}, Landroid/os/Handler;->sendMessageAtFrontOfQueue(Landroid/os/Message;)Z
.line 9
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_69
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
const-string v1, "completeConstruction: X"
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
:cond_69
return-void
.end method
.method private deferMessage(Landroid/os/Message;)V
.registers 5
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_1c
.line 2
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "deferMessage: msg="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p1, Landroid/os/Message;->what:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 3
:cond_1c
invoke-virtual {p0}, Landroid/os/Handler;->obtainMessage()Landroid/os/Message;
move-result-object v0
.line 4
invoke-virtual {v0, p1}, Landroid/os/Message;->copyFrom(Landroid/os/Message;)V
.line 5
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDeferredMessages:Ljava/util/ArrayList;
invoke-virtual {p1, v0}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
return-void
.end method
.method private getCurrentMessage()Landroid/os/Message;
.registers 2
.line 1
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mMsg:Landroid/os/Message;
return-object v0
.end method
.method private getCurrentState()Lcn/rongcloud/rtc/stateMachine/IState;
.registers 3
.line 1
iget v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
const/4 v1, -0x1
if-ne v0, v1, :cond_8
.line 2
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mInitialState:Lcn/rongcloud/rtc/stateMachine/State;
return-object v0
.line 3
:cond_8
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
aget-object v0, v1, v0
iget-object v0, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
return-object v0
.end method
.method private invokeEnterMethods(I)V
.registers 5
.line 1
:goto_0
iget v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
if-gt p1, v0, :cond_3b
.line 2
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_28
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "invokeEnterMethods: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
aget-object v2, v2, p1
iget-object v2, v2, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
invoke-virtual {v2}, Lcn/rongcloud/rtc/stateMachine/State;->getName()Ljava/lang/String;
move-result-object v2
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 {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 3
:cond_28
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
aget-object v0, v0, p1
iget-object v0, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
invoke-virtual {v0}, Lcn/rongcloud/rtc/stateMachine/State;->enter()V
.line 4
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
aget-object v0, v0, p1
const/4 v1, 0x1
iput-boolean v1, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->active:Z
add-int/lit8 p1, p1, 0x1
goto :goto_0
:cond_3b
return-void
.end method
.method private invokeExitMethods(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;)V
.registers 6
.line 1
:goto_0
iget v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
if-ltz v0, :cond_3d
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
aget-object v2, v1, v0
if-eq v2, p1, :cond_3d
.line 2
aget-object v0, v1, v0
iget-object v0, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
.line 3
iget-boolean v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v1, :cond_2c
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "invokeExitMethods: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Lcn/rongcloud/rtc/stateMachine/State;->getName()Ljava/lang/String;
move-result-object v3
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-virtual {v1, v2}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 4
:cond_2c
invoke-virtual {v0}, Lcn/rongcloud/rtc/stateMachine/State;->exit()V
.line 5
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
iget v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
aget-object v0, v0, v1
const/4 v2, 0x0
iput-boolean v2, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->active:Z
add-int/lit8 v1, v1, -0x1
.line 6
iput v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
goto :goto_0
:cond_3d
return-void
.end method
.method private isDbg()Z
.registers 2
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
return v0
.end method
.method private isQuit(Landroid/os/Message;)Z
.registers 4
.line 1
iget v0, p1, Landroid/os/Message;->what:I
const/4 v1, -0x1
if-ne v0, v1, :cond_d
iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
sget-object v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSmHandlerObj:Ljava/lang/Object;
if-ne p1, v0, :cond_d
const/4 p1, 0x1
goto :goto_e
:cond_d
const/4 p1, 0x0
:goto_e
return p1
.end method
.method private moveDeferredMessageAtFrontOfQueue()V
.registers 6
.line 1
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDeferredMessages:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
add-int/lit8 v0, v0, -0x1
:goto_8
if-ltz v0, :cond_34
.line 2
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDeferredMessages:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/os/Message;
.line 3
iget-boolean v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v2, :cond_2e
iget-object v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "moveDeferredMessageAtFrontOfQueue; what="
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v4, v1, Landroid/os/Message;->what:I
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 4
:cond_2e
invoke-virtual {p0, v1}, Landroid/os/Handler;->sendMessageAtFrontOfQueue(Landroid/os/Message;)Z
add-int/lit8 v0, v0, -0x1
goto :goto_8
.line 5
:cond_34
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDeferredMessages:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
return-void
.end method
.method private moveTempStateStackToStateStack()I
.registers 7
.line 1
iget v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
add-int/lit8 v0, v0, 0x1
.line 2
iget v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStackCount:I
add-int/lit8 v1, v1, -0x1
move v2, v0
:goto_9
if-ltz v1, :cond_3a
.line 3
iget-boolean v3, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v3, :cond_2d
iget-object v3, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "moveTempStackToStateStack: i="
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v5, ",j="
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 4
:cond_2d
iget-object v3, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
iget-object v4, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
aget-object v4, v4, v1
aput-object v4, v3, v2
add-int/lit8 v2, v2, 0x1
add-int/lit8 v1, v1, -0x1
goto :goto_9
:cond_3a
add-int/lit8 v2, v2, -0x1
.line 5
iput v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
.line 6
iget-boolean v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v1, :cond_76
.line 7
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "moveTempStackToStateStack: X mStateStackTop="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ",startingIndex="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ",Top="
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
iget v4, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
aget-object v3, v3, v4
iget-object v3, v3, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
.line 8
invoke-virtual {v3}, Lcn/rongcloud/rtc/stateMachine/State;->getName()Ljava/lang/String;
move-result-object v3
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
.line 9
invoke-virtual {v1, v2}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
:cond_76
return v0
.end method
.method private performTransitions(Lcn/rongcloud/rtc/stateMachine/State;Landroid/os/Message;)V
.registers 11
.line 1
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
iget v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
aget-object v0, v0, v1
iget-object v6, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
.line 2
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mMsg:Landroid/os/Message;
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->recordLogRec(Landroid/os/Message;)Z
move-result v0
if-eqz v0, :cond_1a
iget-object p2, p2, Landroid/os/Message;->obj:Ljava/lang/Object;
sget-object v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSmHandlerObj:Ljava/lang/Object;
if-eq p2, v0, :cond_1a
const/4 p2, 0x1
goto :goto_1b
:cond_1a
const/4 p2, 0x0
.line 3
:goto_1b
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mLogRecords:Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;
invoke-virtual {v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;->logOnlyTransitions()Z
move-result v0
if-eqz v0, :cond_38
.line 4
iget-object p2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
if-eqz p2, :cond_4a
.line 5
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mLogRecords:Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;
iget-object v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
iget-object v3, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mMsg:Landroid/os/Message;
invoke-virtual {v2, v3}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->getLogRecString(Landroid/os/Message;)Ljava/lang/String;
move-result-object v4
iget-object v7, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
move-object v5, p1
invoke-virtual/range {v1 .. v7}, Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;->add(Lcn/rongcloud/rtc/stateMachine/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcn/rongcloud/rtc/stateMachine/IState;Lcn/rongcloud/rtc/stateMachine/IState;Lcn/rongcloud/rtc/stateMachine/IState;)V
goto :goto_4a
:cond_38
if-eqz p2, :cond_4a
.line 6
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mLogRecords:Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;
iget-object v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
iget-object v3, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mMsg:Landroid/os/Message;
invoke-virtual {v2, v3}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->getLogRecString(Landroid/os/Message;)Ljava/lang/String;
move-result-object v4
iget-object v7, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
move-object v5, p1
invoke-virtual/range {v1 .. v7}, Lcn/rongcloud/rtc/stateMachine/StateMachine$LogRecords;->add(Lcn/rongcloud/rtc/stateMachine/StateMachine;Landroid/os/Message;Ljava/lang/String;Lcn/rongcloud/rtc/stateMachine/IState;Lcn/rongcloud/rtc/stateMachine/IState;Lcn/rongcloud/rtc/stateMachine/IState;)V
.line 7
:cond_4a
:goto_4a
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
if-eqz p1, :cond_73
.line 8
:goto_4e
iget-boolean p2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz p2, :cond_59
.line 9
iget-object p2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
const-string v0, "handleMessage: new destination call exit/enter"
invoke-virtual {p2, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 10
:cond_59
invoke-direct {p0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->setupTempStateStackWithStatesToEnter(Lcn/rongcloud/rtc/stateMachine/State;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
move-result-object p2
.line 11
invoke-direct {p0, p2}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->invokeExitMethods(Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;)V
.line 12
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->moveTempStateStackToStateStack()I
move-result p2
.line 13
invoke-direct {p0, p2}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->invokeEnterMethods(I)V
.line 14
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->moveDeferredMessageAtFrontOfQueue()V
.line 15
iget-object p2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
if-eq p1, p2, :cond_70
move-object p1, p2
goto :goto_4e
:cond_70
const/4 p2, 0x0
.line 16
iput-object p2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
:cond_73
if-eqz p1, :cond_8b
.line 17
iget-object p2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mQuittingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$QuittingState;
if-ne p1, p2, :cond_82
.line 18
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
invoke-virtual {p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->onQuitting()V
.line 19
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->cleanupAfterQuitting()V
goto :goto_8b
.line 20
:cond_82
iget-object p2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mHaltingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$HaltingState;
if-ne p1, p2, :cond_8b
.line 21
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
invoke-virtual {p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->onHalting()V
:cond_8b
:goto_8b
return-void
.end method
.method private processMsg(Landroid/os/Message;)Lcn/rongcloud/rtc/stateMachine/State;
.registers 7
.line 1
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
iget v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
aget-object v0, v0, v1
.line 2
iget-boolean v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
const-string v2, "processMsg: "
if-eqz v1, :cond_26
.line 3
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
invoke-virtual {v4}, Lcn/rongcloud/rtc/stateMachine/State;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v3}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 4
:cond_26
invoke-direct {p0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->isQuit(Landroid/os/Message;)Z
move-result v1
if-eqz v1, :cond_32
.line 5
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mQuittingState:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$QuittingState;
invoke-direct {p0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->transitionTo(Lcn/rongcloud/rtc/stateMachine/IState;)V
goto :goto_63
.line 6
:cond_32
:goto_32
iget-object v1, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
invoke-virtual {v1, p1}, Lcn/rongcloud/rtc/stateMachine/State;->processMessage(Landroid/os/Message;)Z
move-result v1
if-nez v1, :cond_63
.line 7
iget-object v0, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->parentStateInfo:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
if-nez v0, :cond_44
.line 8
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
invoke-virtual {v1, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->unhandledMessage(Landroid/os/Message;)V
goto :goto_63
.line 9
:cond_44
iget-boolean v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v1, :cond_32
.line 10
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v4, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
invoke-virtual {v4}, Lcn/rongcloud/rtc/stateMachine/State;->getName()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v3}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
goto :goto_32
:cond_63
:goto_63
if-eqz v0, :cond_68
.line 11
iget-object p1, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->state:Lcn/rongcloud/rtc/stateMachine/State;
goto :goto_69
:cond_68
const/4 p1, 0x0
:goto_69
return-object p1
.end method
.method private quit()V
.registers 3
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_b
.line 2
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
const-string v1, "quit:"
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
:cond_b
const/4 v0, -0x1
.line 3
sget-object v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSmHandlerObj:Ljava/lang/Object;
invoke-virtual {p0, v0, v1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
invoke-virtual {p0, v0}, Landroid/os/Handler;->sendMessage(Landroid/os/Message;)Z
return-void
.end method
.method private quitNow()V
.registers 3
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_b
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
const-string v1, "quitNow:"
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
:cond_b
const/4 v0, -0x1
.line 2
sget-object v1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSmHandlerObj:Ljava/lang/Object;
invoke-virtual {p0, v0, v1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
invoke-virtual {p0, v0}, Landroid/os/Handler;->sendMessageAtFrontOfQueue(Landroid/os/Message;)Z
return-void
.end method
.method private setDbg(Z)V
.registers 2
.line 1
iput-boolean p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
return-void
.end method
.method private setInitialState(Lcn/rongcloud/rtc/stateMachine/State;)V
.registers 5
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_1e
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "setInitialState: initialState="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Lcn/rongcloud/rtc/stateMachine/State;->getName()Ljava/lang/String;
move-result-object v2
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 {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 2
:cond_1e
iput-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mInitialState:Lcn/rongcloud/rtc/stateMachine/State;
return-void
.end method
.method private setupInitialStateStack()V
.registers 4
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_20
.line 2
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "setupInitialStateStack: E mInitialState="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mInitialState:Lcn/rongcloud/rtc/stateMachine/State;
invoke-virtual {v2}, Lcn/rongcloud/rtc/stateMachine/State;->getName()Ljava/lang/String;
move-result-object v2
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 {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 3
:cond_20
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateInfo:Ljava/util/HashMap;
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mInitialState:Lcn/rongcloud/rtc/stateMachine/State;
invoke-virtual {v0, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
const/4 v1, 0x0
.line 4
iput v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStackCount:I
:goto_2d
if-eqz v0, :cond_3c
.line 5
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
iget v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStackCount:I
aput-object v0, v1, v2
.line 6
iget-object v0, v0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->parentStateInfo:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
add-int/lit8 v2, v2, 0x1
.line 7
iput v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStackCount:I
goto :goto_2d
:cond_3c
const/4 v0, -0x1
.line 8
iput v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateStackTopIndex:I
.line 9
invoke-direct {p0}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->moveTempStateStackToStateStack()I
return-void
.end method
.method private setupTempStateStackWithStatesToEnter(Lcn/rongcloud/rtc/stateMachine/State;)Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.registers 5
const/4 v0, 0x0
.line 1
iput v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStackCount:I
.line 2
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mStateInfo:Ljava/util/HashMap;
invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
.line 3
:cond_b
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStack:[Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
iget v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStackCount:I
add-int/lit8 v2, v1, 0x1
iput v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStackCount:I
aput-object p1, v0, v1
if-eqz p1, :cond_19
.line 4
iget-object p1, p1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->parentStateInfo:Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;
:cond_19
if-eqz p1, :cond_1f
.line 5
iget-boolean v0, p1, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler$StateInfo;->active:Z
if-eqz v0, :cond_b
.line 6
:cond_1f
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_43
.line 7
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "setupTempStateStackWithStatesToEnter: X mTempStateStackCount="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mTempStateStackCount:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, ",curStateInfo: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
:cond_43
return-object p1
.end method
.method private transitionTo(Lcn/rongcloud/rtc/stateMachine/IState;)V
.registers 4
.line 1
check-cast p1, Lcn/rongcloud/rtc/stateMachine/State;
iput-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
.line 2
iget-boolean p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz p1, :cond_24
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "transitionTo: destState="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDestState:Lcn/rongcloud/rtc/stateMachine/State;
invoke-virtual {v1}, Lcn/rongcloud/rtc/stateMachine/State;->getName()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 {p1, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
:cond_24
return-void
.end method
# virtual methods
.method public clearDeferredMessage()V
.registers 3
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_b
.line 2
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
const-string v1, "clearMessage"
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 3
:cond_b
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDeferredMessages:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
return-void
.end method
.method public final handleMessage(Landroid/os/Message;)V
.registers 6
.line 1
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mHasQuit:Z
if-nez v0, :cond_68
.line 2
iget-boolean v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz v0, :cond_20
iget-object v0, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "handleMessage: E msg.what="
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p1, Landroid/os/Message;->what:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
.line 3
:cond_20
iput-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mMsg:Landroid/os/Message;
const/4 v0, 0x0
.line 4
iget-boolean v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mIsConstructionCompleted:Z
if-eqz v1, :cond_2c
.line 5
invoke-direct {p0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->processMsg(Landroid/os/Message;)Lcn/rongcloud/rtc/stateMachine/State;
move-result-object v0
goto :goto_40
.line 6
:cond_2c
iget-object v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mMsg:Landroid/os/Message;
iget v2, v1, Landroid/os/Message;->what:I
const/4 v3, -0x2
if-ne v2, v3, :cond_51
iget-object v1, v1, Landroid/os/Message;->obj:Ljava/lang/Object;
sget-object v2, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSmHandlerObj:Ljava/lang/Object;
if-ne v1, v2, :cond_51
const/4 v1, 0x1
.line 7
iput-boolean v1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mIsConstructionCompleted:Z
const/4 v1, 0x0
.line 8
invoke-direct {p0, v1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->invokeEnterMethods(I)V
.line 9
:goto_40
invoke-direct {p0, v0, p1}, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->performTransitions(Lcn/rongcloud/rtc/stateMachine/State;Landroid/os/Message;)V
.line 10
iget-boolean p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mDbg:Z
if-eqz p1, :cond_68
iget-object p1, p0, Lcn/rongcloud/rtc/stateMachine/StateMachine$SmHandler;->mSm:Lcn/rongcloud/rtc/stateMachine/StateMachine;
if-eqz p1, :cond_68
const-string v0, "handleMessage: X"
invoke-virtual {p1, v0}, Lcn/rongcloud/rtc/stateMachine/StateMachine;->log(Ljava/lang/String;)V
goto :goto_68
.line 11
:cond_51
new-instance v0, Ljava/lang/RuntimeException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "StateMachine.handleMessage: The start method not called, received msg: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)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
:cond_68
:goto_68
return-void
.end method