223 lines
8.1 KiB
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);
|
|
}
|
|
}
|