257 lines
14 KiB
Java
257 lines
14 KiB
Java
|
package com.discord.widgets.bugreports;
|
||
|
|
||
|
import android.content.Context;
|
||
|
import android.content.Intent;
|
||
|
import android.net.Uri;
|
||
|
import android.os.Bundle;
|
||
|
import android.view.View;
|
||
|
import androidx.appcompat.widget.AppCompatImageView;
|
||
|
import androidx.fragment.app.Fragment;
|
||
|
import androidx.fragment.app.FragmentViewModelLazyKt;
|
||
|
import c.a.d.h0;
|
||
|
import c.a.d.j0;
|
||
|
import c.a.d.l;
|
||
|
import c.a.y.b0;
|
||
|
import c.d.b.a.a;
|
||
|
import com.discord.app.AppActivity;
|
||
|
import com.discord.app.AppFragment;
|
||
|
import com.discord.app.AppViewFlipper;
|
||
|
import com.discord.databinding.WidgetBugReportBinding;
|
||
|
import com.discord.screenshot_detection.ScreenshotDetector;
|
||
|
import com.discord.utilities.error.Error;
|
||
|
import com.discord.utilities.images.MGImages;
|
||
|
import com.discord.utilities.rx.ObservableExtensionsKt;
|
||
|
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.discord.views.sticker.StickerView;
|
||
|
import com.discord.widgets.bugreports.BugReportViewModel;
|
||
|
import com.facebook.drawee.view.SimpleDraweeView;
|
||
|
import com.google.android.material.button.MaterialButton;
|
||
|
import com.google.android.material.textfield.TextInputLayout;
|
||
|
import com.google.android.material.textview.MaterialTextView;
|
||
|
import d0.g;
|
||
|
import d0.t.n;
|
||
|
import d0.z.d.a0;
|
||
|
import d0.z.d.m;
|
||
|
import java.io.InputStream;
|
||
|
import java.util.List;
|
||
|
import kotlin.Lazy;
|
||
|
import kotlin.jvm.functions.Function0;
|
||
|
import kotlin.jvm.functions.Function1;
|
||
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
||
|
import kotlin.reflect.KProperty;
|
||
|
import okhttp3.MediaType;
|
||
|
import okhttp3.RequestBody;
|
||
|
/* compiled from: WidgetBugReport.kt */
|
||
|
public final class WidgetBugReport extends AppFragment {
|
||
|
public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.V(WidgetBugReport.class, "binding", "getBinding()Lcom/discord/databinding/WidgetBugReportBinding;", 0)};
|
||
|
public static final Companion Companion = new Companion(null);
|
||
|
public static final String INTENT_EXTRA_SCREENSHOT_FILENAME = "extra_screenshot_filename";
|
||
|
public static final String INTENT_EXTRA_SCREENSHOT_URI = "extra_screenshot_uri";
|
||
|
public static final int VIEW_INDEX_REPORT = 0;
|
||
|
public static final int VIEW_INDEX_STATUS = 1;
|
||
|
private static final List<Priority> priorityLevels = n.listOf((Object[]) new Priority[]{new Priority(2131887083, 2131887082, 801497159479722084L), new Priority(2131887085, 2131887084, 410336837563973632L), new Priority(2131887087, 2131887086, 841420679643529296L), new Priority(2131887089, 2131887088, 827645852352512021L)});
|
||
|
private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetBugReport$binding$2.INSTANCE, null, 2, null);
|
||
|
private final MGImages.DistinctChangeDetector imagesChangeDetector;
|
||
|
private final Lazy items$delegate;
|
||
|
private final Lazy validationManager$delegate;
|
||
|
private final Lazy viewModel$delegate;
|
||
|
|
||
|
/* compiled from: WidgetBugReport.kt */
|
||
|
public static final class Companion {
|
||
|
private Companion() {
|
||
|
}
|
||
|
|
||
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
||
|
this();
|
||
|
}
|
||
|
|
||
|
public final List<Priority> getPriorityLevels() {
|
||
|
return WidgetBugReport.access$getPriorityLevels$cp();
|
||
|
}
|
||
|
|
||
|
public final void launch(Context context, ScreenshotDetector.Screenshot screenshot) {
|
||
|
m.checkNotNullParameter(context, "context");
|
||
|
m.checkNotNullParameter(screenshot, "screenshot");
|
||
|
Intent intent = new Intent();
|
||
|
intent.putExtra("extra_screenshot_uri", screenshot.a.toString());
|
||
|
intent.putExtra("extra_screenshot_filename", screenshot.b);
|
||
|
l.d(context, WidgetBugReport.class, intent);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public WidgetBugReport() {
|
||
|
super(2131558866);
|
||
|
WidgetBugReport$viewModel$2 widgetBugReport$viewModel$2 = new WidgetBugReport$viewModel$2(this);
|
||
|
h0 h0Var = new h0(this);
|
||
|
this.viewModel$delegate = FragmentViewModelLazyKt.createViewModelLazy(this, a0.getOrCreateKotlinClass(BugReportViewModel.class), new WidgetBugReport$appViewModels$$inlined$viewModels$1(h0Var), new j0(widgetBugReport$viewModel$2));
|
||
|
this.imagesChangeDetector = new MGImages.DistinctChangeDetector();
|
||
|
this.items$delegate = g.lazy(new WidgetBugReport$items$2(this));
|
||
|
this.validationManager$delegate = g.lazy(new WidgetBugReport$validationManager$2(this));
|
||
|
}
|
||
|
|
||
|
public static final /* synthetic */ WidgetBugReportBinding access$getBinding$p(WidgetBugReport widgetBugReport) {
|
||
|
return widgetBugReport.getBinding();
|
||
|
}
|
||
|
|
||
|
public static final /* synthetic */ List access$getPriorityLevels$cp() {
|
||
|
return priorityLevels;
|
||
|
}
|
||
|
|
||
|
public static final /* synthetic */ BugReportViewModel access$getViewModel$p(WidgetBugReport widgetBugReport) {
|
||
|
return widgetBugReport.getViewModel();
|
||
|
}
|
||
|
|
||
|
public static final /* synthetic */ void access$handleEvent(WidgetBugReport widgetBugReport, BugReportViewModel.Event event) {
|
||
|
widgetBugReport.handleEvent(event);
|
||
|
}
|
||
|
|
||
|
public static final /* synthetic */ void access$submit(WidgetBugReport widgetBugReport) {
|
||
|
widgetBugReport.submit();
|
||
|
}
|
||
|
|
||
|
private final WidgetBugReportBinding getBinding() {
|
||
|
return (WidgetBugReportBinding) this.binding$delegate.getValue((Fragment) this, $$delegatedProperties[0]);
|
||
|
}
|
||
|
|
||
|
private final ValidationManager getValidationManager() {
|
||
|
return (ValidationManager) this.validationManager$delegate.getValue();
|
||
|
}
|
||
|
|
||
|
private final BugReportViewModel getViewModel() {
|
||
|
return (BugReportViewModel) this.viewModel$delegate.getValue();
|
||
|
}
|
||
|
|
||
|
private final void handleEvent(BugReportViewModel.Event event) {
|
||
|
AppActivity appActivity;
|
||
|
if (m.areEqual(event, BugReportViewModel.Event.CloseReport.INSTANCE) && (appActivity = getAppActivity()) != null) {
|
||
|
appActivity.finish();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private final void submit() {
|
||
|
InputStream openInputStream;
|
||
|
byte[] readBytes;
|
||
|
RequestBody requestBody = null;
|
||
|
MediaType mediaType = null;
|
||
|
requestBody = null;
|
||
|
requestBody = null;
|
||
|
requestBody = null;
|
||
|
if (ValidationManager.validate$default(getValidationManager(), false, 1, null)) {
|
||
|
Uri screenshotUri = getViewModel().getScreenshotUri();
|
||
|
if (!(!getViewModel().getUseScreenshot() || screenshotUri.getPath() == null || (openInputStream = requireContext().getContentResolver().openInputStream(screenshotUri)) == null || (readBytes = d0.y.a.readBytes(openInputStream)) == null)) {
|
||
|
RequestBody.Companion companion = RequestBody.Companion;
|
||
|
String type = requireContext().getContentResolver().getType(screenshotUri);
|
||
|
if (type != null) {
|
||
|
MediaType.a aVar = MediaType.f2873c;
|
||
|
mediaType = MediaType.a.a(type);
|
||
|
}
|
||
|
requestBody = RequestBody.Companion.d(companion, readBytes, mediaType, 0, 0, 6);
|
||
|
}
|
||
|
getViewModel().sendReport(requestBody);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public final List<b0> getItems() {
|
||
|
return (List) this.items$delegate.getValue();
|
||
|
}
|
||
|
|
||
|
@Override // androidx.fragment.app.Fragment
|
||
|
public void onCreate(Bundle bundle) {
|
||
|
super.onCreate(bundle);
|
||
|
getViewModel().prefetchStickers(requireContext());
|
||
|
}
|
||
|
|
||
|
@Override // com.discord.app.AppFragment
|
||
|
public void onViewBound(View view) {
|
||
|
m.checkNotNullParameter(view, "view");
|
||
|
super.onViewBound(view);
|
||
|
setActionBarTitle(2131893895);
|
||
|
AppFragment.setActionBarDisplayHomeAsUpEnabled$default(this, false, 1, null);
|
||
|
getBinding().h.setImageURI(Uri.parse(getMostRecentIntent().getStringExtra("extra_screenshot_uri")));
|
||
|
getBinding().b.setOnClickListener(new WidgetBugReport$onViewBound$1(this));
|
||
|
TextInputLayout textInputLayout = getBinding().d;
|
||
|
m.checkNotNullExpressionValue(textInputLayout, "binding.bugReportName");
|
||
|
ViewExtensions.addBindedTextWatcher(textInputLayout, this, new WidgetBugReport$onViewBound$2(this));
|
||
|
TextInputLayout textInputLayout2 = getBinding().f1689c;
|
||
|
m.checkNotNullExpressionValue(textInputLayout2, "binding.bugReportDescription");
|
||
|
ViewExtensions.addBindedTextWatcher(textInputLayout2, this, new WidgetBugReport$onViewBound$3(this));
|
||
|
getBinding().m.setOnClickListener(new WidgetBugReport$onViewBound$4(this));
|
||
|
getBinding().o.setOnClickListener(new WidgetBugReport$onViewBound$5(this));
|
||
|
getBinding().k.setOnClickListener(new WidgetBugReport$onViewBound$6(this));
|
||
|
}
|
||
|
|
||
|
@Override // com.discord.app.AppFragment
|
||
|
public void onViewBoundOrOnResume() {
|
||
|
super.onViewBoundOrOnResume();
|
||
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.bindToComponentLifecycle(getViewModel().observeViewState(), this), WidgetBugReport.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetBugReport$onViewBoundOrOnResume$1(this), 62, (Object) null);
|
||
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.bindToComponentLifecycle(getViewModel().observeEvents(), this), WidgetBugReport.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetBugReport$onViewBoundOrOnResume$2(this), 62, (Object) null);
|
||
|
}
|
||
|
|
||
|
public final void updateView(BugReportViewModel.ViewState viewState) {
|
||
|
m.checkNotNullParameter(viewState, "viewState");
|
||
|
if (viewState instanceof BugReportViewModel.ViewState.Report) {
|
||
|
AppViewFlipper appViewFlipper = getBinding().l;
|
||
|
m.checkNotNullExpressionValue(appViewFlipper, "binding.bugReportSwitchFlipper");
|
||
|
int i = 0;
|
||
|
appViewFlipper.setDisplayedChild(0);
|
||
|
MaterialTextView materialTextView = getBinding().n;
|
||
|
m.checkNotNullExpressionValue(materialTextView, "binding.submitReportError");
|
||
|
BugReportViewModel.ViewState.Report report = (BugReportViewModel.ViewState.Report) viewState;
|
||
|
materialTextView.setVisibility(report.getError() != null ? 0 : 8);
|
||
|
if (report.getError() != null) {
|
||
|
MaterialTextView materialTextView2 = getBinding().n;
|
||
|
m.checkNotNullExpressionValue(materialTextView2, "binding.submitReportError");
|
||
|
Error.Response response = report.getError().getResponse();
|
||
|
m.checkNotNullExpressionValue(response, "viewState.error.response");
|
||
|
materialTextView2.setText(response.getMessage());
|
||
|
}
|
||
|
TextInputLayout textInputLayout = getBinding().d;
|
||
|
m.checkNotNullExpressionValue(textInputLayout, "binding.bugReportName");
|
||
|
ViewExtensions.setTextIfDifferent(textInputLayout, report.getReportName());
|
||
|
TextInputLayout textInputLayout2 = getBinding().f1689c;
|
||
|
m.checkNotNullExpressionValue(textInputLayout2, "binding.bugReportDescription");
|
||
|
ViewExtensions.setTextIfDifferent(textInputLayout2, report.getReportDescription());
|
||
|
AppCompatImageView appCompatImageView = getBinding().h;
|
||
|
m.checkNotNullExpressionValue(appCompatImageView, "binding.bugReportScreenshot");
|
||
|
appCompatImageView.setVisibility(report.getUseScreenshot() ^ true ? 4 : 0);
|
||
|
AppCompatImageView appCompatImageView2 = getBinding().b;
|
||
|
m.checkNotNullExpressionValue(appCompatImageView2, "binding.bugReportClearScreenshot");
|
||
|
appCompatImageView2.setVisibility(report.getUseScreenshot() ? 0 : 8);
|
||
|
MaterialTextView materialTextView3 = getBinding().e;
|
||
|
m.checkNotNullExpressionValue(materialTextView3, "binding.bugReportNoScreenshotLabel");
|
||
|
materialTextView3.setVisibility(report.getUseScreenshot() ^ true ? 0 : 8);
|
||
|
MaterialButton materialButton = getBinding().m;
|
||
|
m.checkNotNullExpressionValue(materialButton, "binding.bugReportUndoScreenshotRemove");
|
||
|
if (!(true ^ report.getUseScreenshot())) {
|
||
|
i = 8;
|
||
|
}
|
||
|
materialButton.setVisibility(i);
|
||
|
Integer priority = report.getPriority();
|
||
|
if (priority != null) {
|
||
|
int intValue = priority.intValue();
|
||
|
TextInputLayout textInputLayout3 = getBinding().f;
|
||
|
m.checkNotNullExpressionValue(textInputLayout3, "binding.bugReportPriority");
|
||
|
ViewExtensions.setText(textInputLayout3, priorityLevels.get(intValue).getTitle());
|
||
|
SimpleDraweeView simpleDraweeView = getBinding().g;
|
||
|
m.checkNotNullExpressionValue(simpleDraweeView, "binding.bugReportPriorityIcon");
|
||
|
MGImages.setImage$default(simpleDraweeView, getItems().get(intValue).b(), 2131165397, 2131165397, true, null, this.imagesChangeDetector, 32, null);
|
||
|
}
|
||
|
} else if (viewState instanceof BugReportViewModel.ViewState.Sending) {
|
||
|
AppViewFlipper appViewFlipper2 = getBinding().l;
|
||
|
m.checkNotNullExpressionValue(appViewFlipper2, "binding.bugReportSwitchFlipper");
|
||
|
appViewFlipper2.setDisplayedChild(1);
|
||
|
StickerView.d(getBinding().i, getViewModel().getSendingSticker(), null, 2);
|
||
|
getBinding().j.setText(2131887090);
|
||
|
} else if (viewState instanceof BugReportViewModel.ViewState.Success) {
|
||
|
AppViewFlipper appViewFlipper3 = getBinding().l;
|
||
|
m.checkNotNullExpressionValue(appViewFlipper3, "binding.bugReportSwitchFlipper");
|
||
|
appViewFlipper3.setDisplayedChild(1);
|
||
|
StickerView.d(getBinding().i, getViewModel().getSuccessSticker(), null, 2);
|
||
|
getBinding().j.setText(2131887091);
|
||
|
}
|
||
|
}
|
||
|
}
|