ResendManager.smali
.class public Lio/rong/imkit/resend/ResendManager;
.super Ljava/lang/Object;
.source "ResendManager.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lio/rong/imkit/resend/ResendManager$AddResendMessageCallBack;,
Lio/rong/imkit/resend/ResendManager$ResendManagerHolder;
}
.end annotation
# static fields
.field private static final TIME_DELAY:I = 0x12c
# instance fields
.field private final TAG:Ljava/lang/String;
.field private volatile mIsProcessing:Z
.field private mMessageMap:Ljava/util/Hashtable;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Hashtable<",
"Ljava/lang/Integer;",
"Lio/rong/imlib/model/Message;",
">;"
}
.end annotation
.end field
.field private mMessageQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ConcurrentLinkedQueue<",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field private mResendHandler:Landroid/os/Handler;
# direct methods
.method private constructor <init>()V
.registers 3
.line 2
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, "ResendManager"
.line 3
iput-object v0, p0, Lio/rong/imkit/resend/ResendManager;->TAG:Ljava/lang/String;
const/4 v0, 0x0
.line 4
iput-boolean v0, p0, Lio/rong/imkit/resend/ResendManager;->mIsProcessing:Z
.line 5
new-instance v0, Ljava/util/Hashtable;
invoke-direct {v0}, Ljava/util/Hashtable;-><init>()V
iput-object v0, p0, Lio/rong/imkit/resend/ResendManager;->mMessageMap:Ljava/util/Hashtable;
.line 6
new-instance v0, Ljava/util/concurrent/ConcurrentLinkedQueue;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentLinkedQueue;-><init>()V
iput-object v0, p0, Lio/rong/imkit/resend/ResendManager;->mMessageQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
.line 7
new-instance v0, Landroid/os/HandlerThread;
const-string v1, "RESEND_WORK"
invoke-direct {v0, v1}, Landroid/os/HandlerThread;-><init>(Ljava/lang/String;)V
.line 8
invoke-virtual {v0}, Landroid/os/HandlerThread;->start()V
.line 9
new-instance v1, Landroid/os/Handler;
invoke-virtual {v0}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object v0
invoke-direct {v1, v0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v1, p0, Lio/rong/imkit/resend/ResendManager;->mResendHandler:Landroid/os/Handler;
return-void
.end method
.method synthetic constructor <init>(Lio/rong/imkit/resend/ResendManager$1;)V
.registers 2
.line 1
invoke-direct {p0}, Lio/rong/imkit/resend/ResendManager;-><init>()V
return-void
.end method
.method static synthetic access$200(Lio/rong/imkit/resend/ResendManager;)Ljava/util/Hashtable;
.registers 1
.line 1
iget-object p0, p0, Lio/rong/imkit/resend/ResendManager;->mMessageMap:Ljava/util/Hashtable;
return-object p0
.end method
.method static synthetic access$300(Lio/rong/imkit/resend/ResendManager;)Ljava/util/concurrent/ConcurrentLinkedQueue;
.registers 1
.line 1
iget-object p0, p0, Lio/rong/imkit/resend/ResendManager;->mMessageQueue:Ljava/util/concurrent/ConcurrentLinkedQueue;
return-object p0
.end method
.method static synthetic access$400(Lio/rong/imkit/resend/ResendManager;)Z
.registers 1
.line 1
iget-boolean p0, p0, Lio/rong/imkit/resend/ResendManager;->mIsProcessing:Z
return p0
.end method
.method static synthetic access$402(Lio/rong/imkit/resend/ResendManager;Z)Z
.registers 2
.line 1
iput-boolean p1, p0, Lio/rong/imkit/resend/ResendManager;->mIsProcessing:Z
return p1
.end method
.method static synthetic access$500(Lio/rong/imkit/resend/ResendManager;)V
.registers 1
.line 1
invoke-direct {p0}, Lio/rong/imkit/resend/ResendManager;->loopResendMessage()V
return-void
.end method
.method static synthetic access$600(Lio/rong/imkit/resend/ResendManager;Lio/rong/imlib/model/Message;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
.registers 3
.line 1
invoke-direct {p0, p1, p2}, Lio/rong/imkit/resend/ResendManager;->resendMessage(Lio/rong/imlib/model/Message;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
return-void
.end method
.method public static getInstance()Lio/rong/imkit/resend/ResendManager;
.registers 1
.line 1
# getter for: Lio/rong/imkit/resend/ResendManager$ResendManagerHolder;->instance:Lio/rong/imkit/resend/ResendManager;
invoke-static {}, Lio/rong/imkit/resend/ResendManager$ResendManagerHolder;->access$100()Lio/rong/imkit/resend/ResendManager;
move-result-object v0
return-object v0
.end method
.method private loopResendMessage()V
.registers 5
.line 1
iget-object v0, p0, Lio/rong/imkit/resend/ResendManager;->mResendHandler:Landroid/os/Handler;
new-instance v1, Lio/rong/imkit/resend/ResendManager$5;
invoke-direct {v1, p0}, Lio/rong/imkit/resend/ResendManager$5;-><init>(Lio/rong/imkit/resend/ResendManager;)V
const-wide/16 v2, 0x12c
invoke-virtual {v0, v1, v2, v3}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
return-void
.end method
.method private resendMessage(Lio/rong/imlib/model/Message;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
.registers 6
const-string v0, "ResendManager"
if-nez p1, :cond_a
const-string p1, "resendMessage: Message is Null"
.line 1
invoke-static {v0, p1}, Lio/rong/common/RLog;->i(Ljava/lang/String;Ljava/lang/String;)I
return-void
.line 2
:cond_a
invoke-virtual {p1}, Lio/rong/imlib/model/Message;->getTargetId()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_a7
invoke-virtual {p1}, Lio/rong/imlib/model/Message;->getContent()Lio/rong/imlib/model/MessageContent;
move-result-object v1
if-nez v1, :cond_1c
goto/16 :goto_a7
.line 3
:cond_1c
invoke-virtual {p1}, Lio/rong/imlib/model/Message;->getContent()Lio/rong/imlib/model/MessageContent;
move-result-object v0
instance-of v0, v0, Lio/rong/message/ImageMessage;
const/4 v1, 0x0
if-eqz v0, :cond_56
.line 4
invoke-virtual {p1}, Lio/rong/imlib/model/Message;->getContent()Lio/rong/imlib/model/MessageContent;
move-result-object v0
check-cast v0, Lio/rong/message/ImageMessage;
.line 5
invoke-virtual {v0}, Lio/rong/message/ImageMessage;->getRemoteUri()Landroid/net/Uri;
move-result-object v2
if-eqz v2, :cond_49
invoke-virtual {v0}, Lio/rong/message/ImageMessage;->getRemoteUri()Landroid/net/Uri;
move-result-object v0
invoke-virtual {v0}, Landroid/net/Uri;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "file"
invoke-virtual {v0, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_49
.line 6
invoke-static {}, Lio/rong/imkit/RongIM;->getInstance()Lio/rong/imkit/RongIM;
move-result-object v0
invoke-virtual {v0, p1, v1, v1, p2}, Lio/rong/imkit/RongIM;->sendMessage(Lio/rong/imlib/model/Message;Ljava/lang/String;Ljava/lang/String;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
goto :goto_a6
.line 7
:cond_49
invoke-static {}, Lio/rong/imkit/RongIM;->getInstance()Lio/rong/imkit/RongIM;
move-result-object v0
new-instance v2, Lio/rong/imkit/resend/ResendManager$6;
invoke-direct {v2, p0, p2}, Lio/rong/imkit/resend/ResendManager$6;-><init>(Lio/rong/imkit/resend/ResendManager;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
invoke-virtual {v0, p1, v1, v1, v2}, Lio/rong/imkit/RongIM;->sendImageMessage(Lio/rong/imlib/model/Message;Ljava/lang/String;Ljava/lang/String;Lio/rong/imlib/RongIMClient$SendImageMessageCallback;)V
goto :goto_a6
.line 8
:cond_56
invoke-virtual {p1}, Lio/rong/imlib/model/Message;->getContent()Lio/rong/imlib/model/MessageContent;
move-result-object v0
instance-of v0, v0, Lio/rong/message/LocationMessage;
if-eqz v0, :cond_66
.line 9
invoke-static {}, Lio/rong/imkit/RongIM;->getInstance()Lio/rong/imkit/RongIM;
move-result-object v0
invoke-virtual {v0, p1, v1, v1, p2}, Lio/rong/imkit/RongIM;->sendLocationMessage(Lio/rong/imlib/model/Message;Ljava/lang/String;Ljava/lang/String;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
goto :goto_a6
.line 10
:cond_66
invoke-virtual {p1}, Lio/rong/imlib/model/Message;->getContent()Lio/rong/imlib/model/MessageContent;
move-result-object v0
instance-of v0, v0, Lio/rong/message/ReferenceMessage;
if-eqz v0, :cond_76
.line 11
invoke-static {}, Lio/rong/imkit/RongIM;->getInstance()Lio/rong/imkit/RongIM;
move-result-object v0
invoke-virtual {v0, p1, v1, v1, p2}, Lio/rong/imkit/RongIM;->sendMessage(Lio/rong/imlib/model/Message;Ljava/lang/String;Ljava/lang/String;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
goto :goto_a6
.line 12
:cond_76
invoke-virtual {p1}, Lio/rong/imlib/model/Message;->getContent()Lio/rong/imlib/model/MessageContent;
move-result-object v0
instance-of v0, v0, Lio/rong/message/MediaMessageContent;
if-eqz v0, :cond_9f
.line 13
invoke-virtual {p1}, Lio/rong/imlib/model/Message;->getContent()Lio/rong/imlib/model/MessageContent;
move-result-object v0
check-cast v0, Lio/rong/message/MediaMessageContent;
.line 14
invoke-virtual {v0}, Lio/rong/message/MediaMessageContent;->getMediaUrl()Landroid/net/Uri;
move-result-object v0
if-eqz v0, :cond_92
.line 15
invoke-static {}, Lio/rong/imkit/RongIM;->getInstance()Lio/rong/imkit/RongIM;
move-result-object v0
invoke-virtual {v0, p1, v1, v1, p2}, Lio/rong/imkit/RongIM;->sendMessage(Lio/rong/imlib/model/Message;Ljava/lang/String;Ljava/lang/String;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
goto :goto_a6
.line 16
:cond_92
invoke-static {}, Lio/rong/imkit/RongIM;->getInstance()Lio/rong/imkit/RongIM;
move-result-object v0
new-instance v2, Lio/rong/imkit/resend/ResendManager$7;
invoke-direct {v2, p0, p2}, Lio/rong/imkit/resend/ResendManager$7;-><init>(Lio/rong/imkit/resend/ResendManager;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
invoke-virtual {v0, p1, v1, v1, v2}, Lio/rong/imkit/RongIM;->sendMediaMessage(Lio/rong/imlib/model/Message;Ljava/lang/String;Ljava/lang/String;Lio/rong/imlib/IRongCallback$ISendMediaMessageCallback;)V
goto :goto_a6
.line 17
:cond_9f
invoke-static {}, Lio/rong/imkit/RongIM;->getInstance()Lio/rong/imkit/RongIM;
move-result-object v0
invoke-virtual {v0, p1, v1, v1, p2}, Lio/rong/imkit/RongIM;->sendMessage(Lio/rong/imlib/model/Message;Ljava/lang/String;Ljava/lang/String;Lio/rong/imlib/IRongCallback$ISendMessageCallback;)V
:goto_a6
return-void
:cond_a7
:goto_a7
const-string p2, "targetId or messageContent is Null"
.line 18
invoke-static {v0, p2}, Lio/rong/common/RLog;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 19
invoke-virtual {p1}, Lio/rong/imlib/model/Message;->getMessageId()I
move-result p1
invoke-virtual {p0, p1}, Lio/rong/imkit/resend/ResendManager;->removeResendMessage(I)V
return-void
.end method
# virtual methods
.method public addResendMessage(Lio/rong/imlib/model/Message;Lio/rong/imlib/RongIMClient$ErrorCode;Lio/rong/imkit/resend/ResendManager$AddResendMessageCallBack;)V
.registers 6
.line 1
iget-object v0, p0, Lio/rong/imkit/resend/ResendManager;->mResendHandler:Landroid/os/Handler;
new-instance v1, Lio/rong/imkit/resend/ResendManager$1;
invoke-direct {v1, p0, p2, p1, p3}, Lio/rong/imkit/resend/ResendManager$1;-><init>(Lio/rong/imkit/resend/ResendManager;Lio/rong/imlib/RongIMClient$ErrorCode;Lio/rong/imlib/model/Message;Lio/rong/imkit/resend/ResendManager$AddResendMessageCallBack;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public beginResend()V
.registers 3
.line 1
iget-object v0, p0, Lio/rong/imkit/resend/ResendManager;->mResendHandler:Landroid/os/Handler;
new-instance v1, Lio/rong/imkit/resend/ResendManager$4;
invoke-direct {v1, p0}, Lio/rong/imkit/resend/ResendManager$4;-><init>(Lio/rong/imkit/resend/ResendManager;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public isResendErrorCode(Lio/rong/imlib/RongIMClient$ErrorCode;)Z
.registers 3
.line 1
sget-object v0, Lio/rong/imlib/RongIMClient$ErrorCode;->RC_NET_CHANNEL_INVALID:Lio/rong/imlib/RongIMClient$ErrorCode;
invoke-virtual {p1, v0}, Ljava/lang/Enum;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1b
sget-object v0, Lio/rong/imlib/RongIMClient$ErrorCode;->RC_NET_UNAVAILABLE:Lio/rong/imlib/RongIMClient$ErrorCode;
.line 2
invoke-virtual {p1, v0}, Ljava/lang/Enum;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_1b
sget-object v0, Lio/rong/imlib/RongIMClient$ErrorCode;->RC_MSG_RESP_TIMEOUT:Lio/rong/imlib/RongIMClient$ErrorCode;
.line 3
invoke-virtual {p1, v0}, Ljava/lang/Enum;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_19
goto :goto_1b
:cond_19
const/4 p1, 0x0
goto :goto_1c
:cond_1b
:goto_1b
const/4 p1, 0x1
:goto_1c
return p1
.end method
.method public needResend(I)Z
.registers 3
.line 1
iget-object v0, p0, Lio/rong/imkit/resend/ResendManager;->mMessageMap:Ljava/util/Hashtable;
if-nez v0, :cond_6
const/4 p1, 0x0
return p1
.line 2
:cond_6
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
invoke-virtual {v0, p1}, Ljava/util/Hashtable;->containsKey(Ljava/lang/Object;)Z
move-result p1
return p1
.end method
.method public removeAllResendMessage()V
.registers 3
.line 1
iget-object v0, p0, Lio/rong/imkit/resend/ResendManager;->mResendHandler:Landroid/os/Handler;
new-instance v1, Lio/rong/imkit/resend/ResendManager$3;
invoke-direct {v1, p0}, Lio/rong/imkit/resend/ResendManager$3;-><init>(Lio/rong/imkit/resend/ResendManager;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method
.method public removeResendMessage(I)V
.registers 4
.line 1
iget-object v0, p0, Lio/rong/imkit/resend/ResendManager;->mResendHandler:Landroid/os/Handler;
new-instance v1, Lio/rong/imkit/resend/ResendManager$2;
invoke-direct {v1, p0, p1}, Lio/rong/imkit/resend/ResendManager$2;-><init>(Lio/rong/imkit/resend/ResendManager;I)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
.end method