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:
@@ -0,0 +1,196 @@
|
||||
package com.google.android.material.appbar;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Parcelable;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.VelocityTracker;
|
||||
import android.view.View;
|
||||
import android.view.ViewConfiguration;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import j2.AbstractC0403a;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class AppBarLayout$BaseBehavior<T> extends AbstractC0403a {
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public boolean f5511b;
|
||||
|
||||
/* renamed from: d, reason: collision with root package name */
|
||||
public int f5513d;
|
||||
|
||||
/* renamed from: f, reason: collision with root package name */
|
||||
public VelocityTracker f5515f;
|
||||
|
||||
/* renamed from: c, reason: collision with root package name */
|
||||
public int f5512c = -1;
|
||||
|
||||
/* renamed from: e, reason: collision with root package name */
|
||||
public int f5514e = -1;
|
||||
|
||||
public AppBarLayout$BaseBehavior() {
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final boolean j(CoordinatorLayout coordinatorLayout, View view, MotionEvent motionEvent) {
|
||||
int findPointerIndex;
|
||||
if (this.f5514e < 0) {
|
||||
this.f5514e = ViewConfiguration.get(coordinatorLayout.getContext()).getScaledTouchSlop();
|
||||
}
|
||||
if (motionEvent.getActionMasked() == 2 && this.f5511b) {
|
||||
int i = this.f5512c;
|
||||
if (i != -1 && (findPointerIndex = motionEvent.findPointerIndex(i)) != -1) {
|
||||
int y3 = (int) motionEvent.getY(findPointerIndex);
|
||||
if (Math.abs(y3 - this.f5513d) > this.f5514e) {
|
||||
this.f5513d = y3;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if (motionEvent.getActionMasked() != 0) {
|
||||
VelocityTracker velocityTracker = this.f5515f;
|
||||
if (velocityTracker != null) {
|
||||
velocityTracker.addMovement(motionEvent);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
this.f5512c = -1;
|
||||
motionEvent.getX();
|
||||
motionEvent.getY();
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
@Override // j2.AbstractC0403a, A.b
|
||||
public final boolean k(CoordinatorLayout coordinatorLayout, View view, int i) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final boolean l(CoordinatorLayout coordinatorLayout, View view, int i, int i4, int i5) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final /* synthetic */ void n(CoordinatorLayout coordinatorLayout, View view, View view2, int i, int i4, int[] iArr, int i5) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final void o(CoordinatorLayout coordinatorLayout, View view, int i, int i4, int i5, int[] iArr) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final void q(View view, Parcelable parcelable) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final Parcelable r(View view) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final boolean s(View view, int i, int i4) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final void t(View view, View view2, int i) {
|
||||
throw new ClassCastException();
|
||||
}
|
||||
|
||||
/* JADX WARN: Removed duplicated region for block: B:16:0x005c */
|
||||
/* JADX WARN: Removed duplicated region for block: B:19:0x0063 A[RETURN] */
|
||||
/* JADX WARN: Removed duplicated region for block: B:21:0x0064 A[RETURN] */
|
||||
@Override // A.b
|
||||
/*
|
||||
Code decompiled incorrectly, please refer to instructions dump.
|
||||
To view partially-correct add '--show-bad-code' argument
|
||||
*/
|
||||
public final boolean u(android.view.View r6, android.view.MotionEvent r7) {
|
||||
/*
|
||||
r5 = this;
|
||||
int r0 = r7.getActionMasked()
|
||||
r1 = -1
|
||||
r2 = 1
|
||||
r3 = 0
|
||||
if (r0 == r2) goto L46
|
||||
r4 = 2
|
||||
if (r0 == r4) goto L2d
|
||||
r6 = 3
|
||||
if (r0 == r6) goto L4a
|
||||
r6 = 6
|
||||
if (r0 == r6) goto L13
|
||||
goto L58
|
||||
L13:
|
||||
int r6 = r7.getActionIndex()
|
||||
if (r6 != 0) goto L1b
|
||||
r6 = r2
|
||||
goto L1c
|
||||
L1b:
|
||||
r6 = r3
|
||||
L1c:
|
||||
int r0 = r7.getPointerId(r6)
|
||||
r5.f5512c = r0
|
||||
float r6 = r7.getY(r6)
|
||||
r0 = 1056964608(0x3f000000, float:0.5)
|
||||
float r6 = r6 + r0
|
||||
int r6 = (int) r6
|
||||
r5.f5513d = r6
|
||||
goto L58
|
||||
L2d:
|
||||
int r0 = r5.f5512c
|
||||
int r0 = r7.findPointerIndex(r0)
|
||||
if (r0 != r1) goto L36
|
||||
goto L63
|
||||
L36:
|
||||
float r7 = r7.getY(r0)
|
||||
int r7 = (int) r7
|
||||
r5.f5513d = r7
|
||||
r6.getClass()
|
||||
java.lang.ClassCastException r5 = new java.lang.ClassCastException
|
||||
r5.<init>()
|
||||
throw r5
|
||||
L46:
|
||||
android.view.VelocityTracker r0 = r5.f5515f
|
||||
if (r0 != 0) goto L65
|
||||
L4a:
|
||||
r5.f5511b = r3
|
||||
r5.f5512c = r1
|
||||
android.view.VelocityTracker r6 = r5.f5515f
|
||||
if (r6 == 0) goto L58
|
||||
r6.recycle()
|
||||
r6 = 0
|
||||
r5.f5515f = r6
|
||||
L58:
|
||||
android.view.VelocityTracker r6 = r5.f5515f
|
||||
if (r6 == 0) goto L5f
|
||||
r6.addMovement(r7)
|
||||
L5f:
|
||||
boolean r5 = r5.f5511b
|
||||
if (r5 != 0) goto L64
|
||||
L63:
|
||||
return r3
|
||||
L64:
|
||||
return r2
|
||||
L65:
|
||||
r0.addMovement(r7)
|
||||
android.view.VelocityTracker r7 = r5.f5515f
|
||||
r0 = 1000(0x3e8, float:1.401E-42)
|
||||
r7.computeCurrentVelocity(r0)
|
||||
android.view.VelocityTracker r7 = r5.f5515f
|
||||
int r5 = r5.f5512c
|
||||
r7.getYVelocity(r5)
|
||||
r6.getClass()
|
||||
java.lang.ClassCastException r5 = new java.lang.ClassCastException
|
||||
r5.<init>()
|
||||
throw r5
|
||||
*/
|
||||
throw new UnsupportedOperationException("Method not decompiled: com.google.android.material.appbar.AppBarLayout$BaseBehavior.u(android.view.View, android.view.MotionEvent):boolean");
|
||||
}
|
||||
|
||||
public AppBarLayout$BaseBehavior(Context context, AttributeSet attributeSet) {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.google.android.material.appbar;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class AppBarLayout$Behavior extends AppBarLayout$BaseBehavior<Object> {
|
||||
public AppBarLayout$Behavior() {
|
||||
}
|
||||
|
||||
public AppBarLayout$Behavior(Context context, AttributeSet attributeSet) {
|
||||
super(context, attributeSet);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.google.android.material.appbar;
|
||||
|
||||
import A.b;
|
||||
import A.e;
|
||||
import O.X;
|
||||
import a.AbstractC0106b;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.Rect;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
||||
import h2.AbstractC0379a;
|
||||
import j2.AbstractC0403a;
|
||||
import java.util.ArrayList;
|
||||
import java.util.WeakHashMap;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class AppBarLayout$ScrollingViewBehavior extends AbstractC0403a {
|
||||
|
||||
/* renamed from: b, reason: collision with root package name */
|
||||
public final int f5516b;
|
||||
|
||||
public AppBarLayout$ScrollingViewBehavior() {
|
||||
new Rect();
|
||||
new Rect();
|
||||
}
|
||||
|
||||
public static void w(ArrayList arrayList) {
|
||||
int size = arrayList.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final void f(View view) {
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public boolean h(CoordinatorLayout coordinatorLayout, View view, View view2) {
|
||||
b bVar = ((e) view2.getLayoutParams()).f9a;
|
||||
if (bVar instanceof AppBarLayout$BaseBehavior) {
|
||||
int bottom = view2.getBottom() - view.getTop();
|
||||
((AppBarLayout$BaseBehavior) bVar).getClass();
|
||||
int i = this.f5516b;
|
||||
int d4 = bottom - (i == 0 ? 0 : AbstractC0106b.d((int) (BitmapDescriptorFactory.HUE_RED * i), 0, i));
|
||||
WeakHashMap weakHashMap = X.f1226a;
|
||||
view.offsetTopAndBottom(d4);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final boolean l(CoordinatorLayout coordinatorLayout, View view, int i, int i4, int i5) {
|
||||
int i6 = view.getLayoutParams().height;
|
||||
if (i6 != -1 && i6 != -2) {
|
||||
return false;
|
||||
}
|
||||
w(coordinatorLayout.j(view));
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override // A.b
|
||||
public final void p(CoordinatorLayout coordinatorLayout, View view) {
|
||||
w(coordinatorLayout.j(view));
|
||||
}
|
||||
|
||||
@Override // j2.AbstractC0403a
|
||||
public final void v(CoordinatorLayout coordinatorLayout, View view, int i) {
|
||||
w(coordinatorLayout.j(view));
|
||||
coordinatorLayout.q(view, i);
|
||||
}
|
||||
|
||||
public AppBarLayout$ScrollingViewBehavior(Context context, AttributeSet attributeSet) {
|
||||
new Rect();
|
||||
new Rect();
|
||||
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, AbstractC0379a.f6776y);
|
||||
this.f5516b = obtainStyledAttributes.getDimensionPixelSize(0, 0);
|
||||
obtainStyledAttributes.recycle();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,244 @@
|
||||
package com.google.android.material.appbar;
|
||||
|
||||
import A.i;
|
||||
import E2.g;
|
||||
import K2.a;
|
||||
import O.L;
|
||||
import O.X;
|
||||
import android.content.Context;
|
||||
import android.content.res.ColorStateList;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Pair;
|
||||
import android.view.Menu;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.TextView;
|
||||
import androidx.appcompat.widget.Toolbar;
|
||||
import com.adif.elcanomovil.R;
|
||||
import h2.AbstractC0379a;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.WeakHashMap;
|
||||
import m3.d;
|
||||
import m3.l;
|
||||
import x2.m;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class MaterialToolbar extends Toolbar {
|
||||
|
||||
/* renamed from: c0, reason: collision with root package name */
|
||||
public static final ImageView.ScaleType[] f5517c0 = {ImageView.ScaleType.MATRIX, ImageView.ScaleType.FIT_XY, ImageView.ScaleType.FIT_START, ImageView.ScaleType.FIT_CENTER, ImageView.ScaleType.FIT_END, ImageView.ScaleType.CENTER, ImageView.ScaleType.CENTER_CROP, ImageView.ScaleType.CENTER_INSIDE};
|
||||
|
||||
/* renamed from: U, reason: collision with root package name */
|
||||
public Integer f5518U;
|
||||
|
||||
/* renamed from: V, reason: collision with root package name */
|
||||
public boolean f5519V;
|
||||
|
||||
/* renamed from: W, reason: collision with root package name */
|
||||
public boolean f5520W;
|
||||
|
||||
/* renamed from: a0, reason: collision with root package name */
|
||||
public ImageView.ScaleType f5521a0;
|
||||
|
||||
/* renamed from: b0, reason: collision with root package name */
|
||||
public Boolean f5522b0;
|
||||
|
||||
public MaterialToolbar(Context context, AttributeSet attributeSet) {
|
||||
super(a.a(context, attributeSet, R.attr.toolbarStyle, 2132018386), attributeSet, 0);
|
||||
Context context2 = getContext();
|
||||
TypedArray h = m.h(context2, attributeSet, AbstractC0379a.f6772u, R.attr.toolbarStyle, 2132018386, new int[0]);
|
||||
if (h.hasValue(2)) {
|
||||
setNavigationIconTint(h.getColor(2, -1));
|
||||
}
|
||||
this.f5519V = h.getBoolean(4, false);
|
||||
this.f5520W = h.getBoolean(3, false);
|
||||
int i = h.getInt(1, -1);
|
||||
if (i >= 0) {
|
||||
ImageView.ScaleType[] scaleTypeArr = f5517c0;
|
||||
if (i < scaleTypeArr.length) {
|
||||
this.f5521a0 = scaleTypeArr[i];
|
||||
}
|
||||
}
|
||||
if (h.hasValue(0)) {
|
||||
this.f5522b0 = Boolean.valueOf(h.getBoolean(0, false));
|
||||
}
|
||||
h.recycle();
|
||||
Drawable background = getBackground();
|
||||
ColorStateList valueOf = background == null ? ColorStateList.valueOf(0) : l.p(background);
|
||||
if (valueOf != null) {
|
||||
g gVar = new g();
|
||||
gVar.j(valueOf);
|
||||
gVar.h(context2);
|
||||
WeakHashMap weakHashMap = X.f1226a;
|
||||
gVar.i(L.i(this));
|
||||
setBackground(gVar);
|
||||
}
|
||||
}
|
||||
|
||||
public ImageView.ScaleType getLogoScaleType() {
|
||||
return this.f5521a0;
|
||||
}
|
||||
|
||||
public Integer getNavigationIconTint() {
|
||||
return this.f5518U;
|
||||
}
|
||||
|
||||
@Override // androidx.appcompat.widget.Toolbar
|
||||
public final void m(int i) {
|
||||
Menu menu = getMenu();
|
||||
boolean z3 = menu instanceof l.m;
|
||||
if (z3) {
|
||||
((l.m) menu).w();
|
||||
}
|
||||
super.m(i);
|
||||
if (z3) {
|
||||
((l.m) menu).v();
|
||||
}
|
||||
}
|
||||
|
||||
@Override // androidx.appcompat.widget.Toolbar, android.view.ViewGroup, android.view.View
|
||||
public final void onAttachedToWindow() {
|
||||
super.onAttachedToWindow();
|
||||
Drawable background = getBackground();
|
||||
if (background instanceof g) {
|
||||
d.H(this, (g) background);
|
||||
}
|
||||
}
|
||||
|
||||
@Override // androidx.appcompat.widget.Toolbar, android.view.ViewGroup, android.view.View
|
||||
public final void onLayout(boolean z3, int i, int i4, int i5, int i6) {
|
||||
ImageView imageView;
|
||||
Drawable drawable;
|
||||
super.onLayout(z3, i, i4, i5, i6);
|
||||
int i7 = 0;
|
||||
ImageView imageView2 = null;
|
||||
if (this.f5519V || this.f5520W) {
|
||||
ArrayList f2 = m.f(this, getTitle());
|
||||
boolean isEmpty = f2.isEmpty();
|
||||
i iVar = m.f8967c;
|
||||
TextView textView = isEmpty ? null : (TextView) Collections.min(f2, iVar);
|
||||
ArrayList f4 = m.f(this, getSubtitle());
|
||||
TextView textView2 = f4.isEmpty() ? null : (TextView) Collections.max(f4, iVar);
|
||||
if (textView != null || textView2 != null) {
|
||||
int measuredWidth = getMeasuredWidth();
|
||||
int i8 = measuredWidth / 2;
|
||||
int paddingLeft = getPaddingLeft();
|
||||
int paddingRight = measuredWidth - getPaddingRight();
|
||||
for (int i9 = 0; i9 < getChildCount(); i9++) {
|
||||
View childAt = getChildAt(i9);
|
||||
if (childAt.getVisibility() != 8 && childAt != textView && childAt != textView2) {
|
||||
if (childAt.getRight() < i8 && childAt.getRight() > paddingLeft) {
|
||||
paddingLeft = childAt.getRight();
|
||||
}
|
||||
if (childAt.getLeft() > i8 && childAt.getLeft() < paddingRight) {
|
||||
paddingRight = childAt.getLeft();
|
||||
}
|
||||
}
|
||||
}
|
||||
Pair pair = new Pair(Integer.valueOf(paddingLeft), Integer.valueOf(paddingRight));
|
||||
if (this.f5519V && textView != null) {
|
||||
x(textView, pair);
|
||||
}
|
||||
if (this.f5520W && textView2 != null) {
|
||||
x(textView2, pair);
|
||||
}
|
||||
}
|
||||
}
|
||||
Drawable logo = getLogo();
|
||||
if (logo != null) {
|
||||
while (true) {
|
||||
if (i7 >= getChildCount()) {
|
||||
break;
|
||||
}
|
||||
View childAt2 = getChildAt(i7);
|
||||
if ((childAt2 instanceof ImageView) && (drawable = (imageView = (ImageView) childAt2).getDrawable()) != null && drawable.getConstantState() != null && drawable.getConstantState().equals(logo.getConstantState())) {
|
||||
imageView2 = imageView;
|
||||
break;
|
||||
}
|
||||
i7++;
|
||||
}
|
||||
}
|
||||
if (imageView2 != null) {
|
||||
Boolean bool = this.f5522b0;
|
||||
if (bool != null) {
|
||||
imageView2.setAdjustViewBounds(bool.booleanValue());
|
||||
}
|
||||
ImageView.ScaleType scaleType = this.f5521a0;
|
||||
if (scaleType != null) {
|
||||
imageView2.setScaleType(scaleType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override // android.view.View
|
||||
public void setElevation(float f2) {
|
||||
super.setElevation(f2);
|
||||
Drawable background = getBackground();
|
||||
if (background instanceof g) {
|
||||
((g) background).i(f2);
|
||||
}
|
||||
}
|
||||
|
||||
public void setLogoAdjustViewBounds(boolean z3) {
|
||||
Boolean bool = this.f5522b0;
|
||||
if (bool == null || bool.booleanValue() != z3) {
|
||||
this.f5522b0 = Boolean.valueOf(z3);
|
||||
requestLayout();
|
||||
}
|
||||
}
|
||||
|
||||
public void setLogoScaleType(ImageView.ScaleType scaleType) {
|
||||
if (this.f5521a0 != scaleType) {
|
||||
this.f5521a0 = scaleType;
|
||||
requestLayout();
|
||||
}
|
||||
}
|
||||
|
||||
@Override // androidx.appcompat.widget.Toolbar
|
||||
public void setNavigationIcon(Drawable drawable) {
|
||||
if (drawable != null && this.f5518U != null) {
|
||||
drawable = drawable.mutate();
|
||||
H.a.g(drawable, this.f5518U.intValue());
|
||||
}
|
||||
super.setNavigationIcon(drawable);
|
||||
}
|
||||
|
||||
public void setNavigationIconTint(int i) {
|
||||
this.f5518U = Integer.valueOf(i);
|
||||
Drawable navigationIcon = getNavigationIcon();
|
||||
if (navigationIcon != null) {
|
||||
setNavigationIcon(navigationIcon);
|
||||
}
|
||||
}
|
||||
|
||||
public void setSubtitleCentered(boolean z3) {
|
||||
if (this.f5520W != z3) {
|
||||
this.f5520W = z3;
|
||||
requestLayout();
|
||||
}
|
||||
}
|
||||
|
||||
public void setTitleCentered(boolean z3) {
|
||||
if (this.f5519V != z3) {
|
||||
this.f5519V = z3;
|
||||
requestLayout();
|
||||
}
|
||||
}
|
||||
|
||||
public final void x(TextView textView, Pair pair) {
|
||||
int measuredWidth = getMeasuredWidth();
|
||||
int measuredWidth2 = textView.getMeasuredWidth();
|
||||
int i = (measuredWidth / 2) - (measuredWidth2 / 2);
|
||||
int i4 = measuredWidth2 + i;
|
||||
int max = Math.max(Math.max(((Integer) pair.first).intValue() - i, 0), Math.max(i4 - ((Integer) pair.second).intValue(), 0));
|
||||
if (max > 0) {
|
||||
i += max;
|
||||
i4 -= max;
|
||||
textView.measure(View.MeasureSpec.makeMeasureSpec(i4 - i, 1073741824), textView.getMeasuredHeightAndState());
|
||||
}
|
||||
textView.layout(i, textView.getTop(), i4, textView.getBottom());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user