2021-06-27 20:44:35 +00:00
|
|
|
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.fragment.app.Fragment;
|
|
|
|
import c.a.d.l;
|
2021-07-19 19:45:22 +00:00
|
|
|
import c.a.k.b;
|
2021-06-27 20:44:35 +00:00
|
|
|
import c.d.b.a.a;
|
|
|
|
import com.discord.app.AppFragment;
|
|
|
|
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.utilities.auth.RegistrationFlowRepo;
|
|
|
|
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 {
|
2021-07-19 19:45:22 +00:00
|
|
|
public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.V(WidgetAuthRegisterIdentity.class, "binding", "getBinding()Lcom/discord/databinding/WidgetAuthRegisterIdentityBinding;", 0)};
|
2021-06-27 20:44:35 +00:00
|
|
|
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 Lazy emailValidationManager$delegate = g.lazy(new WidgetAuthRegisterIdentity$emailValidationManager$2(this));
|
|
|
|
private PhoneOrEmailInputView.Mode inputMode = PhoneOrEmailInputView.Mode.PHONE;
|
|
|
|
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() {
|
2021-07-19 19:45:22 +00:00
|
|
|
super(2131558862);
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ WidgetAuthRegisterIdentityBinding access$getBinding$p(WidgetAuthRegisterIdentity widgetAuthRegisterIdentity) {
|
|
|
|
return widgetAuthRegisterIdentity.getBinding();
|
|
|
|
}
|
|
|
|
|
|
|
|
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$setInputMode(WidgetAuthRegisterIdentity widgetAuthRegisterIdentity, PhoneOrEmailInputView.Mode mode) {
|
|
|
|
widgetAuthRegisterIdentity.setInputMode(mode);
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void configurePhoneInput() {
|
|
|
|
getBinding().d.setMode(this.inputMode);
|
|
|
|
if (this.inputMode == PhoneOrEmailInputView.Mode.PHONE) {
|
2021-07-19 19:45:22 +00:00
|
|
|
getBinding().d.setHint(getString(2131888724));
|
2021-06-27 20:44:35 +00:00
|
|
|
} else {
|
2021-07-19 19:45:22 +00:00
|
|
|
getBinding().d.setHint(getString(2131888652));
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
getBinding().d.getMainEditText().setImeOptions(6);
|
|
|
|
ViewExtensions.setOnImeActionDone$default(getBinding().d.getMainTextInputLayout(), false, new WidgetAuthRegisterIdentity$configurePhoneInput$1(this), 1, null);
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void configureSegmentControl() {
|
|
|
|
SegmentedControlContainer segmentedControlContainer = getBinding().g;
|
|
|
|
int i = SegmentedControlContainer.i;
|
|
|
|
int i2 = 0;
|
|
|
|
segmentedControlContainer.a(0);
|
|
|
|
getBinding().g.setOnSegmentSelectedChangeListener(new WidgetAuthRegisterIdentity$configureSegmentControl$1(this));
|
|
|
|
PhoneOrEmailInputView.Mode mode = this.inputMode;
|
|
|
|
PhoneOrEmailInputView.Mode mode2 = PhoneOrEmailInputView.Mode.PHONE;
|
|
|
|
if (mode != mode2) {
|
|
|
|
i2 = 1;
|
|
|
|
}
|
|
|
|
getBinding().g.setSelectedIndex(i2);
|
|
|
|
CardSegment cardSegmentForMode = getCardSegmentForMode(mode2);
|
2021-07-19 19:45:22 +00:00
|
|
|
cardSegmentForMode.setText(getString(2131892025));
|
|
|
|
cardSegmentForMode.setContentDescription(getString(2131894387));
|
2021-06-27 20:44:35 +00:00
|
|
|
CardSegment cardSegmentForMode2 = getCardSegmentForMode(PhoneOrEmailInputView.Mode.EMAIL);
|
2021-07-19 19:45:22 +00:00
|
|
|
cardSegmentForMode2.setText(getString(2131888227));
|
|
|
|
cardSegmentForMode2.setContentDescription(getString(2131894384));
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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");
|
2021-07-19 19:45:22 +00:00
|
|
|
b.m(linkifiedTextView, 2131892726, new Object[]{getString(2131892546)}, null, 4);
|
2021-06-27 20:44:35 +00:00
|
|
|
getBinding().b.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) {
|
2021-07-19 19:45:22 +00:00
|
|
|
CardSegment cardSegment = getBinding().f1684c;
|
2021-06-27 20:44:35 +00:00
|
|
|
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)) {
|
|
|
|
RegistrationFlowRepo.Companion companion = RegistrationFlowRepo.Companion;
|
|
|
|
companion.getINSTANCE().setEmail(getBinding().d.getTextOrEmpty());
|
|
|
|
RegistrationFlowRepo.trackTransition$default(companion.getINSTANCE(), "Account Identity", "success", null, 4, null);
|
|
|
|
l.e(requireContext(), WidgetAuthRegisterAccountInformation.class, null, 4);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
RegistrationFlowRepo.trackTransition$default(RegistrationFlowRepo.Companion.getINSTANCE(), "Account Identity", "input_error", null, 4, null);
|
|
|
|
} else if (!this.shouldValidateInputs || ValidationManager.validate$default(getPhoneValidationManager(), false, 1, null)) {
|
|
|
|
String textOrEmpty = getBinding().d.getTextOrEmpty();
|
|
|
|
RegistrationFlowRepo.Companion.getINSTANCE().setPhone(textOrEmpty);
|
|
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.withDimmer$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().postAuthRegisterPhone(new RestAPIParams.AuthRegisterPhone(textOrEmpty)), false, 1, null), this, null, 2, null), getBinding().h, 0, 2, null), WidgetAuthRegisterIdentity.class, getContext(), (Function1) null, WidgetAuthRegisterIdentity$handleNext$2.INSTANCE, (Function0) null, (Function0) null, new WidgetAuthRegisterIdentity$handleNext$1(this, textOrEmpty), 52, (Object) null);
|
|
|
|
} else {
|
|
|
|
RegistrationFlowRepo.trackTransition$default(RegistrationFlowRepo.Companion.getINSTANCE(), "Account Identity", "input_error", null, 4, null);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
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, 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, "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);
|
2021-07-03 23:36:06 +00:00
|
|
|
if ((userExperiment != null && userExperiment.getBucket() == 1) || (userExperiment != null && userExperiment.getBucket() == 3)) {
|
2021-06-27 20:44:35 +00:00
|
|
|
z2 = false;
|
|
|
|
}
|
2021-07-03 23:36:06 +00:00
|
|
|
this.shouldValidateInputs = z2;
|
2021-06-27 20:44:35 +00:00
|
|
|
configureUI();
|
|
|
|
companion.getInviteSettings().trackWithInvite$app_productionBetaRelease(WidgetAuthRegisterIdentity.class, WidgetAuthRegisterIdentity$onViewCreated$1.INSTANCE);
|
|
|
|
}
|
|
|
|
}
|