discord-jadx/app/src/main/java/com/discord/utilities/dsti/StickerUtils.java

445 lines
22 KiB
Java

package com.discord.utilities.dsti;
import android.content.Context;
import c.a.l.b;
import c.d.b.a.a;
import com.airbnb.lottie.parser.AnimatableValueParser;
import com.discord.api.channel.Channel;
import com.discord.api.premium.PremiumTier;
import com.discord.api.sticker.BaseSticker;
import com.discord.api.sticker.Sticker;
import com.discord.api.sticker.StickerFormatType;
import com.discord.api.sticker.StickerType;
import com.discord.app.AppLog;
import com.discord.models.domain.ModelSku;
import com.discord.models.sticker.dto.ModelStickerPack;
import com.discord.models.sticker.dto.ModelStickerPackStoreListing;
import com.discord.models.user.User;
import com.discord.stores.StoreGuildSelected;
import com.discord.stores.StoreGuildStickers;
import com.discord.stores.StoreGuilds;
import com.discord.stores.StoreStickers;
import com.discord.stores.StoreStream;
import com.discord.stores.StoreUser;
import com.discord.utilities.billing.PremiumUtilsKt;
import com.discord.utilities.file.DownloadUtils;
import com.discord.utilities.icon.IconUtils;
import com.discord.utilities.logging.Logger;
import com.discord.utilities.permissions.PermissionUtils;
import com.discord.utilities.premium.PremiumUtils;
import com.discord.utilities.resources.StringResourceUtilsKt;
import com.discord.utilities.rest.RestAPI;
import com.discord.utilities.rx.ObservableExtensionsKt;
import com.discord.utilities.search.SearchUtils;
import com.discord.utilities.string.StringUtilsKt;
import com.discord.utilities.time.ClockFactory;
import com.discord.utilities.time.TimeUtils;
import com.discord.utilities.user.UserUtils;
import d0.g;
import d0.g0.t;
import d0.g0.w;
import d0.t.m0;
import d0.t.n;
import d0.t.n0;
import d0.t.o;
import d0.t.u;
import d0.z.d.m;
import j0.l.e.j;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import kotlin.Lazy;
import org.json.JSONException;
import org.json.JSONObject;
import rx.Observable;
/* compiled from: StickerUtils.kt */
public final class StickerUtils {
private static final Lazy DEFAULT_STICKER_SIZE_PX$delegate = g.lazy(StickerUtils$DEFAULT_STICKER_SIZE_PX$2.INSTANCE);
public static final StickerUtils INSTANCE = new StickerUtils();
public static final int MAXIMUM_LENGTH_STICKER_TEXT_SUGGESTIONS = 50;
private static final int MAXIMUM_WORD_COUNT_STICKER_TEXT_SUGGESTIONS = 5;
public static final int MINIMUM_LENGTH_STICKER_TEXT_SUGGESTIONS = 3;
public static final int NUM_STICKERS_AUTO_SUGGEST = 4;
private static final long STICKER_APPLICATION_ID = 710982414301790216L;
/* compiled from: StickerUtils.kt */
public enum StickerSendability {
SENDABLE,
SENDABLE_WITH_PREMIUM,
SENDABLE_WITH_PREMIUM_GUILD,
NONSENDABLE
}
public final /* synthetic */ class WhenMappings {
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
public static final /* synthetic */ int[] $EnumSwitchMapping$1;
static {
StickerFormatType.values();
int[] iArr = new int[4];
$EnumSwitchMapping$0 = iArr;
iArr[StickerFormatType.LOTTIE.ordinal()] = 1;
iArr[StickerFormatType.APNG.ordinal()] = 2;
iArr[StickerFormatType.PNG.ordinal()] = 3;
PremiumTier.values();
int[] iArr2 = new int[4];
$EnumSwitchMapping$1 = iArr2;
iArr2[PremiumTier.TIER_2.ordinal()] = 1;
}
}
private StickerUtils() {
}
public static /* synthetic */ Set findStickerMatches$default(StickerUtils stickerUtils, String str, List list, boolean z2, int i, Object obj) {
if ((i & 4) != 0) {
z2 = false;
}
return stickerUtils.findStickerMatches(str, list, z2);
}
public static /* synthetic */ String getBannerCDNAssetUrl$default(StickerUtils stickerUtils, ModelStickerPack modelStickerPack, Integer num, int i, Object obj) {
if ((i & 2) != 0) {
num = null;
}
return stickerUtils.getBannerCDNAssetUrl(modelStickerPack, num);
}
public static /* synthetic */ String getCDNAssetUrl$default(StickerUtils stickerUtils, BaseSticker baseSticker, Integer num, boolean z2, int i, Object obj) {
if ((i & 2) != 0) {
num = null;
}
if ((i & 4) != 0) {
z2 = true;
}
return stickerUtils.getCDNAssetUrl(baseSticker, num, z2);
}
public static /* synthetic */ Observable getGuildOrStandardSticker$default(StickerUtils stickerUtils, long j, boolean z2, int i, Object obj) {
if ((i & 2) != 0) {
z2 = false;
}
return stickerUtils.getGuildOrStandardSticker(j, z2);
}
private final int getStickerPackPrice(PremiumTier premiumTier) {
return premiumTier.ordinal() != 3 ? 299 : 199;
}
private final Integer getStickerPackPriceForPremiumTier(ModelStickerPack modelStickerPack, PremiumTier premiumTier) {
ModelSku sku;
ModelSku.Price price;
ModelSku.ModelPremiumSkuPrice modelPremiumSkuPrice;
ModelStickerPackStoreListing storeListing = modelStickerPack.getStoreListing();
if (storeListing == null || (sku = storeListing.getSku()) == null || (price = sku.getPrice()) == null) {
return null;
}
Map<PremiumTier, ModelSku.ModelPremiumSkuPrice> premium = price.getPremium();
return Integer.valueOf((premium == null || (modelPremiumSkuPrice = premium.get(premiumTier)) == null) ? price.getAmount() : modelPremiumSkuPrice.getAmount());
}
public static /* synthetic */ StickerSendability getStickerSendability$default(StickerUtils stickerUtils, Sticker sticker, User user, Channel channel, Long l, int i, Object obj) {
if ((i & 4) != 0) {
channel = null;
}
if ((i & 8) != 0) {
l = null;
}
return stickerUtils.getStickerSendability(sticker, user, channel, l);
}
public static /* synthetic */ List getStickersForAutocomplete$default(StickerUtils stickerUtils, StoreUser storeUser, StoreGuilds storeGuilds, StoreStickers storeStickers, StoreGuildSelected storeGuildSelected, StoreGuildStickers storeGuildStickers, int i, Object obj) {
if ((i & 1) != 0) {
storeUser = StoreStream.Companion.getUsers();
}
if ((i & 2) != 0) {
storeGuilds = StoreStream.Companion.getGuilds();
}
if ((i & 4) != 0) {
storeStickers = StoreStream.Companion.getStickers();
}
if ((i & 8) != 0) {
storeGuildSelected = StoreStream.Companion.getGuildSelected();
}
if ((i & 16) != 0) {
storeGuildStickers = StoreStream.Companion.getGuildStickers();
}
return stickerUtils.getStickersForAutocomplete(storeUser, storeGuilds, storeStickers, storeGuildSelected, storeGuildStickers);
}
public final int calculatePremiumStickerPackDiscount() {
int stickerPackPrice = getStickerPackPrice(PremiumTier.PREMIUM_GUILD_SUBSCRIPTION_ONLY);
return (int) ((((float) (stickerPackPrice - getStickerPackPrice(PremiumTier.TIER_2))) * 100.0f) / ((float) stickerPackPrice));
}
public final Observable<DownloadUtils.DownloadState> fetchSticker(Context context, BaseSticker baseSticker) {
m.checkNotNullParameter(context, "context");
m.checkNotNullParameter(baseSticker, "sticker");
File file = new File(context.getCacheDir(), "stickers");
if (!file.exists()) {
file.mkdir();
}
String str = baseSticker.c() + baseSticker.b();
File file2 = new File(file, str);
if (!file2.exists()) {
return DownloadUtils.downloadFile(context, getCDNAssetUrl$default(this, baseSticker, null, false, 6, null), str, file);
}
j jVar = new j(new DownloadUtils.DownloadState.Completed(file2));
m.checkNotNullExpressionValue(jVar, "Observable.just(Download…oadState.Completed(file))");
return jVar;
}
public final Set<Sticker> findStickerMatches(String str, List<Sticker> list, boolean z2) {
Sticker sticker;
m.checkNotNullParameter(str, "searchText");
m.checkNotNullParameter(list, "stickers");
if (str.length() == 0) {
return n0.emptySet();
}
LinkedHashSet linkedHashSet = new LinkedHashSet();
LinkedHashSet linkedHashSet2 = new LinkedHashSet();
LinkedHashSet linkedHashSet3 = new LinkedHashSet();
LinkedHashSet linkedHashSet4 = new LinkedHashSet();
LinkedHashSet linkedHashSet5 = new LinkedHashSet();
Set<String> queriesFromSearchText = SearchUtils.INSTANCE.getQueriesFromSearchText(str);
if (queriesFromSearchText.size() > 5) {
return n0.emptySet();
}
for (String str2 : queriesFromSearchText) {
for (Sticker sticker2 : list) {
if (t.equals(sticker2.h(), str2, true)) {
linkedHashSet2.add(sticker2);
} else if (z2 && t.startsWith(sticker2.h(), str2, true)) {
linkedHashSet3.add(sticker2);
}
List<String> split$default = w.split$default((CharSequence) sticker2.j(), new String[]{","}, false, 0, 6, (Object) null);
ArrayList arrayList = new ArrayList(o.collectionSizeOrDefault(split$default, 10));
for (String str3 : split$default) {
Objects.requireNonNull(str3, "null cannot be cast to non-null type kotlin.CharSequence");
arrayList.add(w.trim(str3).toString());
}
ArrayList<String> arrayList2 = new ArrayList();
for (Object obj : arrayList) {
if (!t.isBlank((String) obj)) {
arrayList2.add(obj);
}
}
Sticker sticker3 = sticker2;
String replace$default = t.replace$default(str2, ":", "", false, 4, (Object) null);
for (String str4 : arrayList2) {
if (t.equals(str4, replace$default, true)) {
sticker = sticker3;
linkedHashSet4.add(sticker);
} else {
sticker = sticker3;
if (z2 && t.startsWith(str4, replace$default, true)) {
linkedHashSet5.add(sticker);
}
}
sticker3 = sticker;
}
}
}
linkedHashSet.addAll(linkedHashSet2);
linkedHashSet.addAll(linkedHashSet3);
linkedHashSet.addAll(linkedHashSet4);
linkedHashSet.addAll(linkedHashSet5);
return linkedHashSet;
}
public final String getBannerCDNAssetUrl(ModelStickerPack modelStickerPack, Integer num) {
String str;
m.checkNotNullParameter(modelStickerPack, "stickerPack");
StringBuilder sb = new StringBuilder();
sb.append("https://cdn.discordapp.com/app-assets/710982414301790216/store/");
sb.append(modelStickerPack.getBannerAssetId());
sb.append('.');
sb.append(StringUtilsKt.getSTATIC_IMAGE_EXTENSION());
if (num != null) {
StringBuilder L = a.L("?size=");
L.append(IconUtils.getMediaProxySize(num.intValue()));
str = L.toString();
} else {
str = "";
}
sb.append(str);
return sb.toString();
}
public final String getCDNAssetUrl(BaseSticker baseSticker, Integer num, boolean z2) {
m.checkNotNullParameter(baseSticker, "sticker");
int ordinal = baseSticker.a().ordinal();
String str = "";
if (ordinal == 1 || ordinal == 2) {
StringBuilder L = a.L("https://media.discordapp.net/stickers/");
L.append(baseSticker.c());
L.append(baseSticker.b());
L.append("?passthrough=");
L.append(z2);
if (num != null) {
StringBuilder L2 = a.L("&size=");
L2.append(IconUtils.getMediaProxySize(num.intValue()));
str = L2.toString();
}
L.append(str);
return L.toString();
} else if (ordinal != 3) {
return str;
} else {
StringBuilder L3 = a.L("https://discord.com/stickers/");
L3.append(baseSticker.c());
L3.append(baseSticker.b());
return L3.toString();
}
}
public final int getDEFAULT_STICKER_SIZE_PX() {
return ((Number) DEFAULT_STICKER_SIZE_PX$delegate.getValue()).intValue();
}
public final Observable<Sticker> getGuildOrStandardSticker(long j, boolean z2) {
StoreStream.Companion companion = StoreStream.Companion;
Sticker sticker = companion.getStickers().getStickers().get(Long.valueOf(j));
if (sticker != null) {
j jVar = new j(sticker);
m.checkNotNullExpressionValue(jVar, "Observable.just(fullStandardSticker)");
return jVar;
}
Sticker guildSticker = companion.getGuildStickers().getGuildSticker(j);
if (guildSticker != null) {
j jVar2 = new j(guildSticker);
m.checkNotNullExpressionValue(jVar2, "Observable.just(fullGuildSticker)");
return jVar2;
} else if (!z2) {
j jVar3 = new j(null);
m.checkNotNullExpressionValue(jVar3, "Observable.just(null)");
return jVar3;
} else {
Observable<Sticker> t = ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().getSticker(j), false, 1, null).t(StickerUtils$getGuildOrStandardSticker$1.INSTANCE);
m.checkNotNullExpressionValue(t, "RestAPI\n .api\n …fetchedSticker)\n }");
return t;
}
}
public final CharSequence getLimitedTimeLeftString(Context context, ModelStickerPackStoreListing modelStickerPackStoreListing) {
m.checkNotNullParameter(context, "context");
if ((modelStickerPackStoreListing != null ? modelStickerPackStoreListing.getUnpublishedAt() : null) == null) {
return "";
}
long unpublishedAtDate = modelStickerPackStoreListing.getUnpublishedAtDate() - ClockFactory.get().currentTimeMillis();
TimeUtils timeUtils = TimeUtils.INSTANCE;
int daysFromMillis = timeUtils.getDaysFromMillis(unpublishedAtDate);
if (daysFromMillis > 0) {
return StringResourceUtilsKt.getI18nPluralString(context, 2131755063, daysFromMillis, Integer.valueOf(daysFromMillis));
}
int hoursFromMillis = timeUtils.getHoursFromMillis(unpublishedAtDate);
long j = unpublishedAtDate - (((long) hoursFromMillis) * 3600000);
int minutesFromMillis = timeUtils.getMinutesFromMillis(j);
int secondsFromMillis = timeUtils.getSecondsFromMillis(j - (((long) minutesFromMillis) * 60000));
return (hoursFromMillis < 0 || minutesFromMillis < 0 || secondsFromMillis < 0) ? b.g(context, 2131893628, new Object[0], null, 4) : b.g(context, 2131888189, new Object[]{a.H(new Object[]{Integer.valueOf(hoursFromMillis)}, 1, "%02d", "java.lang.String.format(format, *args)"), a.H(new Object[]{Integer.valueOf(minutesFromMillis)}, 1, "%02d", "java.lang.String.format(format, *args)"), a.H(new Object[]{Integer.valueOf(secondsFromMillis)}, 1, "%02d", "java.lang.String.format(format, *args)")}, null, 4);
}
public final CharSequence getStickerPackPremiumPriceLabel(Context context, ModelStickerPack modelStickerPack, PremiumTier premiumTier, boolean z2) {
m.checkNotNullParameter(context, "context");
m.checkNotNullParameter(modelStickerPack, "stickerPack");
m.checkNotNullParameter(premiumTier, "currentPremiumTier");
if (z2 && premiumTier != PremiumTier.TIER_2) {
return b.g(context, 2131893610, new Object[0], null, 4);
}
PremiumTier premiumTier2 = PremiumTier.PREMIUM_GUILD_SUBSCRIPTION_ONLY;
if (premiumTier != premiumTier2) {
Integer stickerPackPriceForPremiumTier = getStickerPackPriceForPremiumTier(modelStickerPack, premiumTier2);
Integer stickerPackPriceForPremiumTier2 = getStickerPackPriceForPremiumTier(modelStickerPack, premiumTier);
if (!(stickerPackPriceForPremiumTier == null || stickerPackPriceForPremiumTier2 == null || !(!m.areEqual(stickerPackPriceForPremiumTier, stickerPackPriceForPremiumTier2)))) {
CharSequence formattedPriceUsd = PremiumUtilsKt.getFormattedPriceUsd(stickerPackPriceForPremiumTier.intValue(), context);
return stickerPackPriceForPremiumTier2.intValue() == 0 ? b.a(context, 2131893617, new Object[]{formattedPriceUsd}, new StickerUtils$getStickerPackPremiumPriceLabel$1(context)) : b.a(context, 2131893618, new Object[]{PremiumUtilsKt.getFormattedPriceUsd(stickerPackPriceForPremiumTier2.intValue(), context), formattedPriceUsd}, new StickerUtils$getStickerPackPremiumPriceLabel$2(context));
}
}
if (isStickerPackFreeForPremiumTier(modelStickerPack, premiumTier)) {
return b.g(context, 2131893611, new Object[0], null, 4);
}
PremiumTier premiumTier3 = PremiumTier.TIER_1;
if (isStickerPackFreeForPremiumTier(modelStickerPack, premiumTier3) && !PremiumUtils.INSTANCE.isPremiumTierAtLeast(premiumTier, premiumTier3)) {
return b.g(context, 2131893612, new Object[0], null, 4);
}
PremiumTier premiumTier4 = PremiumTier.TIER_2;
if (isStickerPackFreeForPremiumTier(modelStickerPack, premiumTier4) && !PremiumUtils.INSTANCE.isPremiumTierAtLeast(premiumTier, premiumTier4)) {
return b.g(context, 2131893613, new Object[0], null, 4);
}
CharSequence formattedPriceUsd2 = PremiumUtilsKt.getFormattedPriceUsd(getStickerPackPrice(premiumTier4), context);
return premiumTier == premiumTier4 ? formattedPriceUsd2 : b.g(context, 2131893632, new Object[]{formattedPriceUsd2}, null, 4);
}
public final StickerSendability getStickerSendability(Sticker sticker, User user, Channel channel, Long l) {
m.checkNotNullParameter(sticker, "sticker");
m.checkNotNullParameter(user, "meUser");
boolean z2 = user.getPremiumTier() == PremiumTier.TIER_2;
if (sticker.k() == StickerType.STANDARD) {
return z2 ? StickerSendability.SENDABLE : StickerSendability.SENDABLE_WITH_PREMIUM;
}
if (sticker.k() != StickerType.GUILD) {
return StickerSendability.NONSENDABLE;
}
if (m.areEqual(sticker.e(), Boolean.FALSE)) {
return StickerSendability.SENDABLE_WITH_PREMIUM_GUILD;
}
return m.areEqual(sticker.g(), channel != null ? Long.valueOf(channel.f()) : null) ? StickerSendability.SENDABLE : (channel == null || AnimatableValueParser.s1(channel) || PermissionUtils.can(262144, l)) ? z2 ? StickerSendability.SENDABLE : StickerSendability.SENDABLE_WITH_PREMIUM : StickerSendability.NONSENDABLE;
}
public final List<Sticker> getStickersForAutocomplete(StoreUser storeUser, StoreGuilds storeGuilds, StoreStickers storeStickers, StoreGuildSelected storeGuildSelected, StoreGuildStickers storeGuildStickers) {
m.checkNotNullParameter(storeUser, "storeUser");
m.checkNotNullParameter(storeGuilds, "storeGuilds");
m.checkNotNullParameter(storeStickers, "storeStickers");
m.checkNotNullParameter(storeGuildSelected, "storeGuildSelected");
m.checkNotNullParameter(storeGuildStickers, "storeGuildStickers");
boolean isPremiumTier2 = UserUtils.INSTANCE.isPremiumTier2(storeUser.getMe());
List<Sticker> enabledStickers = isPremiumTier2 ? storeStickers.getEnabledStickers() : n.emptyList();
Set<Long> keySet = isPremiumTier2 ? storeGuilds.getGuilds().keySet() : m0.setOf(Long.valueOf(storeGuildSelected.getSelectedGuildId()));
List<Sticker> allGuildStickersFlattened = storeGuildStickers.getAllGuildStickersFlattened();
ArrayList arrayList = new ArrayList();
for (Object obj : allGuildStickersFlattened) {
if (u.contains(keySet, ((Sticker) obj).g())) {
arrayList.add(obj);
}
}
return u.plus((Collection) enabledStickers, (Iterable) arrayList);
}
public final boolean isStickerPackFreeForPremiumTier(ModelStickerPack modelStickerPack, PremiumTier premiumTier) {
m.checkNotNullParameter(modelStickerPack, "stickerPack");
m.checkNotNullParameter(premiumTier, "premiumTier");
boolean z2 = premiumTier == PremiumTier.TIER_2 && modelStickerPack.isPremiumPack();
Integer stickerPackPriceForPremiumTier = getStickerPackPriceForPremiumTier(modelStickerPack, premiumTier);
return z2 || (stickerPackPriceForPremiumTier != null && stickerPackPriceForPremiumTier.intValue() == 0);
}
public final Sticker parseFromMessageNotificationJson(String str) {
if (str == null) {
return null;
}
try {
JSONObject jSONObject = new JSONObject(str).getJSONArray("stickers").getJSONObject(0);
m.checkNotNullExpressionValue(jSONObject, "JSONObject(data).getJSON…ickers\").getJSONObject(0)");
try {
long parseLong = Long.parseLong(jSONObject.get("id").toString());
Long valueOf = Long.valueOf(Long.parseLong(jSONObject.get("pack_id").toString()));
String string = jSONObject.getString("name");
m.checkNotNullExpressionValue(string, "jsonSticker.getString(\"name\")");
String string2 = jSONObject.getString("description");
m.checkNotNullExpressionValue(string2, "jsonSticker.getString(\"description\")");
return new Sticker(parseLong, valueOf, Long.valueOf(Long.parseLong(jSONObject.get("guild_id").toString())), string, string2, StickerFormatType.Companion.a(Integer.parseInt(jSONObject.get("format_type").toString())), jSONObject.has("tags") ? jSONObject.get("tags").toString() : "", StickerType.Companion.a(Integer.parseInt(jSONObject.get("type").toString())), null, 256);
} catch (JSONException e) {
Logger.e$default(AppLog.g, "Error parsing sticker from notification", e, null, 4, null);
return null;
}
} catch (JSONException unused) {
return null;
}
}
}