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,96 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
|
||||
|
||||
@SafeParcelable.Class(creator = "DynamicLinkDataCreator")
|
||||
/* loaded from: classes3.dex */
|
||||
public class DynamicLinkData extends AbstractSafeParcelable {
|
||||
public static final Parcelable.Creator<DynamicLinkData> CREATOR = new DynamicLinkDataCreator();
|
||||
|
||||
@SafeParcelable.Field(getter = "getClickTimestamp", id = 4)
|
||||
private long clickTimestamp;
|
||||
|
||||
@SafeParcelable.Field(getter = "getDeepLink", id = 2)
|
||||
private String deepLink;
|
||||
|
||||
@SafeParcelable.Field(getter = "getDynamicLink", id = 1)
|
||||
private String dynamicLink;
|
||||
|
||||
@SafeParcelable.Field(getter = "getExtensionBundle", id = 5)
|
||||
private Bundle extensionBundle;
|
||||
|
||||
@SafeParcelable.Field(getter = "getMinVersion", id = 3)
|
||||
private int minVersion;
|
||||
|
||||
@SafeParcelable.Field(getter = "getRedirectUrl", id = 6)
|
||||
private Uri redirectUrl;
|
||||
|
||||
@SafeParcelable.Constructor
|
||||
public DynamicLinkData(@SafeParcelable.Param(id = 1) String str, @SafeParcelable.Param(id = 2) String str2, @SafeParcelable.Param(id = 3) int i, @SafeParcelable.Param(id = 4) long j4, @SafeParcelable.Param(id = 5) Bundle bundle, @SafeParcelable.Param(id = 6) Uri uri) {
|
||||
this.dynamicLink = str;
|
||||
this.deepLink = str2;
|
||||
this.minVersion = i;
|
||||
this.clickTimestamp = j4;
|
||||
this.extensionBundle = bundle;
|
||||
this.redirectUrl = uri;
|
||||
}
|
||||
|
||||
public long getClickTimestamp() {
|
||||
return this.clickTimestamp;
|
||||
}
|
||||
|
||||
public String getDeepLink() {
|
||||
return this.deepLink;
|
||||
}
|
||||
|
||||
public String getDynamicLink() {
|
||||
return this.dynamicLink;
|
||||
}
|
||||
|
||||
public Bundle getExtensionBundle() {
|
||||
Bundle bundle = this.extensionBundle;
|
||||
return bundle == null ? new Bundle() : bundle;
|
||||
}
|
||||
|
||||
public int getMinVersion() {
|
||||
return this.minVersion;
|
||||
}
|
||||
|
||||
public Uri getRedirectUrl() {
|
||||
return this.redirectUrl;
|
||||
}
|
||||
|
||||
public void setClickTimestamp(long j4) {
|
||||
this.clickTimestamp = j4;
|
||||
}
|
||||
|
||||
public void setDeepLink(String str) {
|
||||
this.deepLink = str;
|
||||
}
|
||||
|
||||
public void setDynamicLink(String str) {
|
||||
this.dynamicLink = str;
|
||||
}
|
||||
|
||||
public void setExtensionData(Bundle bundle) {
|
||||
this.extensionBundle = bundle;
|
||||
}
|
||||
|
||||
public void setMinVersion(int i) {
|
||||
this.minVersion = i;
|
||||
}
|
||||
|
||||
public void setRedirectUrl(Uri uri) {
|
||||
this.redirectUrl = uri;
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
DynamicLinkDataCreator.writeToParcel(this, parcel, i);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class DynamicLinkDataCreator implements Parcelable.Creator<DynamicLinkData> {
|
||||
public static final int CONTENT_DESCRIPTION = 0;
|
||||
|
||||
public static void writeToParcel(DynamicLinkData dynamicLinkData, Parcel parcel, int i) {
|
||||
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
|
||||
SafeParcelWriter.writeString(parcel, 1, dynamicLinkData.getDynamicLink(), false);
|
||||
SafeParcelWriter.writeString(parcel, 2, dynamicLinkData.getDeepLink(), false);
|
||||
SafeParcelWriter.writeInt(parcel, 3, dynamicLinkData.getMinVersion());
|
||||
SafeParcelWriter.writeLong(parcel, 4, dynamicLinkData.getClickTimestamp());
|
||||
SafeParcelWriter.writeBundle(parcel, 5, dynamicLinkData.getExtensionBundle(), false);
|
||||
SafeParcelWriter.writeParcelable(parcel, 6, dynamicLinkData.getRedirectUrl(), i, false);
|
||||
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
|
||||
}
|
||||
|
||||
/* JADX WARN: Can't rename method to resolve collision */
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public DynamicLinkData createFromParcel(Parcel parcel) {
|
||||
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
|
||||
String str = null;
|
||||
String str2 = null;
|
||||
Bundle bundle = null;
|
||||
Uri uri = null;
|
||||
int i = 0;
|
||||
long j4 = 0;
|
||||
while (parcel.dataPosition() < validateObjectHeader) {
|
||||
int readHeader = SafeParcelReader.readHeader(parcel);
|
||||
switch (SafeParcelReader.getFieldId(readHeader)) {
|
||||
case 1:
|
||||
str = SafeParcelReader.createString(parcel, readHeader);
|
||||
break;
|
||||
case 2:
|
||||
str2 = SafeParcelReader.createString(parcel, readHeader);
|
||||
break;
|
||||
case 3:
|
||||
i = SafeParcelReader.readInt(parcel, readHeader);
|
||||
break;
|
||||
case 4:
|
||||
j4 = SafeParcelReader.readLong(parcel, readHeader);
|
||||
break;
|
||||
case 5:
|
||||
bundle = SafeParcelReader.createBundle(parcel, readHeader);
|
||||
break;
|
||||
case 6:
|
||||
uri = (Uri) SafeParcelReader.createParcelable(parcel, readHeader, Uri.CREATOR);
|
||||
break;
|
||||
default:
|
||||
SafeParcelReader.skipUnknownField(parcel, readHeader);
|
||||
break;
|
||||
}
|
||||
}
|
||||
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
|
||||
return new DynamicLinkData(str, str2, i, j4, bundle, uri);
|
||||
}
|
||||
|
||||
/* JADX WARN: Can't rename method to resolve collision */
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public DynamicLinkData[] newArray(int i) {
|
||||
return new DynamicLinkData[i];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class DynamicLinkUTMParams {
|
||||
public static final String KEY_CAMPAIGN = "campaign";
|
||||
public static final String KEY_CAMPAIGN_BUNDLE = "_cmp";
|
||||
public static final String KEY_MEDIUM = "medium";
|
||||
public static final String KEY_SCION_DATA_BUNDLE = "scionData";
|
||||
public static final String KEY_SOURCE = "source";
|
||||
public static final String KEY_UTM_CAMPAIGN = "utm_campaign";
|
||||
public static final String KEY_UTM_MEDIUM = "utm_medium";
|
||||
public static final String KEY_UTM_SOURCE = "utm_source";
|
||||
private final DynamicLinkData dynamicLinkData;
|
||||
private final Bundle utmParamsBundle;
|
||||
|
||||
public DynamicLinkUTMParams(DynamicLinkData dynamicLinkData) {
|
||||
this.dynamicLinkData = dynamicLinkData;
|
||||
this.utmParamsBundle = initUTMParamsBundle(dynamicLinkData);
|
||||
}
|
||||
|
||||
private static void checkAndAdd(String str, String str2, Bundle bundle, Bundle bundle2) {
|
||||
String string = bundle.getString(str);
|
||||
if (TextUtils.isEmpty(string)) {
|
||||
return;
|
||||
}
|
||||
bundle2.putString(str2, string);
|
||||
}
|
||||
|
||||
private static Bundle initUTMParamsBundle(DynamicLinkData dynamicLinkData) {
|
||||
Bundle bundle;
|
||||
Bundle bundle2;
|
||||
Bundle bundle3 = new Bundle();
|
||||
if (dynamicLinkData != null && dynamicLinkData.getExtensionBundle() != null && (bundle = dynamicLinkData.getExtensionBundle().getBundle("scionData")) != null && (bundle2 = bundle.getBundle("_cmp")) != null) {
|
||||
checkAndAdd("medium", "utm_medium", bundle2, bundle3);
|
||||
checkAndAdd("source", "utm_source", bundle2, bundle3);
|
||||
checkAndAdd("campaign", "utm_campaign", bundle2, bundle3);
|
||||
}
|
||||
return bundle3;
|
||||
}
|
||||
|
||||
public Bundle asBundle() {
|
||||
return new Bundle(this.utmParamsBundle);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Looper;
|
||||
import com.google.android.gms.common.api.Api;
|
||||
import com.google.android.gms.common.api.GoogleApi;
|
||||
import com.google.android.gms.common.api.GoogleApiClient;
|
||||
import com.google.android.gms.common.internal.ClientSettings;
|
||||
import com.google.android.gms.common.util.VisibleForTesting;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class DynamicLinksApi extends GoogleApi<Api.ApiOptions.NoOptions> {
|
||||
static final Api<Api.ApiOptions.NoOptions> API;
|
||||
private static final Api.AbstractClientBuilder<DynamicLinksClient, Api.ApiOptions.NoOptions> CLIENT_BUILDER;
|
||||
private static final Api.ClientKey<DynamicLinksClient> CLIENT_KEY;
|
||||
|
||||
static {
|
||||
Api.ClientKey<DynamicLinksClient> clientKey = new Api.ClientKey<>();
|
||||
CLIENT_KEY = clientKey;
|
||||
Api.AbstractClientBuilder<DynamicLinksClient, Api.ApiOptions.NoOptions> abstractClientBuilder = new Api.AbstractClientBuilder<DynamicLinksClient, Api.ApiOptions.NoOptions>() { // from class: com.google.firebase.dynamiclinks.internal.DynamicLinksApi.1
|
||||
@Override // com.google.android.gms.common.api.Api.AbstractClientBuilder
|
||||
public DynamicLinksClient buildClient(Context context, Looper looper, ClientSettings clientSettings, Api.ApiOptions.NoOptions noOptions, GoogleApiClient.ConnectionCallbacks connectionCallbacks, GoogleApiClient.OnConnectionFailedListener onConnectionFailedListener) {
|
||||
return new DynamicLinksClient(context, looper, clientSettings, connectionCallbacks, onConnectionFailedListener);
|
||||
}
|
||||
};
|
||||
CLIENT_BUILDER = abstractClientBuilder;
|
||||
API = new Api<>("DynamicLinks.API", abstractClientBuilder, clientKey);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public DynamicLinksApi(Context context) {
|
||||
super(context, API, Api.ApiOptions.NO_OPTIONS, GoogleApi.Settings.DEFAULT_SETTINGS);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
import android.os.Looper;
|
||||
import android.os.RemoteException;
|
||||
import com.google.android.gms.common.api.GoogleApiClient;
|
||||
import com.google.android.gms.common.internal.ClientSettings;
|
||||
import com.google.android.gms.common.internal.GmsClient;
|
||||
import com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks;
|
||||
import com.google.firebase.dynamiclinks.internal.IDynamicLinksService;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class DynamicLinksClient extends GmsClient<IDynamicLinksService> {
|
||||
public static final String ACTION_START_SERVICE = "com.google.firebase.dynamiclinks.service.START";
|
||||
private static final int DYNAMIC_LINKS_API_VALUE = 131;
|
||||
public static final String SERVICE_DESCRIPTOR = "com.google.firebase.dynamiclinks.internal.IDynamicLinksService";
|
||||
private static final int V17 = 12451000;
|
||||
|
||||
public DynamicLinksClient(Context context, Looper looper, ClientSettings clientSettings, GoogleApiClient.ConnectionCallbacks connectionCallbacks, GoogleApiClient.OnConnectionFailedListener onConnectionFailedListener) {
|
||||
super(context, looper, DYNAMIC_LINKS_API_VALUE, clientSettings, connectionCallbacks, onConnectionFailedListener);
|
||||
}
|
||||
|
||||
public void createShortDynamicLink(IDynamicLinksCallbacks.Stub stub, Bundle bundle) {
|
||||
try {
|
||||
((IDynamicLinksService) getService()).createShortDynamicLink(stub, bundle);
|
||||
} catch (RemoteException unused) {
|
||||
}
|
||||
}
|
||||
|
||||
public void getDynamicLink(IDynamicLinksCallbacks.Stub stub, String str) {
|
||||
try {
|
||||
((IDynamicLinksService) getService()).getDynamicLink(stub, str);
|
||||
} catch (RemoteException unused) {
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient, com.google.android.gms.common.api.Api.Client
|
||||
public int getMinApkVersion() {
|
||||
return 12451000;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public String getServiceDescriptor() {
|
||||
return SERVICE_DESCRIPTOR;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public String getStartServiceAction() {
|
||||
return ACTION_START_SERVICE;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public boolean usesClientTelemetry() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public IDynamicLinksService createServiceInterface(IBinder iBinder) {
|
||||
return IDynamicLinksService.Stub.asInterface(iBinder);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import M2.a;
|
||||
import androidx.annotation.Keep;
|
||||
import com.google.android.gms.common.annotation.KeepForSdk;
|
||||
import com.google.firebase.FirebaseApp;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import com.google.firebase.components.Component;
|
||||
import com.google.firebase.components.ComponentContainer;
|
||||
import com.google.firebase.components.ComponentRegistrar;
|
||||
import com.google.firebase.components.Dependency;
|
||||
import com.google.firebase.dynamiclinks.BuildConfig;
|
||||
import com.google.firebase.dynamiclinks.FirebaseDynamicLinks;
|
||||
import com.google.firebase.platforminfo.LibraryVersionComponent;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
@Keep
|
||||
@KeepForSdk
|
||||
/* loaded from: classes3.dex */
|
||||
public final class FirebaseDynamicLinkRegistrar implements ComponentRegistrar {
|
||||
private static final String LIBRARY_NAME = "fire-dl";
|
||||
|
||||
public static /* synthetic */ FirebaseDynamicLinks lambda$getComponents$0(ComponentContainer componentContainer) {
|
||||
return new FirebaseDynamicLinksImpl((FirebaseApp) componentContainer.get(FirebaseApp.class), componentContainer.getProvider(AnalyticsConnector.class));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.components.ComponentRegistrar
|
||||
@Keep
|
||||
public List<Component<?>> getComponents() {
|
||||
return Arrays.asList(Component.builder(FirebaseDynamicLinks.class).name(LIBRARY_NAME).add(Dependency.required((Class<?>) FirebaseApp.class)).add(Dependency.optionalProvider((Class<?>) AnalyticsConnector.class)).factory(new a(6)).build(), LibraryVersionComponent.create(LIBRARY_NAME, BuildConfig.VERSION_NAME));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,198 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.os.RemoteException;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
import com.google.android.gms.common.api.Api;
|
||||
import com.google.android.gms.common.api.GoogleApi;
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.internal.TaskApiCall;
|
||||
import com.google.android.gms.common.api.internal.TaskUtil;
|
||||
import com.google.android.gms.common.internal.Preconditions;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelableSerializer;
|
||||
import com.google.android.gms.common.util.VisibleForTesting;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
import com.google.android.gms.tasks.Tasks;
|
||||
import com.google.firebase.FirebaseApp;
|
||||
import com.google.firebase.analytics.connector.AnalyticsConnector;
|
||||
import com.google.firebase.dynamiclinks.DynamicLink;
|
||||
import com.google.firebase.dynamiclinks.FirebaseDynamicLinks;
|
||||
import com.google.firebase.dynamiclinks.PendingDynamicLinkData;
|
||||
import com.google.firebase.dynamiclinks.ShortDynamicLink;
|
||||
import com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks;
|
||||
import com.google.firebase.inject.Provider;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class FirebaseDynamicLinksImpl extends FirebaseDynamicLinks {
|
||||
private static final String ANALYTICS_FDL_ORIGIN = "fdl";
|
||||
public static final String EXTRA_DYNAMIC_LINK_DATA = "com.google.firebase.dynamiclinks.DYNAMIC_LINK_DATA";
|
||||
public static final String KEY_SCION_DATA = "scionData";
|
||||
private static final String TAG = "FDL";
|
||||
private final Provider<AnalyticsConnector> analytics;
|
||||
private final FirebaseApp firebaseApp;
|
||||
private final GoogleApi<Api.ApiOptions.NoOptions> googleApi;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class AbstractDynamicLinkCallbacks extends IDynamicLinksCallbacks.Stub {
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
|
||||
public void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
|
||||
public void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class CreateShortDynamicLinkCallbacks extends AbstractDynamicLinkCallbacks {
|
||||
private final TaskCompletionSource<ShortDynamicLink> completionSource;
|
||||
|
||||
public CreateShortDynamicLinkCallbacks(TaskCompletionSource<ShortDynamicLink> taskCompletionSource) {
|
||||
this.completionSource = taskCompletionSource;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.FirebaseDynamicLinksImpl.AbstractDynamicLinkCallbacks, com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
|
||||
public void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) {
|
||||
TaskUtil.setResultOrApiException(status, shortDynamicLinkImpl, this.completionSource);
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class CreateShortDynamicLinkImpl extends TaskApiCall<DynamicLinksClient, ShortDynamicLink> {
|
||||
private final Bundle builderParameters;
|
||||
|
||||
public CreateShortDynamicLinkImpl(Bundle bundle) {
|
||||
super(null, false, FirebaseDynamicLinksImplConstants.CREATE_SHORT_DYNAMIC_LINK_METHOD_KEY);
|
||||
this.builderParameters = bundle;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.TaskApiCall
|
||||
public void doExecute(DynamicLinksClient dynamicLinksClient, TaskCompletionSource<ShortDynamicLink> taskCompletionSource) throws RemoteException {
|
||||
dynamicLinksClient.createShortDynamicLink(new CreateShortDynamicLinkCallbacks(taskCompletionSource), this.builderParameters);
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class DynamicLinkCallbacks extends AbstractDynamicLinkCallbacks {
|
||||
private final Provider<AnalyticsConnector> analytics;
|
||||
private final TaskCompletionSource<PendingDynamicLinkData> completionSource;
|
||||
|
||||
public DynamicLinkCallbacks(Provider<AnalyticsConnector> provider, TaskCompletionSource<PendingDynamicLinkData> taskCompletionSource) {
|
||||
this.analytics = provider;
|
||||
this.completionSource = taskCompletionSource;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.FirebaseDynamicLinksImpl.AbstractDynamicLinkCallbacks, com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
|
||||
public void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) {
|
||||
Bundle bundle;
|
||||
AnalyticsConnector analyticsConnector;
|
||||
TaskUtil.setResultOrApiException(status, dynamicLinkData == null ? null : new PendingDynamicLinkData(dynamicLinkData), this.completionSource);
|
||||
if (dynamicLinkData == null || (bundle = dynamicLinkData.getExtensionBundle().getBundle("scionData")) == null || bundle.keySet() == null || (analyticsConnector = this.analytics.get()) == null) {
|
||||
return;
|
||||
}
|
||||
for (String str : bundle.keySet()) {
|
||||
analyticsConnector.logEvent(FirebaseDynamicLinksImpl.ANALYTICS_FDL_ORIGIN, str, bundle.getBundle(str));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static final class GetDynamicLinkImpl extends TaskApiCall<DynamicLinksClient, PendingDynamicLinkData> {
|
||||
private final Provider<AnalyticsConnector> analytics;
|
||||
private final String dynamicLink;
|
||||
|
||||
public GetDynamicLinkImpl(Provider<AnalyticsConnector> provider, String str) {
|
||||
super(null, false, FirebaseDynamicLinksImplConstants.GET_DYNAMIC_LINK_METHOD_KEY);
|
||||
this.dynamicLink = str;
|
||||
this.analytics = provider;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.TaskApiCall
|
||||
public void doExecute(DynamicLinksClient dynamicLinksClient, TaskCompletionSource<PendingDynamicLinkData> taskCompletionSource) throws RemoteException {
|
||||
dynamicLinksClient.getDynamicLink(new DynamicLinkCallbacks(this.analytics, taskCompletionSource), this.dynamicLink);
|
||||
}
|
||||
}
|
||||
|
||||
public FirebaseDynamicLinksImpl(FirebaseApp firebaseApp, Provider<AnalyticsConnector> provider) {
|
||||
this(new DynamicLinksApi(firebaseApp.getApplicationContext()), firebaseApp, provider);
|
||||
}
|
||||
|
||||
public static void verifyDomainUriPrefix(Bundle bundle) {
|
||||
Uri uri = (Uri) bundle.getParcelable(DynamicLink.Builder.KEY_DYNAMIC_LINK);
|
||||
if (TextUtils.isEmpty(bundle.getString(DynamicLink.Builder.KEY_DOMAIN_URI_PREFIX)) && uri == null) {
|
||||
throw new IllegalArgumentException("FDL domain is missing. Set with setDomainUriPrefix() or setDynamicLinkDomain().");
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.FirebaseDynamicLinks
|
||||
public DynamicLink.Builder createDynamicLink() {
|
||||
return new DynamicLink.Builder(this);
|
||||
}
|
||||
|
||||
public Task<ShortDynamicLink> createShortDynamicLink(Bundle bundle) {
|
||||
verifyDomainUriPrefix(bundle);
|
||||
return this.googleApi.doWrite(new CreateShortDynamicLinkImpl(bundle));
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.FirebaseDynamicLinks
|
||||
public Task<PendingDynamicLinkData> getDynamicLink(Intent intent) {
|
||||
PendingDynamicLinkData pendingDynamicLinkData;
|
||||
return (intent == null || (pendingDynamicLinkData = getPendingDynamicLinkData(intent)) == null) ? this.googleApi.doWrite(new GetDynamicLinkImpl(this.analytics, intent != null ? intent.getDataString() : null)) : Tasks.forResult(pendingDynamicLinkData);
|
||||
}
|
||||
|
||||
public FirebaseApp getFirebaseApp() {
|
||||
return this.firebaseApp;
|
||||
}
|
||||
|
||||
public PendingDynamicLinkData getPendingDynamicLinkData(Intent intent) {
|
||||
DynamicLinkData dynamicLinkData = (DynamicLinkData) SafeParcelableSerializer.deserializeFromIntentExtra(intent, EXTRA_DYNAMIC_LINK_DATA, DynamicLinkData.CREATOR);
|
||||
if (dynamicLinkData != null) {
|
||||
return new PendingDynamicLinkData(dynamicLinkData);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
public FirebaseDynamicLinksImpl(GoogleApi<Api.ApiOptions.NoOptions> googleApi, FirebaseApp firebaseApp, Provider<AnalyticsConnector> provider) {
|
||||
this.googleApi = googleApi;
|
||||
this.firebaseApp = (FirebaseApp) Preconditions.checkNotNull(firebaseApp);
|
||||
this.analytics = provider;
|
||||
if (provider.get() == null) {
|
||||
Log.w(TAG, "FDL logging failed. Add a dependency for Firebase Analytics to your app to enable logging of Dynamic Link events.");
|
||||
}
|
||||
}
|
||||
|
||||
public static Uri createDynamicLink(Bundle bundle) {
|
||||
verifyDomainUriPrefix(bundle);
|
||||
Uri uri = (Uri) bundle.getParcelable(DynamicLink.Builder.KEY_DYNAMIC_LINK);
|
||||
if (uri != null) {
|
||||
return uri;
|
||||
}
|
||||
Uri.Builder builder = new Uri.Builder();
|
||||
Uri parse = Uri.parse((String) Preconditions.checkNotNull(bundle.getString(DynamicLink.Builder.KEY_DOMAIN_URI_PREFIX)));
|
||||
builder.scheme(parse.getScheme());
|
||||
builder.authority(parse.getAuthority());
|
||||
builder.path(parse.getPath());
|
||||
Bundle bundle2 = bundle.getBundle(DynamicLink.Builder.KEY_DYNAMIC_LINK_PARAMETERS);
|
||||
if (bundle2 != null) {
|
||||
for (String str : bundle2.keySet()) {
|
||||
Object obj = bundle2.get(str);
|
||||
if (obj != null) {
|
||||
builder.appendQueryParameter(str, obj.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
return builder.build();
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.FirebaseDynamicLinks
|
||||
public Task<PendingDynamicLinkData> getDynamicLink(Uri uri) {
|
||||
return this.googleApi.doWrite(new GetDynamicLinkImpl(this.analytics, uri.toString()));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
interface FirebaseDynamicLinksImplConstants {
|
||||
public static final int CREATE_SHORT_DYNAMIC_LINK_METHOD_KEY = 13202;
|
||||
public static final int GET_DYNAMIC_LINK_METHOD_KEY = 13201;
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.os.Binder;
|
||||
import android.os.IBinder;
|
||||
import android.os.IInterface;
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
import com.google.android.gms.common.api.Status;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface IDynamicLinksCallbacks extends IInterface {
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class Default implements IDynamicLinksCallbacks {
|
||||
@Override // android.os.IInterface
|
||||
public IBinder asBinder() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
|
||||
public void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) throws RemoteException {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
|
||||
public void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) throws RemoteException {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static abstract class Stub extends Binder implements IDynamicLinksCallbacks {
|
||||
private static final String DESCRIPTOR = "com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks";
|
||||
static final int TRANSACTION_onCreateShortDynamicLink = 2;
|
||||
static final int TRANSACTION_onGetDynamicLink = 1;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class Proxy implements IDynamicLinksCallbacks {
|
||||
public static IDynamicLinksCallbacks sDefaultImpl;
|
||||
private IBinder mRemote;
|
||||
|
||||
public Proxy(IBinder iBinder) {
|
||||
this.mRemote = iBinder;
|
||||
}
|
||||
|
||||
@Override // android.os.IInterface
|
||||
public IBinder asBinder() {
|
||||
return this.mRemote;
|
||||
}
|
||||
|
||||
public String getInterfaceDescriptor() {
|
||||
return Stub.DESCRIPTOR;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
|
||||
public void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) throws RemoteException {
|
||||
Parcel obtain = Parcel.obtain();
|
||||
try {
|
||||
obtain.writeInterfaceToken(Stub.DESCRIPTOR);
|
||||
if (status != null) {
|
||||
obtain.writeInt(1);
|
||||
status.writeToParcel(obtain, 0);
|
||||
} else {
|
||||
obtain.writeInt(0);
|
||||
}
|
||||
if (shortDynamicLinkImpl != null) {
|
||||
obtain.writeInt(1);
|
||||
shortDynamicLinkImpl.writeToParcel(obtain, 0);
|
||||
} else {
|
||||
obtain.writeInt(0);
|
||||
}
|
||||
if (this.mRemote.transact(2, obtain, null, 1) || Stub.getDefaultImpl() == null) {
|
||||
obtain.recycle();
|
||||
} else {
|
||||
Stub.getDefaultImpl().onCreateShortDynamicLink(status, shortDynamicLinkImpl);
|
||||
obtain.recycle();
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
obtain.recycle();
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks
|
||||
public void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) throws RemoteException {
|
||||
Parcel obtain = Parcel.obtain();
|
||||
try {
|
||||
obtain.writeInterfaceToken(Stub.DESCRIPTOR);
|
||||
if (status != null) {
|
||||
obtain.writeInt(1);
|
||||
status.writeToParcel(obtain, 0);
|
||||
} else {
|
||||
obtain.writeInt(0);
|
||||
}
|
||||
if (dynamicLinkData != null) {
|
||||
obtain.writeInt(1);
|
||||
dynamicLinkData.writeToParcel(obtain, 0);
|
||||
} else {
|
||||
obtain.writeInt(0);
|
||||
}
|
||||
if (this.mRemote.transact(1, obtain, null, 1) || Stub.getDefaultImpl() == null) {
|
||||
obtain.recycle();
|
||||
} else {
|
||||
Stub.getDefaultImpl().onGetDynamicLink(status, dynamicLinkData);
|
||||
obtain.recycle();
|
||||
}
|
||||
} catch (Throwable th) {
|
||||
obtain.recycle();
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Stub() {
|
||||
attachInterface(this, DESCRIPTOR);
|
||||
}
|
||||
|
||||
public static IDynamicLinksCallbacks asInterface(IBinder iBinder) {
|
||||
if (iBinder == null) {
|
||||
return null;
|
||||
}
|
||||
IInterface queryLocalInterface = iBinder.queryLocalInterface(DESCRIPTOR);
|
||||
return (queryLocalInterface == null || !(queryLocalInterface instanceof IDynamicLinksCallbacks)) ? new Proxy(iBinder) : (IDynamicLinksCallbacks) queryLocalInterface;
|
||||
}
|
||||
|
||||
public static IDynamicLinksCallbacks getDefaultImpl() {
|
||||
return Proxy.sDefaultImpl;
|
||||
}
|
||||
|
||||
public static boolean setDefaultImpl(IDynamicLinksCallbacks iDynamicLinksCallbacks) {
|
||||
if (Proxy.sDefaultImpl != null) {
|
||||
throw new IllegalStateException("setDefaultImpl() called twice");
|
||||
}
|
||||
if (iDynamicLinksCallbacks == null) {
|
||||
return false;
|
||||
}
|
||||
Proxy.sDefaultImpl = iDynamicLinksCallbacks;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override // android.os.IInterface
|
||||
public IBinder asBinder() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // android.os.Binder
|
||||
public boolean onTransact(int i, Parcel parcel, Parcel parcel2, int i4) throws RemoteException {
|
||||
if (i == 1) {
|
||||
parcel.enforceInterface(DESCRIPTOR);
|
||||
onGetDynamicLink(parcel.readInt() != 0 ? Status.CREATOR.createFromParcel(parcel) : null, parcel.readInt() != 0 ? DynamicLinkData.CREATOR.createFromParcel(parcel) : null);
|
||||
return true;
|
||||
}
|
||||
if (i == 2) {
|
||||
parcel.enforceInterface(DESCRIPTOR);
|
||||
onCreateShortDynamicLink(parcel.readInt() != 0 ? Status.CREATOR.createFromParcel(parcel) : null, parcel.readInt() != 0 ? ShortDynamicLinkImpl.CREATOR.createFromParcel(parcel) : null);
|
||||
return true;
|
||||
}
|
||||
if (i != 1598968902) {
|
||||
return super.onTransact(i, parcel, parcel2, i4);
|
||||
}
|
||||
parcel2.writeString(DESCRIPTOR);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
void onCreateShortDynamicLink(Status status, ShortDynamicLinkImpl shortDynamicLinkImpl) throws RemoteException;
|
||||
|
||||
void onGetDynamicLink(Status status, DynamicLinkData dynamicLinkData) throws RemoteException;
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.os.Binder;
|
||||
import android.os.Bundle;
|
||||
import android.os.IBinder;
|
||||
import android.os.IInterface;
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
import com.google.firebase.dynamiclinks.internal.IDynamicLinksCallbacks;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface IDynamicLinksService extends IInterface {
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class Default implements IDynamicLinksService {
|
||||
@Override // android.os.IInterface
|
||||
public IBinder asBinder() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksService
|
||||
public void createShortDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, Bundle bundle) throws RemoteException {
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksService
|
||||
public void getDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, String str) throws RemoteException {
|
||||
}
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static abstract class Stub extends Binder implements IDynamicLinksService {
|
||||
private static final String DESCRIPTOR = "com.google.firebase.dynamiclinks.internal.IDynamicLinksService";
|
||||
static final int TRANSACTION_createShortDynamicLink = 2;
|
||||
static final int TRANSACTION_getDynamicLink = 1;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class Proxy implements IDynamicLinksService {
|
||||
public static IDynamicLinksService sDefaultImpl;
|
||||
private IBinder mRemote;
|
||||
|
||||
public Proxy(IBinder iBinder) {
|
||||
this.mRemote = iBinder;
|
||||
}
|
||||
|
||||
@Override // android.os.IInterface
|
||||
public IBinder asBinder() {
|
||||
return this.mRemote;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksService
|
||||
public void createShortDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, Bundle bundle) throws RemoteException {
|
||||
Parcel obtain = Parcel.obtain();
|
||||
Parcel obtain2 = Parcel.obtain();
|
||||
try {
|
||||
obtain.writeInterfaceToken("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
|
||||
obtain.writeStrongBinder(iDynamicLinksCallbacks != null ? iDynamicLinksCallbacks.asBinder() : null);
|
||||
if (bundle != null) {
|
||||
obtain.writeInt(1);
|
||||
bundle.writeToParcel(obtain, 0);
|
||||
} else {
|
||||
obtain.writeInt(0);
|
||||
}
|
||||
if (this.mRemote.transact(2, obtain, obtain2, 0) || Stub.getDefaultImpl() == null) {
|
||||
obtain2.readException();
|
||||
} else {
|
||||
Stub.getDefaultImpl().createShortDynamicLink(iDynamicLinksCallbacks, bundle);
|
||||
}
|
||||
obtain2.recycle();
|
||||
obtain.recycle();
|
||||
} catch (Throwable th) {
|
||||
obtain2.recycle();
|
||||
obtain.recycle();
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.internal.IDynamicLinksService
|
||||
public void getDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, String str) throws RemoteException {
|
||||
Parcel obtain = Parcel.obtain();
|
||||
Parcel obtain2 = Parcel.obtain();
|
||||
try {
|
||||
obtain.writeInterfaceToken("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
|
||||
obtain.writeStrongBinder(iDynamicLinksCallbacks != null ? iDynamicLinksCallbacks.asBinder() : null);
|
||||
obtain.writeString(str);
|
||||
if (this.mRemote.transact(1, obtain, obtain2, 0) || Stub.getDefaultImpl() == null) {
|
||||
obtain2.readException();
|
||||
} else {
|
||||
Stub.getDefaultImpl().getDynamicLink(iDynamicLinksCallbacks, str);
|
||||
}
|
||||
obtain2.recycle();
|
||||
obtain.recycle();
|
||||
} catch (Throwable th) {
|
||||
obtain2.recycle();
|
||||
obtain.recycle();
|
||||
throw th;
|
||||
}
|
||||
}
|
||||
|
||||
public String getInterfaceDescriptor() {
|
||||
return "com.google.firebase.dynamiclinks.internal.IDynamicLinksService";
|
||||
}
|
||||
}
|
||||
|
||||
public Stub() {
|
||||
attachInterface(this, "com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
|
||||
}
|
||||
|
||||
public static IDynamicLinksService asInterface(IBinder iBinder) {
|
||||
if (iBinder == null) {
|
||||
return null;
|
||||
}
|
||||
IInterface queryLocalInterface = iBinder.queryLocalInterface("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
|
||||
return (queryLocalInterface == null || !(queryLocalInterface instanceof IDynamicLinksService)) ? new Proxy(iBinder) : (IDynamicLinksService) queryLocalInterface;
|
||||
}
|
||||
|
||||
public static IDynamicLinksService getDefaultImpl() {
|
||||
return Proxy.sDefaultImpl;
|
||||
}
|
||||
|
||||
public static boolean setDefaultImpl(IDynamicLinksService iDynamicLinksService) {
|
||||
if (Proxy.sDefaultImpl != null) {
|
||||
throw new IllegalStateException("setDefaultImpl() called twice");
|
||||
}
|
||||
if (iDynamicLinksService == null) {
|
||||
return false;
|
||||
}
|
||||
Proxy.sDefaultImpl = iDynamicLinksService;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override // android.os.IInterface
|
||||
public IBinder asBinder() {
|
||||
return this;
|
||||
}
|
||||
|
||||
@Override // android.os.Binder
|
||||
public boolean onTransact(int i, Parcel parcel, Parcel parcel2, int i4) throws RemoteException {
|
||||
if (i == 1) {
|
||||
parcel.enforceInterface("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
|
||||
getDynamicLink(IDynamicLinksCallbacks.Stub.asInterface(parcel.readStrongBinder()), parcel.readString());
|
||||
parcel2.writeNoException();
|
||||
return true;
|
||||
}
|
||||
if (i != 2) {
|
||||
if (i != 1598968902) {
|
||||
return super.onTransact(i, parcel, parcel2, i4);
|
||||
}
|
||||
parcel2.writeString("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
|
||||
return true;
|
||||
}
|
||||
parcel.enforceInterface("com.google.firebase.dynamiclinks.internal.IDynamicLinksService");
|
||||
createShortDynamicLink(IDynamicLinksCallbacks.Stub.asInterface(parcel.readStrongBinder()), parcel.readInt() != 0 ? (Bundle) Bundle.CREATOR.createFromParcel(parcel) : null);
|
||||
parcel2.writeNoException();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
void createShortDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, Bundle bundle) throws RemoteException;
|
||||
|
||||
void getDynamicLink(IDynamicLinksCallbacks iDynamicLinksCallbacks, String str) throws RemoteException;
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
|
||||
import com.google.firebase.dynamiclinks.ShortDynamicLink;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@SafeParcelable.Class(creator = "ShortDynamicLinkImplCreator")
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ShortDynamicLinkImpl extends AbstractSafeParcelable implements ShortDynamicLink {
|
||||
public static final Parcelable.Creator<ShortDynamicLinkImpl> CREATOR = new ShortDynamicLinkImplCreator();
|
||||
|
||||
@SafeParcelable.Field(getter = "getPreviewLink", id = 2)
|
||||
private final Uri previewLink;
|
||||
|
||||
@SafeParcelable.Field(getter = "getShortLink", id = 1)
|
||||
private final Uri shortLink;
|
||||
|
||||
@SafeParcelable.Field(getter = "getWarnings", id = 3)
|
||||
private final List<WarningImpl> warnings;
|
||||
|
||||
@SafeParcelable.Class(creator = "WarningImplCreator")
|
||||
/* loaded from: classes3.dex */
|
||||
public static class WarningImpl extends AbstractSafeParcelable implements ShortDynamicLink.Warning {
|
||||
public static final Parcelable.Creator<WarningImpl> CREATOR = new WarningImplCreator();
|
||||
|
||||
@SafeParcelable.Field(getter = "getMessage", id = 2)
|
||||
@SafeParcelable.Reserved({1})
|
||||
private final String message;
|
||||
|
||||
@SafeParcelable.Constructor
|
||||
public WarningImpl(@SafeParcelable.Param(id = 2) String str) {
|
||||
this.message = str;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink.Warning
|
||||
public String getCode() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink.Warning
|
||||
public String getMessage() {
|
||||
return this.message;
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
WarningImplCreator.writeToParcel(this, parcel, i);
|
||||
}
|
||||
}
|
||||
|
||||
@SafeParcelable.Constructor
|
||||
public ShortDynamicLinkImpl(@SafeParcelable.Param(id = 1) Uri uri, @SafeParcelable.Param(id = 2) Uri uri2, @SafeParcelable.Param(id = 3) List<WarningImpl> list) {
|
||||
this.shortLink = uri;
|
||||
this.previewLink = uri2;
|
||||
this.warnings = list == null ? new ArrayList<>() : list;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink
|
||||
public Uri getPreviewLink() {
|
||||
return this.previewLink;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink
|
||||
public Uri getShortLink() {
|
||||
return this.shortLink;
|
||||
}
|
||||
|
||||
@Override // com.google.firebase.dynamiclinks.ShortDynamicLink
|
||||
public List<WarningImpl> getWarnings() {
|
||||
return this.warnings;
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
ShortDynamicLinkImplCreator.writeToParcel(this, parcel, i);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.net.Uri;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
|
||||
import com.google.firebase.dynamiclinks.internal.ShortDynamicLinkImpl;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class ShortDynamicLinkImplCreator implements Parcelable.Creator<ShortDynamicLinkImpl> {
|
||||
public static final int CONTENT_DESCRIPTION = 0;
|
||||
|
||||
public static void writeToParcel(ShortDynamicLinkImpl shortDynamicLinkImpl, Parcel parcel, int i) {
|
||||
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
|
||||
SafeParcelWriter.writeParcelable(parcel, 1, shortDynamicLinkImpl.getShortLink(), i, false);
|
||||
SafeParcelWriter.writeParcelable(parcel, 2, shortDynamicLinkImpl.getPreviewLink(), i, false);
|
||||
SafeParcelWriter.writeTypedList(parcel, 3, shortDynamicLinkImpl.getWarnings(), false);
|
||||
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
|
||||
}
|
||||
|
||||
/* JADX WARN: Can't rename method to resolve collision */
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public ShortDynamicLinkImpl createFromParcel(Parcel parcel) {
|
||||
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
|
||||
Uri uri = null;
|
||||
Uri uri2 = null;
|
||||
ArrayList arrayList = null;
|
||||
while (parcel.dataPosition() < validateObjectHeader) {
|
||||
int readHeader = SafeParcelReader.readHeader(parcel);
|
||||
int fieldId = SafeParcelReader.getFieldId(readHeader);
|
||||
if (fieldId == 1) {
|
||||
uri = (Uri) SafeParcelReader.createParcelable(parcel, readHeader, Uri.CREATOR);
|
||||
} else if (fieldId == 2) {
|
||||
uri2 = (Uri) SafeParcelReader.createParcelable(parcel, readHeader, Uri.CREATOR);
|
||||
} else if (fieldId != 3) {
|
||||
SafeParcelReader.skipUnknownField(parcel, readHeader);
|
||||
} else {
|
||||
arrayList = SafeParcelReader.createTypedList(parcel, readHeader, ShortDynamicLinkImpl.WarningImpl.CREATOR);
|
||||
}
|
||||
}
|
||||
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
|
||||
return new ShortDynamicLinkImpl(uri, uri2, arrayList);
|
||||
}
|
||||
|
||||
/* JADX WARN: Can't rename method to resolve collision */
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public ShortDynamicLinkImpl[] newArray(int i) {
|
||||
return new ShortDynamicLinkImpl[i];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.google.firebase.dynamiclinks.internal;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
|
||||
import com.google.firebase.dynamiclinks.internal.ShortDynamicLinkImpl;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class WarningImplCreator implements Parcelable.Creator<ShortDynamicLinkImpl.WarningImpl> {
|
||||
public static final int CONTENT_DESCRIPTION = 0;
|
||||
|
||||
public static void writeToParcel(ShortDynamicLinkImpl.WarningImpl warningImpl, Parcel parcel, int i) {
|
||||
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
|
||||
SafeParcelWriter.writeString(parcel, 2, warningImpl.getMessage(), false);
|
||||
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
|
||||
}
|
||||
|
||||
/* JADX WARN: Can't rename method to resolve collision */
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public ShortDynamicLinkImpl.WarningImpl createFromParcel(Parcel parcel) {
|
||||
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
|
||||
String str = null;
|
||||
while (parcel.dataPosition() < validateObjectHeader) {
|
||||
int readHeader = SafeParcelReader.readHeader(parcel);
|
||||
if (SafeParcelReader.getFieldId(readHeader) != 2) {
|
||||
SafeParcelReader.skipUnknownField(parcel, readHeader);
|
||||
} else {
|
||||
str = SafeParcelReader.createString(parcel, readHeader);
|
||||
}
|
||||
}
|
||||
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
|
||||
return new ShortDynamicLinkImpl.WarningImpl(str);
|
||||
}
|
||||
|
||||
/* JADX WARN: Can't rename method to resolve collision */
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public ShortDynamicLinkImpl.WarningImpl[] newArray(int i) {
|
||||
return new ShortDynamicLinkImpl.WarningImpl[i];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user