2021-06-27 20:44:35 +00:00
|
|
|
package com.discord.stores;
|
|
|
|
|
|
|
|
import c.d.b.a.a;
|
|
|
|
import com.airbnb.lottie.parser.AnimatableValueParser;
|
|
|
|
import com.discord.api.voice.state.VoiceState;
|
|
|
|
import com.discord.rtcconnection.VideoMetadata;
|
|
|
|
import com.discord.stores.updates.ObservationDeck;
|
|
|
|
import com.discord.stores.updates.ObservationDeckProvider;
|
|
|
|
import d0.t.h0;
|
|
|
|
import d0.z.d.m;
|
|
|
|
import java.util.HashMap;
|
|
|
|
import java.util.Map;
|
|
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
|
|
import rx.Observable;
|
|
|
|
/* compiled from: StoreVideoStreams.kt */
|
|
|
|
public final class StoreVideoStreams extends StoreV2 {
|
|
|
|
private final ObservationDeck observationDeck;
|
|
|
|
private final HashMap<Long, UserStreams> userStreamsByUser;
|
|
|
|
private Map<Long, UserStreams> userStreamsByUserSnapshot;
|
|
|
|
|
|
|
|
/* compiled from: StoreVideoStreams.kt */
|
|
|
|
public static final class UserStreams {
|
|
|
|
public static final Companion Companion = new Companion(null);
|
|
|
|
private static final UserStreams Empty = new UserStreams(null, null, null, null);
|
|
|
|
private final Integer applicationStreamId;
|
|
|
|
private final VideoMetadata applicationStreamMetadata;
|
|
|
|
private final Integer callStreamId;
|
|
|
|
private final VideoMetadata callStreamMetadata;
|
|
|
|
private final boolean isEmpty = m.areEqual(this, Empty);
|
|
|
|
|
|
|
|
/* compiled from: StoreVideoStreams.kt */
|
|
|
|
public static final class Companion {
|
|
|
|
private Companion() {
|
|
|
|
}
|
|
|
|
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
|
|
this();
|
|
|
|
}
|
|
|
|
|
|
|
|
public final UserStreams getEmpty() {
|
|
|
|
return UserStreams.access$getEmpty$cp();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public UserStreams(Integer num, VideoMetadata videoMetadata, Integer num2, VideoMetadata videoMetadata2) {
|
|
|
|
this.callStreamId = num;
|
|
|
|
this.callStreamMetadata = videoMetadata;
|
|
|
|
this.applicationStreamId = num2;
|
|
|
|
this.applicationStreamMetadata = videoMetadata2;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ UserStreams access$getEmpty$cp() {
|
|
|
|
return Empty;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static /* synthetic */ UserStreams copy$default(UserStreams userStreams, Integer num, VideoMetadata videoMetadata, Integer num2, VideoMetadata videoMetadata2, int i, Object obj) {
|
|
|
|
if ((i & 1) != 0) {
|
|
|
|
num = userStreams.callStreamId;
|
|
|
|
}
|
|
|
|
if ((i & 2) != 0) {
|
|
|
|
videoMetadata = userStreams.callStreamMetadata;
|
|
|
|
}
|
|
|
|
if ((i & 4) != 0) {
|
|
|
|
num2 = userStreams.applicationStreamId;
|
|
|
|
}
|
|
|
|
if ((i & 8) != 0) {
|
|
|
|
videoMetadata2 = userStreams.applicationStreamMetadata;
|
|
|
|
}
|
|
|
|
return userStreams.copy(num, videoMetadata, num2, videoMetadata2);
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Integer component1() {
|
|
|
|
return this.callStreamId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final VideoMetadata component2() {
|
|
|
|
return this.callStreamMetadata;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Integer component3() {
|
|
|
|
return this.applicationStreamId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final VideoMetadata component4() {
|
|
|
|
return this.applicationStreamMetadata;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final UserStreams copy(Integer num, VideoMetadata videoMetadata, Integer num2, VideoMetadata videoMetadata2) {
|
|
|
|
return new UserStreams(num, videoMetadata, num2, videoMetadata2);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean equals(Object obj) {
|
|
|
|
if (this == obj) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
if (!(obj instanceof UserStreams)) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
UserStreams userStreams = (UserStreams) obj;
|
|
|
|
return m.areEqual(this.callStreamId, userStreams.callStreamId) && m.areEqual(this.callStreamMetadata, userStreams.callStreamMetadata) && m.areEqual(this.applicationStreamId, userStreams.applicationStreamId) && m.areEqual(this.applicationStreamMetadata, userStreams.applicationStreamMetadata);
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Integer getApplicationStreamId() {
|
|
|
|
return this.applicationStreamId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final VideoMetadata getApplicationStreamMetadata() {
|
|
|
|
return this.applicationStreamMetadata;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Integer getCallStreamId() {
|
|
|
|
return this.callStreamId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final VideoMetadata getCallStreamMetadata() {
|
|
|
|
return this.callStreamMetadata;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int hashCode() {
|
|
|
|
Integer num = this.callStreamId;
|
|
|
|
int i = 0;
|
|
|
|
int hashCode = (num != null ? num.hashCode() : 0) * 31;
|
|
|
|
VideoMetadata videoMetadata = this.callStreamMetadata;
|
|
|
|
int hashCode2 = (hashCode + (videoMetadata != null ? videoMetadata.hashCode() : 0)) * 31;
|
|
|
|
Integer num2 = this.applicationStreamId;
|
|
|
|
int hashCode3 = (hashCode2 + (num2 != null ? num2.hashCode() : 0)) * 31;
|
|
|
|
VideoMetadata videoMetadata2 = this.applicationStreamMetadata;
|
|
|
|
if (videoMetadata2 != null) {
|
|
|
|
i = videoMetadata2.hashCode();
|
|
|
|
}
|
|
|
|
return hashCode3 + i;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final boolean isEmpty() {
|
|
|
|
return this.isEmpty;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String toString() {
|
|
|
|
StringBuilder L = a.L("UserStreams(callStreamId=");
|
|
|
|
L.append(this.callStreamId);
|
|
|
|
L.append(", callStreamMetadata=");
|
|
|
|
L.append(this.callStreamMetadata);
|
|
|
|
L.append(", applicationStreamId=");
|
|
|
|
L.append(this.applicationStreamId);
|
|
|
|
L.append(", applicationStreamMetadata=");
|
|
|
|
L.append(this.applicationStreamMetadata);
|
|
|
|
L.append(")");
|
|
|
|
return L.toString();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public StoreVideoStreams() {
|
|
|
|
this(null, 1, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
public StoreVideoStreams(ObservationDeck observationDeck) {
|
|
|
|
m.checkNotNullParameter(observationDeck, "observationDeck");
|
|
|
|
this.observationDeck = observationDeck;
|
|
|
|
this.userStreamsByUserSnapshot = h0.emptyMap();
|
|
|
|
this.userStreamsByUser = new HashMap<>();
|
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
|
|
|
|
public /* synthetic */ StoreVideoStreams(ObservationDeck observationDeck, int i, DefaultConstructorMarker defaultConstructorMarker) {
|
|
|
|
this((i & 1) != 0 ? ObservationDeckProvider.get() : observationDeck);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ Map access$getUserStreamsByUserSnapshot$p(StoreVideoStreams storeVideoStreams) {
|
|
|
|
return storeVideoStreams.userStreamsByUserSnapshot;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ void access$setUserStreamsByUserSnapshot$p(StoreVideoStreams storeVideoStreams, Map map) {
|
|
|
|
storeVideoStreams.userStreamsByUserSnapshot = map;
|
|
|
|
}
|
|
|
|
|
|
|
|
private final UserStreams currentUserStreams(long j) {
|
|
|
|
UserStreams userStreams = this.userStreamsByUser.get(Long.valueOf(j));
|
|
|
|
return userStreams != null ? userStreams : UserStreams.Companion.getEmpty();
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void setUserStreams(long j, UserStreams userStreams) {
|
|
|
|
if (!userStreams.isEmpty()) {
|
|
|
|
this.userStreamsByUser.put(Long.valueOf(j), userStreams);
|
|
|
|
} else {
|
|
|
|
this.userStreamsByUser.remove(Long.valueOf(j));
|
|
|
|
}
|
|
|
|
markChanged();
|
|
|
|
}
|
|
|
|
|
|
|
|
@StoreThread
|
|
|
|
public final Long findUserForApplicationStream(int i) {
|
|
|
|
for (Map.Entry<Long, UserStreams> entry : this.userStreamsByUser.entrySet()) {
|
|
|
|
long longValue = entry.getKey().longValue();
|
|
|
|
Integer applicationStreamId = entry.getValue().getApplicationStreamId();
|
|
|
|
if (applicationStreamId != null && applicationStreamId.intValue() == i) {
|
|
|
|
return Long.valueOf(longValue);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@StoreThread
|
|
|
|
public final void handleApplicationStreamUpdate(long j, Integer num) {
|
|
|
|
setUserStreams(j, UserStreams.copy$default(currentUserStreams(j), null, null, num, null, 11, null));
|
|
|
|
}
|
|
|
|
|
|
|
|
@StoreThread
|
|
|
|
public final void handleApplicationStreamVideoMetadataUpdate(VideoMetadata videoMetadata) {
|
|
|
|
m.checkNotNullParameter(videoMetadata, "metadata");
|
|
|
|
setUserStreams(videoMetadata.a, UserStreams.copy$default(currentUserStreams(videoMetadata.a), null, null, null, videoMetadata, 7, null));
|
|
|
|
}
|
|
|
|
|
|
|
|
@StoreThread
|
|
|
|
public final void handleVideoMetadataUpdate(VideoMetadata videoMetadata) {
|
|
|
|
m.checkNotNullParameter(videoMetadata, "metadata");
|
|
|
|
setUserStreams(videoMetadata.a, UserStreams.copy$default(currentUserStreams(videoMetadata.a), null, videoMetadata, null, null, 13, null));
|
|
|
|
}
|
|
|
|
|
|
|
|
@StoreThread
|
|
|
|
public final void handleVideoStreamUpdate(long j, Integer num) {
|
|
|
|
setUserStreams(j, UserStreams.copy$default(currentUserStreams(j), num, null, null, null, 14, null));
|
|
|
|
}
|
|
|
|
|
|
|
|
@StoreThread
|
|
|
|
public final void handleVoiceChannelSelected(long j) {
|
|
|
|
if (j == 0 && (!this.userStreamsByUser.isEmpty())) {
|
|
|
|
this.userStreamsByUser.clear();
|
|
|
|
markChanged();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@StoreThread
|
|
|
|
public final void handleVoiceStateUpdates(VoiceState voiceState) {
|
|
|
|
m.checkNotNullParameter(voiceState, "voiceState");
|
2021-07-03 23:36:06 +00:00
|
|
|
if (AnimatableValueParser.u1(voiceState)) {
|
2021-06-27 20:44:35 +00:00
|
|
|
if (this.userStreamsByUser.remove(Long.valueOf(voiceState.m())) != null) {
|
|
|
|
markChanged();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Observable<Map<Long, UserStreams>> observeUserStreams() {
|
|
|
|
return ObservationDeck.connectRx$default(this.observationDeck, new ObservationDeck.UpdateSource[]{this}, false, null, null, new StoreVideoStreams$observeUserStreams$1(this), 14, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // com.discord.stores.StoreV2
|
|
|
|
public void snapshotData() {
|
|
|
|
super.snapshotData();
|
|
|
|
this.userStreamsByUserSnapshot = new HashMap(this.userStreamsByUser);
|
|
|
|
}
|
|
|
|
}
|