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,76 @@
|
||||
package com.adif.elcanomovil.notifications;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.adif.elcanomovil.domain.providers.PushIdTokenProvider;
|
||||
import com.google.firebase.messaging.FirebaseMessagingService;
|
||||
import com.google.firebase.messaging.RemoteMessage;
|
||||
import dagger.hilt.EntryPoint;
|
||||
import dagger.hilt.EntryPoints;
|
||||
import dagger.hilt.InstallIn;
|
||||
import dagger.hilt.components.SingletonComponent;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.Unit;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlin.jvm.internal.SourceDebugExtension;
|
||||
import t3.c;
|
||||
|
||||
@Metadata(d1 = {"\u0000*\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0002\b\u0002\u0018\u00002\u00020\u0001:\u0001\rB\u0005¢\u0006\u0002\u0010\u0002J\b\u0010\u0005\u001a\u00020\u0006H\u0016J\u0010\u0010\u0007\u001a\u00020\u00062\u0006\u0010\b\u001a\u00020\tH\u0016J\u0010\u0010\n\u001a\u00020\u00062\u0006\u0010\u000b\u001a\u00020\fH\u0016R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082.¢\u0006\u0002\n\u0000¨\u0006\u000e"}, d2 = {"Lcom/adif/elcanomovil/notifications/AppFirebaseMessagingService;", "Lcom/google/firebase/messaging/FirebaseMessagingService;", "()V", "notificationProvide", "Lcom/adif/elcanomovil/notifications/NotificationProvider;", "onCreate", "", "onMessageReceived", "remoteMessage", "Lcom/google/firebase/messaging/RemoteMessage;", "onNewToken", "token", "", "MyMessagingServiceInterface", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
@SourceDebugExtension({"SMAP\nAppFirebaseMessagingService.kt\nKotlin\n*S Kotlin\n*F\n+ 1 AppFirebaseMessagingService.kt\ncom/adif/elcanomovil/notifications/AppFirebaseMessagingService\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,58:1\n1#2:59\n*E\n"})
|
||||
/* loaded from: classes.dex */
|
||||
public final class AppFirebaseMessagingService extends FirebaseMessagingService {
|
||||
private NotificationProvider notificationProvide;
|
||||
|
||||
@Metadata(d1 = {"\u0000\u001a\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0003\bg\u0018\u00002\u00020\u0001R\u0012\u0010\u0002\u001a\u00020\u0003X¦\u0004¢\u0006\u0006\u001a\u0004\b\u0004\u0010\u0005R\u0012\u0010\u0006\u001a\u00020\u0007X¦\u0004¢\u0006\u0006\u001a\u0004\b\b\u0010\t¨\u0006\n"}, d2 = {"Lcom/adif/elcanomovil/notifications/AppFirebaseMessagingService$MyMessagingServiceInterface;", "", "notificationProvider", "Lcom/adif/elcanomovil/notifications/NotificationProvider;", "getNotificationProvider", "()Lcom/adif/elcanomovil/notifications/NotificationProvider;", "tokenProvider", "Lcom/adif/elcanomovil/domain/providers/PushIdTokenProvider;", "getTokenProvider", "()Lcom/adif/elcanomovil/domain/providers/PushIdTokenProvider;", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
@InstallIn({SingletonComponent.class})
|
||||
@EntryPoint
|
||||
/* loaded from: classes.dex */
|
||||
public interface MyMessagingServiceInterface {
|
||||
NotificationProvider getNotificationProvider();
|
||||
|
||||
PushIdTokenProvider getTokenProvider();
|
||||
}
|
||||
|
||||
@Override // android.app.Service
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
Object obj = EntryPoints.get(getApplicationContext(), MyMessagingServiceInterface.class);
|
||||
Intrinsics.checkNotNullExpressionValue(obj, "get(...)");
|
||||
this.notificationProvide = ((MyMessagingServiceInterface) obj).getNotificationProvider();
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.messaging.FirebaseMessagingService
|
||||
public void onMessageReceived(RemoteMessage remoteMessage) {
|
||||
Intrinsics.checkNotNullParameter(remoteMessage, "remoteMessage");
|
||||
super.onMessageReceived(remoteMessage);
|
||||
remoteMessage.getNotification();
|
||||
Bundle extras = remoteMessage.toIntent().getExtras();
|
||||
if (extras != null) {
|
||||
NotificationProvider notificationProvider = this.notificationProvide;
|
||||
if (notificationProvider == null) {
|
||||
Intrinsics.throwUninitializedPropertyAccessException("notificationProvide");
|
||||
notificationProvider = null;
|
||||
}
|
||||
notificationProvider.handleNotification(extras);
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.messaging.FirebaseMessagingService
|
||||
public void onNewToken(String token) {
|
||||
Unit unit;
|
||||
Intrinsics.checkNotNullParameter(token, "token");
|
||||
super.onNewToken(token);
|
||||
Object obj = EntryPoints.get(getApplicationContext(), MyMessagingServiceInterface.class);
|
||||
Intrinsics.checkNotNullExpressionValue(obj, "get(...)");
|
||||
PushIdTokenProvider tokenProvider = ((MyMessagingServiceInterface) obj).getTokenProvider();
|
||||
if (getBaseContext() != null) {
|
||||
tokenProvider.saveToken(token);
|
||||
unit = Unit.INSTANCE;
|
||||
} else {
|
||||
unit = null;
|
||||
}
|
||||
if (unit == null) {
|
||||
Intrinsics.checkNotNullParameter("TOKEN FIREBASE NOT SET since baseContext is null", "message");
|
||||
c.f8551a.e("TOKEN FIREBASE NOT SET since baseContext is null", new Object[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
package com.adif.elcanomovil.notifications;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.adif.elcanomovil.domain.entities.CirculationType;
|
||||
import com.adif.elcanomovil.domain.entities.notifications.NotificationPayload;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
|
||||
@Metadata(d1 = {"\u0000\u001a\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0005\u0018\u0000 \n2\u00020\u0001:\u0001\nB\u0005¢\u0006\u0002\u0010\u0002J\u0012\u0010\u0003\u001a\u0004\u0018\u00010\u00042\u0006\u0010\u0005\u001a\u00020\u0006H\u0016J\u0010\u0010\u0007\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u0006H\u0002J\u0010\u0010\b\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u0006H\u0002J\u0010\u0010\t\u001a\u00020\u00042\u0006\u0010\u0005\u001a\u00020\u0006H\u0002¨\u0006\u000b"}, d2 = {"Lcom/adif/elcanomovil/notifications/DefaultNotificationPayloadHandler;", "Lcom/adif/elcanomovil/notifications/NotificationPayloadHandler;", "()V", "handlePayload", "Lcom/adif/elcanomovil/domain/entities/notifications/NotificationPayload;", "bundle", "Landroid/os/Bundle;", "parseAvisaNotification", "parseCirculationNotification", "parseTrainNotification", "Companion", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public final class DefaultNotificationPayloadHandler implements NotificationPayloadHandler {
|
||||
private static final String ARG_TYPE_NOTIFICATION_JSON_MESSAGE_END = "en";
|
||||
private static final String ARG_TYPE_NOTIFICATION_JSON_MESSAGE_REPEAT = "rp";
|
||||
private static final String ARG_TYPE_NOTIFICATION_JSON_MESSAGE_START = "st";
|
||||
private static final String NOTIFICATION_JSON_AVISA_ID = "incidenceId";
|
||||
private static final String NOTIFICATION_JSON_AVISA_MESSAGE_TYPE = "300";
|
||||
private static final String NOTIFICATION_JSON_AVISA_MSG = "body";
|
||||
private static final String NOTIFICATION_JSON_AVISA_TITLE = "title";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_DESTINATIONID = "d";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_STATIONID = "o";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_SUBSCRIPTION_TYPE = "su";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_TRAIN = "id";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_TYPE_PATH_ALERT = "104";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_TYPE_PATH_END = "102";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_TYPE_PATH_START = "103";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_TYPE_TRAIN_ALERT = "204";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_TYPE_TRAIN_END = "202";
|
||||
private static final String NOTIFICATION_JSON_MESSAGE_TYPE_TRAIN_START = "203";
|
||||
private static final String NOTIFICATION_JSON_TYPE = "t";
|
||||
|
||||
private final NotificationPayload parseAvisaNotification(Bundle bundle) {
|
||||
String string = bundle.getString(NOTIFICATION_JSON_AVISA_MSG);
|
||||
String string2 = bundle.getString("incidenceId");
|
||||
String string3 = bundle.getString(NOTIFICATION_JSON_AVISA_TITLE);
|
||||
if (string2 == null) {
|
||||
string2 = "";
|
||||
}
|
||||
if (string3 == null) {
|
||||
string3 = "";
|
||||
}
|
||||
if (string == null) {
|
||||
string = "";
|
||||
}
|
||||
return new NotificationPayload.Avisa(string2, string3, string);
|
||||
}
|
||||
|
||||
private final NotificationPayload parseCirculationNotification(Bundle bundle) {
|
||||
String string = bundle.getString("o");
|
||||
if (string == null) {
|
||||
string = "";
|
||||
}
|
||||
String string2 = bundle.getString("d");
|
||||
if (string2 == null) {
|
||||
string2 = "";
|
||||
}
|
||||
CirculationType circulationType = CirculationType.BETWEEN_STATIONS;
|
||||
boolean areEqual = Intrinsics.areEqual(bundle.getString("su"), "cercanias");
|
||||
String string3 = bundle.getString(NOTIFICATION_JSON_TYPE);
|
||||
if (string3 == null) {
|
||||
string3 = "";
|
||||
}
|
||||
String string4 = bundle.getString("st");
|
||||
if (string4 == null) {
|
||||
string4 = "";
|
||||
}
|
||||
String string5 = bundle.getString("en");
|
||||
if (string5 == null) {
|
||||
string5 = "";
|
||||
}
|
||||
String string6 = bundle.getString("rp");
|
||||
if (string6 == null) {
|
||||
string6 = "";
|
||||
}
|
||||
String string7 = bundle.getString(NOTIFICATION_JSON_AVISA_TITLE);
|
||||
if (string7 == null) {
|
||||
string7 = "";
|
||||
}
|
||||
String string8 = bundle.getString(NOTIFICATION_JSON_AVISA_MSG);
|
||||
return new NotificationPayload.Journey(string, string2, circulationType, areEqual, string3, string4, string5, string6, string7, string8 == null ? "" : string8);
|
||||
}
|
||||
|
||||
private final NotificationPayload parseTrainNotification(Bundle bundle) {
|
||||
String string = bundle.getString("id");
|
||||
String str = string == null ? "" : string;
|
||||
String string2 = bundle.getString(NOTIFICATION_JSON_TYPE);
|
||||
String str2 = string2 == null ? "" : string2;
|
||||
String string3 = bundle.getString("st");
|
||||
String str3 = string3 == null ? "" : string3;
|
||||
String string4 = bundle.getString("en");
|
||||
String str4 = string4 == null ? "" : string4;
|
||||
String string5 = bundle.getString("rp");
|
||||
String str5 = string5 == null ? "" : string5;
|
||||
String string6 = bundle.getString(NOTIFICATION_JSON_AVISA_TITLE);
|
||||
String str6 = string6 == null ? "" : string6;
|
||||
String string7 = bundle.getString(NOTIFICATION_JSON_AVISA_MSG);
|
||||
return new NotificationPayload.Train(str, str2, str3, str4, str5, str6, string7 == null ? "" : string7);
|
||||
}
|
||||
|
||||
/* JADX WARN: Failed to find 'out' block for switch in B:7:0x001b. Please report as an issue. */
|
||||
@Override // com.adif.elcanomovil.notifications.NotificationPayloadHandler
|
||||
public NotificationPayload handlePayload(Bundle bundle) {
|
||||
Intrinsics.checkNotNullParameter(bundle, "bundle");
|
||||
String string = bundle.getString(NOTIFICATION_JSON_TYPE);
|
||||
if (string == null) {
|
||||
string = "";
|
||||
}
|
||||
int hashCode = string.hashCode();
|
||||
if (hashCode == 50547) {
|
||||
if (string.equals("300")) {
|
||||
return parseAvisaNotification(bundle);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
switch (hashCode) {
|
||||
case 48627:
|
||||
if (!string.equals(NOTIFICATION_JSON_MESSAGE_TYPE_PATH_END)) {
|
||||
return null;
|
||||
}
|
||||
break;
|
||||
case 48628:
|
||||
if (!string.equals(NOTIFICATION_JSON_MESSAGE_TYPE_PATH_START)) {
|
||||
return null;
|
||||
}
|
||||
break;
|
||||
case 48629:
|
||||
if (!string.equals(NOTIFICATION_JSON_MESSAGE_TYPE_PATH_ALERT)) {
|
||||
return null;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
switch (hashCode) {
|
||||
case 49588:
|
||||
if (!string.equals(NOTIFICATION_JSON_MESSAGE_TYPE_TRAIN_END)) {
|
||||
return null;
|
||||
}
|
||||
return parseTrainNotification(bundle);
|
||||
case 49589:
|
||||
if (!string.equals(NOTIFICATION_JSON_MESSAGE_TYPE_TRAIN_START)) {
|
||||
return null;
|
||||
}
|
||||
return parseTrainNotification(bundle);
|
||||
case 49590:
|
||||
if (!string.equals(NOTIFICATION_JSON_MESSAGE_TYPE_TRAIN_ALERT)) {
|
||||
return null;
|
||||
}
|
||||
return parseTrainNotification(bundle);
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return parseCirculationNotification(bundle);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
package com.adif.elcanomovil.notifications;
|
||||
|
||||
import C.u;
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.media.AudioAttributes;
|
||||
import android.os.Bundle;
|
||||
import android.provider.Settings;
|
||||
import com.adif.elcanomovil.ElcanoApplication;
|
||||
import com.adif.elcanomovil.R;
|
||||
import com.adif.elcanomovil.commonNavGraph.navigation.NavigationIntents;
|
||||
import com.adif.elcanomovil.domain.entities.notifications.NotificationPayload;
|
||||
import com.adif.elcanomovil.lifecycle.AppStatus;
|
||||
import com.google.android.gms.common.internal.BaseGmsClient;
|
||||
import com.google.android.gms.measurement.api.AppMeasurementSdk;
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext;
|
||||
import javax.inject.Inject;
|
||||
import kotlin.Metadata;
|
||||
import kotlin.jvm.internal.Intrinsics;
|
||||
import kotlinx.coroutines.flow.Flow;
|
||||
import kotlinx.coroutines.flow.FlowKt;
|
||||
import kotlinx.coroutines.flow.MutableStateFlow;
|
||||
import kotlinx.coroutines.flow.StateFlowKt;
|
||||
|
||||
@Metadata(d1 = {"\u0000p\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0004\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0007\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0005\u0018\u0000 62\u00020\u0001:\u00016B#\b\u0007\u0012\b\b\u0001\u0010\u0003\u001a\u00020\u0002\u0012\u0006\u0010\u0005\u001a\u00020\u0004\u0012\u0006\u0010\u0007\u001a\u00020\u0006¢\u0006\u0004\b\b\u0010\tJ\u001f\u0010\u000f\u001a\u00020\u000e2\u0006\u0010\u000b\u001a\u00020\n2\u0006\u0010\r\u001a\u00020\fH\u0002¢\u0006\u0004\b\u000f\u0010\u0010J\u0017\u0010\u0013\u001a\u00020\u000e2\u0006\u0010\u0012\u001a\u00020\u0011H\u0002¢\u0006\u0004\b\u0013\u0010\u0014J\u0017\u0010\u0015\u001a\u00020\u000e2\u0006\u0010\u0012\u001a\u00020\u0011H\u0002¢\u0006\u0004\b\u0015\u0010\u0014J/\u0010\u0015\u001a\u00020\u000e2\u0006\u0010\u000b\u001a\u00020\u00162\u0006\u0010\u0017\u001a\u00020\u00162\u0006\u0010\u0018\u001a\u00020\u00162\u0006\u0010\u0012\u001a\u00020\u0011H\u0002¢\u0006\u0004\b\u0015\u0010\u0019J\u0019\u0010\u001b\u001a\u0004\u0018\u00010\u001a2\u0006\u0010\u0012\u001a\u00020\u0011H\u0002¢\u0006\u0004\b\u001b\u0010\u001cJ'\u0010 \u001a\u00020\u001f2\u0006\u0010\u001d\u001a\u00020\u001a2\u0006\u0010\u000b\u001a\u00020\u00162\u0006\u0010\u001e\u001a\u00020\u0016H\u0002¢\u0006\u0004\b \u0010!J'\u0010\"\u001a\u00020\u001f2\u0006\u0010\u001d\u001a\u00020\u001a2\u0006\u0010\u000b\u001a\u00020\u00162\u0006\u0010\u001e\u001a\u00020\u0016H\u0002¢\u0006\u0004\b\"\u0010!J\u000f\u0010$\u001a\u00020#H\u0002¢\u0006\u0004\b$\u0010%J\u001f\u0010(\u001a\u00020'2\u0006\u0010\u0003\u001a\u00020\u00022\u0006\u0010&\u001a\u00020\u0016H\u0002¢\u0006\u0004\b(\u0010)J\u0017\u0010*\u001a\u00020\u000e2\u0006\u0010\u000b\u001a\u00020\nH\u0016¢\u0006\u0004\b*\u0010+R\u0014\u0010\u0003\u001a\u00020\u00028\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0003\u0010,R\u0014\u0010\u0005\u001a\u00020\u00048\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0005\u0010-R\u0014\u0010\u0007\u001a\u00020\u00068\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b\u0007\u0010.R\u001c\u00100\u001a\n\u0012\u0006\u0012\u0004\u0018\u00010\u00110/8\u0002X\u0082\u0004¢\u0006\u0006\n\u0004\b0\u00101R\u001a\u00105\u001a\b\u0012\u0004\u0012\u00020\u0011028VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b3\u00104¨\u00067"}, d2 = {"Lcom/adif/elcanomovil/notifications/DefaultNotificationProvider;", "Lcom/adif/elcanomovil/notifications/NotificationProvider;", "Landroid/content/Context;", "context", "Lcom/adif/elcanomovil/notifications/NotificationPayloadHandler;", "notificationPayloadHandler", "Lcom/adif/elcanomovil/commonNavGraph/navigation/NavigationIntents;", "navigationIntents", "<init>", "(Landroid/content/Context;Lcom/adif/elcanomovil/notifications/NotificationPayloadHandler;Lcom/adif/elcanomovil/commonNavGraph/navigation/NavigationIntents;)V", "Landroid/os/Bundle;", "message", "Lcom/adif/elcanomovil/lifecycle/AppStatus;", "statusApp", "", "logicNotification", "(Landroid/os/Bundle;Lcom/adif/elcanomovil/lifecycle/AppStatus;)V", "Lcom/adif/elcanomovil/domain/entities/notifications/NotificationPayload;", "notificationPayload", "pushForegroundNotification", "(Lcom/adif/elcanomovil/domain/entities/notifications/NotificationPayload;)V", "generateNotification", "", "channel", "channelID", "(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/adif/elcanomovil/domain/entities/notifications/NotificationPayload;)V", "Landroid/app/PendingIntent;", "buildPendingIntentFromNavigation", "(Lcom/adif/elcanomovil/domain/entities/notifications/NotificationPayload;)Landroid/app/PendingIntent;", BaseGmsClient.KEY_PENDING_INTENT, "channelGroup", "Landroid/app/Notification;", "buildNotification", "(Landroid/app/PendingIntent;Ljava/lang/String;Ljava/lang/String;)Landroid/app/Notification;", "buildNotificationButton", "", "getUniqueId", "()I", AppMeasurementSdk.ConditionalUserProperty.NAME, "LC/u;", "buildGroupNotification", "(Landroid/content/Context;Ljava/lang/String;)LC/u;", "handleNotification", "(Landroid/os/Bundle;)V", "Landroid/content/Context;", "Lcom/adif/elcanomovil/notifications/NotificationPayloadHandler;", "Lcom/adif/elcanomovil/commonNavGraph/navigation/NavigationIntents;", "Lkotlinx/coroutines/flow/MutableStateFlow;", "notificationsCreator", "Lkotlinx/coroutines/flow/MutableStateFlow;", "Lkotlinx/coroutines/flow/Flow;", "getNotifications", "()Lkotlinx/coroutines/flow/Flow;", "notifications", "Companion", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public final class DefaultNotificationProvider implements NotificationProvider {
|
||||
private static final String CHANNEL_DESCRIPTION = "Adif App";
|
||||
private static final String CHANNEL_GROUP_ADIF = "Adif";
|
||||
private static final String CHANNEL_GROUP_AVISA = "Avisa";
|
||||
private static final String CHANNEL_NAME = "Channel_adif";
|
||||
private static final String NOTIFICATION_JSON_AVISA_MESSAGE_TYPE = "300";
|
||||
private final Context context;
|
||||
private final NavigationIntents navigationIntents;
|
||||
private final NotificationPayloadHandler notificationPayloadHandler;
|
||||
private final MutableStateFlow<NotificationPayload> notificationsCreator;
|
||||
|
||||
@Metadata(k = 3, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public /* synthetic */ class WhenMappings {
|
||||
public static final /* synthetic */ int[] $EnumSwitchMapping$0;
|
||||
|
||||
static {
|
||||
int[] iArr = new int[AppStatus.values().length];
|
||||
try {
|
||||
iArr[AppStatus.ON_START.ordinal()] = 1;
|
||||
} catch (NoSuchFieldError unused) {
|
||||
}
|
||||
$EnumSwitchMapping$0 = iArr;
|
||||
}
|
||||
}
|
||||
|
||||
@Inject
|
||||
public DefaultNotificationProvider(@ApplicationContext Context context, NotificationPayloadHandler notificationPayloadHandler, NavigationIntents navigationIntents) {
|
||||
Intrinsics.checkNotNullParameter(context, "context");
|
||||
Intrinsics.checkNotNullParameter(notificationPayloadHandler, "notificationPayloadHandler");
|
||||
Intrinsics.checkNotNullParameter(navigationIntents, "navigationIntents");
|
||||
this.context = context;
|
||||
this.notificationPayloadHandler = notificationPayloadHandler;
|
||||
this.navigationIntents = navigationIntents;
|
||||
this.notificationsCreator = StateFlowKt.MutableStateFlow(null);
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
/* JADX WARN: Type inference failed for: r3v8, types: [C.s, java.lang.Object, C.v] */
|
||||
private final u buildGroupNotification(Context context, String name) {
|
||||
u uVar = new u(context, context.getPackageName() + '-' + name);
|
||||
uVar.f265u.icon = R.drawable.ic_adif_logo_simple;
|
||||
uVar.f252e = u.b(name);
|
||||
uVar.f253f = u.b(context.getString(R.string.group_notificatiosen_for, name));
|
||||
?? obj = new Object();
|
||||
obj.f247b = u.b(context.getString(R.string.group_notificatiosen_for, name));
|
||||
uVar.e(obj);
|
||||
uVar.c(true);
|
||||
uVar.f259n = true;
|
||||
uVar.f258m = name;
|
||||
return uVar;
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
/* JADX WARN: Type inference failed for: r3v6, types: [C.s, java.lang.Object, C.v] */
|
||||
private final Notification buildNotification(PendingIntent pendingIntent, String message, String channelGroup) {
|
||||
u uVar = new u(this.context, this.context.getPackageName() + '-' + channelGroup);
|
||||
uVar.f265u.icon = R.drawable.ic_adif_logo_simple;
|
||||
uVar.f252e = u.b(this.context.getString(R.string.not_title));
|
||||
uVar.f253f = u.b(message);
|
||||
uVar.c(true);
|
||||
uVar.f258m = channelGroup;
|
||||
?? obj = new Object();
|
||||
obj.f247b = u.b(message);
|
||||
uVar.e(obj);
|
||||
uVar.f254g = pendingIntent;
|
||||
uVar.f255j = 2;
|
||||
uVar.d(-1);
|
||||
Notification a2 = uVar.a();
|
||||
Intrinsics.checkNotNullExpressionValue(a2, "build(...)");
|
||||
return a2;
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
/* JADX WARN: Type inference failed for: r3v5, types: [C.s, java.lang.Object, C.v] */
|
||||
private final Notification buildNotificationButton(PendingIntent pendingIntent, String message, String channelGroup) {
|
||||
u uVar = new u(this.context, this.context.getPackageName() + '-' + channelGroup);
|
||||
uVar.f265u.icon = R.drawable.ic_adif_logo_simple;
|
||||
uVar.f252e = u.b(this.context.getString(R.string.not_title));
|
||||
uVar.f253f = u.b(message);
|
||||
uVar.f258m = channelGroup;
|
||||
?? obj = new Object();
|
||||
obj.f247b = u.b(message);
|
||||
uVar.e(obj);
|
||||
uVar.c(true);
|
||||
uVar.f254g = pendingIntent;
|
||||
uVar.f255j = 2;
|
||||
uVar.d(-1);
|
||||
Notification a2 = uVar.a();
|
||||
Intrinsics.checkNotNullExpressionValue(a2, "build(...)");
|
||||
return a2;
|
||||
}
|
||||
|
||||
private final PendingIntent buildPendingIntentFromNavigation(NotificationPayload notificationPayload) {
|
||||
if (notificationPayload instanceof NotificationPayload.Avisa) {
|
||||
return this.navigationIntents.createOpenAvisaViewPendingIntent(0, ((NotificationPayload.Avisa) notificationPayload).getIncidenceId());
|
||||
}
|
||||
if (notificationPayload instanceof NotificationPayload.Journey) {
|
||||
NotificationPayload.Journey journey = (NotificationPayload.Journey) notificationPayload;
|
||||
return this.navigationIntents.createOpenRoutesViewPendingIntent(0, journey.getOrigin(), journey.getDestination(), journey.getIsCercanias());
|
||||
}
|
||||
if (notificationPayload instanceof NotificationPayload.Train) {
|
||||
return this.navigationIntents.createOpenTrainViewPendingIntent(0, ((NotificationPayload.Train) notificationPayload).getCommercialNumber());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private final void generateNotification(NotificationPayload notificationPayload) {
|
||||
if (notificationPayload instanceof NotificationPayload.Avisa) {
|
||||
generateNotification(notificationPayload.getMessage(), CHANNEL_GROUP_AVISA, "300", notificationPayload);
|
||||
} else if (notificationPayload instanceof NotificationPayload.Journey) {
|
||||
generateNotification(notificationPayload.getMessage(), CHANNEL_GROUP_ADIF, ((NotificationPayload.Journey) notificationPayload).getType(), notificationPayload);
|
||||
} else if (notificationPayload instanceof NotificationPayload.Train) {
|
||||
generateNotification(notificationPayload.getMessage(), CHANNEL_GROUP_ADIF, ((NotificationPayload.Train) notificationPayload).getType(), notificationPayload);
|
||||
}
|
||||
}
|
||||
|
||||
private final int getUniqueId() {
|
||||
return (int) (System.currentTimeMillis() % 10000);
|
||||
}
|
||||
|
||||
private final void logicNotification(Bundle message, AppStatus statusApp) {
|
||||
NotificationPayload handlePayload = this.notificationPayloadHandler.handlePayload(message);
|
||||
if (handlePayload == null) {
|
||||
return;
|
||||
}
|
||||
if (WhenMappings.$EnumSwitchMapping$0[statusApp.ordinal()] == 1) {
|
||||
pushForegroundNotification(handlePayload);
|
||||
} else {
|
||||
generateNotification(handlePayload);
|
||||
}
|
||||
}
|
||||
|
||||
private final void pushForegroundNotification(NotificationPayload notificationPayload) {
|
||||
this.notificationsCreator.setValue(notificationPayload);
|
||||
}
|
||||
|
||||
@Override // com.adif.elcanomovil.notifications.NotificationProvider
|
||||
public Flow<NotificationPayload> getNotifications() {
|
||||
return FlowKt.filterNotNull(this.notificationsCreator);
|
||||
}
|
||||
|
||||
@Override // com.adif.elcanomovil.notifications.NotificationProvider
|
||||
public void handleNotification(Bundle message) {
|
||||
AppStatus appStatus;
|
||||
Intrinsics.checkNotNullParameter(message, "message");
|
||||
Context applicationContext = this.context.getApplicationContext();
|
||||
ElcanoApplication elcanoApplication = applicationContext instanceof ElcanoApplication ? (ElcanoApplication) applicationContext : null;
|
||||
if (elcanoApplication == null || (appStatus = elcanoApplication.getStatusApp()) == null) {
|
||||
appStatus = AppStatus.ON_STOP;
|
||||
}
|
||||
logicNotification(message, appStatus);
|
||||
}
|
||||
|
||||
private final void generateNotification(String message, String channel, String channelID, NotificationPayload notificationPayload) {
|
||||
Notification buildNotificationButton;
|
||||
u buildGroupNotification = buildGroupNotification(this.context, channel);
|
||||
PendingIntent buildPendingIntentFromNavigation = buildPendingIntentFromNavigation(notificationPayload);
|
||||
if (Intrinsics.areEqual(channel, CHANNEL_GROUP_AVISA)) {
|
||||
Intrinsics.checkNotNull(buildPendingIntentFromNavigation);
|
||||
buildNotificationButton = buildNotification(buildPendingIntentFromNavigation, message, channel);
|
||||
} else {
|
||||
Intrinsics.checkNotNull(buildPendingIntentFromNavigation);
|
||||
buildNotificationButton = buildNotificationButton(buildPendingIntentFromNavigation, message, channel);
|
||||
}
|
||||
String str = this.context.getPackageName() + '-' + channel;
|
||||
Object systemService = this.context.getSystemService("notification");
|
||||
Intrinsics.checkNotNull(systemService, "null cannot be cast to non-null type android.app.NotificationManager");
|
||||
NotificationManager notificationManager = (NotificationManager) systemService;
|
||||
NotificationChannel notificationChannel = new NotificationChannel(str, CHANNEL_NAME, 4);
|
||||
notificationChannel.setDescription(CHANNEL_DESCRIPTION);
|
||||
AudioAttributes build = new AudioAttributes.Builder().setContentType(4).setUsage(5).build();
|
||||
notificationChannel.enableLights(true);
|
||||
notificationChannel.enableVibration(true);
|
||||
notificationChannel.setSound(Settings.System.DEFAULT_NOTIFICATION_URI, build);
|
||||
NotificationManager notificationManager2 = (NotificationManager) this.context.getSystemService(NotificationManager.class);
|
||||
Intrinsics.checkNotNull(notificationManager2);
|
||||
notificationManager2.createNotificationChannel(notificationChannel);
|
||||
notificationManager.notify(Integer.parseInt(channelID), buildGroupNotification.a());
|
||||
notificationManager.notify(getUniqueId(), buildNotificationButton);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.adif.elcanomovil.notifications;
|
||||
|
||||
import android.content.Context;
|
||||
import com.adif.elcanomovil.commonNavGraph.navigation.NavigationIntents;
|
||||
import dagger.internal.DaggerGenerated;
|
||||
import dagger.internal.Factory;
|
||||
import dagger.internal.QualifierMetadata;
|
||||
import dagger.internal.ScopeMetadata;
|
||||
import javax.inject.Provider;
|
||||
|
||||
@ScopeMetadata
|
||||
@DaggerGenerated
|
||||
@QualifierMetadata({"dagger.hilt.android.qualifiers.ApplicationContext"})
|
||||
/* loaded from: classes.dex */
|
||||
public final class DefaultNotificationProvider_Factory implements Factory<DefaultNotificationProvider> {
|
||||
private final Provider<Context> contextProvider;
|
||||
private final Provider<NavigationIntents> navigationIntentsProvider;
|
||||
private final Provider<NotificationPayloadHandler> notificationPayloadHandlerProvider;
|
||||
|
||||
public DefaultNotificationProvider_Factory(Provider<Context> provider, Provider<NotificationPayloadHandler> provider2, Provider<NavigationIntents> provider3) {
|
||||
this.contextProvider = provider;
|
||||
this.notificationPayloadHandlerProvider = provider2;
|
||||
this.navigationIntentsProvider = provider3;
|
||||
}
|
||||
|
||||
public static DefaultNotificationProvider_Factory create(Provider<Context> provider, Provider<NotificationPayloadHandler> provider2, Provider<NavigationIntents> provider3) {
|
||||
return new DefaultNotificationProvider_Factory(provider, provider2, provider3);
|
||||
}
|
||||
|
||||
public static DefaultNotificationProvider newInstance(Context context, NotificationPayloadHandler notificationPayloadHandler, NavigationIntents navigationIntents) {
|
||||
return new DefaultNotificationProvider(context, notificationPayloadHandler, navigationIntents);
|
||||
}
|
||||
|
||||
@Override // javax.inject.Provider
|
||||
public DefaultNotificationProvider get() {
|
||||
return newInstance(this.contextProvider.get(), this.notificationPayloadHandlerProvider.get(), this.navigationIntentsProvider.get());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.adif.elcanomovil.notifications;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.adif.elcanomovil.domain.entities.notifications.NotificationPayload;
|
||||
import kotlin.Metadata;
|
||||
|
||||
@Metadata(d1 = {"\u0000\u0016\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\bf\u0018\u00002\u00020\u0001J\u0012\u0010\u0002\u001a\u0004\u0018\u00010\u00032\u0006\u0010\u0004\u001a\u00020\u0005H&¨\u0006\u0006"}, d2 = {"Lcom/adif/elcanomovil/notifications/NotificationPayloadHandler;", "", "handlePayload", "Lcom/adif/elcanomovil/domain/entities/notifications/NotificationPayload;", "bundle", "Landroid/os/Bundle;", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public interface NotificationPayloadHandler {
|
||||
NotificationPayload handlePayload(Bundle bundle);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.adif.elcanomovil.notifications;
|
||||
|
||||
import android.os.Bundle;
|
||||
import com.adif.elcanomovil.domain.entities.notifications.NotificationPayload;
|
||||
import kotlin.Metadata;
|
||||
import kotlinx.coroutines.flow.Flow;
|
||||
|
||||
@Metadata(d1 = {"\u0000\"\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0000\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\bf\u0018\u00002\u00020\u0001J\u0010\u0010\u0007\u001a\u00020\b2\u0006\u0010\t\u001a\u00020\nH&R\u0018\u0010\u0002\u001a\b\u0012\u0004\u0012\u00020\u00040\u0003X¦\u0004¢\u0006\u0006\u001a\u0004\b\u0005\u0010\u0006¨\u0006\u000b"}, d2 = {"Lcom/adif/elcanomovil/notifications/NotificationProvider;", "", "notifications", "Lkotlinx/coroutines/flow/Flow;", "Lcom/adif/elcanomovil/domain/entities/notifications/NotificationPayload;", "getNotifications", "()Lkotlinx/coroutines/flow/Flow;", "handleNotification", "", "message", "Landroid/os/Bundle;", "app_proNon_corporateRelease"}, k = 1, mv = {1, 9, 0}, xi = 48)
|
||||
/* loaded from: classes.dex */
|
||||
public interface NotificationProvider {
|
||||
Flow<NotificationPayload> getNotifications();
|
||||
|
||||
void handleNotification(Bundle message);
|
||||
}
|
||||
Reference in New Issue
Block a user