discord-jadx/app/src/main/java/com/discord/utilities/lazy/memberlist/ChannelMemberList.java

223 lines
8.1 KiB
Java

package com.discord.utilities.lazy.memberlist;
import androidx.annotation.VisibleForTesting;
import c.d.b.a.a;
import com.discord.models.domain.ModelGuildMemberListUpdate;
import com.discord.utilities.collections.SparseMutableList;
import com.discord.utilities.lazy.memberlist.MemberListRow;
import com.discord.utilities.logging.Logger;
import d0.d0.f;
import d0.t.g0;
import d0.t.h0;
import d0.t.n;
import d0.t.o;
import d0.z.d.m;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.ranges.IntRange;
/* compiled from: ChannelMemberList.kt */
public final class ChannelMemberList implements MemberList {
private SortedMap<Integer, String> groupIndices;
private Map<String, ? extends MemberListRow> groups;
private final int initialSize;
private final String listId;
private final Logger logger;
private SparseMutableList<MemberListRow> rows;
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
public ChannelMemberList(ChannelMemberList channelMemberList) {
this(channelMemberList.getListId(), 0, channelMemberList.logger, 2, null);
m.checkNotNullParameter(channelMemberList, "other");
this.rows = channelMemberList.rows.deepCopy();
this.groups = new HashMap(channelMemberList.groups);
this.groupIndices = new TreeMap((SortedMap) channelMemberList.groupIndices);
}
public ChannelMemberList(String str, int i, Logger logger) {
m.checkNotNullParameter(str, "listId");
this.listId = str;
this.initialSize = i;
this.logger = logger;
this.rows = new SparseMutableList<>(getInitialSize(), 100);
this.groups = h0.emptyMap();
this.groupIndices = new TreeMap();
}
/* JADX INFO: this call moved to the top of the method (can break code semantics) */
public /* synthetic */ ChannelMemberList(String str, int i, Logger logger, int i2, DefaultConstructorMarker defaultConstructorMarker) {
this(str, (i2 & 2) != 0 ? 0 : i, (i2 & 4) != 0 ? null : logger);
}
public final void add(MemberListRow memberListRow) {
Logger logger = this.logger;
if (logger != null) {
StringBuilder L = a.L("memberListId: ");
L.append(getListId());
L.append(" ADD");
logger.recordBreadcrumb(L.toString(), "ChannelMemberList");
}
this.rows.add(memberListRow);
}
public final void delete(int i) {
Logger logger = this.logger;
if (logger != null) {
StringBuilder L = a.L("memberListId: ");
L.append(getListId());
L.append(" DELETE index: ");
L.append(i);
logger.recordBreadcrumb(L.toString(), "ChannelMemberList");
}
this.rows.remove(i);
}
@Override // com.discord.utilities.lazy.memberlist.MemberList
public SortedMap<Integer, String> getGroupIndices() {
return this.groupIndices;
}
@Override // com.discord.utilities.lazy.memberlist.MemberList
public int getInitialSize() {
return this.initialSize;
}
@Override // com.discord.utilities.lazy.memberlist.MemberList
public String getListId() {
return this.listId;
}
@Override // com.discord.utilities.lazy.memberlist.MemberList
public SparseMutableList<MemberListRow> getRows() {
return this.rows;
}
@Override // com.discord.utilities.lazy.memberlist.MemberList
public int getSize() {
return this.rows.size();
}
public final void insert(int i, MemberListRow memberListRow) {
Logger logger = this.logger;
if (logger != null) {
StringBuilder L = a.L("memberListId: ");
L.append(getListId());
L.append(" INSERT: index: ");
L.append(i);
logger.recordBreadcrumb(L.toString(), "ChannelMemberList");
}
this.rows.add(i, memberListRow);
}
public final void invalidate(IntRange intRange) {
m.checkNotNullParameter(intRange, "range");
Logger logger = this.logger;
if (logger != null) {
StringBuilder L = a.L("memberListId: ");
L.append(getListId());
L.append(" INVALIDATE range: ");
L.append(intRange);
logger.recordBreadcrumb(L.toString(), "ChannelMemberList");
}
int min = Math.min(intRange.getLast(), n.getLastIndex(this.rows));
int first = intRange.getFirst();
if (first <= min) {
while (true) {
this.rows.set(first, null);
if (first != min) {
first++;
} else {
return;
}
}
}
}
/* JADX DEBUG: Multi-variable search result rejected for r2v4, resolved type: com.discord.utilities.collections.SparseMutableList<com.discord.utilities.lazy.memberlist.MemberListRow> */
/* JADX WARN: Multi-variable type inference failed */
public final void rebuildMembers(Function1<? super Long, ? extends MemberListRow> function1) {
m.checkNotNullParameter(function1, "makeMember");
int i = 0;
for (MemberListRow memberListRow : this.rows) {
int i2 = i + 1;
if (i < 0) {
n.throwIndexOverflow();
}
MemberListRow memberListRow2 = memberListRow;
if (memberListRow2 instanceof MemberListRow.Member) {
this.rows.set(i, function1.invoke(Long.valueOf(((MemberListRow.Member) memberListRow2).getUserId())));
}
i = i2;
}
}
@VisibleForTesting
public final void setGroupIndices(SortedMap<Integer, String> sortedMap) {
m.checkNotNullParameter(sortedMap, "groupIndices");
this.groupIndices = sortedMap;
}
public final void setGroups(List<ModelGuildMemberListUpdate.Group> list, Function1<? super ModelGuildMemberListUpdate.Group, ? extends MemberListRow> function1) {
m.checkNotNullParameter(list, "groups");
m.checkNotNullParameter(function1, "makeGroup");
Logger logger = this.logger;
if (logger != null) {
StringBuilder L = a.L("memberListId: ");
L.append(getListId());
L.append(" SET_GROUPS");
logger.recordBreadcrumb(L.toString(), "ChannelMemberList");
}
this.groupIndices.clear();
int i = 0;
LinkedHashMap linkedHashMap = new LinkedHashMap(f.coerceAtLeast(g0.mapCapacity(o.collectionSizeOrDefault(list, 10)), 16));
for (ModelGuildMemberListUpdate.Group group : list) {
String id2 = group.getId();
this.groupIndices.put(Integer.valueOf(i), group.getId());
i += group.getCount() + 1;
linkedHashMap.put(id2, (MemberListRow) function1.invoke(group));
}
this.groups = linkedHashMap;
this.rows.setSize(i);
}
public final void sync(int i, List<? extends MemberListRow> list) {
m.checkNotNullParameter(list, "items");
Logger logger = this.logger;
if (logger != null) {
StringBuilder L = a.L("memberListId: ");
L.append(getListId());
L.append(" SYNC: startIndex: ");
L.append(i);
L.append(" -- items size: ");
L.append(list.size());
logger.recordBreadcrumb(L.toString(), "ChannelMemberList");
}
int i2 = 0;
for (Object obj : list) {
int i3 = i2 + 1;
if (i2 < 0) {
n.throwIndexOverflow();
}
update(i2 + i, (MemberListRow) obj);
i2 = i3;
}
}
public final void update(int i, MemberListRow memberListRow) {
Logger logger = this.logger;
if (logger != null) {
StringBuilder L = a.L("memberListId: ");
L.append(getListId());
L.append(" UPDATE index: ");
L.append(i);
logger.recordBreadcrumb(L.toString(), "ChannelMemberList");
}
this.rows.set(i, memberListRow);
}
}