SyncIMOperationCallback.smali

.class public Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;
.super Lio/rong/imlib/RongIMClient$OperationCallback;
.source "SyncIMOperationCallback.java"


# instance fields
.field private mCallback:Lcn/rongcloud/rtc/api/callback/IRCRTCResultCallback;

.field private mIsSync:Z

.field private mRes:Lcn/rongcloud/rtc/base/AsyncResult$TemporaryResult;

.field private mThread:Ljava/lang/Thread;


# direct methods
.method public constructor <init>(ZLcn/rongcloud/rtc/api/callback/IRCRTCResultCallback;)V
    .registers 4

    .line 1
    invoke-direct {p0}, Lio/rong/imlib/RongIMClient$OperationCallback;-><init>()V

    .line 2
    invoke-static {}, Lcn/rongcloud/rtc/base/AsyncResult;->create()Lcn/rongcloud/rtc/base/AsyncResult$TemporaryResult;

    move-result-object v0

    iput-object v0, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mRes:Lcn/rongcloud/rtc/base/AsyncResult$TemporaryResult;

    const/4 v0, 0x1

    .line 3
    iput-boolean v0, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mIsSync:Z

    .line 4
    iput-object p2, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mCallback:Lcn/rongcloud/rtc/api/callback/IRCRTCResultCallback;

    .line 5
    iput-boolean p1, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mIsSync:Z

    .line 6
    iget-boolean p1, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mIsSync:Z

    if-eqz p1, :cond_1a

    .line 7
    invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;

    move-result-object p1

    iput-object p1, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mThread:Ljava/lang/Thread;

    :cond_1a
    return-void
.end method


# virtual methods
.method public getResult()Lcn/rongcloud/rtc/base/AsyncResult;
    .registers 2

    .line 1
    iget-boolean v0, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mIsSync:Z

    if-eqz v0, :cond_7

    .line 2
    invoke-static {}, Ljava/util/concurrent/locks/LockSupport;->park()V

    .line 3
    :cond_7
    iget-object v0, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mRes:Lcn/rongcloud/rtc/base/AsyncResult$TemporaryResult;

    invoke-virtual {v0}, Lcn/rongcloud/rtc/base/AsyncResult$TemporaryResult;->getResult()Lcn/rongcloud/rtc/base/AsyncResult;

    move-result-object v0

    return-object v0
.end method

.method public onError(Lio/rong/imlib/RongIMClient$ErrorCode;)V
    .registers 3

    .line 1
    invoke-virtual {p1}, Lio/rong/imlib/RongIMClient$ErrorCode;->getValue()I

    move-result p1

    invoke-static {p1}, Lcn/rongcloud/rtc/base/RTCErrorCode;->valueOf(I)Lcn/rongcloud/rtc/base/RTCErrorCode;

    move-result-object p1

    .line 2
    iget-object v0, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mRes:Lcn/rongcloud/rtc/base/AsyncResult$TemporaryResult;

    invoke-virtual {v0, p1}, Lcn/rongcloud/rtc/base/AsyncResult$TemporaryResult;->setAndNotify(Lcn/rongcloud/rtc/base/RTCErrorCode;)V

    .line 3
    iget-object v0, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mCallback:Lcn/rongcloud/rtc/api/callback/IRCRTCResultCallback;

    if-eqz v0, :cond_14

    .line 4
    invoke-interface {v0, p1}, Lcn/rongcloud/rtc/api/callback/IRCRTCFailedCallback;->onFailed(Lcn/rongcloud/rtc/base/RTCErrorCode;)V

    .line 5
    :cond_14
    iget-boolean p1, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mIsSync:Z

    if-eqz p1, :cond_1d

    .line 6
    iget-object p1, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mThread:Ljava/lang/Thread;

    invoke-static {p1}, Ljava/util/concurrent/locks/LockSupport;->unpark(Ljava/lang/Thread;)V

    :cond_1d
    return-void
.end method

.method public onSuccess()V
    .registers 2

    .line 1
    iget-object v0, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mCallback:Lcn/rongcloud/rtc/api/callback/IRCRTCResultCallback;

    if-eqz v0, :cond_7

    .line 2
    invoke-virtual {v0}, Lcn/rongcloud/rtc/api/callback/IRCRTCResultCallback;->onSuccess()V

    .line 3
    :cond_7
    iget-boolean v0, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mIsSync:Z

    if-eqz v0, :cond_10

    .line 4
    iget-object v0, p0, Lcn/rongcloud/rtc/signal/SyncIMOperationCallback;->mThread:Ljava/lang/Thread;

    invoke-static {v0}, Ljava/util/concurrent/locks/LockSupport;->unpark(Ljava/lang/Thread;)V

    :cond_10
    return-void
.end method