MessengerUtils$Client.smali
.class Lcom/blankj/utilcode/util/MessengerUtils$Client;
.super Ljava/lang/Object;
.source "MessengerUtils.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/blankj/utilcode/util/MessengerUtils;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = "Client"
.end annotation
# instance fields
.field mCached:Ljava/util/LinkedList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/LinkedList<",
"Landroid/os/Bundle;",
">;"
}
.end annotation
.end field
.field mClient:Landroid/os/Messenger;
.field mConn:Landroid/content/ServiceConnection;
.field mPkgName:Ljava/lang/String;
.field mReceiveServeMsgHandler:Landroid/os/Handler;
.field mServer:Landroid/os/Messenger;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>(Ljava/lang/String;)V
.registers 4
.param p1, "pkgName" # Ljava/lang/String;
.line 236
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 191
new-instance v0, Ljava/util/LinkedList;
invoke-direct {v0}, Ljava/util/LinkedList;-><init>()V
iput-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mCached:Ljava/util/LinkedList;
.line 192
new-instance v0, Lcom/blankj/utilcode/util/MessengerUtils$Client$1;
invoke-direct {v0, p0}, Lcom/blankj/utilcode/util/MessengerUtils$Client$1;-><init>(Lcom/blankj/utilcode/util/MessengerUtils$Client;)V
iput-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mReceiveServeMsgHandler:Landroid/os/Handler;
.line 208
new-instance v0, Landroid/os/Messenger;
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mReceiveServeMsgHandler:Landroid/os/Handler;
invoke-direct {v0, v1}, Landroid/os/Messenger;-><init>(Landroid/os/Handler;)V
iput-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mClient:Landroid/os/Messenger;
.line 209
new-instance v0, Lcom/blankj/utilcode/util/MessengerUtils$Client$2;
invoke-direct {v0, p0}, Lcom/blankj/utilcode/util/MessengerUtils$Client$2;-><init>(Lcom/blankj/utilcode/util/MessengerUtils$Client;)V
iput-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mConn:Landroid/content/ServiceConnection;
.line 237
iput-object p1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mPkgName:Ljava/lang/String;
.line 238
return-void
.end method
.method static synthetic access$100(Lcom/blankj/utilcode/util/MessengerUtils$Client;)V
.registers 1
.param p0, "x0" # Lcom/blankj/utilcode/util/MessengerUtils$Client;
.line 187
invoke-direct {p0}, Lcom/blankj/utilcode/util/MessengerUtils$Client;->sendCachedMsg2Server()V
return-void
.end method
.method private send2Server(Landroid/os/Bundle;)Z
.registers 6
.param p1, "bundle" # Landroid/os/Bundle;
.line 295
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mReceiveServeMsgHandler:Landroid/os/Handler;
const/4 v1, 0x2
invoke-static {v0, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message;
move-result-object v0
.line 296
.local v0, "msg":Landroid/os/Message;
invoke-virtual {v0, p1}, Landroid/os/Message;->setData(Landroid/os/Bundle;)V
.line 297
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mClient:Landroid/os/Messenger;
iput-object v1, v0, Landroid/os/Message;->replyTo:Landroid/os/Messenger;
.line 299
:try_start_e
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mServer:Landroid/os/Messenger;
invoke-virtual {v1, v0}, Landroid/os/Messenger;->send(Landroid/os/Message;)V
:try_end_13
.catch Landroid/os/RemoteException; {:try_start_e .. :try_end_13} :catch_15
.line 300
const/4 v1, 0x1
return v1
.line 301
:catch_15
move-exception v1
.line 302
.local v1, "e":Landroid/os/RemoteException;
const-string v2, "MessengerUtils"
const-string/jumbo v3, "send2Server: "
invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 303
const/4 v2, 0x0
return v2
.end method
.method private sendCachedMsg2Server()V
.registers 3
.line 286
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mCached:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->isEmpty()Z
move-result v0
if-eqz v0, :cond_9
return-void
.line 287
:cond_9
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mCached:Ljava/util/LinkedList;
invoke-virtual {v0}, Ljava/util/LinkedList;->size()I
move-result v0
add-int/lit8 v0, v0, -0x1
.local v0, "i":I
:goto_11
if-ltz v0, :cond_29
.line 288
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mCached:Ljava/util/LinkedList;
invoke-virtual {v1, v0}, Ljava/util/LinkedList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/os/Bundle;
invoke-direct {p0, v1}, Lcom/blankj/utilcode/util/MessengerUtils$Client;->send2Server(Landroid/os/Bundle;)Z
move-result v1
if-eqz v1, :cond_26
.line 289
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mCached:Ljava/util/LinkedList;
invoke-virtual {v1, v0}, Ljava/util/LinkedList;->remove(I)Ljava/lang/Object;
.line 287
:cond_26
add-int/lit8 v0, v0, -0x1
goto :goto_11
.line 292
.end local v0 # "i":I
:cond_29
return-void
.end method
# virtual methods
.method bind()Z
.registers 5
.line 241
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mPkgName:Ljava/lang/String;
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
const/4 v1, 0x1
if-eqz v0, :cond_1f
.line 242
new-instance v0, Landroid/content/Intent;
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v2
const-class v3, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;
invoke-direct {v0, v2, v3}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
.line 243
.local v0, "intent":Landroid/content/Intent;
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v2
iget-object v3, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mConn:Landroid/content/ServiceConnection;
invoke-virtual {v2, v0, v3, v1}, Landroid/app/Application;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
move-result v1
return v1
.line 245
.end local v0 # "intent":Landroid/content/Intent;
:cond_1f
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mPkgName:Ljava/lang/String;
# invokes: Lcom/blankj/utilcode/util/MessengerUtils;->isAppInstalled(Ljava/lang/String;)Z
invoke-static {v0}, Lcom/blankj/utilcode/util/MessengerUtils;->access$200(Ljava/lang/String;)Z
move-result v0
const/4 v2, 0x0
const-string v3, "MessengerUtils"
if-eqz v0, :cond_71
.line 246
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mPkgName:Ljava/lang/String;
# invokes: Lcom/blankj/utilcode/util/MessengerUtils;->isAppRunning(Ljava/lang/String;)Z
invoke-static {v0}, Lcom/blankj/utilcode/util/MessengerUtils;->access$300(Ljava/lang/String;)Z
move-result v0
if-eqz v0, :cond_5a
.line 247
new-instance v0, Landroid/content/Intent;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
iget-object v3, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mPkgName:Ljava/lang/String;
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, ".messenger"
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-direct {v0, v2}, Landroid/content/Intent;-><init>(Ljava/lang/String;)V
.line 248
.restart local v0 # "intent":Landroid/content/Intent;
iget-object v2, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mPkgName:Ljava/lang/String;
invoke-virtual {v0, v2}, Landroid/content/Intent;->setPackage(Ljava/lang/String;)Landroid/content/Intent;
.line 249
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v2
iget-object v3, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mConn:Landroid/content/ServiceConnection;
invoke-virtual {v2, v0, v3, v1}, Landroid/app/Application;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
move-result v1
return v1
.line 251
.end local v0 # "intent":Landroid/content/Intent;
:cond_5a
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "bind: the app is not running -> "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mPkgName:Ljava/lang/String;
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-static {v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 252
return v2
.line 255
:cond_71
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "bind: the app is not installed -> "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mPkgName:Ljava/lang/String;
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-static {v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 256
return v2
.end method
.method sendMsg2Server(Landroid/os/Bundle;)V
.registers 4
.param p1, "bundle" # Landroid/os/Bundle;
.line 274
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mServer:Landroid/os/Messenger;
if-nez v0, :cond_20
.line 275
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mCached:Ljava/util/LinkedList;
invoke-virtual {v0, p1}, Ljava/util/LinkedList;->addFirst(Ljava/lang/Object;)V
.line 276
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "save the bundle "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "MessengerUtils"
invoke-static {v1, v0}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_2e
.line 278
:cond_20
invoke-direct {p0}, Lcom/blankj/utilcode/util/MessengerUtils$Client;->sendCachedMsg2Server()V
.line 279
invoke-direct {p0, p1}, Lcom/blankj/utilcode/util/MessengerUtils$Client;->send2Server(Landroid/os/Bundle;)Z
move-result v0
if-nez v0, :cond_2e
.line 280
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mCached:Ljava/util/LinkedList;
invoke-virtual {v0, p1}, Ljava/util/LinkedList;->addFirst(Ljava/lang/Object;)V
.line 283
:cond_2e
:goto_2e
return-void
.end method
.method unbind()V
.registers 5
.line 261
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mReceiveServeMsgHandler:Landroid/os/Handler;
const/4 v1, 0x1
invoke-static {v0, v1}, Landroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message;
move-result-object v0
.line 262
.local v0, "msg":Landroid/os/Message;
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mClient:Landroid/os/Messenger;
iput-object v1, v0, Landroid/os/Message;->replyTo:Landroid/os/Messenger;
.line 264
:try_start_b
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mServer:Landroid/os/Messenger;
invoke-virtual {v1, v0}, Landroid/os/Messenger;->send(Landroid/os/Message;)V
:try_end_10
.catch Landroid/os/RemoteException; {:try_start_b .. :try_end_10} :catch_11
.line 267
goto :goto_1a
.line 265
:catch_11
move-exception v1
.line 266
.local v1, "e":Landroid/os/RemoteException;
const-string v2, "MessengerUtils"
const-string/jumbo v3, "unbind: "
invoke-static {v2, v3, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 269
.end local v1 # "e":Landroid/os/RemoteException;
:goto_1a
:try_start_1a
invoke-static {}, Lcom/blankj/utilcode/util/Utils;->getApp()Landroid/app/Application;
move-result-object v1
iget-object v2, p0, Lcom/blankj/utilcode/util/MessengerUtils$Client;->mConn:Landroid/content/ServiceConnection;
invoke-virtual {v1, v2}, Landroid/app/Application;->unbindService(Landroid/content/ServiceConnection;)V
:try_end_23
.catch Ljava/lang/Exception; {:try_start_1a .. :try_end_23} :catch_24
goto :goto_25
.line 270
:catch_24
move-exception v1
:goto_25
nop
.line 271
return-void
.end method