DefaultBandwidthMeter$ConnectivityActionReceiver.smali
.class Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
.super Landroid/content/BroadcastReceiver;
.source "DefaultBandwidthMeter.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0xa
name = "ConnectivityActionReceiver"
.end annotation
# static fields
.field private static staticInstance:Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
# instance fields
.field private final bandwidthMeters:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Ljava/lang/ref/WeakReference<",
"Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;",
">;>;"
}
.end annotation
.end field
.field private final mainHandler:Landroid/os/Handler;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method private constructor <init>()V
.registers 3
.line 431
invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
.line 432
new-instance v0, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->mainHandler:Landroid/os/Handler;
.line 433
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->bandwidthMeters:Ljava/util/ArrayList;
.line 434
return-void
.end method
.method public static declared-synchronized getInstance(Landroid/content/Context;)Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
.registers 4
.param p0, "context" # Landroid/content/Context;
const-class v0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
monitor-enter v0
.line 422
:try_start_3
sget-object v1, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->staticInstance:Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
if-nez v1, :cond_1d
.line 423
new-instance v1, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
invoke-direct {v1}, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;-><init>()V
sput-object v1, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->staticInstance:Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
.line 424
new-instance v1, Landroid/content/IntentFilter;
invoke-direct {v1}, Landroid/content/IntentFilter;-><init>()V
.line 425
.local v1, "filter":Landroid/content/IntentFilter;
const-string v2, "android.net.conn.CONNECTIVITY_CHANGE"
invoke-virtual {v1, v2}, Landroid/content/IntentFilter;->addAction(Ljava/lang/String;)V
.line 426
sget-object v2, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->staticInstance:Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
invoke-virtual {p0, v2, v1}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
.line 428
.end local v1 # "filter":Landroid/content/IntentFilter;
:cond_1d
sget-object v1, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->staticInstance:Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
:try_end_1f
.catchall {:try_start_3 .. :try_end_1f} :catchall_21
monitor-exit v0
return-object v1
.line 421
.end local p0 # "context":Landroid/content/Context;
:catchall_21
move-exception p0
monitor-exit v0
throw p0
.end method
.method private removeClearedReferences()V
.registers 5
.line 464
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->bandwidthMeters:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
add-int/lit8 v0, v0, -0x1
.local v0, "i":I
:goto_8
if-ltz v0, :cond_22
.line 465
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->bandwidthMeters:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/ref/WeakReference;
.line 466
.local v1, "bandwidthMeterReference":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;>;"
invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
.line 467
.local v2, "bandwidthMeter":Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
if-nez v2, :cond_1f
.line 468
iget-object v3, p0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->bandwidthMeters:Ljava/util/ArrayList;
invoke-virtual {v3, v0}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
.line 464
.end local v1 # "bandwidthMeterReference":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;>;"
.end local v2 # "bandwidthMeter":Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
:cond_1f
add-int/lit8 v0, v0, -0x1
goto :goto_8
.line 471
.end local v0 # "i":I
:cond_22
return-void
.end method
.method private updateBandwidthMeter(Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;)V
.registers 2
.param p1, "bandwidthMeter" # Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
.line 460
invoke-static {p1}, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;->access$100(Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;)V
.line 461
return-void
.end method
# virtual methods
.method public synthetic lambda$register$0$DefaultBandwidthMeter$ConnectivityActionReceiver(Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;)V
.registers 2
.param p1, "bandwidthMeter" # Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
.line 441
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->updateBandwidthMeter(Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;)V
return-void
.end method
.method public declared-synchronized onReceive(Landroid/content/Context;Landroid/content/Intent;)V
.registers 6
.param p1, "context" # Landroid/content/Context;
.param p2, "intent" # Landroid/content/Intent;
monitor-enter p0
.line 446
:try_start_1
invoke-virtual {p0}, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->isInitialStickyBroadcast()Z
move-result v0
:try_end_5
.catchall {:try_start_1 .. :try_end_5} :catchall_2d
if-eqz v0, :cond_9
.line 447
monitor-exit p0
return-void
.line 449
:cond_9
:try_start_9
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->removeClearedReferences()V
.line 450
const/4 v0, 0x0
.local v0, "i":I
:goto_d
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->bandwidthMeters:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v1
if-ge v0, v1, :cond_2b
.line 451
iget-object v1, p0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->bandwidthMeters:Ljava/util/ArrayList;
invoke-virtual {v1, v0}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/ref/WeakReference;
.line 452
.local v1, "bandwidthMeterReference":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;>;"
invoke-virtual {v1}, Ljava/lang/ref/WeakReference;->get()Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
.line 453
.local v2, "bandwidthMeter":Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
if-eqz v2, :cond_28
.line 454
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->updateBandwidthMeter(Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;)V
:try_end_28
.catchall {:try_start_9 .. :try_end_28} :catchall_2d
.line 450
.end local v1 # "bandwidthMeterReference":Ljava/lang/ref/WeakReference;, "Ljava/lang/ref/WeakReference<Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;>;"
.end local v2 # "bandwidthMeter":Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
.end local p0 # "this":Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
:cond_28
add-int/lit8 v0, v0, 0x1
goto :goto_d
.line 457
.end local v0 # "i":I
:cond_2b
monitor-exit p0
return-void
.line 445
.end local p1 # "context":Landroid/content/Context;
.end local p2 # "intent":Landroid/content/Intent;
:catchall_2d
move-exception p1
monitor-exit p0
goto :goto_31
:goto_30
throw p1
:goto_31
goto :goto_30
.end method
.method public declared-synchronized register(Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;)V
.registers 4
.param p1, "bandwidthMeter" # Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
monitor-enter p0
.line 437
:try_start_1
invoke-direct {p0}, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->removeClearedReferences()V
.line 438
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->bandwidthMeters:Ljava/util/ArrayList;
new-instance v1, Ljava/lang/ref/WeakReference;
invoke-direct {v1, p1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 441
iget-object v0, p0, Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;->mainHandler:Landroid/os/Handler;
new-instance v1, Lcom/google/android/exoplayer2/upstream/-$$Lambda$DefaultBandwidthMeter$ConnectivityActionReceiver$5orKCfoWtCCTqIpHqEoV-8DMTWQ;
invoke-direct {v1, p0, p1}, Lcom/google/android/exoplayer2/upstream/-$$Lambda$DefaultBandwidthMeter$ConnectivityActionReceiver$5orKCfoWtCCTqIpHqEoV-8DMTWQ;-><init>(Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:try_end_18
.catchall {:try_start_1 .. :try_end_18} :catchall_1a
.line 442
monitor-exit p0
return-void
.line 436
.end local p0 # "this":Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter$ConnectivityActionReceiver;
.end local p1 # "bandwidthMeter":Lcom/google/android/exoplayer2/upstream/DefaultBandwidthMeter;
:catchall_1a
move-exception p1
monitor-exit p0
throw p1
.end method