.class public final Lcom/discord/utilities/persister/Persister$Preloader; .super Ljava/lang/Object; .source "Persister.kt" # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Lcom/discord/utilities/persister/Persister; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x19 name = "Preloader" .end annotation # instance fields .field public final preloadCacheKeys:Ljava/util/List; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/List<", "Ljava/lang/String;", ">;" } .end annotation .end field .field public final preloadSubject:Lrx/subjects/SerializedSubject; .annotation system Ldalvik/annotation/Signature; value = { "Lrx/subjects/SerializedSubject<", "Lcom/discord/utilities/persister/Persister<", "*>;", "Lcom/discord/utilities/persister/Persister<", "*>;>;" } .end annotation .end field .field public final preloadTime:Lcom/discord/app/AppLog$Elapsed; # direct methods .method public constructor (Lcom/discord/utilities/time/Clock;)V .locals 8 if-eqz p1, :cond_0 invoke-direct {p0}, Ljava/lang/Object;->()V new-instance v0, Lcom/discord/app/AppLog$Elapsed; invoke-direct {v0, p1}, Lcom/discord/app/AppLog$Elapsed;->(Lcom/discord/utilities/time/Clock;)V iput-object v0, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadTime:Lcom/discord/app/AppLog$Elapsed; new-instance p1, Lrx/subjects/SerializedSubject; invoke-static {}, Lrx/subjects/BehaviorSubject;->p()Lrx/subjects/BehaviorSubject; move-result-object v0 invoke-direct {p1, v0}, Lrx/subjects/SerializedSubject;->(Lrx/subjects/Subject;)V iput-object p1, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadSubject:Lrx/subjects/SerializedSubject; const-string p1, "STORE_USER_RELATIONSHIPS_V8" const-string v0, "STORE_CHANNELS_V21" const-string v1, "STORE_GUILDS_V27" filled-new-array {p1, v0, v1}, [Ljava/lang/String; move-result-object p1 invoke-static {p1}, Le/k/a/c/e/p/g;->mutableListOf([Ljava/lang/Object;)Ljava/util/List; move-result-object p1 iput-object p1, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadCacheKeys:Ljava/util/List; iget-object p1, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadSubject:Lrx/subjects/SerializedSubject; sget-object v0, Lcom/discord/utilities/persister/Persister$Preloader$1;->INSTANCE:Lcom/discord/utilities/persister/Persister$Preloader$1; invoke-virtual {p1, v0}, Lrx/Observable;->l(Le0/l/i;)Lrx/Observable; move-result-object p1 const-string v0, "preloadSubject\n .takeUntil { it == null }" invoke-static {p1, v0}, Lw/u/b/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-static {p1}, Lcom/discord/utilities/rx/ObservableExtensionsKt;->computationBuffered(Lrx/Observable;)Lrx/Observable; move-result-object p1 sget-object v0, Le/a/b/l;->a:Le/a/b/l; new-instance v1, Lcom/discord/utilities/persister/Persister$Preloader$2; invoke-direct {v1, p0}, Lcom/discord/utilities/persister/Persister$Preloader$2;->(Lcom/discord/utilities/persister/Persister$Preloader;)V const-class v2, Lcom/discord/utilities/persister/Persister$Preloader; const/4 v3, 0x0 const/4 v4, 0x0 const/4 v5, 0x0 const/4 v6, 0x0 const/16 v7, 0x3c invoke-static/range {v0 .. v7}, Le/a/b/l;->a(Le/a/b/l;Lkotlin/jvm/functions/Function1;Ljava/lang/Class;Lrx/functions/Action1;Lkotlin/jvm/functions/Function1;Landroid/content/Context;Lkotlin/jvm/functions/Function0;I)Lrx/Observable$c; move-result-object v0 invoke-virtual {p1, v0}, Lrx/Observable;->a(Lrx/Observable$c;)Lrx/Observable; return-void :cond_0 const-string p1, "clock" invoke-static {p1}, Lw/u/b/j;->a(Ljava/lang/String;)V const/4 p1, 0x0 throw p1 .end method .method public static final synthetic access$handlePreload(Lcom/discord/utilities/persister/Persister$Preloader;Lcom/discord/utilities/persister/Persister;)V .locals 0 invoke-direct {p0, p1}, Lcom/discord/utilities/persister/Persister$Preloader;->handlePreload(Lcom/discord/utilities/persister/Persister;)V return-void .end method .method private final declared-synchronized handlePreload(Lcom/discord/utilities/persister/Persister;)V .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/discord/utilities/persister/Persister<", "TT;>;)V" } .end annotation monitor-enter p0 :try_start_0 iget-object v0, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadCacheKeys:Ljava/util/List; invoke-virtual {p1}, Lcom/discord/utilities/persister/Persister;->getKey()Ljava/lang/String; move-result-object v1 invoke-interface {v0, v1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_0 iget-object v0, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadCacheKeys:Ljava/util/List; invoke-virtual {p1}, Lcom/discord/utilities/persister/Persister;->getKey()Ljava/lang/String; move-result-object v1 invoke-interface {v0, v1}, Ljava/util/List;->remove(Ljava/lang/Object;)Z invoke-virtual {p1}, Lcom/discord/utilities/persister/Persister;->get()Ljava/lang/Object; :cond_0 iget-object p1, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadCacheKeys:Ljava/util/List; invoke-interface {p1}, Ljava/util/List;->isEmpty()Z move-result p1 if-eqz p1, :cond_1 iget-object p1, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadSubject:Lrx/subjects/SerializedSubject; const/4 v0, 0x0 invoke-virtual {p1, v0}, Lrx/subjects/SerializedSubject;->onNext(Ljava/lang/Object;)V sget-object p1, Lcom/discord/utilities/persister/Persister;->Companion:Lcom/discord/utilities/persister/Persister$Companion; invoke-virtual {p1}, Lcom/discord/utilities/persister/Persister$Companion;->getLogger()Lkotlin/jvm/functions/Function3; move-result-object p1 const/4 v1, 0x4 invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2}, Ljava/lang/StringBuilder;->()V const-string v3, "Preloaded preferences in " invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v3, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadTime:Lcom/discord/app/AppLog$Elapsed; invoke-virtual {v3}, Lcom/discord/app/AppLog$Elapsed;->b()F move-result v3 invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(F)Ljava/lang/StringBuilder; const-string v3, " seconds." invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-interface {p1, v1, v2, v0}, Lkotlin/jvm/functions/Function3;->invoke(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 :cond_1 monitor-exit p0 return-void :catchall_0 move-exception p1 monitor-exit p0 throw p1 .end method # virtual methods .method public final isPreloaded$app_productionDiscordExternalRelease()Lrx/Observable; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lrx/Observable<", "Ljava/lang/Boolean;", ">;" } .end annotation iget-object v0, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadSubject:Lrx/subjects/SerializedSubject; sget-object v1, Lcom/discord/utilities/persister/Persister$Preloader$isPreloaded$1;->INSTANCE:Lcom/discord/utilities/persister/Persister$Preloader$isPreloaded$1; invoke-virtual {v0, v1}, Lrx/Observable;->f(Le0/l/i;)Lrx/Observable; move-result-object v0 invoke-virtual {v0}, Lrx/Observable;->a()Lrx/Observable; move-result-object v0 const-string v1, "preloadSubject\n \u2026 .distinctUntilChanged()" invoke-static {v0, v1}, Lw/u/b/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V return-object v0 .end method .method public final declared-synchronized preload$app_productionDiscordExternalRelease(Lcom/discord/utilities/persister/Persister;)V .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/discord/utilities/persister/Persister<", "TT;>;)V" } .end annotation monitor-enter p0 :try_start_0 const-string v0, "preference" if-eqz p1, :cond_1 iget-object v0, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadCacheKeys:Ljava/util/List; invoke-virtual {p1}, Lcom/discord/utilities/persister/Persister;->getKey()Ljava/lang/String; move-result-object v1 invoke-interface {v0, v1}, Ljava/util/List;->contains(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_0 iget-object v0, p0, Lcom/discord/utilities/persister/Persister$Preloader;->preloadSubject:Lrx/subjects/SerializedSubject; invoke-virtual {v0, p1}, Lrx/subjects/SerializedSubject;->onNext(Ljava/lang/Object;)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 :cond_0 monitor-exit p0 return-void :cond_1 :try_start_1 invoke-static {v0}, Lw/u/b/j;->a(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