146 lines
5.2 KiB
Java
146 lines
5.2 KiB
Java
package com.discord.utilities.guilds;
|
|
|
|
import android.content.Context;
|
|
import androidx.annotation.ColorInt;
|
|
import androidx.core.view.ViewCompat;
|
|
import com.discord.R;
|
|
import com.discord.api.role.GuildRole;
|
|
import com.discord.api.role.GuildRoleTags;
|
|
import com.discord.models.member.GuildMember;
|
|
import com.discord.utilities.color.ColorCompat;
|
|
import d0.g0.t;
|
|
import d0.z.d.m;
|
|
import java.util.ArrayList;
|
|
import java.util.Collection;
|
|
import java.util.Comparator;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.regex.Pattern;
|
|
/* compiled from: RoleUtils.kt */
|
|
public final class RoleUtils {
|
|
public static final RoleUtils INSTANCE = new RoleUtils();
|
|
private static final Comparator<GuildRole> ROLE_COMPARATOR = new RoleUtils$ROLE_COMPARATOR$1();
|
|
private static final Pattern ROLE_MENTION_RE = Pattern.compile("<@&(\\d+)>");
|
|
|
|
private RoleUtils() {
|
|
}
|
|
|
|
public static final boolean containsRoleMentions(String str) {
|
|
return str != null && ROLE_MENTION_RE.matcher(str).find();
|
|
}
|
|
|
|
public static final GuildRole getHighestHoistedRole(Map<Long, GuildRole> map, GuildMember guildMember) {
|
|
m.checkNotNullParameter(map, "guildRoles");
|
|
if (guildMember == null) {
|
|
return null;
|
|
}
|
|
List<Long> roles = guildMember.getRoles();
|
|
ArrayList arrayList = new ArrayList();
|
|
for (Object obj : roles) {
|
|
GuildRole guildRole = map.get(Long.valueOf(((Number) obj).longValue()));
|
|
boolean z2 = true;
|
|
if (guildRole == null || !guildRole.c()) {
|
|
z2 = false;
|
|
}
|
|
if (z2) {
|
|
arrayList.add(obj);
|
|
}
|
|
}
|
|
return getHighestRole(map, arrayList);
|
|
}
|
|
|
|
public static final GuildRole getHighestRole(Map<Long, GuildRole> map, GuildMember guildMember) {
|
|
m.checkNotNullParameter(map, "guildRoles");
|
|
if (guildMember == null) {
|
|
return null;
|
|
}
|
|
return getHighestRole(map, guildMember.getRoles());
|
|
}
|
|
|
|
public static final GuildRole getHighestRole(Map<Long, GuildRole> map, Collection<Long> collection) {
|
|
m.checkNotNullParameter(map, "guildRoles");
|
|
GuildRole guildRole = null;
|
|
if (collection == null) {
|
|
return null;
|
|
}
|
|
for (Long l : collection) {
|
|
GuildRole guildRole2 = map.get(Long.valueOf(l.longValue()));
|
|
if (guildRole2 != null && rankIsHigher(guildRole2, guildRole)) {
|
|
guildRole = guildRole2;
|
|
}
|
|
}
|
|
return guildRole;
|
|
}
|
|
|
|
@ColorInt
|
|
public static final int getOpaqueColor(GuildRole guildRole) {
|
|
return getOpaqueColor(guildRole, 0);
|
|
}
|
|
|
|
@ColorInt
|
|
public static final int getOpaqueColor(GuildRole guildRole, @ColorInt int i) {
|
|
if (guildRole != null) {
|
|
try {
|
|
if (guildRole.b() != 0) {
|
|
i = guildRole.b();
|
|
}
|
|
} catch (Exception unused) {
|
|
return ViewCompat.MEASURED_STATE_MASK;
|
|
}
|
|
}
|
|
return ViewCompat.MEASURED_STATE_MASK + i;
|
|
}
|
|
|
|
public static final Comparator<GuildRole> getROLE_COMPARATOR() {
|
|
return ROLE_COMPARATOR;
|
|
}
|
|
|
|
public static /* synthetic */ void getROLE_COMPARATOR$annotations() {
|
|
}
|
|
|
|
@ColorInt
|
|
public static final int getRoleColor(GuildRole guildRole, Context context) {
|
|
return getRoleColor$default(guildRole, context, null, 2, null);
|
|
}
|
|
|
|
@ColorInt
|
|
public static final int getRoleColor(GuildRole guildRole, Context context, @ColorInt Integer num) {
|
|
m.checkNotNullParameter(guildRole, "$this$getRoleColor");
|
|
m.checkNotNullParameter(context, "context");
|
|
return isDefaultColor(guildRole) ? num != null ? num.intValue() : ColorCompat.getColor(context, (int) R.color.primary_300) : getOpaqueColor(guildRole);
|
|
}
|
|
|
|
public static /* synthetic */ int getRoleColor$default(GuildRole guildRole, Context context, Integer num, int i, Object obj) {
|
|
if ((i & 2) != 0) {
|
|
num = null;
|
|
}
|
|
return getRoleColor(guildRole, context, num);
|
|
}
|
|
|
|
public static final boolean hasSubscriptionListingId(GuildRole guildRole) {
|
|
m.checkNotNullParameter(guildRole, "$this$hasSubscriptionListingId");
|
|
GuildRoleTags j = guildRole.j();
|
|
String a = j != null ? j.a() : null;
|
|
return !(a == null || t.isBlank(a));
|
|
}
|
|
|
|
public static final boolean isDefaultColor(GuildRole guildRole) {
|
|
m.checkNotNullParameter(guildRole, "$this$isDefaultColor");
|
|
return guildRole.b() == 0;
|
|
}
|
|
|
|
public static final boolean isSubscriptionRolePurchasableOrHasSubscribers(GuildRole guildRole) {
|
|
GuildRoleTags j;
|
|
m.checkNotNullParameter(guildRole, "$this$isSubscriptionRolePurchasableOrHasSubscribers");
|
|
return hasSubscriptionListingId(guildRole) && (j = guildRole.j()) != null && j.b();
|
|
}
|
|
|
|
public static final boolean rankEquals(GuildRole guildRole, GuildRole guildRole2) {
|
|
return ROLE_COMPARATOR.compare(guildRole, guildRole2) == 0;
|
|
}
|
|
|
|
public static final boolean rankIsHigher(GuildRole guildRole, GuildRole guildRole2) {
|
|
return ROLE_COMPARATOR.compare(guildRole, guildRole2) < 0;
|
|
}
|
|
}
|