discord-jadx/app/src/main/java/com/discord/utilities/premium/GuildBoostUtils.java

237 lines
12 KiB
Java
Raw Normal View History

2021-08-03 07:33:18 +00:00
package com.discord.utilities.premium;
2022-02-17 09:52:29 +00:00
import com.discord.api.guild.GuildFeature;
2021-08-03 07:33:18 +00:00
import com.discord.app.AppLog;
import com.discord.models.domain.ModelSubscription;
import com.discord.models.domain.premium.SubscriptionPlanType;
2022-02-17 09:52:29 +00:00
import com.discord.models.experiments.domain.Experiment;
import com.discord.models.guild.Guild;
import com.discord.stores.StoreExperiments;
2021-12-17 21:59:34 +00:00
import com.discord.stores.StoreGuildBoost;
2022-02-17 09:52:29 +00:00
import com.discord.stores.StoreGuilds;
import com.discord.stores.StoreStream;
import com.discord.utilities.analytics.Traits;
2021-08-03 07:33:18 +00:00
import com.discord.utilities.logging.Logger;
import com.discord.utilities.rest.RestAPI;
2021-11-02 06:38:17 +00:00
import d0.t.u;
import d0.z.d.m;
import j0.p.a;
2021-08-03 07:33:18 +00:00
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import rx.Observable;
2021-12-17 21:59:34 +00:00
/* compiled from: GuildBoostUtils.kt */
public final class GuildBoostUtils {
public static final int DEFAULT_GUILD_BOOST_GUILD_COUNT = 1;
public static final int DEFAULT_GUILD_BOOST_SLOT_COUNT = 1;
public static final int GUILD_BOOST_COOLDOWN_DAYS = 7;
public static final GuildBoostUtils INSTANCE = new GuildBoostUtils();
2021-08-03 07:33:18 +00:00
2021-12-17 21:59:34 +00:00
/* compiled from: GuildBoostUtils.kt */
public enum ModifyGuildBoostSlotResult {
2021-08-03 07:33:18 +00:00
SUCCESS,
FAILURE_MODIFYING_SLOT,
FAILURE_UPDATING_SUBSCRIPTION
}
2021-12-17 21:59:34 +00:00
private GuildBoostUtils() {
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
public static /* synthetic */ int calculatePercentToNextTier$default(GuildBoostUtils guildBoostUtils, long j, int i, int i2, StoreExperiments storeExperiments, StoreGuilds storeGuilds, int i3, Object obj) {
if ((i3 & 8) != 0) {
storeExperiments = StoreStream.Companion.getExperiments();
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
if ((i3 & 16) != 0) {
storeGuilds = StoreStream.Companion.getGuilds();
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
return guildBoostUtils.calculatePercentToNextTier(j, i, i2, storeExperiments, storeGuilds);
}
public static /* synthetic */ int calculateTotalProgress$default(GuildBoostUtils guildBoostUtils, long j, int i, int i2, StoreExperiments storeExperiments, StoreGuilds storeGuilds, int i3, Object obj) {
if ((i3 & 8) != 0) {
storeExperiments = StoreStream.Companion.getExperiments();
}
if ((i3 & 16) != 0) {
storeGuilds = StoreStream.Companion.getGuilds();
}
return guildBoostUtils.calculateTotalProgress(j, i, i2, storeExperiments, storeGuilds);
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
public static /* synthetic */ int getBoostTier$default(GuildBoostUtils guildBoostUtils, long j, int i, StoreExperiments storeExperiments, StoreGuilds storeGuilds, int i2, Object obj) {
if ((i2 & 4) != 0) {
storeExperiments = StoreStream.Companion.getExperiments();
}
if ((i2 & 8) != 0) {
storeGuilds = StoreStream.Companion.getGuilds();
}
return guildBoostUtils.getBoostTier(j, i, storeExperiments, storeGuilds);
}
public static /* synthetic */ int getBoostsRequiredForTier$default(GuildBoostUtils guildBoostUtils, long j, int i, StoreExperiments storeExperiments, StoreGuilds storeGuilds, int i2, Object obj) {
if ((i2 & 4) != 0) {
storeExperiments = StoreStream.Companion.getExperiments();
}
if ((i2 & 8) != 0) {
storeGuilds = StoreStream.Companion.getGuilds();
}
return guildBoostUtils.getBoostsRequiredForTier(j, i, storeExperiments, storeGuilds);
}
private final int getCurrentTierSubs(boolean z2, int i) {
2021-08-03 07:33:18 +00:00
if (i == 1) {
2022-02-17 09:52:29 +00:00
return 2;
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
if (i == 2) {
return z2 ? 5 : 7;
}
if (i != 3) {
return 0;
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
return z2 ? 7 : 14;
}
private final int getNextTierSubs(boolean z2, int i) {
return i != 1 ? i != 2 ? i != 3 ? 2 : 0 : z2 ? 7 : 14 : z2 ? 5 : 7;
2021-08-03 07:33:18 +00:00
}
2021-12-17 21:59:34 +00:00
private final Observable<ModifyGuildBoostSlotResult> modifyGuildBoostSlot(RestAPI restAPI, long j, ModelSubscription modelSubscription, boolean z2, StoreGuildBoost storeGuildBoost) {
Observable<ModifyGuildBoostSlotResult> z3 = (z2 ? restAPI.cancelSubscriptionSlot(j) : restAPI.uncancelSubscriptionSlot(j)).X(a.c()).t(new GuildBoostUtils$modifyGuildBoostSlot$1(storeGuildBoost)).F(GuildBoostUtils$modifyGuildBoostSlot$2.INSTANCE).L(GuildBoostUtils$modifyGuildBoostSlot$3.INSTANCE).z(new GuildBoostUtils$modifyGuildBoostSlot$4(restAPI, modelSubscription, z2));
2021-10-22 06:43:45 +00:00
m.checkNotNullExpressionValue(z3, "apiObs\n .subscrib…N }\n }\n }");
return z3;
2021-08-03 07:33:18 +00:00
}
2021-12-17 21:59:34 +00:00
public final List<ModelSubscription.SubscriptionAdditionalPlan> calculateAdditionalPlansWithGuildBoostAdjustment(ModelSubscription modelSubscription, int i) {
2022-02-17 09:52:29 +00:00
Object obj;
2021-08-03 07:33:18 +00:00
boolean z2;
m.checkNotNullParameter(modelSubscription, Traits.Payment.Type.SUBSCRIPTION);
2021-08-03 07:33:18 +00:00
ModelSubscription.SubscriptionRenewalMutations renewalMutations = modelSubscription.getRenewalMutations();
2022-02-17 09:52:29 +00:00
List<ModelSubscription.SubscriptionAdditionalPlan> premiumAdditionalPlans = renewalMutations == null ? modelSubscription.getPremiumAdditionalPlans() : renewalMutations.getPremiumAdditionalPlans();
Iterator<T> it = premiumAdditionalPlans.iterator();
while (true) {
if (!it.hasNext()) {
obj = null;
break;
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
obj = it.next();
ModelSubscription.SubscriptionAdditionalPlan subscriptionAdditionalPlan = (ModelSubscription.SubscriptionAdditionalPlan) obj;
if (subscriptionAdditionalPlan.getPlanId() == SubscriptionPlanType.PREMIUM_GUILD_MONTH.getPlanId() || subscriptionAdditionalPlan.getPlanId() == SubscriptionPlanType.PREMIUM_GUILD_YEAR.getPlanId()) {
z2 = true;
continue;
} else {
z2 = false;
continue;
}
if (z2) {
break;
2021-08-03 07:33:18 +00:00
}
}
2022-02-17 09:52:29 +00:00
ModelSubscription.SubscriptionAdditionalPlan subscriptionAdditionalPlan2 = (ModelSubscription.SubscriptionAdditionalPlan) obj;
int quantity = (subscriptionAdditionalPlan2 != null ? subscriptionAdditionalPlan2.getQuantity() : 0) + i;
if (quantity < 0 || subscriptionAdditionalPlan2 == null) {
2021-08-03 07:33:18 +00:00
AppLog appLog = AppLog.g;
Logger.e$default(appLog, "Error calculating additional_plans adjustment, new sub count:" + quantity, null, null, 6, null);
return modelSubscription.getPremiumAdditionalPlans();
}
ArrayList arrayList = new ArrayList();
2022-02-17 09:52:29 +00:00
for (Object obj2 : premiumAdditionalPlans) {
ModelSubscription.SubscriptionAdditionalPlan subscriptionAdditionalPlan3 = (ModelSubscription.SubscriptionAdditionalPlan) obj2;
2021-08-03 07:33:18 +00:00
if ((subscriptionAdditionalPlan3.getPlanId() == SubscriptionPlanType.PREMIUM_GUILD_MONTH.getPlanId() || subscriptionAdditionalPlan3.getPlanId() == SubscriptionPlanType.PREMIUM_GUILD_YEAR.getPlanId()) ? false : true) {
2022-02-17 09:52:29 +00:00
arrayList.add(obj2);
2021-08-03 07:33:18 +00:00
}
}
2022-02-17 09:52:29 +00:00
return quantity == 0 ? arrayList : u.plus((Collection) arrayList, (Iterable) d0.t.m.listOf(new ModelSubscription.SubscriptionAdditionalPlan(subscriptionAdditionalPlan2.getPlanId(), quantity)));
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
public final int calculatePercentToNextTier(long j, int i, int i2, StoreExperiments storeExperiments, StoreGuilds storeGuilds) {
Guild guild;
m.checkNotNullParameter(storeExperiments, "storeExperiments");
m.checkNotNullParameter(storeGuilds, "storeGuilds");
2021-08-03 07:33:18 +00:00
if (i >= 3) {
return 100;
}
2022-02-17 09:52:29 +00:00
boolean z2 = true;
Experiment guildExperiment = storeExperiments.getGuildExperiment("2022-02_boosting_tiers", j, true);
if (guildExperiment == null || guildExperiment.getBucket() != 1 || (guild = storeGuilds.getGuild(j)) == null || !guild.hasFeature(GuildFeature.EXPOSED_TO_BOOSTING_TIERS_EXPERIMENT)) {
z2 = false;
}
return d0.a0.a.roundToInt((((float) (i2 - getCurrentTierSubs(z2, i))) / ((float) getNextTierSubs(z2, i))) * ((float) 100));
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
public final int calculateTotalProgress(long j, int i, int i2, StoreExperiments storeExperiments, StoreGuilds storeGuilds) {
Guild guild;
m.checkNotNullParameter(storeExperiments, "storeExperiments");
m.checkNotNullParameter(storeGuilds, "storeGuilds");
2021-08-03 07:33:18 +00:00
if (i >= 3) {
return 100;
}
2022-02-17 09:52:29 +00:00
boolean z2 = true;
Experiment guildExperiment = storeExperiments.getGuildExperiment("2022-02_boosting_tiers", j, true);
if (guildExperiment == null || guildExperiment.getBucket() != 1 || (guild = storeGuilds.getGuild(j)) == null || !guild.hasFeature(GuildFeature.EXPOSED_TO_BOOSTING_TIERS_EXPERIMENT)) {
z2 = false;
}
int nextTierSubs = getNextTierSubs(z2, i);
int currentTierSubs = getCurrentTierSubs(z2, i);
2021-11-02 06:38:17 +00:00
return d0.a0.a.roundToInt(((((float) (i2 - currentTierSubs)) / ((float) (nextTierSubs - currentTierSubs))) * 33.3f) + (((float) i) * 33.3f));
2021-08-03 07:33:18 +00:00
}
2021-12-17 21:59:34 +00:00
public final Observable<ModifyGuildBoostSlotResult> cancelGuildBoostSlot(RestAPI restAPI, long j, ModelSubscription modelSubscription, StoreGuildBoost storeGuildBoost) {
2021-08-03 07:33:18 +00:00
m.checkNotNullParameter(restAPI, "api");
m.checkNotNullParameter(modelSubscription, Traits.Payment.Type.SUBSCRIPTION);
2021-12-17 21:59:34 +00:00
m.checkNotNullParameter(storeGuildBoost, "storeGuildBoost");
return modifyGuildBoostSlot(restAPI, j, modelSubscription, true, storeGuildBoost);
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
public final int getBoostTier(long j, int i, StoreExperiments storeExperiments, StoreGuilds storeGuilds) {
Guild guild;
m.checkNotNullParameter(storeExperiments, "storeExperiments");
m.checkNotNullParameter(storeGuilds, "storeGuilds");
Experiment guildExperiment = storeExperiments.getGuildExperiment("2022-02_boosting_tiers", j, true);
if (guildExperiment != null && guildExperiment.getBucket() == 1 && (guild = storeGuilds.getGuild(j)) != null && guild.hasFeature(GuildFeature.EXPOSED_TO_BOOSTING_TIERS_EXPERIMENT)) {
if (i >= 7) {
return 3;
}
if (i >= 5) {
return 2;
}
return i >= 2 ? 1 : 0;
} else if (i >= 14) {
2021-08-03 07:33:18 +00:00
return 3;
2022-02-17 09:52:29 +00:00
} else {
if (i >= 7) {
return 2;
}
return i >= 2 ? 1 : 0;
2021-08-03 07:33:18 +00:00
}
2022-02-17 09:52:29 +00:00
}
public final int getBoostsRequiredForTier(long j, int i, StoreExperiments storeExperiments, StoreGuilds storeGuilds) {
Guild guild;
m.checkNotNullParameter(storeExperiments, "storeExperiments");
m.checkNotNullParameter(storeGuilds, "storeGuilds");
Experiment guildExperiment = storeExperiments.getGuildExperiment("2022-02_boosting_tiers", j, true);
boolean z2 = guildExperiment != null && guildExperiment.getBucket() == 1 && (guild = storeGuilds.getGuild(j)) != null && guild.hasFeature(GuildFeature.EXPOSED_TO_BOOSTING_TIERS_EXPERIMENT);
if (i == 1) {
2021-08-17 07:10:14 +00:00
return 2;
}
2022-02-17 09:52:29 +00:00
if (i != 2) {
if (i != 3) {
return 0;
}
if (!z2) {
return 14;
}
} else if (z2) {
return 5;
}
return 7;
2021-08-03 07:33:18 +00:00
}
2021-12-17 21:59:34 +00:00
public final Observable<ModifyGuildBoostSlotResult> uncancelGuildBoostSlot(RestAPI restAPI, long j, ModelSubscription modelSubscription, StoreGuildBoost storeGuildBoost) {
2021-08-03 07:33:18 +00:00
m.checkNotNullParameter(restAPI, "api");
m.checkNotNullParameter(modelSubscription, Traits.Payment.Type.SUBSCRIPTION);
2021-12-17 21:59:34 +00:00
m.checkNotNullParameter(storeGuildBoost, "storeGuildBoost");
return modifyGuildBoostSlot(restAPI, j, modelSubscription, false, storeGuildBoost);
2021-08-03 07:33:18 +00:00
}
}