granularity level: instruction
.class public final Ld0/a;
.super Ljava/lang/Object;
.source "SourceFile"
.field public static final b:Ljava/lang/Object;
.field public static volatile c:Ld0/a;
.field public a:Ljava/util/concurrent/ConcurrentHashMap;
.method public static constructor <clinit>()V
.locals 1
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Ld0/a;->b:Ljava/lang/Object;
return-void
.end method
.method public constructor <init>()V
.locals 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
iput-object v0, p0, Ld0/a;->a:Ljava/util/concurrent/ConcurrentHashMap;
return-void
.end method
.method public static a()Ld0/a;
.locals 2
sget-object v0, Ld0/a;->c:Ld0/a;
if-nez v0, :cond_1
sget-object v0, Ld0/a;->b:Ljava/lang/Object;
monitor-enter v0
sget-object v1, Ld0/a;->c:Ld0/a;
if-nez v1, :cond_0
new-instance v1, Ld0/a;
invoke-direct {v1}, Ld0/a;-><init>()V
sput-object v1, Ld0/a;->c:Ld0/a;
:cond_0
monitor-exit v0
goto :goto_0
:catchall_0
move-exception v1
monitor-exit v0
:throw0
throw v1
:goto_0
:cond_1
sget-object v0, Ld0/a;->c:Ld0/a;
invoke-static {v0}, Lp0/a;->j(Ljava/lang/Object;)V
return-object v0
.end method
.method public final b(Landroid/content/Context;Landroid/content/ServiceConnection;)V
.locals 1
instance-of v0, p2, La0/e0;
xor-int/lit8 v0, v0, 0x1
iget-object v0, p0, Ld0/a;->a:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v0, p2}, Ljava/util/concurrent/ConcurrentHashMap;->containsKey(Ljava/lang/Object;)Z
move-result v0
iget-object v0, p0, Ld0/a;->a:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v0, p2}, Ljava/util/concurrent/ConcurrentHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/ServiceConnection;
:try_start_1
invoke-virtual {p1, v0}, Landroid/content/Context;->unbindService(Landroid/content/ServiceConnection;)V
:try_end_1
.catch Ljava/lang/IllegalArgumentException; {:try_start_1 .. :try_end_1} :catch_0
.catch Ljava/lang/IllegalStateException; {:try_start_1 .. :try_end_1} :catch_0
.catch Ljava/util/NoSuchElementException; {:try_start_1 .. :try_end_1} :catch_0
:catch_0
iget-object p1, p0, Ld0/a;->a:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {p1, p2}, Ljava/util/concurrent/ConcurrentHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public final c(Landroid/content/Context;Ljava/lang/String;Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
.locals 4
invoke-virtual {p3}, Landroid/content/Intent;->getComponent()Landroid/content/ComponentName;
move-result-object v0
const-string v1, "ConnectionTracker"
const/4 v2, 0x0
:cond_1
:catch_0
instance-of v0, p4, La0/e0;
const/4 v3, 0x1
xor-int/2addr v0, v3
iget-object v0, p0, Ld0/a;->a:Ljava/util/concurrent/ConcurrentHashMap;
invoke-virtual {v0, p4, p4}, Ljava/util/concurrent/ConcurrentHashMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/ServiceConnection;
invoke-virtual {p1, p3, p4, p5}, Landroid/content/Context;->bindService(Landroid/content/Intent;Landroid/content/ServiceConnection;I)Z
move-result p1
return p1
.end method