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