granularity level: instruction

		.class public Lcom/google/android/datatransport/runtime/TransportRuntime;
.super Ljava/lang/Object;
.source "TransportRuntime.java"
.implements Lcom/google/android/datatransport/runtime/TransportInternal;

.annotation runtime Ljavax/inject/Singleton;
.end annotation

.field private static volatile instance:Lcom/google/android/datatransport/runtime/TransportRuntimeComponent;
.field private final eventClock:Lcom/google/android/datatransport/runtime/time/Clock;
.field private final scheduler:Lcom/google/android/datatransport/runtime/scheduling/Scheduler;
.field private final uploader:Lcom/google/android/datatransport/runtime/scheduling/jobscheduling/Uploader;
.field private final uptimeClock:Lcom/google/android/datatransport/runtime/time/Clock;


.method static constructor <clinit>()V
	.locals 0

	return-void
.end method

.method constructor <init>(Lcom/google/android/datatransport/runtime/time/Clock;Lcom/google/android/datatransport/runtime/time/Clock;Lcom/google/android/datatransport/runtime/scheduling/Scheduler;Lcom/google/android/datatransport/runtime/scheduling/jobscheduling/Uploader;Lcom/google/android/datatransport/runtime/scheduling/jobscheduling/WorkInitializer;)V
	.locals 0
	.annotation runtime Ljavax/inject/Inject;
	.end annotation

	invoke-direct {p0}, Ljava/lang/Object;-><init>()V
	iput-object p1, p0, Lcom/google/android/datatransport/runtime/TransportRuntime;->eventClock:Lcom/google/android/datatransport/runtime/time/Clock;
	iput-object p2, p0, Lcom/google/android/datatransport/runtime/TransportRuntime;->uptimeClock:Lcom/google/android/datatransport/runtime/time/Clock;
	iput-object p3, p0, Lcom/google/android/datatransport/runtime/TransportRuntime;->scheduler:Lcom/google/android/datatransport/runtime/scheduling/Scheduler;
	iput-object p4, p0, Lcom/google/android/datatransport/runtime/TransportRuntime;->uploader:Lcom/google/android/datatransport/runtime/scheduling/jobscheduling/Uploader;
	invoke-virtual {p5}, Lcom/google/android/datatransport/runtime/scheduling/jobscheduling/WorkInitializer;->ensureContextsScheduled()V
	return-void
.end method

.method private convert(Lcom/google/android/datatransport/runtime/SendRequest;)Lcom/google/android/datatransport/runtime/EventInternal;
	.locals 4

	const/4 v0, 0x0
	return-object v0
.end method

.method public static getInstance()Lcom/google/android/datatransport/runtime/TransportRuntime;
	.locals 2

	sget-object v0, Lcom/google/android/datatransport/runtime/TransportRuntime;->instance:Lcom/google/android/datatransport/runtime/TransportRuntimeComponent;
	invoke-virtual {v0}, Lcom/google/android/datatransport/runtime/TransportRuntimeComponent;->getTransportRuntime()Lcom/google/android/datatransport/runtime/TransportRuntime;
	move-result-object v0
	return-object v0
.end method

.method private static getSupportedEncodings(Lcom/google/android/datatransport/runtime/Destination;)Ljava/util/Set;
	.locals 1
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Lcom/google/android/datatransport/runtime/Destination;",
	")",
	"Ljava/util/Set<",
	"Lcom/google/android/datatransport/Encoding;",
	">;"
	}
	.end annotation

	instance-of v0, p0, Lcom/google/android/datatransport/runtime/EncodedDestination;
	check-cast p0, Lcom/google/android/datatransport/runtime/EncodedDestination;
	invoke-interface {p0}, Lcom/google/android/datatransport/runtime/EncodedDestination;->getSupportedEncodings()Ljava/util/Set;
	move-result-object p0
	invoke-static {p0}, Ljava/util/Collections;->unmodifiableSet(Ljava/util/Set;)Ljava/util/Set;
	move-result-object p0
	return-object p0
.end method

.method public static initialize(Landroid/content/Context;)V
	.locals 2

	sget-object v0, Lcom/google/android/datatransport/runtime/TransportRuntime;->instance:Lcom/google/android/datatransport/runtime/TransportRuntimeComponent;
	if-nez v0, :cond_1
	const-class v0, Lcom/google/android/datatransport/runtime/TransportRuntime;
	monitor-enter v0
	sget-object v1, Lcom/google/android/datatransport/runtime/TransportRuntime;->instance:Lcom/google/android/datatransport/runtime/TransportRuntimeComponent;
	if-nez v1, :cond_0
	invoke-static {}, Lcom/google/android/datatransport/runtime/DaggerTransportRuntimeComponent;->builder()Lcom/google/android/datatransport/runtime/TransportRuntimeComponent$Builder;
	move-result-object v1
	invoke-interface {v1, p0}, Lcom/google/android/datatransport/runtime/TransportRuntimeComponent$Builder;->setApplicationContext(Landroid/content/Context;)Lcom/google/android/datatransport/runtime/TransportRuntimeComponent$Builder;
	move-result-object p0
	invoke-interface {p0}, Lcom/google/android/datatransport/runtime/TransportRuntimeComponent$Builder;->build()Lcom/google/android/datatransport/runtime/TransportRuntimeComponent;
	move-result-object p0
	sput-object p0, Lcom/google/android/datatransport/runtime/TransportRuntime;->instance:Lcom/google/android/datatransport/runtime/TransportRuntimeComponent;
	:cond_0
	monitor-exit v0
	goto :goto_0
	:catchall_0
	move-exception p0
	monitor-exit v0
	:throw0
	throw p0
	:goto_0
	:cond_1
	return-void
.end method

.method static withInstance(Lcom/google/android/datatransport/runtime/TransportRuntimeComponent;Ljava/util/concurrent/Callable;)V
	.locals 2
	.annotation system Ldalvik/annotation/Throws;
	value = {
	Ljava/lang/Throwable;
	}
	.end annotation
	.annotation system Ldalvik/annotation/Signature;
	value = {
	"(",
	"Lcom/google/android/datatransport/runtime/TransportRuntimeComponent;",
	"Ljava/util/concurrent/Callable<",
	"Ljava/lang/Void;",
	">;)V"
	}
	.end annotation

	return-void
.end method

.method public getUploader()Lcom/google/android/datatransport/runtime/scheduling/jobscheduling/Uploader;
	.locals 1

	const/4 v0, 0x0
	return-object v0
.end method

.method public newFactory(Lcom/google/android/datatransport/runtime/Destination;)Lcom/google/android/datatransport/TransportFactory;
	.locals 4

	new-instance v0, Lcom/google/android/datatransport/runtime/TransportFactoryImpl;
	invoke-static {p1}, Lcom/google/android/datatransport/runtime/TransportRuntime;->getSupportedEncodings(Lcom/google/android/datatransport/runtime/Destination;)Ljava/util/Set;
	move-result-object v1
	invoke-static {}, Lcom/google/android/datatransport/runtime/TransportContext;->builder()Lcom/google/android/datatransport/runtime/TransportContext$Builder;
	move-result-object v2
	invoke-interface {p1}, Lcom/google/android/datatransport/runtime/Destination;->getName()Ljava/lang/String;
	move-result-object v3
	invoke-virtual {v2, v3}, Lcom/google/android/datatransport/runtime/TransportContext$Builder;->setBackendName(Ljava/lang/String;)Lcom/google/android/datatransport/runtime/TransportContext$Builder;
	move-result-object v2
	invoke-interface {p1}, Lcom/google/android/datatransport/runtime/Destination;->getExtras()[B
	move-result-object p1
	invoke-virtual {v2, p1}, Lcom/google/android/datatransport/runtime/TransportContext$Builder;->setExtras([B)Lcom/google/android/datatransport/runtime/TransportContext$Builder;
	move-result-object p1
	invoke-virtual {p1}, Lcom/google/android/datatransport/runtime/TransportContext$Builder;->build()Lcom/google/android/datatransport/runtime/TransportContext;
	move-result-object p1
	invoke-direct {v0, v1, p1, p0}, Lcom/google/android/datatransport/runtime/TransportFactoryImpl;-><init>(Ljava/util/Set;Lcom/google/android/datatransport/runtime/TransportContext;Lcom/google/android/datatransport/runtime/TransportInternal;)V
	return-object v0
.end method

.method public newFactory(Ljava/lang/String;)Lcom/google/android/datatransport/TransportFactory;
	.locals 3
	.annotation runtime Ljava/lang/Deprecated;
	.end annotation

	const/4 v0, 0x0
	return-object v0
.end method

.method public send(Lcom/google/android/datatransport/runtime/SendRequest;Lcom/google/android/datatransport/TransportScheduleCallback;)V
	.locals 3

	return-void
.end method