discord-jadx/app/src/main/java/com/discord/stores/updates/ObservationDeck.java

302 lines
12 KiB
Java

package com.discord.stores.updates;
import c.d.b.a.a;
import com.discord.app.AppLog;
import com.discord.utilities.logging.Logger;
import d0.o;
import d0.t.h0;
import d0.t.u;
import d0.z.d.m;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import kotlin.Pair;
import kotlin.Unit;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.jvm.internal.Ref$ObjectRef;
import rx.Emitter;
import rx.Observable;
/* compiled from: ObservationDeck.kt */
public final class ObservationDeck {
public static final Companion Companion = new Companion(null);
private static final String LOG_CATEGORY = "ObservationDeck";
private static final Function0<Unit> ON_UPDATE_EMPTY = ObservationDeck$Companion$ON_UPDATE_EMPTY$1.INSTANCE;
private final LogLevel logLevel;
private final Logger logger;
private List<Observer> observers;
/* compiled from: ObservationDeck.kt */
public static final class Companion {
private Companion() {
}
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
}
/* compiled from: ObservationDeck.kt */
public enum LogLevel {
NONE,
ERROR,
VERBOSE
}
/* compiled from: ObservationDeck.kt */
public static abstract class Observer {
private boolean isStale;
public abstract String getName();
public abstract Set<UpdateSource> getObservingUpdates();
public abstract Function0<Unit> getOnUpdate();
public final boolean isStale() {
return this.isStale;
}
public final void markStale() {
this.isStale = true;
setOnUpdate(ObservationDeck.access$getON_UPDATE_EMPTY$cp());
}
public abstract void setOnUpdate(Function0<Unit> function0);
public final String toDebugLogString() {
StringBuilder sb = new StringBuilder();
StringBuilder L = a.L("Observer name: ");
String name = getName();
if (name == null) {
name = "Unknown";
}
L.append(name);
L.append('\n');
sb.append(L.toString());
sb.append(u.joinToString$default(getObservingUpdates(), ", ", null, null, 0, null, null, 62, null));
String sb2 = sb.toString();
m.checkNotNullExpressionValue(sb2, "stringBuilder.toString()");
return sb2;
}
}
/* compiled from: ObservationDeck.kt */
public interface UpdateSource {
}
public ObservationDeck() {
this(null, null, 3, null);
}
public ObservationDeck(Logger logger, LogLevel logLevel) {
m.checkNotNullParameter(logger, "logger");
m.checkNotNullParameter(logLevel, "logLevel");
this.logger = logger;
this.logLevel = logLevel;
this.observers = new ArrayList();
}
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
public /* synthetic */ ObservationDeck(Logger logger, LogLevel logLevel, int i, DefaultConstructorMarker defaultConstructorMarker) {
this((i & 1) != 0 ? AppLog.g : logger, (i & 2) != 0 ? LogLevel.NONE : logLevel);
}
public static final /* synthetic */ Function0 access$getON_UPDATE_EMPTY$cp() {
return ON_UPDATE_EMPTY;
}
public static /* synthetic */ Observer connect$default(ObservationDeck observationDeck, Observer observer, boolean z2, int i, Object obj) {
if ((i & 2) != 0) {
z2 = true;
}
return observationDeck.connect(observer, z2);
}
public static /* synthetic */ Observer connect$default(ObservationDeck observationDeck, UpdateSource[] updateSourceArr, boolean z2, String str, Function0 function0, int i, Object obj) {
if ((i & 2) != 0) {
z2 = true;
}
if ((i & 4) != 0) {
str = null;
}
return observationDeck.connect(updateSourceArr, z2, str, function0);
}
public static /* synthetic */ Observable connectRx$default(ObservationDeck observationDeck, UpdateSource[] updateSourceArr, boolean z2, Emitter.BackpressureMode backpressureMode, String str, int i, Object obj) {
if ((i & 2) != 0) {
z2 = true;
}
if ((i & 4) != 0) {
backpressureMode = Emitter.BackpressureMode.LATEST;
}
if ((i & 8) != 0) {
str = null;
}
return observationDeck.connectRx(updateSourceArr, z2, backpressureMode, str);
}
public static /* synthetic */ Observable connectRx$default(ObservationDeck observationDeck, UpdateSource[] updateSourceArr, boolean z2, Emitter.BackpressureMode backpressureMode, String str, Function0 function0, int i, Object obj) {
boolean z3 = (i & 2) != 0 ? true : z2;
if ((i & 4) != 0) {
backpressureMode = Emitter.BackpressureMode.LATEST;
}
if ((i & 8) != 0) {
str = null;
}
return observationDeck.connectRx(updateSourceArr, z3, backpressureMode, str, function0);
}
private final void logBreadcrumb(String str) {
if (this.logLevel == LogLevel.VERBOSE) {
this.logger.recordBreadcrumb(str, "ObservationDeck");
}
}
/* JADX DEBUG: Can't convert new array creation: APUT found in different block: 0x007b: APUT
(r2v1 kotlin.Pair[])
(1 ??[boolean, int, float, short, byte, char])
(wrap: kotlin.Pair : 0x0077: INVOKE (r3v6 kotlin.Pair) =
("Observers")
(wrap: java.lang.String : 0x0071: INVOKE (r3v5 java.lang.String) =
(r5v1 java.util.ArrayList)
("
")
(null java.lang.CharSequence)
(null java.lang.CharSequence)
(0 int)
(null java.lang.CharSequence)
(wrap: com.discord.stores.updates.ObservationDeck$logNotifyError$2 : 0x006a: SGET (r11v1 com.discord.stores.updates.ObservationDeck$logNotifyError$2) = com.discord.stores.updates.ObservationDeck$logNotifyError$2.INSTANCE com.discord.stores.updates.ObservationDeck$logNotifyError$2)
(30 int)
(null java.lang.Object)
type: STATIC call: d0.t.u.joinToString$default(java.lang.Iterable, java.lang.CharSequence, java.lang.CharSequence, java.lang.CharSequence, int, java.lang.CharSequence, kotlin.jvm.functions.Function1, int, java.lang.Object):java.lang.String)
type: STATIC call: d0.o.to(java.lang.Object, java.lang.Object):kotlin.Pair)
*/
private final void logNotifyError(Throwable th, Set<? extends UpdateSource> set) {
Logger logger = this.logger;
Pair[] pairArr = new Pair[2];
pairArr[0] = o.to("Update Sources", u.joinToString$default(set, ", ", null, null, 0, null, null, 62, null));
List<Observer> list = this.observers;
ArrayList arrayList = new ArrayList();
Iterator<T> it = list.iterator();
while (true) {
boolean z2 = true;
if (it.hasNext()) {
Object next = it.next();
Observer observer = (Observer) next;
if (!(set instanceof Collection) || !set.isEmpty()) {
Iterator<T> it2 = set.iterator();
while (true) {
if (!it2.hasNext()) {
break;
}
if (observer.getObservingUpdates().contains((UpdateSource) it2.next())) {
break;
}
}
}
z2 = false;
if (z2) {
arrayList.add(next);
}
} else {
pairArr[1] = o.to("Observers", u.joinToString$default(arrayList, "\n", null, null, 0, null, ObservationDeck$logNotifyError$2.INSTANCE, 30, null));
logger.e("ObservationDeck notify error", th, h0.mapOf(pairArr));
return;
}
}
}
public final synchronized Observer connect(Observer observer, boolean z2) {
m.checkNotNullParameter(observer, "observer");
logBreadcrumb("connect START. observer: " + observer.getName());
this.observers.add(observer);
if (z2) {
observer.getOnUpdate().mo1invoke();
}
logBreadcrumb("connect END. observer: " + observer.getName() + " -- isStale: " + observer.isStale());
return observer;
}
public final synchronized Observer connect(UpdateSource[] updateSourceArr, boolean z2, String str, Function0<Unit> function0) {
ObservationDeck$connect$observer$1 observationDeck$connect$observer$1;
m.checkNotNullParameter(updateSourceArr, "updateSources");
m.checkNotNullParameter(function0, "onUpdate");
observationDeck$connect$observer$1 = new ObservationDeck$connect$observer$1(updateSourceArr, function0, str);
connect(observationDeck$connect$observer$1, z2);
return observationDeck$connect$observer$1;
}
public final synchronized Observable<Unit> connectRx(UpdateSource[] updateSourceArr, boolean z2, Emitter.BackpressureMode backpressureMode, String str) {
Observable<Unit> v;
m.checkNotNullParameter(updateSourceArr, "updateSources");
m.checkNotNullParameter(backpressureMode, "backpressureMode");
Ref$ObjectRef ref$ObjectRef = new Ref$ObjectRef();
ref$ObjectRef.element = null;
v = Observable.n(new ObservationDeck$connectRx$1(this, ref$ObjectRef, z2, str, updateSourceArr), backpressureMode).v(new ObservationDeck$connectRx$2(this, ref$ObjectRef));
m.checkNotNullExpressionValue(v, "Observable.create<Unit>(…rver?.let(::disconnect) }");
return v;
}
public final synchronized <T> Observable<T> connectRx(UpdateSource[] updateSourceArr, boolean z2, Emitter.BackpressureMode backpressureMode, String str, Function0<? extends T> function0) {
Observable<T> observable;
m.checkNotNullParameter(updateSourceArr, "updateSources");
m.checkNotNullParameter(backpressureMode, "backpressureMode");
m.checkNotNullParameter(function0, "generator");
observable = (Observable<T>) connectRx((UpdateSource[]) Arrays.copyOf(updateSourceArr, updateSourceArr.length), z2, backpressureMode, str).F(new ObservationDeck$connectRx$3(function0));
m.checkNotNullExpressionValue(observable, "connectRx(\n *upda… ).map { generator() }");
return observable;
}
public final synchronized void disconnect(Observer observer) {
m.checkNotNullParameter(observer, "observer");
logBreadcrumb("disconnect START. observer: " + observer.getName());
observer.markStale();
logBreadcrumb("disconnect END. observer: " + observer.getName());
}
public final synchronized void notify(Set<? extends UpdateSource> set) {
String str;
boolean z2;
m.checkNotNullParameter(set, "updates");
logBreadcrumb("notify START");
int i = 0;
while (i < this.observers.size()) {
try {
Observer observer = this.observers.get(i);
if (observer.isStale()) {
logBreadcrumb("removing observer: " + observer.getName());
this.observers.remove(i);
i += -1;
} else {
if (!(set instanceof Collection) || !set.isEmpty()) {
Iterator<T> it = set.iterator();
while (true) {
if (!it.hasNext()) {
break;
}
if (observer.getObservingUpdates().contains((UpdateSource) it.next())) {
z2 = true;
break;
}
}
}
z2 = false;
if (z2) {
observer.getOnUpdate().mo1invoke();
}
}
i++;
} catch (Throwable th) {
logBreadcrumb("notify END");
throw th;
}
}
str = "notify END";
logBreadcrumb(str);
}
}