245 lines
14 KiB
Java
245 lines
14 KiB
Java
package com.discord.widgets.user;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.os.Bundle;
|
|
import android.view.View;
|
|
import androidx.activity.result.ActivityResultLauncher;
|
|
import androidx.activity.result.contract.ActivityResultContracts;
|
|
import androidx.fragment.app.Fragment;
|
|
import androidx.fragment.app.FragmentActivity;
|
|
import b.a.d.j;
|
|
import b.a.d.o;
|
|
import b.d.b.a.a;
|
|
import com.discord.R;
|
|
import com.discord.app.AppFragment;
|
|
import com.discord.databinding.WidgetUserPasswordVerifyBinding;
|
|
import com.discord.restapi.RestAPIParams;
|
|
import com.discord.stores.StoreStream;
|
|
import com.discord.utilities.analytics.AnalyticsTracker;
|
|
import com.discord.utilities.error.Error;
|
|
import com.discord.utilities.rest.RestAPI;
|
|
import com.discord.utilities.rx.ObservableExtensionsKt;
|
|
import com.discord.utilities.stateful.StatefulViews;
|
|
import com.discord.utilities.view.extensions.ViewExtensions;
|
|
import com.discord.utilities.view.validators.ValidationManager;
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegate;
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegateKt;
|
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
|
import com.google.android.material.textfield.TextInputLayout;
|
|
import d0.g;
|
|
import d0.z.d.m;
|
|
import java.io.Serializable;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Objects;
|
|
import kotlin.Lazy;
|
|
import kotlin.Unit;
|
|
import kotlin.jvm.functions.Function0;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import kotlin.reflect.KProperty;
|
|
/* compiled from: WidgetUserPasswordVerify.kt */
|
|
public final class WidgetUserPasswordVerify extends AppFragment {
|
|
public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.b0(WidgetUserPasswordVerify.class, "binding", "getBinding()Lcom/discord/databinding/WidgetUserPasswordVerifyBinding;", 0)};
|
|
public static final Companion Companion = new Companion(null);
|
|
private static final String INTENT_EXTRA_ACTION = "INTENT_EXTRA_ACTION";
|
|
private static final String INTENT_EXTRA_DISCRIMINATOR = "INTENT_EXTRA_DISCRIMINATOR";
|
|
private static final String INTENT_EXTRA_EMAIL = "INTENT_EXTRA_EMAIL";
|
|
private static final String INTENT_EXTRA_PHONE_TOKEN = "INTENT_EXTRA_PHONE_TOKEN";
|
|
private static final String INTENT_EXTRA_SOURCE_TYPE = "INTENT_EXTRA_SOURCE_TYPE";
|
|
private static final String INTENT_EXTRA_USERNAME = "INTENT_EXTRA_USERNAME";
|
|
private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetUserPasswordVerify$binding$2.INSTANCE, null, 2, null);
|
|
private final StatefulViews state = new StatefulViews(R.id.edit_account_password_wrap);
|
|
private final Lazy validationManager$delegate = g.lazy(new WidgetUserPasswordVerify$validationManager$2(this));
|
|
|
|
/* compiled from: WidgetUserPasswordVerify.kt */
|
|
public static final class Companion {
|
|
|
|
/* compiled from: WidgetUserPasswordVerify.kt */
|
|
public enum Action {
|
|
UpdateAccountInfo,
|
|
RemovePhoneNumber,
|
|
UpdatePhoneNumber
|
|
}
|
|
|
|
private Companion() {
|
|
}
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
|
|
private final void launch(Context context, ActivityResultLauncher<Intent> activityResultLauncher, Bundle bundle) {
|
|
AnalyticsTracker.openModal$default("Account Settings Password Verification", "", null, 4, null);
|
|
j.g.f(context, activityResultLauncher, WidgetUserPasswordVerify.class, new Intent().putExtras(bundle));
|
|
}
|
|
|
|
public static /* synthetic */ void launchUpdateAccountSettings$default(Companion companion, Context context, ActivityResultLauncher activityResultLauncher, String str, String str2, String str3, int i, Object obj) {
|
|
companion.launchUpdateAccountSettings(context, activityResultLauncher, (i & 4) != 0 ? null : str, (i & 8) != 0 ? null : str2, (i & 16) != 0 ? null : str3);
|
|
}
|
|
|
|
public final void launchRemovePhoneNumber(Context context, ActivityResultLauncher<Intent> activityResultLauncher) {
|
|
m.checkNotNullParameter(context, "context");
|
|
m.checkNotNullParameter(activityResultLauncher, "launcher");
|
|
Bundle bundle = new Bundle();
|
|
bundle.putSerializable(WidgetUserPasswordVerify.INTENT_EXTRA_ACTION, Action.RemovePhoneNumber);
|
|
launch(context, activityResultLauncher, bundle);
|
|
}
|
|
|
|
public final void launchUpdateAccountSettings(Context context, ActivityResultLauncher<Intent> activityResultLauncher, String str, String str2, String str3) {
|
|
m.checkNotNullParameter(context, "context");
|
|
m.checkNotNullParameter(activityResultLauncher, "launcher");
|
|
Bundle bundle = new Bundle();
|
|
bundle.putSerializable(WidgetUserPasswordVerify.INTENT_EXTRA_ACTION, Action.UpdateAccountInfo);
|
|
bundle.putString(WidgetUserPasswordVerify.INTENT_EXTRA_EMAIL, str);
|
|
bundle.putString(WidgetUserPasswordVerify.INTENT_EXTRA_USERNAME, str2);
|
|
bundle.putString(WidgetUserPasswordVerify.INTENT_EXTRA_DISCRIMINATOR, str3);
|
|
launch(context, activityResultLauncher, bundle);
|
|
}
|
|
|
|
public final void launchUpdatePhoneNumber(Context context, ActivityResultLauncher<Intent> activityResultLauncher, String str, String str2) {
|
|
m.checkNotNullParameter(context, "context");
|
|
m.checkNotNullParameter(activityResultLauncher, "launcher");
|
|
m.checkNotNullParameter(str, "phoneToken");
|
|
m.checkNotNullParameter(str2, "source");
|
|
Bundle bundle = new Bundle();
|
|
bundle.putSerializable(WidgetUserPasswordVerify.INTENT_EXTRA_ACTION, Action.UpdatePhoneNumber);
|
|
bundle.putString(WidgetUserPasswordVerify.INTENT_EXTRA_PHONE_TOKEN, str);
|
|
bundle.putString(WidgetUserPasswordVerify.INTENT_EXTRA_SOURCE_TYPE, str2);
|
|
launch(context, activityResultLauncher, bundle);
|
|
}
|
|
|
|
public final ActivityResultLauncher<Intent> registerForResult(AppFragment appFragment, Function0<Unit> function0) {
|
|
m.checkNotNullParameter(appFragment, "fragment");
|
|
m.checkNotNullParameter(function0, "callback");
|
|
ActivityResultLauncher<Intent> registerForActivityResult = appFragment.registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new WidgetUserPasswordVerify$Companion$registerForResult$1(function0));
|
|
m.checkNotNullExpressionValue(registerForActivityResult, "fragment.registerForActi…k()\n }\n }");
|
|
return registerForActivityResult;
|
|
}
|
|
}
|
|
|
|
public final /* synthetic */ class WhenMappings {
|
|
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
|
|
|
|
static {
|
|
Companion.Action.values();
|
|
int[] iArr = new int[3];
|
|
$EnumSwitchMapping$0 = iArr;
|
|
iArr[Companion.Action.UpdateAccountInfo.ordinal()] = 1;
|
|
iArr[Companion.Action.RemovePhoneNumber.ordinal()] = 2;
|
|
iArr[Companion.Action.UpdatePhoneNumber.ordinal()] = 3;
|
|
}
|
|
}
|
|
|
|
public WidgetUserPasswordVerify() {
|
|
super(R.layout.widget_user_password_verify);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$finishWithSuccess(WidgetUserPasswordVerify widgetUserPasswordVerify) {
|
|
widgetUserPasswordVerify.finishWithSuccess();
|
|
}
|
|
|
|
public static final /* synthetic */ WidgetUserPasswordVerifyBinding access$getBinding$p(WidgetUserPasswordVerify widgetUserPasswordVerify) {
|
|
return widgetUserPasswordVerify.getBinding();
|
|
}
|
|
|
|
public static final /* synthetic */ boolean access$maybeHandleApiError(WidgetUserPasswordVerify widgetUserPasswordVerify, Error error) {
|
|
return widgetUserPasswordVerify.maybeHandleApiError(error);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$saveInfo(WidgetUserPasswordVerify widgetUserPasswordVerify) {
|
|
widgetUserPasswordVerify.saveInfo();
|
|
}
|
|
|
|
private final void finishWithSuccess() {
|
|
StatefulViews.clear$default(this.state, false, 1, null);
|
|
b.a.d.m.i(this, R.string.saved_settings, 0, 4);
|
|
FragmentActivity activity = getActivity();
|
|
if (activity != null) {
|
|
activity.setResult(-1);
|
|
}
|
|
FragmentActivity activity2 = getActivity();
|
|
if (activity2 != null) {
|
|
activity2.onBackPressed();
|
|
}
|
|
}
|
|
|
|
private final WidgetUserPasswordVerifyBinding getBinding() {
|
|
return (WidgetUserPasswordVerifyBinding) this.binding$delegate.getValue((Fragment) this, $$delegatedProperties[0]);
|
|
}
|
|
|
|
private final ValidationManager getValidationManager() {
|
|
return (ValidationManager) this.validationManager$delegate.getValue();
|
|
}
|
|
|
|
private final boolean maybeHandleApiError(Error error) {
|
|
if (error.getType() != Error.Type.DISCORD_BAD_REQUEST) {
|
|
return false;
|
|
}
|
|
ValidationManager validationManager = getValidationManager();
|
|
Error.Response response = error.getResponse();
|
|
m.checkNotNullExpressionValue(response, "error.response");
|
|
Map<String, List<String>> messages = response.getMessages();
|
|
m.checkNotNullExpressionValue(messages, "error.response.messages");
|
|
return validationManager.setErrors(messages).isEmpty();
|
|
}
|
|
|
|
private final void removePhoneNumber(String str) {
|
|
ObservableExtensionsKt.withDimmer$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().userPhoneDelete(new RestAPIParams.DeletePhone(str)), false, 1, null), this, null, 2, null), getBinding().f2645b, 0, 2, null).k(o.h(new WidgetUserPasswordVerify$removePhoneNumber$1(this), getContext(), new WidgetUserPasswordVerify$removePhoneNumber$2(this)));
|
|
}
|
|
|
|
private final void saveInfo() {
|
|
if (ValidationManager.validate$default(getValidationManager(), false, 1, null)) {
|
|
AppFragment.hideKeyboard$default(this, null, 1, null);
|
|
TextInputLayout textInputLayout = getBinding().c;
|
|
m.checkNotNullExpressionValue(textInputLayout, "binding.editAccountPasswordWrap");
|
|
String textOrEmpty = ViewExtensions.getTextOrEmpty(textInputLayout);
|
|
Serializable serializableExtra = getMostRecentIntent().getSerializableExtra(INTENT_EXTRA_ACTION);
|
|
Objects.requireNonNull(serializableExtra, "null cannot be cast to non-null type com.discord.widgets.user.WidgetUserPasswordVerify.Companion.Action");
|
|
int ordinal = ((Companion.Action) serializableExtra).ordinal();
|
|
if (ordinal == 0) {
|
|
updateAccountInfo(textOrEmpty);
|
|
} else if (ordinal == 1) {
|
|
removePhoneNumber(textOrEmpty);
|
|
} else if (ordinal == 2) {
|
|
updatePhoneNumber(textOrEmpty);
|
|
}
|
|
}
|
|
}
|
|
|
|
private final void updateAccountInfo(String str) {
|
|
String stringExtra = getMostRecentIntent().getStringExtra(INTENT_EXTRA_USERNAME);
|
|
String stringExtra2 = getMostRecentIntent().getStringExtra(INTENT_EXTRA_DISCRIMINATOR);
|
|
String stringExtra3 = getMostRecentIntent().getStringExtra(INTENT_EXTRA_EMAIL);
|
|
ObservableExtensionsKt.withDimmer$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().patchUser(new RestAPIParams.UserInfo(null, stringExtra3, str, null, stringExtra, StoreStream.Companion.getNotifications().getPushToken(), null, stringExtra2, null, null, 841, null)), false, 1, null), this, null, 2, null), getBinding().f2645b, 0, 2, null).k(o.h(new WidgetUserPasswordVerify$updateAccountInfo$1(this, stringExtra3, str), getContext(), new WidgetUserPasswordVerify$updateAccountInfo$2(this)));
|
|
}
|
|
|
|
private final void updatePhoneNumber(String str) {
|
|
String stringExtra = getMostRecentIntent().getStringExtra(INTENT_EXTRA_PHONE_TOKEN);
|
|
m.checkNotNull(stringExtra);
|
|
m.checkNotNullExpressionValue(stringExtra, "mostRecentIntent.getStri…TENT_EXTRA_PHONE_TOKEN)!!");
|
|
String stringExtra2 = getMostRecentIntent().getStringExtra(INTENT_EXTRA_SOURCE_TYPE);
|
|
m.checkNotNull(stringExtra2);
|
|
m.checkNotNullExpressionValue(stringExtra2, "mostRecentIntent.getStri…TENT_EXTRA_SOURCE_TYPE)!!");
|
|
ObservableExtensionsKt.withDimmer$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.restSubscribeOn$default(RestAPI.Companion.getApi().userPhoneWithToken(new RestAPIParams.VerificationPhoneCode(stringExtra, str, stringExtra2)), false, 1, null), this, null, 2, null), getBinding().f2645b, 0, 2, null).k(o.h(new WidgetUserPasswordVerify$updatePhoneNumber$1(this), getContext(), new WidgetUserPasswordVerify$updatePhoneNumber$2(this)));
|
|
}
|
|
|
|
@Override // com.discord.app.AppFragment
|
|
public void onViewBound(View view) {
|
|
m.checkNotNullParameter(view, "view");
|
|
super.onViewBound(view);
|
|
setActionBarSubtitle(R.string.user_settings);
|
|
setActionBarTitle(R.string.user_settings_account_verify_password_title_in_title_case);
|
|
AppFragment.setActionBarDisplayHomeAsUpEnabled$default(this, false, 1, null);
|
|
StatefulViews statefulViews = this.state;
|
|
FloatingActionButton floatingActionButton = getBinding().d;
|
|
TextInputLayout textInputLayout = getBinding().c;
|
|
m.checkNotNullExpressionValue(textInputLayout, "binding.editAccountPasswordWrap");
|
|
statefulViews.setupTextWatcherWithSaveAction(this, floatingActionButton, textInputLayout);
|
|
TextInputLayout textInputLayout2 = getBinding().c;
|
|
m.checkNotNullExpressionValue(textInputLayout2, "binding.editAccountPasswordWrap");
|
|
ViewExtensions.setOnImeActionDone$default(textInputLayout2, false, new WidgetUserPasswordVerify$onViewBound$1(this), 1, null);
|
|
getBinding().d.setOnClickListener(new WidgetUserPasswordVerify$onViewBound$2(this));
|
|
}
|
|
}
|