Primer paso de la investigacion. Se aportan el .apk, las carpetas con el apk extraido y el apk descompilado. El archivo API_DOCUMENTATION.md es un archivo donde se anotaran los descubrimientos del funcionamiento de la API, y los .py son scripts para probar la funcionalidad de la API con los métodos que vayamos encontrando. Finalmente, los archivos .js son scripts de Frida para extraer informacion de la APP durante la ejecucion.

This commit is contained in:
2025-12-04 13:59:54 +01:00
parent f2fd1c3bf5
commit e0133d2ca2
10432 changed files with 1019085 additions and 1 deletions

View File

@@ -0,0 +1,416 @@
package com.google.android.material.carousel;
import F2.f;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.PointF;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import androidx.recyclerview.widget.AbstractC0238q0;
import androidx.recyclerview.widget.C0210c0;
import androidx.recyclerview.widget.C0239r0;
import androidx.recyclerview.widget.D0;
import androidx.recyclerview.widget.E0;
import androidx.recyclerview.widget.RecyclerView;
import androidx.recyclerview.widget.y0;
import c0.C0277c;
import com.adif.elcanomovil.R;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.measurement.internal.a;
import com.google.android.material.carousel.CarouselLayoutManager;
import h2.AbstractC0379a;
import kotlin.jvm.internal.LongCompanionObject;
import q2.AbstractC0562d;
import q2.C0560b;
import q2.C0561c;
/* loaded from: classes3.dex */
public class CarouselLayoutManager extends AbstractC0238q0 implements D0 {
public final C0277c p;
/* renamed from: q, reason: collision with root package name */
public AbstractC0562d f5611q;
/* renamed from: r, reason: collision with root package name */
public final View.OnLayoutChangeListener f5612r;
public CarouselLayoutManager() {
C0277c c0277c = new C0277c();
new C0560b();
this.f5612r = new View.OnLayoutChangeListener() { // from class: q2.a
@Override // android.view.View.OnLayoutChangeListener
public final void onLayoutChange(View view, int i, int i4, int i5, int i6, int i7, int i8, int i9, int i10) {
CarouselLayoutManager carouselLayoutManager = CarouselLayoutManager.this;
if (i == i7 && i4 == i8 && i5 == i9 && i6 == i10) {
return;
}
view.post(new f(carouselLayoutManager, 11));
}
};
this.p = c0277c;
t0();
K0(0);
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void F0(RecyclerView recyclerView, int i) {
C0210c0 c0210c0 = new C0210c0(this, recyclerView.getContext(), 1);
c0210c0.f3768a = i;
G0(c0210c0);
}
public final boolean I0() {
return this.f5611q.f8189a == 0;
}
public final boolean J0() {
return I0() && G() == 1;
}
public final void K0(int i) {
C0561c c0561c;
if (i != 0 && i != 1) {
throw new IllegalArgumentException(a.l(i, "invalid orientation:"));
}
c(null);
AbstractC0562d abstractC0562d = this.f5611q;
if (abstractC0562d == null || i != abstractC0562d.f8189a) {
if (i == 0) {
c0561c = new C0561c(this, 1);
} else {
if (i != 1) {
throw new IllegalArgumentException("invalid orientation");
}
c0561c = new C0561c(this, 0);
}
this.f5611q = c0561c;
t0();
}
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final boolean P() {
return true;
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void V(RecyclerView recyclerView) {
C0277c c0277c = this.p;
Context context = recyclerView.getContext();
float f2 = c0277c.f4206a;
if (f2 <= BitmapDescriptorFactory.HUE_RED) {
f2 = context.getResources().getDimension(R.dimen.m3_carousel_small_item_size_min);
}
c0277c.f4206a = f2;
float f4 = c0277c.f4207b;
if (f4 <= BitmapDescriptorFactory.HUE_RED) {
f4 = context.getResources().getDimension(R.dimen.m3_carousel_small_item_size_max);
}
c0277c.f4207b = f4;
t0();
recyclerView.addOnLayoutChangeListener(this.f5612r);
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void W(RecyclerView recyclerView) {
recyclerView.removeOnLayoutChangeListener(this.f5612r);
}
/* JADX WARN: Code restructure failed: missing block: B:50:0x003a, code lost:
if (r6 == 1) goto L20;
*/
/* JADX WARN: Code restructure failed: missing block: B:53:0x0044, code lost:
if (J0() != false) goto L24;
*/
/* JADX WARN: Code restructure failed: missing block: B:54:0x0048, code lost:
if (r6 == 1) goto L24;
*/
/* JADX WARN: Code restructure failed: missing block: B:57:0x0051, code lost:
if (J0() != false) goto L20;
*/
/* JADX WARN: Removed duplicated region for block: B:18:0x0057 */
/* JADX WARN: Removed duplicated region for block: B:49:? A[RETURN, SYNTHETIC] */
@Override // androidx.recyclerview.widget.AbstractC0238q0
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct add '--show-bad-code' argument
*/
public final android.view.View X(android.view.View r4, int r5, androidx.recyclerview.widget.y0 r6, androidx.recyclerview.widget.E0 r7) {
/*
r3 = this;
int r6 = r3.v()
if (r6 != 0) goto L8
goto L96
L8:
q2.d r6 = r3.f5611q
int r6 = r6.f8189a
r7 = -2147483648(0xffffffff80000000, float:-0.0)
r0 = -1
r1 = 1
if (r5 == r1) goto L46
r2 = 2
if (r5 == r2) goto L3c
r2 = 17
if (r5 == r2) goto L4b
r2 = 33
if (r5 == r2) goto L48
r2 = 66
if (r5 == r2) goto L3e
r2 = 130(0x82, float:1.82E-43)
if (r5 == r2) goto L3a
java.lang.StringBuilder r6 = new java.lang.StringBuilder
java.lang.String r2 = "Unknown focus request:"
r6.<init>(r2)
r6.append(r5)
java.lang.String r5 = r6.toString()
java.lang.String r6 = "CarouselLayoutManager"
android.util.Log.d(r6, r5)
L38:
r5 = r7
goto L54
L3a:
if (r6 != r1) goto L38
L3c:
r5 = r1
goto L54
L3e:
if (r6 != 0) goto L38
boolean r5 = r3.J0()
if (r5 == 0) goto L3c
L46:
r5 = r0
goto L54
L48:
if (r6 != r1) goto L38
goto L46
L4b:
if (r6 != 0) goto L38
boolean r5 = r3.J0()
if (r5 == 0) goto L46
goto L3c
L54:
if (r5 != r7) goto L57
goto L96
L57:
r6 = 0
if (r5 != r0) goto L8b
int r4 = androidx.recyclerview.widget.AbstractC0238q0.L(r4)
if (r4 != 0) goto L61
goto L96
L61:
android.view.View r4 = r3.u(r6)
int r4 = androidx.recyclerview.widget.AbstractC0238q0.L(r4)
int r4 = r4 - r1
if (r4 < 0) goto L7a
int r5 = r3.F()
if (r4 < r5) goto L73
goto L7a
L73:
q2.d r3 = r3.f5611q
r3.e()
r3 = 0
throw r3
L7a:
boolean r4 = r3.J0()
if (r4 == 0) goto L86
int r4 = r3.v()
int r6 = r4 + (-1)
L86:
android.view.View r3 = r3.u(r6)
return r3
L8b:
int r4 = androidx.recyclerview.widget.AbstractC0238q0.L(r4)
int r5 = r3.F()
int r5 = r5 - r1
if (r4 != r5) goto L98
L96:
r3 = 0
return r3
L98:
int r4 = r3.v()
int r4 = r4 - r1
android.view.View r4 = r3.u(r4)
int r4 = androidx.recyclerview.widget.AbstractC0238q0.L(r4)
int r4 = r4 + r1
if (r4 < 0) goto Lb6
int r5 = r3.F()
if (r4 < r5) goto Laf
goto Lb6
Laf:
q2.d r3 = r3.f5611q
r3.e()
r3 = 0
throw r3
Lb6:
boolean r4 = r3.J0()
if (r4 == 0) goto Lbd
goto Lc3
Lbd:
int r4 = r3.v()
int r6 = r4 + (-1)
Lc3:
android.view.View r3 = r3.u(r6)
return r3
*/
throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.carousel.CarouselLayoutManager.X(android.view.View, int, androidx.recyclerview.widget.y0, androidx.recyclerview.widget.E0):android.view.View");
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void Y(AccessibilityEvent accessibilityEvent) {
super.Y(accessibilityEvent);
if (v() > 0) {
accessibilityEvent.setFromIndex(AbstractC0238q0.L(u(0)));
accessibilityEvent.setToIndex(AbstractC0238q0.L(u(v() - 1)));
}
}
@Override // androidx.recyclerview.widget.D0
public final PointF a(int i) {
return null;
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void c0(int i, int i4) {
F();
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final boolean d() {
return I0();
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final boolean e() {
return !I0();
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void f0(int i, int i4) {
F();
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void h0(y0 y0Var, E0 e02) {
if (e02.b() > 0) {
if ((I0() ? this.f3894n : this.f3895o) > BitmapDescriptorFactory.HUE_RED) {
J0();
View view = y0Var.k(0, LongCompanionObject.MAX_VALUE).itemView;
throw new IllegalStateException("All children of a RecyclerView using CarouselLayoutManager must use MaskableFrameLayout as their root ViewGroup.");
}
}
n0(y0Var);
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void i0(E0 e02) {
if (v() == 0) {
return;
}
AbstractC0238q0.L(u(0));
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final int j(E0 e02) {
v();
return 0;
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final int k(E0 e02) {
return 0;
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final int l(E0 e02) {
return 0;
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final int m(E0 e02) {
v();
return 0;
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final int n(E0 e02) {
return 0;
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final int o(E0 e02) {
return 0;
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final C0239r0 r() {
return new C0239r0(-2, -2);
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final boolean s0(RecyclerView recyclerView, View view, Rect rect, boolean z3, boolean z4) {
return false;
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final int u0(int i, y0 y0Var, E0 e02) {
if (!I0() || v() == 0 || i == 0) {
return 0;
}
View view = y0Var.k(0, LongCompanionObject.MAX_VALUE).itemView;
throw new IllegalStateException("All children of a RecyclerView using CarouselLayoutManager must use MaskableFrameLayout as their root ViewGroup.");
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void v0(int i) {
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final int w0(int i, y0 y0Var, E0 e02) {
if (!e() || v() == 0 || i == 0) {
return 0;
}
View view = y0Var.k(0, LongCompanionObject.MAX_VALUE).itemView;
throw new IllegalStateException("All children of a RecyclerView using CarouselLayoutManager must use MaskableFrameLayout as their root ViewGroup.");
}
@Override // androidx.recyclerview.widget.AbstractC0238q0
public final void z(Rect rect, View view) {
RecyclerView.O(rect, view);
rect.centerY();
if (I0()) {
rect.centerX();
}
throw null;
}
@SuppressLint({"UnknownNullness"})
public CarouselLayoutManager(Context context, AttributeSet attributeSet, int i, int i4) {
new C0560b();
this.f5612r = new View.OnLayoutChangeListener() { // from class: q2.a
@Override // android.view.View.OnLayoutChangeListener
public final void onLayoutChange(View view, int i5, int i42, int i52, int i6, int i7, int i8, int i9, int i10) {
CarouselLayoutManager carouselLayoutManager = CarouselLayoutManager.this;
if (i5 == i7 && i42 == i8 && i52 == i9 && i6 == i10) {
return;
}
view.post(new f(carouselLayoutManager, 11));
}
};
this.p = new C0277c();
t0();
if (attributeSet != null) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, AbstractC0379a.f6758d);
obtainStyledAttributes.getInt(0, 0);
t0();
K0(obtainStyledAttributes.getInt(0, 0));
obtainStyledAttributes.recycle();
}
}
}