discord-jadx/app/src/main/java/com/discord/widgets/auth/WidgetAuthRegisterIdentity....

268 lines
14 KiB
Java

package com.discord.widgets.auth;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import androidx.activity.result.ActivityResultLauncher;
import androidx.core.app.NotificationCompat;
import androidx.fragment.app.Fragment;
import b.a.d.j;
import b.a.k.b;
import b.d.b.a.a;
import com.discord.R;
import com.discord.app.AppFragment;
import com.discord.app.LoggingConfig;
import com.discord.databinding.WidgetAuthRegisterIdentityBinding;
import com.discord.models.experiments.domain.Experiment;
import com.discord.restapi.RestAPIParams;
import com.discord.stores.StorePhone;
import com.discord.stores.StoreStream;
import com.discord.stores.updates.ObservationDeck;
import com.discord.stores.updates.ObservationDeckProvider;
import com.discord.stores.utilities.RestCallStateKt;
import com.discord.utilities.auth.RegistrationFlowRepo;
import com.discord.utilities.captcha.CaptchaHelper;
import com.discord.utilities.rest.RestAPI;
import com.discord.utilities.rx.ObservableExtensionsKt;
import com.discord.utilities.view.extensions.ViewExtensions;
import com.discord.utilities.view.text.LinkifiedTextView;
import com.discord.utilities.view.validators.ValidationManager;
import com.discord.utilities.viewbinding.FragmentViewBindingDelegate;
import com.discord.utilities.viewbinding.FragmentViewBindingDelegateKt;
import com.discord.views.phone.PhoneOrEmailInputView;
import com.discord.views.segmentedcontrol.CardSegment;
import com.discord.views.segmentedcontrol.SegmentedControlContainer;
import d0.g;
import d0.t.u;
import d0.z.d.m;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import kotlin.Lazy;
import kotlin.jvm.functions.Function0;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.DefaultConstructorMarker;
import kotlin.reflect.KProperty;
/* compiled from: WidgetAuthRegisterIdentity.kt */
public final class WidgetAuthRegisterIdentity extends AppFragment {
public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.b0(WidgetAuthRegisterIdentity.class, "binding", "getBinding()Lcom/discord/databinding/WidgetAuthRegisterIdentityBinding;", 0)};
public static final Companion Companion = new Companion(null);
private static final String IS_PHONE_MODE = "IS_PHONE_MODE";
private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetAuthRegisterIdentity$binding$2.INSTANCE, null, 2, null);
private final ActivityResultLauncher<Intent> captchaLauncher = WidgetAuthCaptcha.Companion.registerForResult(this, new WidgetAuthRegisterIdentity$captchaLauncher$1(this));
private final Lazy emailValidationManager$delegate = g.lazy(new WidgetAuthRegisterIdentity$emailValidationManager$2(this));
private PhoneOrEmailInputView.Mode inputMode = PhoneOrEmailInputView.Mode.PHONE;
private final LoggingConfig loggingConfig = new LoggingConfig(false, null, WidgetAuthRegisterIdentity$loggingConfig$1.INSTANCE, 3);
private final Lazy phoneValidationManager$delegate = g.lazy(new WidgetAuthRegisterIdentity$phoneValidationManager$2(this));
private final ActivityResultLauncher<Intent> phoneVerifyLauncher = WidgetAuthPhoneVerify.Companion.registerForResult(this, new WidgetAuthRegisterIdentity$phoneVerifyLauncher$1(this));
private boolean shouldValidateInputs = true;
/* compiled from: WidgetAuthRegisterIdentity.kt */
public static final class Companion {
private Companion() {
}
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
this();
}
}
public WidgetAuthRegisterIdentity() {
super(R.layout.widget_auth_register_identity);
}
public static final /* synthetic */ WidgetAuthRegisterIdentityBinding access$getBinding$p(WidgetAuthRegisterIdentity widgetAuthRegisterIdentity) {
return widgetAuthRegisterIdentity.getBinding();
}
public static final /* synthetic */ ActivityResultLauncher access$getCaptchaLauncher$p(WidgetAuthRegisterIdentity widgetAuthRegisterIdentity) {
return widgetAuthRegisterIdentity.captchaLauncher;
}
public static final /* synthetic */ ActivityResultLauncher access$getPhoneVerifyLauncher$p(WidgetAuthRegisterIdentity widgetAuthRegisterIdentity) {
return widgetAuthRegisterIdentity.phoneVerifyLauncher;
}
public static final /* synthetic */ void access$handleNext(WidgetAuthRegisterIdentity widgetAuthRegisterIdentity) {
widgetAuthRegisterIdentity.handleNext();
}
public static final /* synthetic */ void access$registerViaPhone(WidgetAuthRegisterIdentity widgetAuthRegisterIdentity, CaptchaHelper.CaptchaPayload captchaPayload) {
widgetAuthRegisterIdentity.registerViaPhone(captchaPayload);
}
public static final /* synthetic */ void access$setInputMode(WidgetAuthRegisterIdentity widgetAuthRegisterIdentity, PhoneOrEmailInputView.Mode mode) {
widgetAuthRegisterIdentity.setInputMode(mode);
}
private final void configurePhoneInput() {
getBinding().d.setMode(this.inputMode);
if (this.inputMode == PhoneOrEmailInputView.Mode.PHONE) {
getBinding().d.setHint(getString(R.string.form_label_phone_number));
} else {
getBinding().d.setHint(getString(R.string.form_label_email));
}
getBinding().d.getMainEditText().setImeOptions(6);
ViewExtensions.setOnImeActionDone$default(getBinding().d.getMainTextInputLayout(), false, new WidgetAuthRegisterIdentity$configurePhoneInput$1(this), 1, null);
}
private final void configureSegmentControl() {
int i = 0;
SegmentedControlContainer.b(getBinding().g, 0, 1);
getBinding().g.setOnSegmentSelectedChangeListener(new WidgetAuthRegisterIdentity$configureSegmentControl$1(this));
PhoneOrEmailInputView.Mode mode = this.inputMode;
PhoneOrEmailInputView.Mode mode2 = PhoneOrEmailInputView.Mode.PHONE;
if (mode != mode2) {
i = 1;
}
getBinding().g.setSelectedIndex(i);
CardSegment cardSegmentForMode = getCardSegmentForMode(mode2);
cardSegmentForMode.setText(getString(R.string.phone));
cardSegmentForMode.setContentDescription(getString(R.string.use_phone));
CardSegment cardSegmentForMode2 = getCardSegmentForMode(PhoneOrEmailInputView.Mode.EMAIL);
cardSegmentForMode2.setText(getString(R.string.email));
cardSegmentForMode2.setContentDescription(getString(R.string.use_email));
}
private final void configureUI() {
getBinding().d.b(this);
StorePhone phone = StoreStream.Companion.getPhone();
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(ObservationDeck.connectRx$default(ObservationDeckProvider.get(), new ObservationDeck.UpdateSource[]{phone}, false, null, null, new WidgetAuthRegisterIdentity$configureUI$1(phone), 14, null), this, null, 2, null), WidgetAuthRegisterIdentity.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetAuthRegisterIdentity$configureUI$2(this), 62, (Object) null);
configurePhoneInput();
configureSegmentControl();
getBinding().d.requestFocus();
LinkifiedTextView linkifiedTextView = getBinding().e;
m.checkNotNullExpressionValue(linkifiedTextView, "binding.authRegisterIdentityPolicyLink");
b.n(linkifiedTextView, R.string.register_login_privacy_notice, new Object[]{getString(R.string.privacy_policy_url)}, null, 4);
getBinding().f2222b.setOnClickListener(new WidgetAuthRegisterIdentity$configureUI$3(this));
}
private final WidgetAuthRegisterIdentityBinding getBinding() {
return (WidgetAuthRegisterIdentityBinding) this.binding$delegate.getValue((Fragment) this, $$delegatedProperties[0]);
}
private final CardSegment getCardSegmentForMode(PhoneOrEmailInputView.Mode mode) {
if (mode == PhoneOrEmailInputView.Mode.PHONE) {
CardSegment cardSegment = getBinding().c;
m.checkNotNullExpressionValue(cardSegment, "binding.authRegisterIdentityFirstSegmentCard");
return cardSegment;
}
CardSegment cardSegment2 = getBinding().f;
m.checkNotNullExpressionValue(cardSegment2, "binding.authRegisterIdentitySecondSegmentCard");
return cardSegment2;
}
private final ValidationManager getEmailValidationManager() {
return (ValidationManager) this.emailValidationManager$delegate.getValue();
}
private final ValidationManager getPhoneValidationManager() {
return (ValidationManager) this.phoneValidationManager$delegate.getValue();
}
private final void handleNext() {
if (this.inputMode == PhoneOrEmailInputView.Mode.EMAIL) {
if (!this.shouldValidateInputs || ValidationManager.validate$default(getEmailValidationManager(), false, 1, null)) {
registerViaEmail();
} else {
RegistrationFlowRepo.trackTransition$default(RegistrationFlowRepo.Companion.getINSTANCE(), "Account Identity", "input_error", null, 4, null);
}
} else if (!this.shouldValidateInputs || ValidationManager.validate$default(getPhoneValidationManager(), false, 1, null)) {
registerViaPhone$default(this, null, 1, null);
} else {
RegistrationFlowRepo.trackTransition$default(RegistrationFlowRepo.Companion.getINSTANCE(), "Account Identity", "input_error", null, 4, null);
}
}
private final void registerViaEmail() {
RegistrationFlowRepo.Companion companion = RegistrationFlowRepo.Companion;
companion.getINSTANCE().setEmail(getBinding().d.getTextOrEmpty());
RegistrationFlowRepo.trackTransition$default(companion.getINSTANCE(), "Account Identity", "success", null, 4, null);
j.e(requireContext(), WidgetAuthRegisterAccountInformation.class, null, 4);
}
private final void registerViaPhone(CaptchaHelper.CaptchaPayload captchaPayload) {
String textOrEmpty = getBinding().d.getTextOrEmpty();
RegistrationFlowRepo.Companion.getINSTANCE().setPhone(textOrEmpty);
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.withDimmer$default(ObservableExtensionsKt.ui$default(RestCallStateKt.logNetworkAction(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().postAuthRegisterPhone(new RestAPIParams.AuthRegisterPhone(textOrEmpty, captchaPayload != null ? captchaPayload.getCaptchaKey() : null, captchaPayload != null ? captchaPayload.getCaptchaRqtoken() : null)), false, 1, null), WidgetAuthRegisterIdentity$registerViaPhone$1.INSTANCE), this, null, 2, null), getBinding().h, 0, 2, null), WidgetAuthRegisterIdentity.class, getContext(), (Function1) null, new WidgetAuthRegisterIdentity$registerViaPhone$3(this), (Function0) null, (Function0) null, new WidgetAuthRegisterIdentity$registerViaPhone$2(this, textOrEmpty), 52, (Object) null);
}
public static /* synthetic */ void registerViaPhone$default(WidgetAuthRegisterIdentity widgetAuthRegisterIdentity, CaptchaHelper.CaptchaPayload captchaPayload, int i, Object obj) {
if ((i & 1) != 0) {
captchaPayload = null;
}
widgetAuthRegisterIdentity.registerViaPhone(captchaPayload);
}
private final void setInputMode(PhoneOrEmailInputView.Mode mode) {
if (this.inputMode != mode) {
this.inputMode = mode;
getBinding().d.getMainTextInputLayout().setError(null);
configurePhoneInput();
}
}
@Override // com.discord.app.AppFragment, com.discord.app.AppLogger.a
public LoggingConfig getLoggingConfig() {
return this.loggingConfig;
}
@Override // com.discord.app.AppFragment, androidx.fragment.app.Fragment
public void onResume() {
super.onResume();
configureUI();
Map<String, List<String>> errors = RegistrationFlowRepo.Companion.getINSTANCE().getErrors();
if (errors != null) {
getEmailValidationManager().setErrors(errors);
Set<String> keySet = errors.keySet();
ArrayList arrayList = new ArrayList();
Iterator<T> it = keySet.iterator();
while (true) {
boolean z2 = true;
if (!it.hasNext()) {
break;
}
Object next = it.next();
String str = (String) next;
if (!m.areEqual(str, NotificationCompat.CATEGORY_EMAIL) && !m.areEqual(str, "phone")) {
z2 = false;
}
if (z2) {
arrayList.add(next);
}
}
List<String> list = u.toList(arrayList);
if (!list.isEmpty()) {
RegistrationFlowRepo.Companion.getINSTANCE().trackTransition("Account Identity", "response_error", list);
}
}
}
@Override // androidx.fragment.app.Fragment
public void onSaveInstanceState(Bundle bundle) {
m.checkNotNullParameter(bundle, "outState");
super.onSaveInstanceState(bundle);
bundle.putBoolean(IS_PHONE_MODE, this.inputMode == PhoneOrEmailInputView.Mode.PHONE);
}
@Override // com.discord.app.AppFragment, androidx.fragment.app.Fragment
public void onViewCreated(View view, Bundle bundle) {
m.checkNotNullParameter(view, "view");
super.onViewCreated(view, bundle);
this.inputMode = (bundle == null || bundle.getBoolean(IS_PHONE_MODE)) ? PhoneOrEmailInputView.Mode.PHONE : PhoneOrEmailInputView.Mode.EMAIL;
RegistrationFlowRepo.trackTransition$default(RegistrationFlowRepo.Companion.getINSTANCE(), "Account Identity", "submitted", null, 4, null);
StoreStream.Companion companion = StoreStream.Companion;
boolean z2 = true;
Experiment userExperiment = companion.getExperiments().getUserExperiment("2021-01_android_registration_flow", true);
if ((userExperiment != null && userExperiment.getBucket() == 1) || (userExperiment != null && userExperiment.getBucket() == 3)) {
z2 = false;
}
this.shouldValidateInputs = z2;
configureUI();
companion.getInviteSettings().trackWithInvite$app_productionBetaRelease(WidgetAuthRegisterIdentity.class, WidgetAuthRegisterIdentity$onViewCreated$1.INSTANCE);
}
}