345 lines
16 KiB
Java
345 lines
16 KiB
Java
package com.discord.widgets.auth;
|
|
|
|
import android.content.ClipData;
|
|
import android.content.ClipboardManager;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.text.TextUtils;
|
|
import android.view.ContextMenu;
|
|
import android.view.MenuInflater;
|
|
import android.view.MenuItem;
|
|
import android.view.View;
|
|
import android.widget.TextView;
|
|
import androidx.activity.result.ActivityResultLauncher;
|
|
import androidx.activity.result.contract.ActivityResultContracts;
|
|
import androidx.fragment.app.Fragment;
|
|
import c.a.d.j;
|
|
import c.d.b.a.a;
|
|
import c0.z.d.m;
|
|
import com.discord.R;
|
|
import com.discord.app.AppActivity;
|
|
import com.discord.app.AppFragment;
|
|
import com.discord.app.AppTransitionActivity;
|
|
import com.discord.app.LoggingConfig;
|
|
import com.discord.databinding.WidgetAuthPhoneVerifyBinding;
|
|
import com.discord.models.experiments.domain.Experiment;
|
|
import com.discord.restapi.RestAPIParams;
|
|
import com.discord.stores.StoreStream;
|
|
import com.discord.stores.utilities.RestCallStateKt;
|
|
import com.discord.utilities.auth.RegistrationFlowRepo;
|
|
import com.discord.utilities.rest.RestAPI;
|
|
import com.discord.utilities.rx.ObservableExtensionsKt;
|
|
import com.discord.utilities.sms.SmsListener;
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegate;
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegateKt;
|
|
import java.util.concurrent.TimeUnit;
|
|
import kotlin.Unit;
|
|
import kotlin.jvm.functions.Function0;
|
|
import kotlin.jvm.functions.Function1;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import kotlin.reflect.KProperty;
|
|
import kotlin.text.Regex;
|
|
import rx.Observable;
|
|
/* compiled from: WidgetAuthPhoneVerify.kt */
|
|
public final class WidgetAuthPhoneVerify extends AppFragment {
|
|
public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.Z(WidgetAuthPhoneVerify.class, "binding", "getBinding()Lcom/discord/databinding/WidgetAuthPhoneVerifyBinding;", 0)};
|
|
public static final Companion Companion = new Companion(null);
|
|
private static final String INTENT_EXTRA_PHONE = "INTENT_EXTRA_PHONE";
|
|
private static final String INTENT_EXTRA_SUBTITLE = "INTENT_EXTRA_SUBTITLE";
|
|
private static final String INTENT_EXTRA_TITLE = "INTENT_EXTRA_TITLE";
|
|
private static final int RESULT_BACK_TO_EMAIL = 2;
|
|
private static final String RESULT_EXTRA_TOKEN = "RESULT_EXTRA_TOKEN";
|
|
private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetAuthPhoneVerify$binding$2.INSTANCE, null, 2, null);
|
|
private boolean ignoreAutopaste = true;
|
|
private final LoggingConfig loggingConfig = new LoggingConfig(false, null, WidgetAuthPhoneVerify$loggingConfig$1.INSTANCE, 3);
|
|
private String phone;
|
|
|
|
/* compiled from: WidgetAuthPhoneVerify.kt */
|
|
public static final class Companion {
|
|
private Companion() {
|
|
}
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
|
|
public final void launch(Context context, ActivityResultLauncher<Intent> activityResultLauncher, String str, CharSequence charSequence, CharSequence charSequence2) {
|
|
m.checkNotNullParameter(context, "context");
|
|
m.checkNotNullParameter(activityResultLauncher, "launcher");
|
|
m.checkNotNullParameter(str, "phone");
|
|
m.checkNotNullParameter(charSequence, "title");
|
|
m.checkNotNullParameter(charSequence2, "subtitle");
|
|
Intent intent = new Intent();
|
|
intent.putExtra(WidgetAuthPhoneVerify.INTENT_EXTRA_PHONE, str);
|
|
intent.putExtra(WidgetAuthPhoneVerify.INTENT_EXTRA_TITLE, charSequence);
|
|
intent.putExtra(WidgetAuthPhoneVerify.INTENT_EXTRA_SUBTITLE, charSequence2);
|
|
j.g.f(context, activityResultLauncher, WidgetAuthPhoneVerify.class, intent);
|
|
}
|
|
|
|
public final ActivityResultLauncher<Intent> registerForResult(AppFragment appFragment, Function1<? super Result, Unit> function1) {
|
|
m.checkNotNullParameter(appFragment, "fragment");
|
|
m.checkNotNullParameter(function1, "callback");
|
|
ActivityResultLauncher<Intent> registerForActivityResult = appFragment.registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new WidgetAuthPhoneVerify$Companion$registerForResult$1(function1));
|
|
m.checkNotNullExpressionValue(registerForActivityResult, "fragment.registerForActi…ed)\n }\n }");
|
|
return registerForActivityResult;
|
|
}
|
|
}
|
|
|
|
/* compiled from: WidgetAuthPhoneVerify.kt */
|
|
public static abstract class Result {
|
|
|
|
/* compiled from: WidgetAuthPhoneVerify.kt */
|
|
public static final class Cancelled extends Result {
|
|
public static final Cancelled INSTANCE = new Cancelled();
|
|
|
|
private Cancelled() {
|
|
super(null);
|
|
}
|
|
}
|
|
|
|
/* compiled from: WidgetAuthPhoneVerify.kt */
|
|
public static final class Token extends Result {
|
|
private final String token;
|
|
|
|
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
|
|
public Token(String str) {
|
|
super(null);
|
|
m.checkNotNullParameter(str, "token");
|
|
this.token = str;
|
|
}
|
|
|
|
public static /* synthetic */ Token copy$default(Token token, String str, int i, Object obj) {
|
|
if ((i & 1) != 0) {
|
|
str = token.token;
|
|
}
|
|
return token.copy(str);
|
|
}
|
|
|
|
public final String component1() {
|
|
return this.token;
|
|
}
|
|
|
|
public final Token copy(String str) {
|
|
m.checkNotNullParameter(str, "token");
|
|
return new Token(str);
|
|
}
|
|
|
|
public boolean equals(Object obj) {
|
|
if (this != obj) {
|
|
return (obj instanceof Token) && m.areEqual(this.token, ((Token) obj).token);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public final String getToken() {
|
|
return this.token;
|
|
}
|
|
|
|
public int hashCode() {
|
|
String str = this.token;
|
|
if (str != null) {
|
|
return str.hashCode();
|
|
}
|
|
return 0;
|
|
}
|
|
|
|
public String toString() {
|
|
return a.G(a.O("Token(token="), this.token, ")");
|
|
}
|
|
}
|
|
|
|
private Result() {
|
|
}
|
|
|
|
public /* synthetic */ Result(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
}
|
|
|
|
public WidgetAuthPhoneVerify() {
|
|
super(R.layout.widget_auth_phone_verify);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$bailoutToEmail(WidgetAuthPhoneVerify widgetAuthPhoneVerify) {
|
|
widgetAuthPhoneVerify.bailoutToEmail();
|
|
}
|
|
|
|
public static final /* synthetic */ void access$evaluateCode(WidgetAuthPhoneVerify widgetAuthPhoneVerify, String str) {
|
|
widgetAuthPhoneVerify.evaluateCode(str);
|
|
}
|
|
|
|
public static final /* synthetic */ WidgetAuthPhoneVerifyBinding access$getBinding$p(WidgetAuthPhoneVerify widgetAuthPhoneVerify) {
|
|
return widgetAuthPhoneVerify.getBinding();
|
|
}
|
|
|
|
public static final /* synthetic */ void access$inputCode(WidgetAuthPhoneVerify widgetAuthPhoneVerify, String str) {
|
|
widgetAuthPhoneVerify.inputCode(str);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$resendCode(WidgetAuthPhoneVerify widgetAuthPhoneVerify) {
|
|
widgetAuthPhoneVerify.resendCode();
|
|
}
|
|
|
|
public static final /* synthetic */ void access$tryPasteCodeFromClipboard(WidgetAuthPhoneVerify widgetAuthPhoneVerify) {
|
|
widgetAuthPhoneVerify.tryPasteCodeFromClipboard();
|
|
}
|
|
|
|
private final void bailoutToEmail() {
|
|
AppActivity appActivity = getAppActivity();
|
|
if (appActivity != null) {
|
|
appActivity.setResult(2);
|
|
}
|
|
AppTransitionActivity.i = true;
|
|
AppActivity appActivity2 = getAppActivity();
|
|
if (appActivity2 != null) {
|
|
appActivity2.overridePendingTransition(R.anim.activity_slide_horizontal_open_in, R.anim.activity_slide_horizontal_close_out);
|
|
}
|
|
AppActivity appActivity3 = getAppActivity();
|
|
if (appActivity3 != null) {
|
|
appActivity3.finish();
|
|
}
|
|
}
|
|
|
|
private final void evaluateCode(String str) {
|
|
RegistrationFlowRepo.trackTransition$default(RegistrationFlowRepo.Companion.getINSTANCE(), "Phone Verification", "submitted", null, 4, null);
|
|
RestAPI api = RestAPI.Companion.getApi();
|
|
String str2 = this.phone;
|
|
if (str2 == null) {
|
|
m.throwUninitializedPropertyAccessException("phone");
|
|
}
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.withDimmer$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.restSubscribeOn$default(RestCallStateKt.logNetworkAction(api.phoneVerificationsVerify(new RestAPIParams.VerificationCode(str2, str)), WidgetAuthPhoneVerify$evaluateCode$1.INSTANCE), false, 1, null), this, null, 2, null), getBinding().g, 0, 2, null), WidgetAuthPhoneVerify.class, getContext(), (Function1) null, new WidgetAuthPhoneVerify$evaluateCode$3(this), (Function0) null, (Function0) null, new WidgetAuthPhoneVerify$evaluateCode$2(this), 52, (Object) null);
|
|
}
|
|
|
|
private final WidgetAuthPhoneVerifyBinding getBinding() {
|
|
return (WidgetAuthPhoneVerifyBinding) this.binding$delegate.getValue((Fragment) this, $$delegatedProperties[0]);
|
|
}
|
|
|
|
private final void inputCode(String str) {
|
|
if (getView() != null) {
|
|
getBinding().f2114c.setOnCodeEntered(WidgetAuthPhoneVerify$inputCode$1.INSTANCE);
|
|
getBinding().f2114c.setCode(str);
|
|
getBinding().f2114c.setOnCodeEntered(new WidgetAuthPhoneVerify$inputCode$2(this));
|
|
Observable<Long> d02 = Observable.d0(500, TimeUnit.MILLISECONDS);
|
|
m.checkNotNullExpressionValue(d02, "Observable\n .time…L, TimeUnit.MILLISECONDS)");
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(d02, this, null, 2, null), WidgetAuthPhoneVerify.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetAuthPhoneVerify$inputCode$3(this), 62, (Object) null);
|
|
}
|
|
}
|
|
|
|
private final void resendCode() {
|
|
RestAPI api = RestAPI.Companion.getApi();
|
|
String str = this.phone;
|
|
if (str == null) {
|
|
m.throwUninitializedPropertyAccessException("phone");
|
|
}
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.withDimmer$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.restSubscribeOn$default(api.phoneVerificationsResend(new RestAPIParams.VerificationCodeResend(str)), false, 1, null), this, null, 2, null), getBinding().g, 0, 2, null), WidgetAuthPhoneVerify.class, getContext(), (Function1) null, new WidgetAuthPhoneVerify$resendCode$2(this), (Function0) null, (Function0) null, new WidgetAuthPhoneVerify$resendCode$1(this), 52, (Object) null);
|
|
}
|
|
|
|
private final void tryPasteCodeFromClipboard() {
|
|
ClipData primaryClip;
|
|
Context context = getContext();
|
|
if (context != null) {
|
|
m.checkNotNullExpressionValue(context, "context ?: return");
|
|
Object systemService = context.getSystemService("clipboard");
|
|
if (!(systemService instanceof ClipboardManager)) {
|
|
systemService = null;
|
|
}
|
|
ClipboardManager clipboardManager = (ClipboardManager) systemService;
|
|
if (clipboardManager != null && (primaryClip = clipboardManager.getPrimaryClip()) != null) {
|
|
m.checkNotNullExpressionValue(primaryClip, "clipboard.primaryClip ?: return");
|
|
if (primaryClip.getItemCount() >= 1) {
|
|
CharSequence coerceToText = primaryClip.getItemAt(0).coerceToText(context);
|
|
m.checkNotNullExpressionValue(coerceToText, "clipData.getItemAt(0).coerceToText(context)");
|
|
String replace = new Regex(" ").replace(coerceToText, "");
|
|
if (replace.length() == 6 && TextUtils.isDigitsOnly(replace)) {
|
|
inputCode(replace);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@Override // com.discord.app.AppFragment, com.discord.app.AppLogger.a
|
|
public LoggingConfig getLoggingConfig() {
|
|
return this.loggingConfig;
|
|
}
|
|
|
|
@Override // androidx.fragment.app.Fragment
|
|
public boolean onContextItemSelected(MenuItem menuItem) {
|
|
m.checkNotNullParameter(menuItem, "item");
|
|
if (menuItem.getItemId() != R.id.menu_code_verification_paste) {
|
|
return super.onContextItemSelected(menuItem);
|
|
}
|
|
tryPasteCodeFromClipboard();
|
|
return true;
|
|
}
|
|
|
|
@Override // androidx.fragment.app.Fragment, android.view.View.OnCreateContextMenuListener
|
|
public void onCreateContextMenu(ContextMenu contextMenu, View view, ContextMenu.ContextMenuInfo contextMenuInfo) {
|
|
m.checkNotNullParameter(contextMenu, "menu");
|
|
m.checkNotNullParameter(view, "v");
|
|
super.onCreateContextMenu(contextMenu, view, contextMenuInfo);
|
|
new MenuInflater(requireContext()).inflate(R.menu.menu_code_verification, contextMenu);
|
|
}
|
|
|
|
@Override // com.discord.app.AppFragment, androidx.fragment.app.Fragment
|
|
public void onDestroyView() {
|
|
super.onDestroyView();
|
|
SmsListener.Companion.stopSmsListener();
|
|
}
|
|
|
|
@Override // com.discord.app.AppFragment, androidx.fragment.app.Fragment
|
|
public void onResume() {
|
|
super.onResume();
|
|
if (!this.ignoreAutopaste) {
|
|
i0.l.e.j jVar = new i0.l.e.j(Unit.a);
|
|
m.checkNotNullExpressionValue(jVar, "Observable\n .just(Unit)");
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(jVar, this, null, 2, null), WidgetAuthPhoneVerify.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetAuthPhoneVerify$onResume$1(this), 62, (Object) null);
|
|
return;
|
|
}
|
|
this.ignoreAutopaste = false;
|
|
}
|
|
|
|
@Override // com.discord.app.AppFragment
|
|
public void onViewBound(View view) {
|
|
m.checkNotNullParameter(view, "view");
|
|
super.onViewBound(view);
|
|
String stringExtra = getMostRecentIntent().getStringExtra(INTENT_EXTRA_PHONE);
|
|
if (stringExtra == null) {
|
|
stringExtra = "";
|
|
}
|
|
this.phone = stringExtra;
|
|
RegistrationFlowRepo.trackTransition$default(RegistrationFlowRepo.Companion.getINSTANCE(), "Phone Verification", "viewed", null, 4, null);
|
|
CharSequence charSequenceExtra = getMostRecentIntent().getCharSequenceExtra(INTENT_EXTRA_TITLE);
|
|
if (charSequenceExtra == null) {
|
|
charSequenceExtra = "";
|
|
}
|
|
m.checkNotNullExpressionValue(charSequenceExtra, "mostRecentIntent.getChar…INTENT_EXTRA_TITLE) ?: \"\"");
|
|
CharSequence charSequenceExtra2 = getMostRecentIntent().getCharSequenceExtra(INTENT_EXTRA_SUBTITLE);
|
|
if (charSequenceExtra2 == null) {
|
|
charSequenceExtra2 = "";
|
|
}
|
|
m.checkNotNullExpressionValue(charSequenceExtra2, "mostRecentIntent.getChar…ENT_EXTRA_SUBTITLE) ?: \"\"");
|
|
if (!m.areEqual(charSequenceExtra, "")) {
|
|
TextView textView = getBinding().f;
|
|
m.checkNotNullExpressionValue(textView, "binding.authPhoneVerifyTitle");
|
|
textView.setText(charSequenceExtra);
|
|
}
|
|
if (!m.areEqual(charSequenceExtra2, "")) {
|
|
TextView textView2 = getBinding().e;
|
|
m.checkNotNullExpressionValue(textView2, "binding.authPhoneVerifySubtitle");
|
|
textView2.setText(charSequenceExtra2);
|
|
}
|
|
getBinding().d.setOnClickListener(new WidgetAuthPhoneVerify$onViewBound$1(this));
|
|
Experiment userExperiment = StoreStream.Companion.getExperiments().getUserExperiment("2021-06_reg_bailout_to_email_android", true);
|
|
if (userExperiment != null && userExperiment.getBucket() == 1) {
|
|
TextView textView3 = getBinding().b;
|
|
m.checkNotNullExpressionValue(textView3, "binding.authPhoneBailout");
|
|
textView3.setVisibility(0);
|
|
getBinding().b.setOnClickListener(new WidgetAuthPhoneVerify$onViewBound$2(this));
|
|
}
|
|
getBinding().f2114c.setOnCodeEntered(new WidgetAuthPhoneVerify$onViewBound$3(this));
|
|
registerForContextMenu(getBinding().f2114c);
|
|
SmsListener.Companion.startSmsListener(new WidgetAuthPhoneVerify$onViewBound$4(this));
|
|
}
|
|
}
|