ConnectStateMonitor.smali
.class public Lcom/imo/android/imoim/network/ConnectStateMonitor;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectStateWatcher;,
Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectState;
}
.end annotation
# static fields
.field private static final TAG:Ljava/lang/String; = "ConnectStateMonitor"
# instance fields
.field private mLastConnectState:Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectState;
.field private mWatchers:Ljava/util/concurrent/CopyOnWriteArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/CopyOnWriteArrayList<",
"Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectStateWatcher;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.registers 2
.line 7
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 24
sget-object v0, Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectState;->NOT_INIT:Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectState;
iput-object v0, p0, Lcom/imo/android/imoim/network/ConnectStateMonitor;->mLastConnectState:Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectState;
.line 25
new-instance v0, Ljava/util/concurrent/CopyOnWriteArrayList;
invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;-><init>()V
iput-object v0, p0, Lcom/imo/android/imoim/network/ConnectStateMonitor;->mWatchers:Ljava/util/concurrent/CopyOnWriteArrayList;
return-void
.end method
# virtual methods
.method onConnectStateChange(Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectState;)V
.registers 4
.line 42
iget-object v0, p0, Lcom/imo/android/imoim/network/ConnectStateMonitor;->mLastConnectState:Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectState;
if-ne v0, p1, :cond_5
return-void
.line 48
:cond_5
iput-object p1, p0, Lcom/imo/android/imoim/network/ConnectStateMonitor;->mLastConnectState:Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectState;
.line 49
iget-object v0, p0, Lcom/imo/android/imoim/network/ConnectStateMonitor;->mWatchers:Ljava/util/concurrent/CopyOnWriteArrayList;
invoke-virtual {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_d
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_1d
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectStateWatcher;
.line 50
invoke-interface {v1, p1}, Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectStateWatcher;->onConnectStateChange(Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectState;)V
goto :goto_d
:cond_1d
return-void
.end method
.method registerWatcher(Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectStateWatcher;)V
.registers 3
.line 30
iget-object v0, p0, Lcom/imo/android/imoim/network/ConnectStateMonitor;->mWatchers:Ljava/util/concurrent/CopyOnWriteArrayList;
invoke-virtual {v0, p1}, Ljava/util/concurrent/CopyOnWriteArrayList;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_d
.line 31
iget-object v0, p0, Lcom/imo/android/imoim/network/ConnectStateMonitor;->mWatchers:Ljava/util/concurrent/CopyOnWriteArrayList;
invoke-virtual {v0, p1}, Ljava/util/concurrent/CopyOnWriteArrayList;->add(Ljava/lang/Object;)Z
:cond_d
return-void
.end method
.method unregisterWatcher(Lcom/imo/android/imoim/network/ConnectStateMonitor$ConnectStateWatcher;)V
.registers 3
.line 37
iget-object v0, p0, Lcom/imo/android/imoim/network/ConnectStateMonitor;->mWatchers:Ljava/util/concurrent/CopyOnWriteArrayList;
invoke-virtual {v0, p1}, Ljava/util/concurrent/CopyOnWriteArrayList;->remove(Ljava/lang/Object;)Z
return-void
.end method