244 lines
12 KiB
Java
244 lines
12 KiB
Java
package com.discord.widgets.guilds.invite;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.res.Resources;
|
|
import android.util.DisplayMetrics;
|
|
import android.view.View;
|
|
import androidx.fragment.app.Fragment;
|
|
import androidx.fragment.app.FragmentManager;
|
|
import c.a.d.l;
|
|
import c.a.d.q;
|
|
import c.d.b.a.a;
|
|
import com.airbnb.lottie.parser.AnimatableValueParser;
|
|
import com.discord.api.channel.Channel;
|
|
import com.discord.api.guild.Guild;
|
|
import com.discord.api.guild.GuildFeature;
|
|
import com.discord.app.AppFragment;
|
|
import com.discord.databinding.WidgetGuildInviteBinding;
|
|
import com.discord.models.domain.ModelInvite;
|
|
import com.discord.stores.StoreInstantInvites;
|
|
import com.discord.stores.StoreStream;
|
|
import com.discord.utilities.analytics.AnalyticsTracker;
|
|
import com.discord.utilities.channel.ChannelSelector;
|
|
import com.discord.utilities.error.Error;
|
|
import com.discord.utilities.guilds.MemberVerificationUtils;
|
|
import com.discord.utilities.icon.IconUtils;
|
|
import com.discord.utilities.rx.ObservableExtensionsKt;
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegate;
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegateKt;
|
|
import com.facebook.drawee.view.SimpleDraweeView;
|
|
import com.google.android.material.button.MaterialButton;
|
|
import d0.g0.t;
|
|
import d0.t.n0;
|
|
import d0.z.d.m;
|
|
import j0.l.e.j;
|
|
import java.util.Collection;
|
|
import java.util.List;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import kotlin.reflect.KProperty;
|
|
import rx.Observable;
|
|
/* compiled from: WidgetGuildInvite.kt */
|
|
public final class WidgetGuildInvite extends AppFragment {
|
|
public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.W(WidgetGuildInvite.class, "binding", "getBinding()Lcom/discord/databinding/WidgetGuildInviteBinding;", 0)};
|
|
public static final Companion Companion = new Companion(null);
|
|
private static final String EXTRA_CODE = "EXTRA_CODE";
|
|
private static final String EXTRA_LOCATION = "EXTRA_LOCATION";
|
|
private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetGuildInvite$binding$2.INSTANCE, null, 2, null);
|
|
private String inviteCode;
|
|
private String inviteLocation;
|
|
private boolean inviteResolved;
|
|
private StoreInstantInvites.InviteState.Resolved inviteState;
|
|
|
|
/* compiled from: WidgetGuildInvite.kt */
|
|
public static final class Companion {
|
|
private Companion() {
|
|
}
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
|
|
public final void launch(Context context, String str, String str2) {
|
|
m.checkNotNullParameter(context, "context");
|
|
m.checkNotNullParameter(str, "code");
|
|
m.checkNotNullParameter(str2, "location");
|
|
Intent intent = new Intent();
|
|
intent.putExtra("EXTRA_CODE", str);
|
|
intent.putExtra("EXTRA_LOCATION", str2);
|
|
l.d(context, WidgetGuildInvite.class, intent);
|
|
}
|
|
}
|
|
|
|
public WidgetGuildInvite() {
|
|
super(2131559049);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$configureUI(WidgetGuildInvite widgetGuildInvite, StoreInstantInvites.InviteState.Resolved resolved) {
|
|
widgetGuildInvite.configureUI(resolved);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$configureUIFailure(WidgetGuildInvite widgetGuildInvite, Error error) {
|
|
widgetGuildInvite.configureUIFailure(error);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$displayInviteTarget(WidgetGuildInvite widgetGuildInvite, ModelInvite modelInvite) {
|
|
widgetGuildInvite.displayInviteTarget(modelInvite);
|
|
}
|
|
|
|
public static final /* synthetic */ String access$getInviteCode$p(WidgetGuildInvite widgetGuildInvite) {
|
|
return widgetGuildInvite.inviteCode;
|
|
}
|
|
|
|
public static final /* synthetic */ String access$getInviteLocation$p(WidgetGuildInvite widgetGuildInvite) {
|
|
return widgetGuildInvite.inviteLocation;
|
|
}
|
|
|
|
public static final /* synthetic */ void access$onAcceptedGuildInvite(WidgetGuildInvite widgetGuildInvite, ModelInvite modelInvite) {
|
|
widgetGuildInvite.onAcceptedGuildInvite(modelInvite);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setInviteCode$p(WidgetGuildInvite widgetGuildInvite, String str) {
|
|
widgetGuildInvite.inviteCode = str;
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setInviteLocation$p(WidgetGuildInvite widgetGuildInvite, String str) {
|
|
widgetGuildInvite.inviteLocation = str;
|
|
}
|
|
|
|
private final void configureUI(StoreInstantInvites.InviteState.Resolved resolved) {
|
|
String str;
|
|
List<GuildFeature> l;
|
|
this.inviteState = resolved;
|
|
ModelInvite invite = resolved.getInvite();
|
|
Guild guild = resolved.getInvite().getGuild();
|
|
boolean z2 = (guild == null || (l = guild.l()) == null || !l.contains(GuildFeature.HUB)) ? false : true;
|
|
Context context = getContext();
|
|
if (context != null) {
|
|
m.checkNotNullExpressionValue(context, "context ?: return");
|
|
trackAndConsumeDynamicLinkCache(invite);
|
|
getBinding().d.configureUI(invite);
|
|
MaterialButton materialButton = getBinding().f1808c;
|
|
m.checkNotNullExpressionValue(materialButton, "binding.guildInviteCancel");
|
|
materialButton.setVisibility(8);
|
|
MaterialButton materialButton2 = getBinding().b;
|
|
m.checkNotNullExpressionValue(materialButton2, "binding.guildInviteAccept");
|
|
materialButton2.setVisibility(0);
|
|
getBinding().b.setOnClickListener(new WidgetGuildInvite$configureUI$1(this, z2, context, resolved, invite));
|
|
SimpleDraweeView simpleDraweeView = getBinding().e;
|
|
IconUtils iconUtils = IconUtils.INSTANCE;
|
|
Guild guild2 = resolved.getInvite().getGuild();
|
|
long o = guild2 != null ? guild2.o() : 0;
|
|
Guild guild3 = resolved.getInvite().getGuild();
|
|
if (guild3 == null || (str = guild3.F()) == null) {
|
|
str = "";
|
|
}
|
|
Resources resources = getResources();
|
|
m.checkNotNullExpressionValue(resources, "resources");
|
|
DisplayMetrics displayMetrics = resources.getDisplayMetrics();
|
|
simpleDraweeView.setImageURI(iconUtils.getGuildSplashUrl(o, str, displayMetrics != null ? Integer.valueOf(displayMetrics.widthPixels) : null));
|
|
}
|
|
}
|
|
|
|
private final void configureUIFailure(Error error) {
|
|
MaterialButton materialButton = getBinding().f1808c;
|
|
m.checkNotNullExpressionValue(materialButton, "binding.guildInviteCancel");
|
|
materialButton.setVisibility(0);
|
|
MaterialButton materialButton2 = getBinding().b;
|
|
m.checkNotNullExpressionValue(materialButton2, "binding.guildInviteAccept");
|
|
materialButton2.setVisibility(8);
|
|
getBinding().d.configureUIFailure(error);
|
|
trackAndConsumeDynamicLinkCache(null);
|
|
}
|
|
|
|
private final void displayInviteTarget(ModelInvite modelInvite) {
|
|
Collection collection;
|
|
WidgetGuildInvite$displayInviteTarget$1 widgetGuildInvite$displayInviteTarget$1 = new WidgetGuildInvite$displayInviteTarget$1(this, modelInvite);
|
|
Guild guild = modelInvite.getGuild();
|
|
if (guild == null || (collection = guild.l()) == null) {
|
|
collection = n0.emptySet();
|
|
}
|
|
if (collection.contains(GuildFeature.MEMBER_VERIFICATION_GATE_ENABLED) && !collection.contains(GuildFeature.PREVIEW_ENABLED)) {
|
|
MemberVerificationUtils memberVerificationUtils = MemberVerificationUtils.INSTANCE;
|
|
Context requireContext = requireContext();
|
|
Guild guild2 = modelInvite.getGuild();
|
|
long o = guild2 != null ? guild2.o() : -1;
|
|
FragmentManager childFragmentManager = getChildFragmentManager();
|
|
m.checkNotNullExpressionValue(childFragmentManager, "childFragmentManager");
|
|
memberVerificationUtils.maybeShowVerificationGate(requireContext, childFragmentManager, o, "Accept Invite Page", modelInvite, new WidgetGuildInvite$displayInviteTarget$2(widgetGuildInvite$displayInviteTarget$1));
|
|
return;
|
|
}
|
|
widgetGuildInvite$displayInviteTarget$1.mo1invoke();
|
|
}
|
|
|
|
private final WidgetGuildInviteBinding getBinding() {
|
|
return (WidgetGuildInviteBinding) this.binding$delegate.getValue((Fragment) this, $$delegatedProperties[0]);
|
|
}
|
|
|
|
private final Observable<? extends StoreInstantInvites.InviteState> getResolvedInviteOrDefault(String str) {
|
|
StoreInstantInvites.InviteState.Resolved resolved = this.inviteState;
|
|
if (resolved != null) {
|
|
return new j(resolved);
|
|
}
|
|
if (str == null || !(!t.isBlank(str))) {
|
|
return new j(null);
|
|
}
|
|
StoreStream.Companion companion = StoreStream.Companion;
|
|
companion.getInstantInvites().fetchInviteIfNotLoaded(str, this.inviteLocation);
|
|
return companion.getInstantInvites().observeInvite(str).x(WidgetGuildInvite$getResolvedInviteOrDefault$1.INSTANCE);
|
|
}
|
|
|
|
private final void onAcceptedGuildInvite(ModelInvite modelInvite) {
|
|
Channel channel = modelInvite.getChannel();
|
|
m.checkNotNullExpressionValue(channel, "invite.channel");
|
|
if (AnimatableValueParser.l1(channel)) {
|
|
requestMicrophone(new WidgetGuildInvite$onAcceptedGuildInvite$1(this, modelInvite), new WidgetGuildInvite$onAcceptedGuildInvite$2(this, modelInvite));
|
|
return;
|
|
}
|
|
ChannelSelector.Companion.getInstance().findAndSet(getContext(), modelInvite.getChannel().h());
|
|
displayInviteTarget(modelInvite);
|
|
}
|
|
|
|
private final void trackAndConsumeDynamicLinkCache(ModelInvite modelInvite) {
|
|
StoreStream.Companion.getInviteSettings().clearInviteCode();
|
|
if (!this.inviteResolved) {
|
|
this.inviteResolved = true;
|
|
String str = "";
|
|
if (modelInvite != null) {
|
|
AnalyticsTracker analyticsTracker = AnalyticsTracker.INSTANCE;
|
|
String str2 = this.inviteLocation;
|
|
if (str2 != null) {
|
|
str = str2;
|
|
}
|
|
analyticsTracker.inviteResolved(modelInvite, str);
|
|
return;
|
|
}
|
|
String str3 = this.inviteCode;
|
|
String str4 = str3 != null ? str3 : str;
|
|
String str5 = this.inviteLocation;
|
|
AnalyticsTracker.inviteResolveFailed$default(str4, str5 != null ? str5 : str, null, null, 12, null);
|
|
}
|
|
}
|
|
|
|
@Override // com.discord.app.AppFragment
|
|
public void onViewBound(View view) {
|
|
m.checkNotNullParameter(view, "view");
|
|
super.onViewBound(view);
|
|
setRetainInstance(true);
|
|
AppFragment.setActionBarDisplayHomeAsUpEnabled$default(this, false, 1, null);
|
|
String stringExtra = getMostRecentIntent().getStringExtra("EXTRA_CODE");
|
|
this.inviteCode = stringExtra;
|
|
AnalyticsTracker.INSTANCE.impressionInviteAccept(stringExtra);
|
|
getBinding().f1808c.setOnClickListener(new WidgetGuildInvite$onViewBound$1(this));
|
|
}
|
|
|
|
@Override // com.discord.app.AppFragment
|
|
public void onViewBoundOrOnResume() {
|
|
super.onViewBoundOrOnResume();
|
|
this.inviteCode = getMostRecentIntent().getStringExtra("EXTRA_CODE");
|
|
this.inviteLocation = getMostRecentIntent().getStringExtra("EXTRA_LOCATION");
|
|
Observable<? extends StoreInstantInvites.InviteState> resolvedInviteOrDefault = getResolvedInviteOrDefault(this.inviteCode);
|
|
m.checkNotNullExpressionValue(resolvedInviteOrDefault, "getResolvedInviteOrDefault(inviteCode)");
|
|
ObservableExtensionsKt.ui$default(ObservableExtensionsKt.restSubscribeOn$default(resolvedInviteOrDefault, false, 1, null), this, null, 2, null).k(q.a.g(getContext(), new WidgetGuildInvite$onViewBoundOrOnResume$1(this), new WidgetGuildInvite$onViewBoundOrOnResume$2(this)));
|
|
}
|
|
}
|