DoubleTimeTracker.smali
.class public Lcom/tradplus/ads/common/DoubleTimeTracker;
.super Ljava/lang/Object;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/tradplus/ads/common/DoubleTimeTracker$b;,
Lcom/tradplus/ads/common/DoubleTimeTracker$a;,
Lcom/tradplus/ads/common/DoubleTimeTracker$Clock;
}
.end annotation
# instance fields
.field private volatile a:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
.field private b:J
.field private c:J
.field private final d:Lcom/tradplus/ads/common/DoubleTimeTracker$Clock;
# direct methods
.method public constructor <init>()V
.registers 3
new-instance v0, Lcom/tradplus/ads/common/DoubleTimeTracker$b;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lcom/tradplus/ads/common/DoubleTimeTracker$b;-><init>(Lcom/tradplus/ads/common/DoubleTimeTracker$1;)V
invoke-direct {p0, v0}, Lcom/tradplus/ads/common/DoubleTimeTracker;-><init>(Lcom/tradplus/ads/common/DoubleTimeTracker$Clock;)V
return-void
.end method
.method public constructor <init>(Lcom/tradplus/ads/common/DoubleTimeTracker$Clock;)V
.registers 2
.annotation build Lcom/tradplus/ads/common/VisibleForTesting;
.end annotation
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->d:Lcom/tradplus/ads/common/DoubleTimeTracker$Clock;
sget-object p1, Lcom/tradplus/ads/common/DoubleTimeTracker$a;->PAUSED:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
iput-object p1, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->a:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
return-void
.end method
.method private declared-synchronized a()J
.registers 5
monitor-enter p0
:try_start_1
iget-object v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->a:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
sget-object v1, Lcom/tradplus/ads/common/DoubleTimeTracker$a;->PAUSED:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
:try_end_5
.catchall {:try_start_1 .. :try_end_5} :catchall_15
if-ne v0, v1, :cond_b
const-wide/16 v0, 0x0
:goto_9
monitor-exit p0
return-wide v0
:cond_b
:try_start_b
iget-object v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->d:Lcom/tradplus/ads/common/DoubleTimeTracker$Clock;
invoke-interface {v0}, Lcom/tradplus/ads/common/DoubleTimeTracker$Clock;->elapsedRealTime()J
move-result-wide v0
iget-wide v2, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->b:J
:try_end_13
.catchall {:try_start_b .. :try_end_13} :catchall_15
sub-long/2addr v0, v2
goto :goto_9
:catchall_15
move-exception v0
monitor-exit p0
goto :goto_19
:goto_18
throw v0
:goto_19
goto :goto_18
.end method
# virtual methods
.method public declared-synchronized getInterval()D
.registers 5
monitor-enter p0
:try_start_1
iget-wide v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->c:J
invoke-direct {p0}, Lcom/tradplus/ads/common/DoubleTimeTracker;->a()J
move-result-wide v2
:try_end_7
.catchall {:try_start_1 .. :try_end_7} :catchall_b
add-long/2addr v0, v2
long-to-double v0, v0
monitor-exit p0
return-wide v0
:catchall_b
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized pause()V
.registers 5
monitor-enter p0
:try_start_1
iget-object v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->a:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
sget-object v1, Lcom/tradplus/ads/common/DoubleTimeTracker$a;->PAUSED:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
if-ne v0, v1, :cond_e
const-string v0, "DoubleTimeTracker already paused."
invoke-static {v0}, Lcom/tradplus/ads/common/util/LogUtil;->show(Ljava/lang/String;)V
:try_end_c
.catchall {:try_start_1 .. :try_end_c} :catchall_21
monitor-exit p0
return-void
:cond_e
:try_start_e
iget-wide v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->c:J
invoke-direct {p0}, Lcom/tradplus/ads/common/DoubleTimeTracker;->a()J
move-result-wide v2
add-long/2addr v0, v2
iput-wide v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->c:J
const-wide/16 v0, 0x0
iput-wide v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->b:J
sget-object v0, Lcom/tradplus/ads/common/DoubleTimeTracker$a;->PAUSED:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
iput-object v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->a:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
:try_end_1f
.catchall {:try_start_e .. :try_end_1f} :catchall_21
monitor-exit p0
return-void
:catchall_21
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized start()V
.registers 3
monitor-enter p0
:try_start_1
iget-object v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->a:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
sget-object v1, Lcom/tradplus/ads/common/DoubleTimeTracker$a;->STARTED:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
if-ne v0, v1, :cond_e
const-string v0, "DoubleTimeTracker already started."
invoke-static {v0}, Lcom/tradplus/ads/common/util/LogUtil;->show(Ljava/lang/String;)V
:try_end_c
.catchall {:try_start_1 .. :try_end_c} :catchall_1c
monitor-exit p0
return-void
:cond_e
:try_start_e
sget-object v0, Lcom/tradplus/ads/common/DoubleTimeTracker$a;->STARTED:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
iput-object v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->a:Lcom/tradplus/ads/common/DoubleTimeTracker$a;
iget-object v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->d:Lcom/tradplus/ads/common/DoubleTimeTracker$Clock;
invoke-interface {v0}, Lcom/tradplus/ads/common/DoubleTimeTracker$Clock;->elapsedRealTime()J
move-result-wide v0
iput-wide v0, p0, Lcom/tradplus/ads/common/DoubleTimeTracker;->b:J
:try_end_1a
.catchall {:try_start_e .. :try_end_1a} :catchall_1c
monitor-exit p0
return-void
:catchall_1c
move-exception v0
monitor-exit p0
throw v0
.end method