apkfuckery/com.discord/smali/com/discord/stores/StoreConnectivity.smali

601 lines
16 KiB
Smali

.class public final Lcom/discord/stores/StoreConnectivity;
.super Landroid/content/BroadcastReceiver;
.source "StoreConnectivity.kt"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/discord/stores/StoreConnectivity$Companion;
}
.end annotation
# static fields
.field public static final CONNECTING_DELAY_AGGRESSIVE:J = 0xbb8L
.field public static final CONNECTING_DELAY_PASSIVE:J = 0x7530L
.field public static final Companion:Lcom/discord/stores/StoreConnectivity$Companion;
.field public static final RECENTLY_FOREGROUNDED_WINDOW:J = 0x7530L
.field public static final STATE_CONNECTING:I = 0x3
.field public static final STATE_OFFLINE:I = 0x2
.field public static final STATE_ONLINE:I = 0x1
# instance fields
.field public connectingTransitionTimerSubscription:Lrx/Subscription;
.field public deviceNetworkOffline:Z
.field public optimisticallyConnected:Z
.field public recentlyForegrounded:Z
.field public recentlyForegroundedClearSubscription:Lrx/Subscription;
.field public state:I
.field public final statePublisher:Lrx/subjects/Subject;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lrx/subjects/Subject<",
"Ljava/lang/Integer;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.locals 2
new-instance v0, Lcom/discord/stores/StoreConnectivity$Companion;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lcom/discord/stores/StoreConnectivity$Companion;-><init>(Lkotlin/jvm/internal/DefaultConstructorMarker;)V
sput-object v0, Lcom/discord/stores/StoreConnectivity;->Companion:Lcom/discord/stores/StoreConnectivity$Companion;
return-void
.end method
.method public constructor <init>()V
.locals 2
invoke-direct {p0}, Landroid/content/BroadcastReceiver;-><init>()V
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/discord/stores/StoreConnectivity;->recentlyForegrounded:Z
new-instance v1, Lrx/subjects/SerializedSubject;
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
invoke-static {v0}, Lrx/subjects/BehaviorSubject;->h0(Ljava/lang/Object;)Lrx/subjects/BehaviorSubject;
move-result-object v0
invoke-direct {v1, v0}, Lrx/subjects/SerializedSubject;-><init>(Lrx/subjects/Subject;)V
iput-object v1, p0, Lcom/discord/stores/StoreConnectivity;->statePublisher:Lrx/subjects/Subject;
return-void
.end method
.method public static final synthetic access$clearRecentlyForegrounded(Lcom/discord/stores/StoreConnectivity;)V
.locals 0
invoke-direct {p0}, Lcom/discord/stores/StoreConnectivity;->clearRecentlyForegrounded()V
return-void
.end method
.method public static final synthetic access$getConnectingTransitionTimerSubscription$p(Lcom/discord/stores/StoreConnectivity;)Lrx/Subscription;
.locals 0
iget-object p0, p0, Lcom/discord/stores/StoreConnectivity;->connectingTransitionTimerSubscription:Lrx/Subscription;
return-object p0
.end method
.method public static final synthetic access$getRecentlyForegroundedClearSubscription$p(Lcom/discord/stores/StoreConnectivity;)Lrx/Subscription;
.locals 0
iget-object p0, p0, Lcom/discord/stores/StoreConnectivity;->recentlyForegroundedClearSubscription:Lrx/Subscription;
return-object p0
.end method
.method public static final synthetic access$setConnectingTransitionTimerSubscription$p(Lcom/discord/stores/StoreConnectivity;Lrx/Subscription;)V
.locals 0
iput-object p1, p0, Lcom/discord/stores/StoreConnectivity;->connectingTransitionTimerSubscription:Lrx/Subscription;
return-void
.end method
.method public static final synthetic access$setRecentlyForegroundedClearSubscription$p(Lcom/discord/stores/StoreConnectivity;Lrx/Subscription;)V
.locals 0
iput-object p1, p0, Lcom/discord/stores/StoreConnectivity;->recentlyForegroundedClearSubscription:Lrx/Subscription;
return-void
.end method
.method public static final synthetic access$setState(Lcom/discord/stores/StoreConnectivity;I)V
.locals 0
invoke-direct {p0, p1}, Lcom/discord/stores/StoreConnectivity;->setState(I)V
return-void
.end method
.method private final declared-synchronized clearRecentlyForegrounded()V
.locals 1
monitor-enter p0
const/4 v0, 0x0
:try_start_0
iput-boolean v0, p0, Lcom/discord/stores/StoreConnectivity;->recentlyForegrounded:Z
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return-void
:catchall_0
move-exception v0
monitor-exit p0
throw v0
.end method
.method private final declared-synchronized handleDeviceConnectivityChange(Z)V
.locals 0
monitor-enter p0
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
:try_start_0
iput-boolean p1, p0, Lcom/discord/stores/StoreConnectivity;->deviceNetworkOffline:Z
invoke-direct {p0}, Lcom/discord/stores/StoreConnectivity;->updateConnectivityState()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method private final declared-synchronized setState(I)V
.locals 1
monitor-enter p0
:try_start_0
iget v0, p0, Lcom/discord/stores/StoreConnectivity;->state:I
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-ne v0, p1, :cond_0
monitor-exit p0
return-void
:cond_0
:try_start_1
iput p1, p0, Lcom/discord/stores/StoreConnectivity;->state:I
iget-object v0, p0, Lcom/discord/stores/StoreConnectivity;->statePublisher:Lrx/subjects/Subject;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
invoke-interface {v0, p1}, Ls0/g;->onNext(Ljava/lang/Object;)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method private final transitioningFromRecentlyForegroundedTimer(Z)V
.locals 10
iget-object v0, p0, Lcom/discord/stores/StoreConnectivity;->recentlyForegroundedClearSubscription:Lrx/Subscription;
if-eqz v0, :cond_0
invoke-interface {v0}, Lrx/Subscription;->unsubscribe()V
:cond_0
const/4 v0, 0x0
iput-object v0, p0, Lcom/discord/stores/StoreConnectivity;->recentlyForegroundedClearSubscription:Lrx/Subscription;
if-eqz p1, :cond_1
return-void
:cond_1
const-wide/16 v0, 0x7530
sget-object p1, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {v0, v1, p1}, Lrx/Observable;->Z(JLjava/util/concurrent/TimeUnit;)Lrx/Observable;
move-result-object p1
const-string v0, "Observable\n .time\u2026W, TimeUnit.MILLISECONDS)"
invoke-static {p1, v0}, Lk0/n/c/h;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {p1}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->computationLatest(Lrx/Observable;)Lrx/Observable;
move-result-object v1
const-class v2, Lcom/discord/stores/StoreConnectivity;
const/4 v3, 0x0
new-instance v4, Lcom/discord/stores/StoreConnectivity$transitioningFromRecentlyForegroundedTimer$1;
invoke-direct {v4, p0}, Lcom/discord/stores/StoreConnectivity$transitioningFromRecentlyForegroundedTimer$1;-><init>(Lcom/discord/stores/StoreConnectivity;)V
const/4 v5, 0x0
const/4 v6, 0x0
new-instance v7, Lcom/discord/stores/StoreConnectivity$transitioningFromRecentlyForegroundedTimer$2;
invoke-direct {v7, p0}, Lcom/discord/stores/StoreConnectivity$transitioningFromRecentlyForegroundedTimer$2;-><init>(Lcom/discord/stores/StoreConnectivity;)V
const/16 v8, 0x1a
const/4 v9, 0x0
invoke-static/range {v1 .. v9}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->appSubscribe$default(Lrx/Observable;Ljava/lang/Class;Landroid/content/Context;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
return-void
.end method
.method private final updateConnectivityState()V
.locals 11
iget-object v0, p0, Lcom/discord/stores/StoreConnectivity;->connectingTransitionTimerSubscription:Lrx/Subscription;
if-eqz v0, :cond_0
invoke-interface {v0}, Lrx/Subscription;->unsubscribe()V
:cond_0
const/4 v0, 0x0
iput-object v0, p0, Lcom/discord/stores/StoreConnectivity;->connectingTransitionTimerSubscription:Lrx/Subscription;
iget-boolean v0, p0, Lcom/discord/stores/StoreConnectivity;->deviceNetworkOffline:Z
const/4 v1, 0x2
if-eqz v0, :cond_1
invoke-direct {p0, v1}, Lcom/discord/stores/StoreConnectivity;->setState(I)V
goto :goto_1
:cond_1
iget-boolean v0, p0, Lcom/discord/stores/StoreConnectivity;->optimisticallyConnected:Z
if-eqz v0, :cond_2
const/4 v0, 0x1
invoke-direct {p0, v0}, Lcom/discord/stores/StoreConnectivity;->setState(I)V
goto :goto_1
:cond_2
iget v0, p0, Lcom/discord/stores/StoreConnectivity;->state:I
if-ne v0, v1, :cond_3
const/4 v0, 0x3
invoke-direct {p0, v0}, Lcom/discord/stores/StoreConnectivity;->setState(I)V
goto :goto_1
:cond_3
iget-boolean v0, p0, Lcom/discord/stores/StoreConnectivity;->recentlyForegrounded:Z
if-eqz v0, :cond_4
const-wide/16 v0, 0xbb8
goto :goto_0
:cond_4
const-wide/16 v0, 0x7530
:goto_0
sget-object v2, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;
invoke-static {v0, v1, v2}, Lrx/Observable;->Z(JLjava/util/concurrent/TimeUnit;)Lrx/Observable;
move-result-object v0
const-string v1, "Observable\n .\u2026ILLISECONDS\n )"
invoke-static {v0, v1}, Lk0/n/c/h;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V
invoke-static {v0}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->computationLatest(Lrx/Observable;)Lrx/Observable;
move-result-object v2
const-class v3, Lcom/discord/stores/StoreConnectivity;
const/4 v4, 0x0
new-instance v5, Lcom/discord/stores/StoreConnectivity$updateConnectivityState$1;
invoke-direct {v5, p0}, Lcom/discord/stores/StoreConnectivity$updateConnectivityState$1;-><init>(Lcom/discord/stores/StoreConnectivity;)V
const/4 v6, 0x0
const/4 v7, 0x0
new-instance v8, Lcom/discord/stores/StoreConnectivity$updateConnectivityState$2;
invoke-direct {v8, p0}, Lcom/discord/stores/StoreConnectivity$updateConnectivityState$2;-><init>(Lcom/discord/stores/StoreConnectivity;)V
const/16 v9, 0x1a
const/4 v10, 0x0
invoke-static/range {v2 .. v10}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->appSubscribe$default(Lrx/Observable;Ljava/lang/Class;Landroid/content/Context;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
:goto_1
return-void
.end method
# virtual methods
.method public final declared-synchronized handleBackgrounded(Z)V
.locals 0
monitor-enter p0
:try_start_0
invoke-direct {p0, p1}, Lcom/discord/stores/StoreConnectivity;->transitioningFromRecentlyForegroundedTimer(Z)V
if-nez p1, :cond_0
const/4 p1, 0x1
goto :goto_0
:cond_0
const/4 p1, 0x0
:goto_0
iput-boolean p1, p0, Lcom/discord/stores/StoreConnectivity;->recentlyForegrounded:Z
invoke-direct {p0}, Lcom/discord/stores/StoreConnectivity;->updateConnectivityState()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method public final declared-synchronized handleConnected(Z)V
.locals 0
monitor-enter p0
:try_start_0
iput-boolean p1, p0, Lcom/discord/stores/StoreConnectivity;->optimisticallyConnected:Z
invoke-direct {p0}, Lcom/discord/stores/StoreConnectivity;->updateConnectivityState()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method public final declared-synchronized handleConnectionReady(Z)V
.locals 1
monitor-enter p0
:try_start_0
iget-boolean v0, p0, Lcom/discord/stores/StoreConnectivity;->deviceNetworkOffline:Z
if-eqz v0, :cond_0
if-eqz p1, :cond_0
const/4 p1, 0x0
iput-boolean p1, p0, Lcom/discord/stores/StoreConnectivity;->deviceNetworkOffline:Z
:cond_0
invoke-direct {p0}, Lcom/discord/stores/StoreConnectivity;->updateConnectivityState()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return-void
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method public final declared-synchronized init(Landroid/content/Context;)V
.locals 2
monitor-enter p0
:try_start_0
const-string v0, "context"
if-eqz p1, :cond_0
new-instance v0, Landroid/content/IntentFilter;
const-string v1, "android.net.conn.CONNECTIVITY_CHANGE"
invoke-direct {v0, v1}, Landroid/content/IntentFilter;-><init>(Ljava/lang/String;)V
invoke-virtual {p1, p0, v0}, Landroid/content/Context;->registerReceiver(Landroid/content/BroadcastReceiver;Landroid/content/IntentFilter;)Landroid/content/Intent;
sget-object v0, Lcom/discord/stores/StoreConnectivity;->Companion:Lcom/discord/stores/StoreConnectivity$Companion;
invoke-static {v0, p1}, Lcom/discord/stores/StoreConnectivity$Companion;->access$isDeviceConnectedOrConnecting(Lcom/discord/stores/StoreConnectivity$Companion;Landroid/content/Context;)Z
move-result p1
invoke-direct {p0, p1}, Lcom/discord/stores/StoreConnectivity;->handleDeviceConnectivityChange(Z)V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
monitor-exit p0
return-void
:cond_0
:try_start_1
invoke-static {v0}, Lk0/n/c/h;->c(Ljava/lang/String;)V
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
const/4 p1, 0x0
throw p1
:catchall_0
move-exception p1
monitor-exit p0
throw p1
.end method
.method public final observeState()Lrx/Observable;
.locals 1
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lrx/Observable<",
"Ljava/lang/Integer;",
">;"
}
.end annotation
iget-object v0, p0, Lcom/discord/stores/StoreConnectivity;->statePublisher:Lrx/subjects/Subject;
invoke-static {v0}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->computationLatest(Lrx/Observable;)Lrx/Observable;
move-result-object v0
return-object v0
.end method
.method public onReceive(Landroid/content/Context;Landroid/content/Intent;)V
.locals 1
const/4 v0, 0x0
if-eqz p1, :cond_1
if-eqz p2, :cond_0
sget-object p2, Lcom/discord/stores/StoreConnectivity;->Companion:Lcom/discord/stores/StoreConnectivity$Companion;
invoke-static {p2, p1}, Lcom/discord/stores/StoreConnectivity$Companion;->access$isDeviceConnectedOrConnecting(Lcom/discord/stores/StoreConnectivity$Companion;Landroid/content/Context;)Z
move-result p1
invoke-direct {p0, p1}, Lcom/discord/stores/StoreConnectivity;->handleDeviceConnectivityChange(Z)V
return-void
:cond_0
const-string p1, "intent"
invoke-static {p1}, Lk0/n/c/h;->c(Ljava/lang/String;)V
throw v0
:cond_1
const-string p1, "context"
invoke-static {p1}, Lk0/n/c/h;->c(Ljava/lang/String;)V
throw v0
.end method