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,129 @@
package com.adif.elcanomovil.commonNavGraph.navigation;
import android.content.Intent;
import androidx.fragment.app.K;
import androidx.lifecycle.InterfaceC0200v;
import com.adif.elcanomovil.commonNavGraph.extensions.NavigationExtensionsKt;
import com.adif.elcanomovil.commonNavGraph.navigation.IntentAction;
import com.adif.elcanomovil.commonNavGraph.navigation.Navigation;
import com.adif.elcanomovil.commonNavGraph.viewmodel.TabNavigator;
import kotlin.Metadata;
import kotlin.NoWhenBranchMatchedException;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
import m3.l;
import o0.AbstractC0544v;
import o0.E;
import o0.F;
@Metadata(d1 = {"\u0000N\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\b\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\u0018\u0002\n\u0002\b\u0007\u0018\u00002\u000e\u0012\u0004\u0012\u00020\u0002\u0012\u0004\u0012\u00020\u00030\u0001B\u000f\u0012\u0006\u0010\u0005\u001a\u00020\u0004¢\u0006\u0004\b\u0006\u0010\u0007J)\u0010\u000e\u001a\u00020\u00032\u0006\u0010\t\u001a\u00020\b2\u0006\u0010\u000b\u001a\u00020\n2\b\u0010\r\u001a\u0004\u0018\u00010\fH\u0002¢\u0006\u0004\b\u000e\u0010\u000fJ\u0017\u0010\u0012\u001a\u00020\u00032\u0006\u0010\u0011\u001a\u00020\u0010H\u0002¢\u0006\u0004\b\u0012\u0010\u0013J\u0017\u0010\u0017\u001a\u00020\u00162\u0006\u0010\u0015\u001a\u00020\u0014H\u0002¢\u0006\u0004\b\u0017\u0010\u0018J1\u0010\u001b\u001a\u00020\u00032\u0006\u0010\u0005\u001a\u00020\u00042\u0017\u0010\u001b\u001a\u0013\u0012\u0004\u0012\u00020\b\u0012\u0004\u0012\u00020\u00190\u0001¢\u0006\u0002\b\u001aH\u0082\\u0006\u0004\b\u001b\u0010\u001cJ\u0018\u0010\u001e\u001a\u00020\u00032\u0006\u0010\u001d\u001a\u00020\u0002H\u0096\u0002¢\u0006\u0004\b\u001e\u0010\u001fR\u0014\u0010\u0005\u001a\u00020\u00048\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0005\u0010 ¨\u0006!"}, d2 = {"Lcom/adif/elcanomovil/commonNavGraph/navigation/NavigationHandler;", "Lkotlin/Function1;", "Lcom/adif/elcanomovil/commonNavGraph/navigation/Navigation;", "", "Landroidx/fragment/app/K;", "fragment", "<init>", "(Landroidx/fragment/app/K;)V", "Lo0/v;", "navController", "Lo0/F;", "navDirections", "", "currentExpectedFragmentId", "safeNavigate", "(Lo0/v;Lo0/F;Ljava/lang/Integer;)V", "Lcom/adif/elcanomovil/commonNavGraph/navigation/IntentAction;", "action", "handleIntent", "(Lcom/adif/elcanomovil/commonNavGraph/navigation/IntentAction;)V", "Lcom/adif/elcanomovil/commonNavGraph/navigation/IntentAction$Send;", "send", "Landroid/content/Intent;", "generateSendIntent", "(Lcom/adif/elcanomovil/commonNavGraph/navigation/IntentAction$Send;)Landroid/content/Intent;", "", "Lkotlin/ExtensionFunctionType;", "navigateBack", "(Landroidx/fragment/app/K;Lkotlin/jvm/functions/Function1;)V", "navigation", "invoke", "(Lcom/adif/elcanomovil/commonNavGraph/navigation/Navigation;)V", "Landroidx/fragment/app/K;", "common-nav-graph_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
@SourceDebugExtension({"SMAP\nNavigationHandler.kt\nKotlin\n*S Kotlin\n*F\n+ 1 NavigationHandler.kt\ncom/adif/elcanomovil/commonNavGraph/navigation/NavigationHandler\n*L\n1#1,97:1\n89#1,7:98\n89#1,7:105\n*S KotlinDebug\n*F\n+ 1 NavigationHandler.kt\ncom/adif/elcanomovil/commonNavGraph/navigation/NavigationHandler\n*L\n15#1:98,7\n18#1:105,7\n*E\n"})
/* loaded from: classes.dex */
public final class NavigationHandler implements Function1<Navigation, Unit> {
private final K fragment;
public NavigationHandler(K fragment) {
Intrinsics.checkNotNullParameter(fragment, "fragment");
this.fragment = fragment;
}
private final Intent generateSendIntent(IntentAction.Send send) {
Intent intent = new Intent("android.intent.action.SEND");
intent.putExtra("android.intent.extra.TEXT", send.getMessage());
intent.putExtra("android.intent.extra.SUBJECT", send.getMessage());
intent.setType("text/plain");
return intent;
}
private final void handleIntent(IntentAction action) {
Intent generateSendIntent;
if (action instanceof IntentAction.View) {
generateSendIntent = new Intent("android.intent.action.VIEW", ((IntentAction.View) action).getUri());
} else {
if (!(action instanceof IntentAction.Send)) {
throw new NoWhenBranchMatchedException();
}
generateSendIntent = generateSendIntent((IntentAction.Send) action);
}
this.fragment.requireActivity().startActivity(generateSendIntent);
}
private final void navigateBack(K fragment, Function1<? super AbstractC0544v, Boolean> navigateBack) {
if (navigateBack.invoke(l.n(fragment)).booleanValue() || navigateBack.invoke(NavigationExtensionsKt.findRootNavController(fragment)).booleanValue()) {
return;
}
fragment.requireActivity().finishAfterTransition();
}
private final void safeNavigate(AbstractC0544v navController, F navDirections, Integer currentExpectedFragmentId) {
E g4 = l.n(this.fragment).g();
Integer valueOf = g4 != null ? Integer.valueOf(g4.h) : null;
if (currentExpectedFragmentId == null) {
navController.p(navDirections);
} else if (Intrinsics.areEqual(valueOf, currentExpectedFragmentId)) {
navController.p(navDirections);
}
}
@Override // kotlin.jvm.functions.Function1
public /* bridge */ /* synthetic */ Unit invoke(Navigation navigation) {
invoke2(navigation);
return Unit.INSTANCE;
}
/* renamed from: invoke, reason: avoid collision after fix types in other method */
public void invoke2(Navigation navigation) {
K parentFragment;
Intrinsics.checkNotNullParameter(navigation, "navigation");
if (Intrinsics.areEqual(navigation, Navigation.Back.INSTANCE)) {
K k4 = this.fragment;
if (l.n(k4).q() || NavigationExtensionsKt.findRootNavController(k4).q()) {
return;
}
k4.requireActivity().finishAfterTransition();
return;
}
if (navigation instanceof Navigation.BackWithResult) {
K k5 = this.fragment;
Navigation.BackWithResult backWithResult = (Navigation.BackWithResult) navigation;
if (NavigationExtensionsKt.popBackStackWithResult(l.n(k5), backWithResult.getKey(), backWithResult.getValue()) || NavigationExtensionsKt.popBackStackWithResult(NavigationExtensionsKt.findRootNavController(k5), backWithResult.getKey(), backWithResult.getValue())) {
return;
}
k5.requireActivity().finishAfterTransition();
return;
}
if (navigation instanceof Navigation.Direction) {
Navigation.Direction direction = (Navigation.Direction) navigation;
safeNavigate(l.n(this.fragment), direction.getNavDirections(), direction.getCurrentFragmentId());
return;
}
if (navigation instanceof Navigation.TabDirection) {
K parentFragment2 = this.fragment.getParentFragment();
TabNavigator tabNavigator = null;
InterfaceC0200v parentFragment3 = parentFragment2 != null ? parentFragment2.getParentFragment() : null;
TabNavigator tabNavigator2 = parentFragment3 instanceof TabNavigator ? (TabNavigator) parentFragment3 : null;
if (tabNavigator2 == null) {
K parentFragment4 = this.fragment.getParentFragment();
Object parentFragment5 = (parentFragment4 == null || (parentFragment = parentFragment4.getParentFragment()) == null) ? null : parentFragment.getParentFragment();
if (parentFragment5 instanceof TabNavigator) {
tabNavigator = (TabNavigator) parentFragment5;
}
} else {
tabNavigator = tabNavigator2;
}
if (tabNavigator != null) {
tabNavigator.navigateTo(((Navigation.TabDirection) navigation).getInitialTab());
return;
}
return;
}
if (navigation instanceof Navigation.RootDirection) {
Navigation.RootDirection rootDirection = (Navigation.RootDirection) navigation;
safeNavigate(NavigationExtensionsKt.findRootNavController(this.fragment), rootDirection.getNavDirections(), rootDirection.getCurrentFragmentId());
} else if (navigation instanceof Navigation.Intent) {
handleIntent(((Navigation.Intent) navigation).getAction());
}
}
}