355 lines
20 KiB
Java
355 lines
20 KiB
Java
package com.discord.widgets.settings.profile;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.net.Uri;
|
|
import android.view.LayoutInflater;
|
|
import android.view.View;
|
|
import androidx.appcompat.app.AlertDialog;
|
|
import androidx.cardview.widget.CardView;
|
|
import androidx.core.app.NotificationCompat;
|
|
import androidx.fragment.app.Fragment;
|
|
import androidx.fragment.app.FragmentViewModelLazyKt;
|
|
import c.a.d.f0;
|
|
import c.a.d.h0;
|
|
import c.a.d.j;
|
|
import c.a.y.c0;
|
|
import c.d.b.a.a;
|
|
import com.discord.R;
|
|
import com.discord.app.AppFragment;
|
|
import com.discord.app.AppTransitionActivity;
|
|
import com.discord.databinding.ViewDialogConfirmationBinding;
|
|
import com.discord.databinding.WidgetSettingsUserProfileBinding;
|
|
import com.discord.simpleast.core.node.Node;
|
|
import com.discord.stores.StoreAnalytics;
|
|
import com.discord.stores.StoreStream;
|
|
import com.discord.utilities.color.ColorCompat;
|
|
import com.discord.utilities.dimmer.DimmerView;
|
|
import com.discord.utilities.images.MGImages;
|
|
import com.discord.utilities.rx.ObservableExtensionsKt;
|
|
import com.discord.utilities.textprocessing.AstRenderer;
|
|
import com.discord.utilities.textprocessing.MessageRenderContext;
|
|
import com.discord.utilities.view.extensions.ViewExtensions;
|
|
import com.discord.utilities.view.text.LinkifiedTextView;
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegate;
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegateKt;
|
|
import com.discord.widgets.settings.profile.SettingsUserProfileViewModel;
|
|
import com.discord.widgets.user.profile.UserProfileHeaderView;
|
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
|
import com.google.android.material.textfield.TextInputEditText;
|
|
import com.google.android.material.textfield.TextInputLayout;
|
|
import d0.g0.t;
|
|
import d0.t.n;
|
|
import d0.z.d.a0;
|
|
import d0.z.d.m;
|
|
import java.util.List;
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
import kotlin.Lazy;
|
|
import kotlin.Unit;
|
|
import kotlin.jvm.functions.Function0;
|
|
import kotlin.jvm.functions.Function1;
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
import kotlin.reflect.KProperty;
|
|
import rx.Observable;
|
|
import rx.functions.Action1;
|
|
import rx.subjects.BehaviorSubject;
|
|
/* compiled from: WidgetSettingsUserProfile.kt */
|
|
public final class WidgetSettingsUserProfile extends AppFragment {
|
|
public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.a0(WidgetSettingsUserProfile.class, "binding", "getBinding()Lcom/discord/databinding/WidgetSettingsUserProfileBinding;", 0)};
|
|
public static final Companion Companion = new Companion(null);
|
|
public static final int MAX_AVATAR_SIZE = 1024;
|
|
public static final int MAX_BANNER_IMAGE_SIZE = 1080;
|
|
private final BehaviorSubject<String> avatarRepresentativeColorHexSubject;
|
|
private Function1<? super String, Unit> avatarSelectedResult = WidgetSettingsUserProfile$avatarSelectedResult$1.INSTANCE;
|
|
private Function1<? super String, Unit> bannerSelectedResult = WidgetSettingsUserProfile$bannerSelectedResult$1.INSTANCE;
|
|
private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetSettingsUserProfile$binding$2.INSTANCE, null, 2, null);
|
|
private final AtomicBoolean discardConfirmed;
|
|
private Function1<? super String, Unit> imageSelectedResult = WidgetSettingsUserProfile$imageSelectedResult$1.INSTANCE;
|
|
private final Lazy viewModel$delegate;
|
|
|
|
/* compiled from: WidgetSettingsUserProfile.kt */
|
|
public static final class Companion {
|
|
private Companion() {
|
|
}
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
this();
|
|
}
|
|
|
|
public static /* synthetic */ void launch$default(Companion companion, Context context, AppTransitionActivity.Transition transition, int i, Object obj) {
|
|
if ((i & 2) != 0) {
|
|
transition = null;
|
|
}
|
|
companion.launch(context, transition);
|
|
}
|
|
|
|
public final void launch(Context context, AppTransitionActivity.Transition transition) {
|
|
m.checkNotNullParameter(context, "context");
|
|
Intent intent = new Intent();
|
|
if (transition != null) {
|
|
intent.putExtra("transition", transition);
|
|
}
|
|
j.d(context, WidgetSettingsUserProfile.class, intent);
|
|
StoreAnalytics.onUserSettingsPaneViewed$default(StoreStream.Companion.getAnalytics(), "User Profile", null, 2, null);
|
|
}
|
|
}
|
|
|
|
public WidgetSettingsUserProfile() {
|
|
super(R.layout.widget_settings_user_profile);
|
|
WidgetSettingsUserProfile$viewModel$2 widgetSettingsUserProfile$viewModel$2 = WidgetSettingsUserProfile$viewModel$2.INSTANCE;
|
|
f0 f0Var = new f0(this);
|
|
this.viewModel$delegate = FragmentViewModelLazyKt.createViewModelLazy(this, a0.getOrCreateKotlinClass(SettingsUserProfileViewModel.class), new WidgetSettingsUserProfile$appViewModels$$inlined$viewModels$1(f0Var), new h0(widgetSettingsUserProfile$viewModel$2));
|
|
this.discardConfirmed = new AtomicBoolean(false);
|
|
this.avatarRepresentativeColorHexSubject = BehaviorSubject.j0();
|
|
}
|
|
|
|
public static final /* synthetic */ void access$configureUI(WidgetSettingsUserProfile widgetSettingsUserProfile, SettingsUserProfileViewModel.ViewState viewState) {
|
|
widgetSettingsUserProfile.configureUI(viewState);
|
|
}
|
|
|
|
public static final /* synthetic */ BehaviorSubject access$getAvatarRepresentativeColorHexSubject$p(WidgetSettingsUserProfile widgetSettingsUserProfile) {
|
|
return widgetSettingsUserProfile.avatarRepresentativeColorHexSubject;
|
|
}
|
|
|
|
public static final /* synthetic */ Function1 access$getAvatarSelectedResult$p(WidgetSettingsUserProfile widgetSettingsUserProfile) {
|
|
return widgetSettingsUserProfile.avatarSelectedResult;
|
|
}
|
|
|
|
public static final /* synthetic */ Function1 access$getBannerSelectedResult$p(WidgetSettingsUserProfile widgetSettingsUserProfile) {
|
|
return widgetSettingsUserProfile.bannerSelectedResult;
|
|
}
|
|
|
|
public static final /* synthetic */ WidgetSettingsUserProfileBinding access$getBinding$p(WidgetSettingsUserProfile widgetSettingsUserProfile) {
|
|
return widgetSettingsUserProfile.getBinding();
|
|
}
|
|
|
|
public static final /* synthetic */ AtomicBoolean access$getDiscardConfirmed$p(WidgetSettingsUserProfile widgetSettingsUserProfile) {
|
|
return widgetSettingsUserProfile.discardConfirmed;
|
|
}
|
|
|
|
public static final /* synthetic */ Function1 access$getImageSelectedResult$p(WidgetSettingsUserProfile widgetSettingsUserProfile) {
|
|
return widgetSettingsUserProfile.imageSelectedResult;
|
|
}
|
|
|
|
public static final /* synthetic */ SettingsUserProfileViewModel access$getViewModel$p(WidgetSettingsUserProfile widgetSettingsUserProfile) {
|
|
return widgetSettingsUserProfile.getViewModel();
|
|
}
|
|
|
|
public static final /* synthetic */ boolean access$handleBackPressed(WidgetSettingsUserProfile widgetSettingsUserProfile, SettingsUserProfileViewModel.ViewState.Loaded loaded) {
|
|
return widgetSettingsUserProfile.handleBackPressed(loaded);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$handleEvent(WidgetSettingsUserProfile widgetSettingsUserProfile, SettingsUserProfileViewModel.Event event) {
|
|
widgetSettingsUserProfile.handleEvent(event);
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setAvatarSelectedResult$p(WidgetSettingsUserProfile widgetSettingsUserProfile, Function1 function1) {
|
|
widgetSettingsUserProfile.avatarSelectedResult = function1;
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setBannerSelectedResult$p(WidgetSettingsUserProfile widgetSettingsUserProfile, Function1 function1) {
|
|
widgetSettingsUserProfile.bannerSelectedResult = function1;
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setCurrentBioFromEditor(WidgetSettingsUserProfile widgetSettingsUserProfile) {
|
|
widgetSettingsUserProfile.setCurrentBioFromEditor();
|
|
}
|
|
|
|
public static final /* synthetic */ void access$setImageSelectedResult$p(WidgetSettingsUserProfile widgetSettingsUserProfile, Function1 function1) {
|
|
widgetSettingsUserProfile.imageSelectedResult = function1;
|
|
}
|
|
|
|
/* JADX DEBUG: Can't convert new array creation: APUT found in different block: 0x002f: APUT
|
|
(r0v2 c.a.y.c0[])
|
|
(0 ??[int, short, byte, char])
|
|
(wrap: c.a.y.c0 : 0x002b: CONSTRUCTOR (r10v0 c.a.y.c0) =
|
|
(r1v1 java.lang.String)
|
|
(null java.lang.CharSequence)
|
|
(null java.lang.Integer)
|
|
(null java.lang.String)
|
|
(null java.lang.Integer)
|
|
(null java.lang.Integer)
|
|
(null java.lang.Integer)
|
|
(116 int)
|
|
call: c.a.y.c0.<init>(java.lang.String, java.lang.CharSequence, java.lang.Integer, java.lang.String, java.lang.Integer, java.lang.Integer, java.lang.Integer, int):void type: CONSTRUCTOR)
|
|
*/
|
|
private final void configureAvatarSelect(SettingsUserProfileViewModel.ViewState.Loaded loaded) {
|
|
this.avatarSelectedResult = new WidgetSettingsUserProfile$configureAvatarSelect$1(this, loaded);
|
|
c0[] c0VarArr = new c0[1];
|
|
c0VarArr[0] = new c0(loaded.getHasAvatarForDisplay() ? getString(R.string.user_settings_change_avatar) : getString(R.string.user_settings_upload_avatar), null, null, null, null, null, null, 116);
|
|
List mutableListOf = n.mutableListOf(c0VarArr);
|
|
if (loaded.getHasAvatarForDisplay()) {
|
|
mutableListOf.add(new c0(getString(R.string.user_settings_remove_avatar), null, null, null, null, Integer.valueOf(ColorCompat.getColor(requireContext(), (int) R.color.status_red_500)), null, 84));
|
|
}
|
|
getBinding().i.setOnAvatarEdit(new WidgetSettingsUserProfile$configureAvatarSelect$2(this, mutableListOf));
|
|
}
|
|
|
|
private final void configureBannerSelect(SettingsUserProfileViewModel.ViewState.Loaded loaded) {
|
|
this.bannerSelectedResult = new WidgetSettingsUserProfile$configureBannerSelect$1(this);
|
|
getBinding().i.setOnBannerPress(new WidgetSettingsUserProfile$configureBannerSelect$2(this, loaded));
|
|
}
|
|
|
|
private final void configureBio(SettingsUserProfileViewModel.ViewState.Loaded loaded) {
|
|
List<Node<MessageRenderContext>> bioAst = loaded.getBioAst();
|
|
boolean showBioEditor = loaded.getShowBioEditor();
|
|
CardView cardView = getBinding().b;
|
|
m.checkNotNullExpressionValue(cardView, "binding.bioEditorCard");
|
|
int i = 0;
|
|
boolean z2 = cardView.getVisibility() == 0;
|
|
CardView cardView2 = getBinding().e;
|
|
m.checkNotNullExpressionValue(cardView2, "binding.bioPreviewCard");
|
|
cardView2.setVisibility(showBioEditor ^ true ? 0 : 8);
|
|
CardView cardView3 = getBinding().b;
|
|
m.checkNotNullExpressionValue(cardView3, "binding.bioEditorCard");
|
|
if (!showBioEditor) {
|
|
i = 8;
|
|
}
|
|
cardView3.setVisibility(i);
|
|
if (showBioEditor) {
|
|
TextInputLayout textInputLayout = getBinding().d;
|
|
m.checkNotNullExpressionValue(textInputLayout, "binding.bioEditorTextInputFieldWrap");
|
|
ViewExtensions.setText(textInputLayout, loaded.getCurrentBio());
|
|
if (!z2) {
|
|
getBinding().d.requestFocus();
|
|
TextInputLayout textInputLayout2 = getBinding().d;
|
|
m.checkNotNullExpressionValue(textInputLayout2, "binding.bioEditorTextInputFieldWrap");
|
|
ViewExtensions.moveCursorToEnd(textInputLayout2);
|
|
TextInputLayout textInputLayout3 = getBinding().d;
|
|
m.checkNotNullExpressionValue(textInputLayout3, "binding.bioEditorTextInputFieldWrap");
|
|
showKeyboard(textInputLayout3);
|
|
}
|
|
} else if (bioAst != null) {
|
|
LinkifiedTextView linkifiedTextView = getBinding().f;
|
|
m.checkNotNullExpressionValue(linkifiedTextView, "binding.bioPreviewText");
|
|
Context context = linkifiedTextView.getContext();
|
|
m.checkNotNullExpressionValue(context, "binding.bioPreviewText.context");
|
|
getBinding().f.setDraweeSpanStringBuilder(AstRenderer.render(bioAst, new MessageRenderContext(context, 0, false, null, null, null, 0, null, null, 0, 0, new WidgetSettingsUserProfile$configureBio$renderContext$1(getViewModel()), null, null, 14328, null)));
|
|
}
|
|
}
|
|
|
|
private final void configureFab(SettingsUserProfileViewModel.ViewState.Loaded loaded) {
|
|
FloatingActionButton floatingActionButton = getBinding().h;
|
|
m.checkNotNullExpressionValue(floatingActionButton, "binding.saveFab");
|
|
floatingActionButton.setVisibility(loaded.getShowSaveFab() ? 0 : 8);
|
|
}
|
|
|
|
private final void configureUI(SettingsUserProfileViewModel.ViewState viewState) {
|
|
if (viewState instanceof SettingsUserProfileViewModel.ViewState.Loaded) {
|
|
SettingsUserProfileViewModel.ViewState.Loaded loaded = (SettingsUserProfileViewModel.ViewState.Loaded) viewState;
|
|
configureBio(loaded);
|
|
configureAvatarSelect(loaded);
|
|
configureBannerSelect(loaded);
|
|
configureFab(loaded);
|
|
AppFragment.setOnBackPressed$default(this, new WidgetSettingsUserProfile$configureUI$1(this, viewState), 0, 2, null);
|
|
}
|
|
}
|
|
|
|
private final WidgetSettingsUserProfileBinding getBinding() {
|
|
return (WidgetSettingsUserProfileBinding) this.binding$delegate.getValue((Fragment) this, $$delegatedProperties[0]);
|
|
}
|
|
|
|
private final SettingsUserProfileViewModel getViewModel() {
|
|
return (SettingsUserProfileViewModel) this.viewModel$delegate.getValue();
|
|
}
|
|
|
|
private final boolean handleBackPressed(SettingsUserProfileViewModel.ViewState.Loaded loaded) {
|
|
if (loaded.isEditingBio()) {
|
|
setCurrentBioFromEditor();
|
|
return true;
|
|
} else if (!loaded.isDirty() || this.discardConfirmed.get()) {
|
|
return false;
|
|
} else {
|
|
ViewDialogConfirmationBinding b = ViewDialogConfirmationBinding.b(LayoutInflater.from(getActivity()));
|
|
m.checkNotNullExpressionValue(b, "ViewDialogConfirmationBi…tInflater.from(activity))");
|
|
AlertDialog create = new AlertDialog.Builder(requireContext()).setView(b.a).create();
|
|
m.checkNotNullExpressionValue(create, "AlertDialog.Builder(requ…logBinding.root).create()");
|
|
b.d.setText(R.string.discard_changes);
|
|
b.e.setText(R.string.discard_changes_description);
|
|
b.b.setOnClickListener(new WidgetSettingsUserProfile$handleBackPressed$1(create));
|
|
b.f1677c.setText(R.string.okay);
|
|
b.f1677c.setOnClickListener(new WidgetSettingsUserProfile$handleBackPressed$2(this, create));
|
|
create.show();
|
|
return true;
|
|
}
|
|
}
|
|
|
|
private final void handleEvent(SettingsUserProfileViewModel.Event event) {
|
|
if (m.areEqual(event, SettingsUserProfileViewModel.Event.UserUpdateRequestCompleted.INSTANCE)) {
|
|
DimmerView.setDimmed$default(getBinding().g, false, false, 2, null);
|
|
}
|
|
}
|
|
|
|
private final void setCurrentBioFromEditor() {
|
|
TextInputEditText textInputEditText = getBinding().f2027c;
|
|
m.checkNotNullExpressionValue(textInputEditText, "binding.bioEditorTextInputField");
|
|
getViewModel().updateBio(String.valueOf(textInputEditText.getText()));
|
|
getViewModel().updateIsEditingBio(false);
|
|
getBinding().d.clearFocus();
|
|
hideKeyboard(getBinding().d);
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
/* JADX WARNING: Unknown variable types count: 1 */
|
|
@Override // com.discord.app.AppFragment
|
|
public void onImageChosen(Uri uri, String str) {
|
|
m.checkNotNullParameter(uri, NotificationCompat.MessagingStyle.Message.KEY_DATA_URI);
|
|
m.checkNotNullParameter(str, "mimeType");
|
|
super.onImageChosen(uri, str);
|
|
if (!t.startsWith$default(str, "image", false, 2, null)) {
|
|
c.a.d.m.g(getContext(), R.string.user_settings_image_upload_filetype_error, 0, null, 12);
|
|
} else if (m.areEqual(str, "image/gif")) {
|
|
Context context = getContext();
|
|
Function1<? super String, Unit> function1 = this.imageSelectedResult;
|
|
if (function1 != null) {
|
|
function1 = new WidgetSettingsUserProfile$sam$rx_functions_Action1$0(function1);
|
|
}
|
|
MGImages.requestDataUrl(context, uri, str, (Action1) function1);
|
|
} else {
|
|
MGImages.requestImageCrop(requireContext(), this, uri, m.areEqual(this.imageSelectedResult, this.bannerSelectedResult) ? 5.0f : 1.0f, m.areEqual(this.imageSelectedResult, this.bannerSelectedResult) ? 2.0f : 1.0f, m.areEqual(this.imageSelectedResult, this.bannerSelectedResult) ? MAX_BANNER_IMAGE_SIZE : 1024);
|
|
}
|
|
}
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
/* JADX WARNING: Unknown variable types count: 1 */
|
|
@Override // com.discord.app.AppFragment
|
|
public void onImageCropped(Uri uri, String str) {
|
|
m.checkNotNullParameter(uri, NotificationCompat.MessagingStyle.Message.KEY_DATA_URI);
|
|
m.checkNotNullParameter(str, "mimeType");
|
|
super.onImageCropped(uri, str);
|
|
Context context = getContext();
|
|
Function1<? super String, Unit> function1 = this.imageSelectedResult;
|
|
if (function1 != null) {
|
|
function1 = new WidgetSettingsUserProfile$sam$rx_functions_Action1$0(function1);
|
|
}
|
|
MGImages.requestDataUrl(context, uri, str, (Action1) function1);
|
|
}
|
|
|
|
@Override // com.discord.app.AppFragment
|
|
public void onViewBound(View view) {
|
|
m.checkNotNullParameter(view, "view");
|
|
super.onViewBound(view);
|
|
setActionBarTitle(R.string.user_settings_user_profile);
|
|
setActionBarSubtitle(R.string.user_settings);
|
|
AppFragment.setActionBarDisplayHomeAsUpEnabled$default(this, false, 1, null);
|
|
getBinding().h.setOnClickListener(new WidgetSettingsUserProfile$onViewBound$1(this, view));
|
|
((TouchInterceptingCoordinatorLayout) view).setOnInterceptTouchEvent(new WidgetSettingsUserProfile$onViewBound$2(this));
|
|
getBinding().f2027c.setRawInputType(1);
|
|
getBinding().e.setOnClickListener(new WidgetSettingsUserProfile$onViewBound$3(this));
|
|
getBinding().i.setOnAvatarRepresentativeColorUpdated(new WidgetSettingsUserProfile$onViewBound$4(this));
|
|
getBinding().i.setOnBadgeClick(new WidgetSettingsUserProfile$onViewBound$5(this));
|
|
}
|
|
|
|
@Override // com.discord.app.AppFragment
|
|
public void onViewBoundOrOnResume() {
|
|
super.onViewBoundOrOnResume();
|
|
Observable<SettingsUserProfileViewModel.ViewState> r = getViewModel().observeViewState().r();
|
|
m.checkNotNullExpressionValue(r, "viewModel.observeViewSta… .distinctUntilChanged()");
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.bindToComponentLifecycle$default(r, this, null, 2, null), WidgetSettingsUserProfile.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetSettingsUserProfile$onViewBoundOrOnResume$1(this), 62, (Object) null);
|
|
UserProfileHeaderView.Companion companion = UserProfileHeaderView.Companion;
|
|
UserProfileHeaderView userProfileHeaderView = getBinding().i;
|
|
m.checkNotNullExpressionValue(userProfileHeaderView, "binding.userSettingsProfileHeaderView");
|
|
companion.bind(userProfileHeaderView, this, getViewModel().observeHeaderViewState());
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.bindToComponentLifecycle$default(getViewModel().observeEvents(), this, null, 2, null), WidgetSettingsUserProfile.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetSettingsUserProfile$onViewBoundOrOnResume$2(this), 62, (Object) null);
|
|
}
|
|
}
|