MessengerUtils$ServerService.smali
.class public Lcom/blankj/utilcode/util/MessengerUtils$ServerService;
.super Landroid/app/Service;
.source "MessengerUtils.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/blankj/utilcode/util/MessengerUtils;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "ServerService"
.end annotation
# instance fields
.field private final mClientMap:Ljava/util/concurrent/ConcurrentHashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ConcurrentHashMap<",
"Ljava/lang/Integer;",
"Landroid/os/Messenger;",
">;"
}
.end annotation
.end field
.field private final mReceiveClientMsgHandler:Landroid/os/Handler;
.field private final messenger:Landroid/os/Messenger;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method public constructor <init>()V
.registers 3
.line 308
invoke-direct {p0}, Landroid/app/Service;-><init>()V
.line 310
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
iput-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->mClientMap:Ljava/util/concurrent/ConcurrentHashMap;
.line 312
new-instance v0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService$1;
invoke-direct {v0, p0}, Lcom/blankj/utilcode/util/MessengerUtils$ServerService$1;-><init>(Lcom/blankj/utilcode/util/MessengerUtils$ServerService;)V
iput-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->mReceiveClientMsgHandler:Landroid/os/Handler;
.line 333
new-instance v0, Landroid/os/Messenger;
iget-object v1, p0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->mReceiveClientMsgHandler:Landroid/os/Handler;
invoke-direct {v0, v1}, Landroid/os/Messenger;-><init>(Landroid/os/Handler;)V
iput-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->messenger:Landroid/os/Messenger;
return-void
.end method
.method static synthetic access$400(Lcom/blankj/utilcode/util/MessengerUtils$ServerService;)Ljava/util/concurrent/ConcurrentHashMap;
.registers 2
.param p0, "x0" # Lcom/blankj/utilcode/util/MessengerUtils$ServerService;
.line 308
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->mClientMap:Ljava/util/concurrent/ConcurrentHashMap;
return-object v0
.end method
.method static synthetic access$500(Lcom/blankj/utilcode/util/MessengerUtils$ServerService;Landroid/os/Message;)V
.registers 2
.param p0, "x0" # Lcom/blankj/utilcode/util/MessengerUtils$ServerService;
.param p1, "x1" # Landroid/os/Message;
.line 308
invoke-direct {p0, p1}, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->sendMsg2Client(Landroid/os/Message;)V
return-void
.end method
.method static synthetic access$600(Lcom/blankj/utilcode/util/MessengerUtils$ServerService;Landroid/os/Message;)V
.registers 2
.param p0, "x0" # Lcom/blankj/utilcode/util/MessengerUtils$ServerService;
.param p1, "x1" # Landroid/os/Message;
.line 308
invoke-direct {p0, p1}, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->consumeServerProcessCallback(Landroid/os/Message;)V
return-void
.end method
.method private consumeServerProcessCallback(Landroid/os/Message;)V
.registers 5
.param p1, "msg" # Landroid/os/Message;
.line 369
invoke-virtual {p1}, Landroid/os/Message;->getData()Landroid/os/Bundle;
move-result-object v0
.line 370
.local v0, "data":Landroid/os/Bundle;
if-eqz v0, :cond_1d
.line 371
const-string v1, "MESSENGER_UTILS"
invoke-virtual {v0, v1}, Landroid/os/Bundle;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
.line 372
.local v1, "key":Ljava/lang/String;
if-eqz v1, :cond_1d
.line 373
# getter for: Lcom/blankj/utilcode/util/MessengerUtils;->subscribers:Ljava/util/concurrent/ConcurrentHashMap;
invoke-static {}, Lcom/blankj/utilcode/util/MessengerUtils;->access$000()Ljava/util/concurrent/ConcurrentHashMap;
move-result-object v2
invoke-virtual {v2, v1}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/blankj/utilcode/util/MessengerUtils$MessageCallback;
.line 374
.local v2, "callback":Lcom/blankj/utilcode/util/MessengerUtils$MessageCallback;
if-eqz v2, :cond_1d
.line 375
invoke-interface {v2, v0}, Lcom/blankj/utilcode/util/MessengerUtils$MessageCallback;->messageCall(Landroid/os/Bundle;)V
.line 379
.end local v1 # "key":Ljava/lang/String;
.end local v2 # "callback":Lcom/blankj/utilcode/util/MessengerUtils$MessageCallback;
:cond_1d
return-void
.end method
.method private sendMsg2Client(Landroid/os/Message;)V
.registers 5
.param p1, "msg" # Landroid/os/Message;
.line 357
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->mClientMap:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v0}, Ljava/util/concurrent/ConcurrentHashMap;->values()Ljava/util/Collection;
move-result-object v0
invoke-interface {v0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_a
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_23
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/os/Messenger;
.line 359
.local v1, "client":Landroid/os/Messenger;
if-eqz v1, :cond_21
.line 360
:try_start_18
invoke-virtual {v1, p1}, Landroid/os/Messenger;->send(Landroid/os/Message;)V
:try_end_1b
.catch Landroid/os/RemoteException; {:try_start_18 .. :try_end_1b} :catch_1c
goto :goto_21
.line 362
:catch_1c
move-exception v2
.line 363
.local v2, "e":Landroid/os/RemoteException;
invoke-virtual {v2}, Landroid/os/RemoteException;->printStackTrace()V
goto :goto_22
.line 364
.end local v2 # "e":Landroid/os/RemoteException;
:cond_21
:goto_21
nop
.line 365
.end local v1 # "client":Landroid/os/Messenger;
:goto_22
goto :goto_a
.line 366
:cond_23
return-void
.end method
# virtual methods
.method public onBind(Landroid/content/Intent;)Landroid/os/IBinder;
.registers 3
.param p1, "intent" # Landroid/content/Intent;
.line 338
iget-object v0, p0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->messenger:Landroid/os/Messenger;
invoke-virtual {v0}, Landroid/os/Messenger;->getBinder()Landroid/os/IBinder;
move-result-object v0
return-object v0
.end method
.method public onStartCommand(Landroid/content/Intent;II)I
.registers 8
.param p1, "intent" # Landroid/content/Intent;
.param p2, "flags" # I
.param p3, "startId" # I
.line 343
const/4 v0, 0x2
if-eqz p1, :cond_1c
.line 344
invoke-virtual {p1}, Landroid/content/Intent;->getExtras()Landroid/os/Bundle;
move-result-object v1
.line 345
.local v1, "extras":Landroid/os/Bundle;
if-eqz v1, :cond_1c
.line 346
iget-object v2, p0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->mReceiveClientMsgHandler:Landroid/os/Handler;
invoke-static {v2, v0}, Landroid/os/Message;->obtain(Landroid/os/Handler;I)Landroid/os/Message;
move-result-object v2
.line 347
.local v2, "msg":Landroid/os/Message;
iget-object v3, p0, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->messenger:Landroid/os/Messenger;
iput-object v3, v2, Landroid/os/Message;->replyTo:Landroid/os/Messenger;
.line 348
invoke-virtual {v2, v1}, Landroid/os/Message;->setData(Landroid/os/Bundle;)V
.line 349
invoke-direct {p0, v2}, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->sendMsg2Client(Landroid/os/Message;)V
.line 350
invoke-direct {p0, v2}, Lcom/blankj/utilcode/util/MessengerUtils$ServerService;->consumeServerProcessCallback(Landroid/os/Message;)V
.line 353
.end local v1 # "extras":Landroid/os/Bundle;
.end local v2 # "msg":Landroid/os/Message;
:cond_1c
return v0
.end method