2021-06-27 20:44:35 +00:00
|
|
|
package com.discord.widgets.debugging;
|
|
|
|
|
|
|
|
import android.annotation.SuppressLint;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
import android.widget.LinearLayout;
|
|
|
|
import android.widget.TextView;
|
|
|
|
import androidx.annotation.ColorInt;
|
|
|
|
import androidx.annotation.LayoutRes;
|
|
|
|
import androidx.fragment.app.Fragment;
|
|
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
|
|
|
import androidx.recyclerview.widget.RecyclerView;
|
|
|
|
import c.a.d.l;
|
|
|
|
import c.d.b.a.a;
|
|
|
|
import com.discord.app.AppFragment;
|
|
|
|
import com.discord.app.AppLog;
|
|
|
|
import com.discord.databinding.WidgetDebuggingAdapterItemBinding;
|
|
|
|
import com.discord.databinding.WidgetDebuggingBinding;
|
|
|
|
import com.discord.utilities.color.ColorCompat;
|
|
|
|
import com.discord.utilities.mg_recycler.MGRecyclerAdapter;
|
|
|
|
import com.discord.utilities.mg_recycler.MGRecyclerAdapterSimple;
|
|
|
|
import com.discord.utilities.mg_recycler.MGRecyclerViewHolder;
|
|
|
|
import com.discord.utilities.rx.ObservableExtensionsKt;
|
|
|
|
import com.discord.utilities.view.extensions.ViewExtensions;
|
|
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegate;
|
|
|
|
import com.discord.utilities.viewbinding.FragmentViewBindingDelegateKt;
|
|
|
|
import d0.z.d.m;
|
|
|
|
import d0.z.d.o;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Objects;
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
import kotlin.Unit;
|
|
|
|
import kotlin.jvm.functions.Function0;
|
|
|
|
import kotlin.jvm.functions.Function1;
|
|
|
|
import kotlin.jvm.functions.Function2;
|
|
|
|
import kotlin.jvm.internal.DefaultConstructorMarker;
|
|
|
|
import kotlin.reflect.KProperty;
|
|
|
|
import rx.Observable;
|
|
|
|
import rx.subjects.BehaviorSubject;
|
|
|
|
/* compiled from: WidgetDebugging.kt */
|
|
|
|
public final class WidgetDebugging extends AppFragment {
|
|
|
|
public static final /* synthetic */ KProperty[] $$delegatedProperties = {a.W(WidgetDebugging.class, "binding", "getBinding()Lcom/discord/databinding/WidgetDebuggingBinding;", 0)};
|
|
|
|
private static final int COLLAPSED_MAX_LINES = 2;
|
|
|
|
public static final Companion Companion = new Companion(null);
|
|
|
|
private final FragmentViewBindingDelegate binding$delegate = FragmentViewBindingDelegateKt.viewBinding$default(this, WidgetDebugging$binding$2.INSTANCE, null, 2, null);
|
2021-07-03 23:36:06 +00:00
|
|
|
private final BehaviorSubject<Boolean> filterSubject = BehaviorSubject.l0(Boolean.TRUE);
|
2021-06-27 20:44:35 +00:00
|
|
|
private Adapter logsAdapter;
|
|
|
|
|
|
|
|
/* compiled from: WidgetDebugging.kt */
|
|
|
|
public static final class Adapter extends MGRecyclerAdapterSimple<AppLog.LoggedItem> {
|
|
|
|
|
|
|
|
/* compiled from: WidgetDebugging.kt */
|
|
|
|
/* renamed from: com.discord.widgets.debugging.WidgetDebugging$Adapter$1 reason: invalid class name */
|
|
|
|
public static final class AnonymousClass1 extends o implements Function2<List<? extends AppLog.LoggedItem>, List<? extends AppLog.LoggedItem>, Unit> {
|
|
|
|
public final /* synthetic */ RecyclerView $recycler;
|
|
|
|
|
|
|
|
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
|
|
|
|
public AnonymousClass1(RecyclerView recyclerView) {
|
|
|
|
super(2);
|
|
|
|
this.$recycler = recyclerView;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Return type fixed from 'java.lang.Object' to match base method */
|
|
|
|
/* JADX DEBUG: Method arguments types fixed to match base method, original types: [java.lang.Object, java.lang.Object] */
|
|
|
|
@Override // kotlin.jvm.functions.Function2
|
|
|
|
public /* bridge */ /* synthetic */ Unit invoke(List<? extends AppLog.LoggedItem> list, List<? extends AppLog.LoggedItem> list2) {
|
|
|
|
invoke((List<AppLog.LoggedItem>) list, (List<AppLog.LoggedItem>) list2);
|
|
|
|
return Unit.a;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final void invoke(List<AppLog.LoggedItem> list, List<AppLog.LoggedItem> list2) {
|
|
|
|
m.checkNotNullParameter(list, "<anonymous parameter 0>");
|
|
|
|
m.checkNotNullParameter(list2, "<anonymous parameter 1>");
|
|
|
|
RecyclerView.LayoutManager layoutManager = this.$recycler.getLayoutManager();
|
|
|
|
Objects.requireNonNull(layoutManager, "null cannot be cast to non-null type androidx.recyclerview.widget.LinearLayoutManager");
|
|
|
|
if (((LinearLayoutManager) layoutManager).findFirstCompletelyVisibleItemPosition() == 0) {
|
|
|
|
this.$recycler.scrollToPosition(0);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* compiled from: WidgetDebugging.kt */
|
|
|
|
public static final class Item extends MGRecyclerViewHolder<Adapter, AppLog.LoggedItem> {
|
|
|
|
private final WidgetDebuggingAdapterItemBinding binding;
|
|
|
|
|
|
|
|
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
|
|
|
|
public Item(@LayoutRes int i, Adapter adapter) {
|
|
|
|
super(i, adapter);
|
|
|
|
m.checkNotNullParameter(adapter, "adapter");
|
|
|
|
View view = this.itemView;
|
2021-07-13 20:23:20 +00:00
|
|
|
TextView textView = (TextView) view.findViewById(2131363858);
|
2021-06-27 20:44:35 +00:00
|
|
|
if (textView != null) {
|
|
|
|
WidgetDebuggingAdapterItemBinding widgetDebuggingAdapterItemBinding = new WidgetDebuggingAdapterItemBinding((LinearLayout) view, textView);
|
|
|
|
m.checkNotNullExpressionValue(widgetDebuggingAdapterItemBinding, "WidgetDebuggingAdapterItemBinding.bind(itemView)");
|
|
|
|
this.binding = widgetDebuggingAdapterItemBinding;
|
|
|
|
return;
|
|
|
|
}
|
2021-07-13 20:23:20 +00:00
|
|
|
throw new NullPointerException("Missing required view with ID: ".concat(view.getResources().getResourceName(2131363858)));
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ WidgetDebuggingAdapterItemBinding access$getBinding$p(Item item) {
|
|
|
|
return item.binding;
|
|
|
|
}
|
|
|
|
|
|
|
|
@ColorInt
|
|
|
|
private final int getColor(Context context, int i) {
|
2021-07-13 20:23:20 +00:00
|
|
|
return i != 2 ? i != 3 ? i != 5 ? i != 6 ? ColorCompat.getThemedColor(context, 2130969872) : ColorCompat.getColor(context, 2131100324) : ColorCompat.getColor(context, 2131100351) : ColorCompat.getColor(context, 2131100249) : ColorCompat.getThemedColor(context, 2130969879);
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX DEBUG: TODO: convert one arg to string using `String.valueOf()`, args: [('\n' char), (r6v1 java.lang.Throwable)] */
|
|
|
|
/* JADX WARNING: Code restructure failed: missing block: B:3:0x0049, code lost:
|
|
|
|
if (r6 != null) goto L_0x004e;
|
|
|
|
*/
|
|
|
|
@SuppressLint({"SetTextI18n"})
|
|
|
|
public void onConfigure(int i, AppLog.LoggedItem loggedItem) {
|
|
|
|
String str;
|
|
|
|
m.checkNotNullParameter(loggedItem, "data");
|
|
|
|
super.onConfigure(i, (int) loggedItem);
|
|
|
|
TextView textView = this.binding.b;
|
|
|
|
m.checkNotNullExpressionValue(textView, "binding.logMessage");
|
|
|
|
Context context = textView.getContext();
|
|
|
|
m.checkNotNullExpressionValue(context, "binding.logMessage.context");
|
|
|
|
textView.setTextColor(getColor(context, loggedItem.j));
|
|
|
|
TextView textView2 = this.binding.b;
|
|
|
|
m.checkNotNullExpressionValue(textView2, "binding.logMessage");
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
sb.append(loggedItem.k);
|
|
|
|
Throwable th = loggedItem.l;
|
|
|
|
if (th != null) {
|
|
|
|
StringBuilder sb2 = new StringBuilder();
|
|
|
|
sb2.append('\n');
|
|
|
|
sb2.append(th);
|
|
|
|
str = sb2.toString();
|
|
|
|
}
|
|
|
|
str = "";
|
|
|
|
sb.append(str);
|
|
|
|
textView2.setText(sb.toString());
|
|
|
|
TextView textView3 = this.binding.b;
|
|
|
|
m.checkNotNullExpressionValue(textView3, "binding.logMessage");
|
|
|
|
textView3.setMaxLines(2);
|
|
|
|
LinearLayout linearLayout = this.binding.a;
|
|
|
|
m.checkNotNullExpressionValue(linearLayout, "binding.root");
|
|
|
|
ViewExtensions.setOnLongClickListenerConsumeClick(linearLayout, new WidgetDebugging$Adapter$Item$onConfigure$2(this));
|
|
|
|
this.itemView.setOnClickListener(new WidgetDebugging$Adapter$Item$onConfigure$3(this));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX INFO: super call moved to the top of the method (can break code semantics) */
|
|
|
|
public Adapter(RecyclerView recyclerView) {
|
|
|
|
super(recyclerView, false, 2, null);
|
|
|
|
m.checkNotNullParameter(recyclerView, "recycler");
|
|
|
|
setOnUpdated(new AnonymousClass1(recyclerView));
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // com.discord.utilities.mg_recycler.MGRecyclerAdapterSimple, com.discord.utilities.mg_recycler.MGRecyclerAdapter
|
|
|
|
public AppLog.LoggedItem getItem(int i) {
|
|
|
|
return getInternalData().get((getInternalData().size() - 1) - i);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // androidx.recyclerview.widget.RecyclerView.Adapter
|
|
|
|
public MGRecyclerViewHolder<?, AppLog.LoggedItem> onCreateViewHolder(ViewGroup viewGroup, int i) {
|
|
|
|
m.checkNotNullParameter(viewGroup, "parent");
|
|
|
|
if (i == 0) {
|
2021-07-13 20:23:20 +00:00
|
|
|
return new Item(2131558994, this);
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
throw invalidViewTypeException(i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* compiled from: WidgetDebugging.kt */
|
|
|
|
public static final class Companion {
|
|
|
|
private Companion() {
|
|
|
|
}
|
|
|
|
|
|
|
|
public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) {
|
|
|
|
this();
|
|
|
|
}
|
|
|
|
|
|
|
|
public final void launch(Context context) {
|
|
|
|
m.checkNotNullParameter(context, "context");
|
|
|
|
l.e(context, WidgetDebugging.class, null, 4);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/* compiled from: WidgetDebugging.kt */
|
|
|
|
public static final class Model {
|
|
|
|
private final boolean isFiltered;
|
|
|
|
private final List<AppLog.LoggedItem> logs;
|
|
|
|
|
|
|
|
public Model(List<AppLog.LoggedItem> list, boolean z2) {
|
|
|
|
m.checkNotNullParameter(list, "logs");
|
|
|
|
this.logs = list;
|
|
|
|
this.isFiltered = z2;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* JADX DEBUG: Multi-variable search result rejected for r0v0, resolved type: com.discord.widgets.debugging.WidgetDebugging$Model */
|
|
|
|
/* JADX WARN: Multi-variable type inference failed */
|
|
|
|
public static /* synthetic */ Model copy$default(Model model, List list, boolean z2, int i, Object obj) {
|
|
|
|
if ((i & 1) != 0) {
|
|
|
|
list = model.logs;
|
|
|
|
}
|
|
|
|
if ((i & 2) != 0) {
|
|
|
|
z2 = model.isFiltered;
|
|
|
|
}
|
|
|
|
return model.copy(list, z2);
|
|
|
|
}
|
|
|
|
|
|
|
|
public final List<AppLog.LoggedItem> component1() {
|
|
|
|
return this.logs;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final boolean component2() {
|
|
|
|
return this.isFiltered;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final Model copy(List<AppLog.LoggedItem> list, boolean z2) {
|
|
|
|
m.checkNotNullParameter(list, "logs");
|
|
|
|
return new Model(list, z2);
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean equals(Object obj) {
|
|
|
|
if (this == obj) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
if (!(obj instanceof Model)) {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
Model model = (Model) obj;
|
|
|
|
return m.areEqual(this.logs, model.logs) && this.isFiltered == model.isFiltered;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final List<AppLog.LoggedItem> getLogs() {
|
|
|
|
return this.logs;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int hashCode() {
|
|
|
|
List<AppLog.LoggedItem> list = this.logs;
|
|
|
|
int hashCode = (list != null ? list.hashCode() : 0) * 31;
|
|
|
|
boolean z2 = this.isFiltered;
|
|
|
|
if (z2) {
|
|
|
|
z2 = true;
|
|
|
|
}
|
|
|
|
int i = z2 ? 1 : 0;
|
|
|
|
int i2 = z2 ? 1 : 0;
|
|
|
|
int i3 = z2 ? 1 : 0;
|
|
|
|
return hashCode + i;
|
|
|
|
}
|
|
|
|
|
|
|
|
public final boolean isFiltered() {
|
|
|
|
return this.isFiltered;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String toString() {
|
|
|
|
StringBuilder L = a.L("Model(logs=");
|
|
|
|
L.append(this.logs);
|
|
|
|
L.append(", isFiltered=");
|
|
|
|
return a.G(L, this.isFiltered, ")");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public WidgetDebugging() {
|
2021-07-13 20:23:20 +00:00
|
|
|
super(2131558993);
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ void access$configureUI(WidgetDebugging widgetDebugging, Model model) {
|
|
|
|
widgetDebugging.configureUI(model);
|
|
|
|
}
|
|
|
|
|
|
|
|
public static final /* synthetic */ BehaviorSubject access$getFilterSubject$p(WidgetDebugging widgetDebugging) {
|
|
|
|
return widgetDebugging.filterSubject;
|
|
|
|
}
|
|
|
|
|
|
|
|
private final void configureUI(Model model) {
|
|
|
|
Adapter adapter = this.logsAdapter;
|
|
|
|
if (adapter != null) {
|
|
|
|
adapter.setData(model.getLogs());
|
|
|
|
}
|
|
|
|
setActionBarOptionsMenu(2131623948, new WidgetDebugging$configureUI$1(this), new WidgetDebugging$configureUI$2(model));
|
|
|
|
}
|
|
|
|
|
|
|
|
private final WidgetDebuggingBinding getBinding() {
|
|
|
|
return (WidgetDebuggingBinding) this.binding$delegate.getValue((Fragment) this, $$delegatedProperties[0]);
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override // com.discord.app.AppFragment
|
|
|
|
public void onViewBound(View view) {
|
|
|
|
m.checkNotNullParameter(view, "view");
|
|
|
|
super.onViewBound(view);
|
|
|
|
MGRecyclerAdapter.Companion companion = MGRecyclerAdapter.Companion;
|
|
|
|
RecyclerView recyclerView = getBinding().b;
|
|
|
|
m.checkNotNullExpressionValue(recyclerView, "binding.debuggingLogs");
|
|
|
|
this.logsAdapter = (Adapter) companion.configure(new Adapter(recyclerView));
|
|
|
|
RecyclerView recyclerView2 = getBinding().b;
|
|
|
|
m.checkNotNullExpressionValue(recyclerView2, "binding.debuggingLogs");
|
|
|
|
RecyclerView.LayoutManager layoutManager = recyclerView2.getLayoutManager();
|
|
|
|
Objects.requireNonNull(layoutManager, "null cannot be cast to non-null type androidx.recyclerview.widget.LinearLayoutManager");
|
|
|
|
LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager;
|
|
|
|
linearLayoutManager.setReverseLayout(true);
|
|
|
|
linearLayoutManager.setSmoothScrollbarEnabled(true);
|
|
|
|
AppFragment.setActionBarDisplayHomeAsUpEnabled$default(this, false, 1, null);
|
2021-07-13 20:23:20 +00:00
|
|
|
setActionBarTitle(2131888046);
|
2021-06-27 20:44:35 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override // com.discord.app.AppFragment
|
|
|
|
public void onViewBoundOrOnResume() {
|
|
|
|
super.onViewBoundOrOnResume();
|
|
|
|
Objects.requireNonNull(AppLog.g);
|
2021-07-03 23:36:06 +00:00
|
|
|
Observable r = ObservableExtensionsKt.computationBuffered(AppLog.d).r();
|
|
|
|
m.checkNotNullExpressionValue(r, "logsSubject\n .c… .distinctUntilChanged()");
|
|
|
|
Observable j = Observable.j(r.a(200, TimeUnit.MILLISECONDS).x(WidgetDebugging$onViewBoundOrOnResume$1.INSTANCE).P(new ArrayList(), WidgetDebugging$onViewBoundOrOnResume$2.INSTANCE), this.filterSubject.r(), WidgetDebugging$onViewBoundOrOnResume$3.INSTANCE);
|
2021-06-27 20:44:35 +00:00
|
|
|
m.checkNotNullExpressionValue(j, "Observable\n .comb…gs, isFiltered)\n }");
|
|
|
|
ObservableExtensionsKt.appSubscribe$default(ObservableExtensionsKt.ui$default(ObservableExtensionsKt.computationBuffered(j), this, null, 2, null), WidgetDebugging.class, (Context) null, (Function1) null, (Function1) null, (Function0) null, (Function0) null, new WidgetDebugging$onViewBoundOrOnResume$4(this), 62, (Object) null);
|
|
|
|
}
|
|
|
|
}
|