419 lines
18 KiB
Java
419 lines
18 KiB
Java
package com.discord.utilities.premium;
|
|
|
|
import android.content.Context;
|
|
import android.view.View;
|
|
import androidx.annotation.DrawableRes;
|
|
import androidx.core.app.NotificationCompat;
|
|
import androidx.fragment.app.FragmentManager;
|
|
import b.a.k.b;
|
|
import b.d.b.a.a;
|
|
import com.android.billingclient.api.Purchase;
|
|
import com.android.billingclient.api.SkuDetails;
|
|
import com.discord.R;
|
|
import com.discord.api.guild.GuildFeature;
|
|
import com.discord.api.premium.PremiumTier;
|
|
import com.discord.app.AppLog;
|
|
import com.discord.models.domain.ModelGift;
|
|
import com.discord.models.domain.ModelSku;
|
|
import com.discord.models.domain.ModelStoreListing;
|
|
import com.discord.models.domain.ModelSubscription;
|
|
import com.discord.models.domain.premium.SubscriptionPlanType;
|
|
import com.discord.models.guild.Guild;
|
|
import com.discord.models.user.User;
|
|
import com.discord.stores.StoreGooglePlaySkuDetails;
|
|
import com.discord.stores.StoreStream;
|
|
import com.discord.utilities.analytics.Traits;
|
|
import com.discord.utilities.billing.GooglePlayBillingManager;
|
|
import com.discord.utilities.color.ColorCompat;
|
|
import com.discord.utilities.drawable.DrawableCompat;
|
|
import com.discord.utilities.font.FontUtils;
|
|
import com.discord.utilities.gifting.GiftStyle;
|
|
import com.discord.utilities.gifting.GiftStyleKt;
|
|
import com.discord.utilities.logging.Logger;
|
|
import com.discord.utilities.uri.UriHandler;
|
|
import d0.t.n0;
|
|
import d0.t.o0;
|
|
import d0.z.d.m;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
import kotlin.Unit;
|
|
import kotlin.jvm.functions.Function1;
|
|
/* compiled from: PremiumUtils.kt */
|
|
public final class PremiumUtils {
|
|
public static final float GUILD_BOOST_FOR_PREMIUM_USER_DISCOUNT_PERCENT = 0.3f;
|
|
public static final PremiumUtils INSTANCE = new PremiumUtils();
|
|
public static final int MAX_NON_PREMIUM_GUILD_COUNT = 100;
|
|
public static final int MAX_PREMIUM_GUILD_COUNT = 200;
|
|
private static final String MONTHLY_ISO8601 = "P1M";
|
|
public static final int NUM_FREE_GUILD_BOOSTS_WITH_PREMIUM = 2;
|
|
public static final long PREMIUM_APPLICATION_ID = 521842831262875670L;
|
|
public static final float PREMIUM_YEARLY_DISCOUNT_PERCENT = 0.16f;
|
|
private static final String YEARLY_ISO8601 = "P1Y";
|
|
private static final Set<GuildFeature> tier1BoostFeatures;
|
|
private static final Set<GuildFeature> tier2BoostFeatures;
|
|
private static final Set<GuildFeature> tier3BoostFeatures;
|
|
|
|
/* compiled from: PremiumUtils.kt */
|
|
public static final class BoostFeatureBadgeData {
|
|
private final int iconColor;
|
|
private final Function1<View, Unit> onClickListener;
|
|
private final CharSequence text;
|
|
private final int textColor;
|
|
|
|
/* JADX DEBUG: Multi-variable search result rejected for r2v0, resolved type: kotlin.jvm.functions.Function1<? super android.view.View, kotlin.Unit> */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
public BoostFeatureBadgeData(Function1<? super View, Unit> function1, int i, CharSequence charSequence, int i2) {
|
|
m.checkNotNullParameter(charSequence, NotificationCompat.MessagingStyle.Message.KEY_TEXT);
|
|
this.onClickListener = function1;
|
|
this.iconColor = i;
|
|
this.text = charSequence;
|
|
this.textColor = i2;
|
|
}
|
|
|
|
/* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: com.discord.utilities.premium.PremiumUtils$BoostFeatureBadgeData */
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
public static /* synthetic */ BoostFeatureBadgeData copy$default(BoostFeatureBadgeData boostFeatureBadgeData, Function1 function1, int i, CharSequence charSequence, int i2, int i3, Object obj) {
|
|
if ((i3 & 1) != 0) {
|
|
function1 = boostFeatureBadgeData.onClickListener;
|
|
}
|
|
if ((i3 & 2) != 0) {
|
|
i = boostFeatureBadgeData.iconColor;
|
|
}
|
|
if ((i3 & 4) != 0) {
|
|
charSequence = boostFeatureBadgeData.text;
|
|
}
|
|
if ((i3 & 8) != 0) {
|
|
i2 = boostFeatureBadgeData.textColor;
|
|
}
|
|
return boostFeatureBadgeData.copy(function1, i, charSequence, i2);
|
|
}
|
|
|
|
public final Function1<View, Unit> component1() {
|
|
return this.onClickListener;
|
|
}
|
|
|
|
public final int component2() {
|
|
return this.iconColor;
|
|
}
|
|
|
|
public final CharSequence component3() {
|
|
return this.text;
|
|
}
|
|
|
|
public final int component4() {
|
|
return this.textColor;
|
|
}
|
|
|
|
public final BoostFeatureBadgeData copy(Function1<? super View, Unit> function1, int i, CharSequence charSequence, int i2) {
|
|
m.checkNotNullParameter(charSequence, NotificationCompat.MessagingStyle.Message.KEY_TEXT);
|
|
return new BoostFeatureBadgeData(function1, i, charSequence, i2);
|
|
}
|
|
|
|
public boolean equals(Object obj) {
|
|
if (this == obj) {
|
|
return true;
|
|
}
|
|
if (!(obj instanceof BoostFeatureBadgeData)) {
|
|
return false;
|
|
}
|
|
BoostFeatureBadgeData boostFeatureBadgeData = (BoostFeatureBadgeData) obj;
|
|
return m.areEqual(this.onClickListener, boostFeatureBadgeData.onClickListener) && this.iconColor == boostFeatureBadgeData.iconColor && m.areEqual(this.text, boostFeatureBadgeData.text) && this.textColor == boostFeatureBadgeData.textColor;
|
|
}
|
|
|
|
public final int getIconColor() {
|
|
return this.iconColor;
|
|
}
|
|
|
|
public final Function1<View, Unit> getOnClickListener() {
|
|
return this.onClickListener;
|
|
}
|
|
|
|
public final CharSequence getText() {
|
|
return this.text;
|
|
}
|
|
|
|
public final int getTextColor() {
|
|
return this.textColor;
|
|
}
|
|
|
|
public int hashCode() {
|
|
Function1<View, Unit> function1 = this.onClickListener;
|
|
int i = 0;
|
|
int hashCode = (((function1 != null ? function1.hashCode() : 0) * 31) + this.iconColor) * 31;
|
|
CharSequence charSequence = this.text;
|
|
if (charSequence != null) {
|
|
i = charSequence.hashCode();
|
|
}
|
|
return ((hashCode + i) * 31) + this.textColor;
|
|
}
|
|
|
|
public String toString() {
|
|
StringBuilder R = a.R("BoostFeatureBadgeData(onClickListener=");
|
|
R.append(this.onClickListener);
|
|
R.append(", iconColor=");
|
|
R.append(this.iconColor);
|
|
R.append(", text=");
|
|
R.append(this.text);
|
|
R.append(", textColor=");
|
|
return a.A(R, this.textColor, ")");
|
|
}
|
|
}
|
|
|
|
public final /* synthetic */ class WhenMappings {
|
|
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
|
|
|
|
static {
|
|
ModelSku.SkuCategory.values();
|
|
int[] iArr = new int[3];
|
|
$EnumSwitchMapping$0 = iArr;
|
|
iArr[ModelSku.SkuCategory.NITRO_CLASSIC.ordinal()] = 1;
|
|
iArr[ModelSku.SkuCategory.NITRO.ordinal()] = 2;
|
|
}
|
|
}
|
|
|
|
static {
|
|
Set<GuildFeature> of = n0.setOf((Object[]) new GuildFeature[]{GuildFeature.INVITE_SPLASH, GuildFeature.ANIMATED_ICON, GuildFeature.THREE_DAY_THREAD_ARCHIVE});
|
|
tier1BoostFeatures = of;
|
|
Set<GuildFeature> plus = o0.plus((Set) of, (Iterable) n0.setOf((Object[]) new GuildFeature[]{GuildFeature.BANNER, GuildFeature.SEVEN_DAY_THREAD_ARCHIVE, GuildFeature.PRIVATE_THREADS, GuildFeature.ROLE_ICONS}));
|
|
tier2BoostFeatures = plus;
|
|
tier3BoostFeatures = o0.plus((Set) plus, (Iterable) n0.setOf((Object[]) new GuildFeature[]{GuildFeature.VANITY_URL, GuildFeature.ANIMATED_BANNER}));
|
|
}
|
|
|
|
private PremiumUtils() {
|
|
}
|
|
|
|
public static /* synthetic */ BoostFeatureBadgeData getBoostFeatureBadgeDataForGuildFeature$default(PremiumUtils premiumUtils, Guild guild, Long l, GuildFeature guildFeature, Context context, FragmentManager fragmentManager, Function1 function1, Traits.Location location, int i, Object obj) {
|
|
return premiumUtils.getBoostFeatureBadgeDataForGuildFeature(guild, l, guildFeature, context, fragmentManager, (i & 32) != 0 ? null : function1, (i & 64) != 0 ? null : location);
|
|
}
|
|
|
|
public final boolean doesGuildHaveEnoughBoostsForFeature(Guild guild, GuildFeature guildFeature) {
|
|
m.checkNotNullParameter(guildFeature, "feature");
|
|
int premiumTier = guild != null ? guild.getPremiumTier() : -1;
|
|
Integer minimumBoostTierForGuildFeature = getMinimumBoostTierForGuildFeature(guildFeature);
|
|
return premiumTier >= (minimumBoostTierForGuildFeature != null ? minimumBoostTierForGuildFeature.intValue() : 0);
|
|
}
|
|
|
|
public final Purchase findPurchaseForSkuName(List<? extends Purchase> list, String str) {
|
|
m.checkNotNullParameter(str, "skuName");
|
|
Object obj = null;
|
|
if (list == null) {
|
|
return null;
|
|
}
|
|
Iterator<T> it = list.iterator();
|
|
while (true) {
|
|
if (!it.hasNext()) {
|
|
break;
|
|
}
|
|
Object next = it.next();
|
|
if (((Purchase) next).b().contains(str)) {
|
|
obj = next;
|
|
break;
|
|
}
|
|
}
|
|
return (Purchase) obj;
|
|
}
|
|
|
|
public final ModelSubscription findSubscriptionForSku(List<ModelSubscription> list, String str) {
|
|
Object obj;
|
|
m.checkNotNullParameter(list, "subscriptions");
|
|
m.checkNotNullParameter(str, "skuName");
|
|
Iterator<T> it = list.iterator();
|
|
while (true) {
|
|
if (!it.hasNext()) {
|
|
obj = null;
|
|
break;
|
|
}
|
|
obj = it.next();
|
|
if (m.areEqual(((ModelSubscription) obj).getPaymentGatewayPlanId(), str)) {
|
|
break;
|
|
}
|
|
}
|
|
return (ModelSubscription) obj;
|
|
}
|
|
|
|
public final BoostFeatureBadgeData getBoostFeatureBadgeDataForGuildFeature(Guild guild, Long l, GuildFeature guildFeature, Context context, FragmentManager fragmentManager, Function1<? super View, Unit> function1, Traits.Location location) {
|
|
m.checkNotNullParameter(guildFeature, "guildFeature");
|
|
m.checkNotNullParameter(context, "context");
|
|
m.checkNotNullParameter(fragmentManager, "fragmentManager");
|
|
if (guild == null || !guild.hasFeature(guildFeature)) {
|
|
Integer minimumBoostTierForGuildFeature = getMinimumBoostTierForGuildFeature(guildFeature);
|
|
PremiumUtils$getBoostFeatureBadgeDataForGuildFeature$1 premiumUtils$getBoostFeatureBadgeDataForGuildFeature$1 = new PremiumUtils$getBoostFeatureBadgeDataForGuildFeature$1(guild, fragmentManager, minimumBoostTierForGuildFeature, location, l);
|
|
CharSequence boostTierShortText = getBoostTierShortText(context, minimumBoostTierForGuildFeature);
|
|
if (boostTierShortText == null) {
|
|
boostTierShortText = "";
|
|
}
|
|
return new BoostFeatureBadgeData(premiumUtils$getBoostFeatureBadgeDataForGuildFeature$1, ColorCompat.getThemedColor(context, (int) R.attr.colorInteractiveNormal), boostTierShortText, ColorCompat.getThemedColor(context, (int) R.attr.colorTextMuted));
|
|
}
|
|
String string = context.getString(R.string.guild_settings_premium_guild_unlocked);
|
|
m.checkNotNullExpressionValue(string, "context.getString(R.stri…s_premium_guild_unlocked)");
|
|
return new BoostFeatureBadgeData(function1, ColorCompat.getColor(context, (int) R.color.guild_boosting_pink), string, ColorCompat.getThemedColor(context, (int) R.attr.colorTextNormal));
|
|
}
|
|
|
|
public final CharSequence getBoostTierShortText(Context context, Integer num) {
|
|
m.checkNotNullParameter(context, "context");
|
|
if (num != null && num.intValue() == 1) {
|
|
return b.h(context, R.string.premium_guild_tier_1_short, new Object[0], null, 4);
|
|
}
|
|
if (num != null && num.intValue() == 2) {
|
|
return b.h(context, R.string.premium_guild_tier_2_short, new Object[0], null, 4);
|
|
}
|
|
if (num != null && num.intValue() == 3) {
|
|
return b.h(context, R.string.premium_guild_tier_3_short, new Object[0], null, 4);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public final int getGuildBoostCountFromSubscription(ModelSubscription modelSubscription) {
|
|
m.checkNotNullParameter(modelSubscription, "$this$getGuildBoostCountFromSubscription");
|
|
return (modelSubscription.getPremiumBasePlanId() == SubscriptionPlanType.PREMIUM_MONTH_TIER_2.getPlanId() || modelSubscription.getPremiumBasePlanId() == SubscriptionPlanType.PREMIUM_YEAR_TIER_2.getPlanId()) ? 2 : 0;
|
|
}
|
|
|
|
public final int getGuildEmojiMaxCount(int i, boolean z2) {
|
|
if (z2 && i <= 2) {
|
|
return 200;
|
|
}
|
|
if (i != 1) {
|
|
return i != 2 ? i != 3 ? 50 : 250 : FontUtils.MAX_FONT_SCALING;
|
|
}
|
|
return 100;
|
|
}
|
|
|
|
public final int getGuildEmojiMaxCount(Guild guild) {
|
|
m.checkNotNullParameter(guild, "guild");
|
|
return getGuildEmojiMaxCount(guild.getPremiumTier(), guild.getFeatures().contains(GuildFeature.MORE_EMOJI));
|
|
}
|
|
|
|
public final int getGuildMaxFileSizeMB(int i) {
|
|
if (i == 0 || i == 1) {
|
|
return 8;
|
|
}
|
|
return i != 2 ? 100 : 50;
|
|
}
|
|
|
|
public final int getGuildStickerMaxCount(int i, boolean z2) {
|
|
if (z2 && i <= 2) {
|
|
return 60;
|
|
}
|
|
if (i == 1) {
|
|
return 15;
|
|
}
|
|
if (i != 2) {
|
|
return i != 3 ? 0 : 60;
|
|
}
|
|
return 30;
|
|
}
|
|
|
|
public final int getMaxFileSizeMB(User user) {
|
|
PremiumTier premiumTier = null;
|
|
if ((user != null ? user.getPremiumTier() : null) == PremiumTier.TIER_1) {
|
|
return 50;
|
|
}
|
|
if (user != null) {
|
|
premiumTier = user.getPremiumTier();
|
|
}
|
|
return premiumTier == PremiumTier.TIER_2 ? 100 : 8;
|
|
}
|
|
|
|
public final Integer getMinimumBoostTierForGuildFeature(GuildFeature guildFeature) {
|
|
m.checkNotNullParameter(guildFeature, "guildFeature");
|
|
if (tier1BoostFeatures.contains(guildFeature)) {
|
|
return 1;
|
|
}
|
|
if (tier2BoostFeatures.contains(guildFeature)) {
|
|
return 2;
|
|
}
|
|
return tier3BoostFeatures.contains(guildFeature) ? 3 : null;
|
|
}
|
|
|
|
@DrawableRes
|
|
public final int getNitroGiftBackground(ModelGift modelGift, Context context) {
|
|
m.checkNotNullParameter(modelGift, "gift");
|
|
m.checkNotNullParameter(context, "context");
|
|
return GiftStyleKt.hasCustomStyle(modelGift) ? ColorCompat.getThemedColor(context, (int) R.attr.colorBackgroundSecondaryAlt) : DrawableCompat.getThemedDrawableRes(context, (int) R.attr.gift_nitro_splash, (int) R.drawable.img_nitro_splash_dark);
|
|
}
|
|
|
|
@DrawableRes
|
|
public final int getNitroGiftIcon(ModelGift modelGift) {
|
|
m.checkNotNullParameter(modelGift, "gift");
|
|
GiftStyle customStyle = GiftStyleKt.getCustomStyle(modelGift);
|
|
if (customStyle != null) {
|
|
return customStyle.getStaticRes();
|
|
}
|
|
ModelStoreListing storeListing = modelGift.getStoreListing();
|
|
return getNitroGiftIcon(storeListing != null ? storeListing.getSku() : null);
|
|
}
|
|
|
|
@DrawableRes
|
|
public final int getNitroGiftIcon(ModelSku modelSku) {
|
|
ModelSku.SkuCategory skuCategory = modelSku != null ? modelSku.getSkuCategory() : null;
|
|
if (skuCategory != null) {
|
|
int ordinal = skuCategory.ordinal();
|
|
if (ordinal == 1) {
|
|
return R.drawable.drawable_ic_nitro;
|
|
}
|
|
if (ordinal == 2) {
|
|
return R.drawable.drawable_ic_nitro_classic;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
public final CharSequence getPlanPriceText(Context context, SkuDetails skuDetails) {
|
|
m.checkNotNullParameter(context, "context");
|
|
m.checkNotNullParameter(skuDetails, "skuDetails");
|
|
String optString = skuDetails.f2003b.optString("subscriptionPeriod");
|
|
int hashCode = optString.hashCode();
|
|
if (hashCode != 78476) {
|
|
if (hashCode == 78488 && optString.equals(YEARLY_ISO8601)) {
|
|
return b.h(context, R.string.billing_price_per_year, new Object[]{skuDetails.b()}, null, 4);
|
|
}
|
|
} else if (optString.equals(MONTHLY_ISO8601)) {
|
|
return b.h(context, R.string.billing_price_per_month, new Object[]{skuDetails.b()}, null, 4);
|
|
}
|
|
return "";
|
|
}
|
|
|
|
public final String getSkuPrice(String str) {
|
|
m.checkNotNullParameter(str, "paymentGatewaySkuId");
|
|
StoreGooglePlaySkuDetails.State state = StoreStream.Companion.getGooglePlaySkuDetails().getState();
|
|
if (!(state instanceof StoreGooglePlaySkuDetails.State.Loaded)) {
|
|
Logger.w$default(AppLog.g, a.v("SkuDetails not loaded. Unable to get price for sku id ", str), null, 2, null);
|
|
return null;
|
|
}
|
|
SkuDetails skuDetails = ((StoreGooglePlaySkuDetails.State.Loaded) state).getSkuDetails().get(str);
|
|
if (skuDetails != null) {
|
|
return skuDetails.b();
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public final boolean isNitroSku(ModelSku modelSku) {
|
|
m.checkNotNullParameter(modelSku, "sku");
|
|
return modelSku.getSkuCategory() == ModelSku.SkuCategory.NITRO_CLASSIC || modelSku.getSkuCategory() == ModelSku.SkuCategory.NITRO;
|
|
}
|
|
|
|
public final boolean isPremiumTierAtLeast(PremiumTier premiumTier, PremiumTier premiumTier2) {
|
|
m.checkNotNullParameter(premiumTier, "premiumTier");
|
|
m.checkNotNullParameter(premiumTier2, "minimumLevel");
|
|
return premiumTier.ordinal() >= premiumTier2.ordinal();
|
|
}
|
|
|
|
public final int microAmountToMinor(long j) {
|
|
return (int) (j / ((long) 10000));
|
|
}
|
|
|
|
public final void openAppleBilling(Context context) {
|
|
m.checkNotNullParameter(context, "context");
|
|
UriHandler.handle$default(UriHandler.INSTANCE, context, b.h(context, R.string.apple_billing_url, new Object[0], null, 4).toString(), null, 4, null);
|
|
}
|
|
|
|
public final void openGooglePlayBilling(Context context, String str) {
|
|
String str2;
|
|
m.checkNotNullParameter(context, "context");
|
|
if (str == null || (str2 = a.N(new Object[]{str, context.getPackageName()}, 2, GooglePlayBillingManager.PLAY_STORE_SUBSCRIPTION_DEEPLINK_URL, "java.lang.String.format(this, *args)")) == null) {
|
|
str2 = GooglePlayBillingManager.PLAY_STORE_SUBSCRIPTION_URL;
|
|
}
|
|
UriHandler.handle$default(UriHandler.INSTANCE, context, str2, null, 4, null);
|
|
}
|
|
}
|