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,6 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface InstallStatusListener {
|
||||
void onInstallStatusUpdated(ModuleInstallStatusUpdate moduleInstallStatusUpdate);
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.annotation.KeepForSdk;
|
||||
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
@SafeParcelable.Class(creator = "ModuleAvailabilityResponseCreator")
|
||||
/* loaded from: classes3.dex */
|
||||
public class ModuleAvailabilityResponse extends AbstractSafeParcelable {
|
||||
public static final Parcelable.Creator<ModuleAvailabilityResponse> CREATOR = new zaa();
|
||||
|
||||
@SafeParcelable.Field(getter = "areModulesAvailable", id = 1)
|
||||
private final boolean zaa;
|
||||
|
||||
@SafeParcelable.Field(getter = "getAvailabilityStatus", id = 2)
|
||||
private final int zab;
|
||||
|
||||
@Retention(RetentionPolicy.CLASS)
|
||||
/* loaded from: classes3.dex */
|
||||
public @interface AvailabilityStatus {
|
||||
public static final int STATUS_ALREADY_AVAILABLE = 0;
|
||||
public static final int STATUS_READY_TO_DOWNLOAD = 1;
|
||||
public static final int STATUS_UNKNOWN_MODULE = 2;
|
||||
}
|
||||
|
||||
@SafeParcelable.Constructor
|
||||
@KeepForSdk
|
||||
public ModuleAvailabilityResponse(@SafeParcelable.Param(id = 1) boolean z3, @SafeParcelable.Param(id = 2) int i) {
|
||||
this.zaa = z3;
|
||||
this.zab = i;
|
||||
}
|
||||
|
||||
public boolean areModulesAvailable() {
|
||||
return this.zaa;
|
||||
}
|
||||
|
||||
@AvailabilityStatus
|
||||
public int getAvailabilityStatus() {
|
||||
return this.zab;
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
|
||||
SafeParcelWriter.writeBoolean(parcel, 1, areModulesAvailable());
|
||||
SafeParcelWriter.writeInt(parcel, 2, getAvailabilityStatus());
|
||||
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import com.google.android.gms.common.moduleinstall.internal.zay;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ModuleInstall {
|
||||
private ModuleInstall() {
|
||||
}
|
||||
|
||||
public static ModuleInstallClient getClient(Activity activity) {
|
||||
return new zay(activity);
|
||||
}
|
||||
|
||||
public static ModuleInstallClient getClient(Context context) {
|
||||
return new zay(context);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import com.google.android.gms.common.api.Api;
|
||||
import com.google.android.gms.common.api.HasApiKey;
|
||||
import com.google.android.gms.common.api.OptionalModuleApi;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface ModuleInstallClient extends HasApiKey<Api.ApiOptions.NoOptions> {
|
||||
Task<ModuleAvailabilityResponse> areModulesAvailable(OptionalModuleApi... optionalModuleApiArr);
|
||||
|
||||
Task<Void> deferredInstall(OptionalModuleApi... optionalModuleApiArr);
|
||||
|
||||
Task<ModuleInstallIntentResponse> getInstallModulesIntent(OptionalModuleApi... optionalModuleApiArr);
|
||||
|
||||
Task<ModuleInstallResponse> installModules(ModuleInstallRequest moduleInstallRequest);
|
||||
|
||||
Task<Void> releaseModules(OptionalModuleApi... optionalModuleApiArr);
|
||||
|
||||
Task<Boolean> unregisterListener(InstallStatusListener installStatusListener);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.annotation.KeepForSdk;
|
||||
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
|
||||
|
||||
@SafeParcelable.Class(creator = "ModuleInstallIntentResponseCreator")
|
||||
/* loaded from: classes3.dex */
|
||||
public class ModuleInstallIntentResponse extends AbstractSafeParcelable {
|
||||
public static final Parcelable.Creator<ModuleInstallIntentResponse> CREATOR = new zab();
|
||||
|
||||
@SafeParcelable.Field(getter = "getPendingIntent", id = 1)
|
||||
private final PendingIntent zaa;
|
||||
|
||||
@SafeParcelable.Constructor
|
||||
@KeepForSdk
|
||||
public ModuleInstallIntentResponse(@SafeParcelable.Param(id = 1) PendingIntent pendingIntent) {
|
||||
this.zaa = pendingIntent;
|
||||
}
|
||||
|
||||
public PendingIntent getPendingIntent() {
|
||||
return this.zaa;
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
|
||||
SafeParcelWriter.writeParcelable(parcel, 1, getPendingIntent(), i, false);
|
||||
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import com.google.android.gms.common.api.OptionalModuleApi;
|
||||
import com.google.android.gms.common.internal.Preconditions;
|
||||
import com.google.android.gms.common.internal.ShowFirstParty;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ModuleInstallRequest {
|
||||
private final List zaa;
|
||||
private final InstallStatusListener zab;
|
||||
private final Executor zac;
|
||||
private final boolean zad;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class Builder {
|
||||
private final List zaa = new ArrayList();
|
||||
private boolean zab = true;
|
||||
private InstallStatusListener zac;
|
||||
private Executor zad;
|
||||
|
||||
public Builder addApi(OptionalModuleApi optionalModuleApi) {
|
||||
this.zaa.add(optionalModuleApi);
|
||||
return this;
|
||||
}
|
||||
|
||||
public ModuleInstallRequest build() {
|
||||
return new ModuleInstallRequest(this.zaa, this.zac, this.zad, this.zab, null);
|
||||
}
|
||||
|
||||
public Builder setListener(InstallStatusListener installStatusListener, Executor executor) {
|
||||
this.zac = installStatusListener;
|
||||
this.zad = executor;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Builder setListener(InstallStatusListener installStatusListener) {
|
||||
return setListener(installStatusListener, null);
|
||||
}
|
||||
}
|
||||
|
||||
public /* synthetic */ ModuleInstallRequest(List list, InstallStatusListener installStatusListener, Executor executor, boolean z3, zac zacVar) {
|
||||
Preconditions.checkNotNull(list, "APIs must not be null.");
|
||||
Preconditions.checkArgument(!list.isEmpty(), "APIs must not be empty.");
|
||||
if (executor != null) {
|
||||
Preconditions.checkNotNull(installStatusListener, "Listener must not be null when listener executor is set.");
|
||||
}
|
||||
this.zaa = list;
|
||||
this.zab = installStatusListener;
|
||||
this.zac = executor;
|
||||
this.zad = z3;
|
||||
}
|
||||
|
||||
public static Builder newBuilder() {
|
||||
return new Builder();
|
||||
}
|
||||
|
||||
public List<OptionalModuleApi> getApis() {
|
||||
return this.zaa;
|
||||
}
|
||||
|
||||
public InstallStatusListener getListener() {
|
||||
return this.zab;
|
||||
}
|
||||
|
||||
public Executor getListenerExecutor() {
|
||||
return this.zac;
|
||||
}
|
||||
|
||||
@ShowFirstParty
|
||||
public final boolean zaa() {
|
||||
return this.zad;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.annotation.KeepForSdk;
|
||||
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
|
||||
|
||||
@SafeParcelable.Class(creator = "ModuleInstallResponseCreator")
|
||||
/* loaded from: classes3.dex */
|
||||
public class ModuleInstallResponse extends AbstractSafeParcelable {
|
||||
public static final Parcelable.Creator<ModuleInstallResponse> CREATOR = new zad();
|
||||
|
||||
@SafeParcelable.Field(getter = "getSessionId", id = 1)
|
||||
private final int zaa;
|
||||
|
||||
@SafeParcelable.Field(defaultValue = "false", getter = "getShouldUnregisterListener", id = 2)
|
||||
private final boolean zab;
|
||||
|
||||
@KeepForSdk
|
||||
public ModuleInstallResponse(int i) {
|
||||
this(i, false);
|
||||
}
|
||||
|
||||
public boolean areModulesAlreadyInstalled() {
|
||||
return this.zaa == 0;
|
||||
}
|
||||
|
||||
public int getSessionId() {
|
||||
return this.zaa;
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
|
||||
SafeParcelWriter.writeInt(parcel, 1, getSessionId());
|
||||
SafeParcelWriter.writeBoolean(parcel, 2, this.zab);
|
||||
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
|
||||
}
|
||||
|
||||
public final boolean zaa() {
|
||||
return this.zab;
|
||||
}
|
||||
|
||||
@SafeParcelable.Constructor
|
||||
public ModuleInstallResponse(@SafeParcelable.Param(id = 1) int i, @SafeParcelable.Param(id = 2) boolean z3) {
|
||||
this.zaa = i;
|
||||
this.zab = z3;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import com.google.android.gms.common.api.CommonStatusCodes;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class ModuleInstallStatusCodes extends CommonStatusCodes {
|
||||
public static final int INSUFFICIENT_STORAGE = 46003;
|
||||
public static final int MODULE_NOT_FOUND = 46002;
|
||||
public static final int NOT_ALLOWED_MODULE = 46001;
|
||||
public static final int SUCCESS = 0;
|
||||
public static final int UNKNOWN_MODULE = 46000;
|
||||
|
||||
private ModuleInstallStatusCodes() {
|
||||
}
|
||||
|
||||
public static String getStatusCodeString(int i) {
|
||||
switch (i) {
|
||||
case UNKNOWN_MODULE /* 46000 */:
|
||||
return "UNKNOWN_MODULE";
|
||||
case NOT_ALLOWED_MODULE /* 46001 */:
|
||||
return "NOT_ALLOWED_MODULE";
|
||||
case MODULE_NOT_FOUND /* 46002 */:
|
||||
return "MODULE_NOT_FOUND";
|
||||
case INSUFFICIENT_STORAGE /* 46003 */:
|
||||
return "INSUFFICIENT_STORAGE";
|
||||
default:
|
||||
return CommonStatusCodes.getStatusCodeString(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.annotation.KeepForSdk;
|
||||
import com.google.android.gms.common.internal.Preconditions;
|
||||
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
|
||||
@SafeParcelable.Class(creator = "ModuleInstallStatusUpdateCreator")
|
||||
/* loaded from: classes3.dex */
|
||||
public class ModuleInstallStatusUpdate extends AbstractSafeParcelable {
|
||||
public static final Parcelable.Creator<ModuleInstallStatusUpdate> CREATOR = new zae();
|
||||
|
||||
@SafeParcelable.Field(getter = "getSessionId", id = 1)
|
||||
private final int zaa;
|
||||
|
||||
@InstallState
|
||||
@SafeParcelable.Field(getter = "getInstallState", id = 2)
|
||||
private final int zab;
|
||||
|
||||
@SafeParcelable.Field(getter = "getBytesDownloaded", id = 3)
|
||||
private final Long zac;
|
||||
|
||||
@SafeParcelable.Field(getter = "getTotalBytesToDownload", id = 4)
|
||||
private final Long zad;
|
||||
|
||||
@SafeParcelable.Field(getter = "getErrorCode", id = 5)
|
||||
private final int zae;
|
||||
private final ProgressInfo zaf;
|
||||
|
||||
@Retention(RetentionPolicy.CLASS)
|
||||
/* loaded from: classes3.dex */
|
||||
public @interface InstallState {
|
||||
public static final int STATE_CANCELED = 3;
|
||||
public static final int STATE_COMPLETED = 4;
|
||||
public static final int STATE_DOWNLOADING = 2;
|
||||
public static final int STATE_DOWNLOAD_PAUSED = 7;
|
||||
public static final int STATE_FAILED = 5;
|
||||
public static final int STATE_INSTALLING = 6;
|
||||
public static final int STATE_PENDING = 1;
|
||||
public static final int STATE_UNKNOWN = 0;
|
||||
}
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public static class ProgressInfo {
|
||||
private final long zaa;
|
||||
private final long zab;
|
||||
|
||||
public ProgressInfo(long j4, long j5) {
|
||||
Preconditions.checkNotZero(j5);
|
||||
this.zaa = j4;
|
||||
this.zab = j5;
|
||||
}
|
||||
|
||||
public long getBytesDownloaded() {
|
||||
return this.zaa;
|
||||
}
|
||||
|
||||
public long getTotalBytesToDownload() {
|
||||
return this.zab;
|
||||
}
|
||||
}
|
||||
|
||||
@SafeParcelable.Constructor
|
||||
@KeepForSdk
|
||||
public ModuleInstallStatusUpdate(@SafeParcelable.Param(id = 1) int i, @SafeParcelable.Param(id = 2) @InstallState int i4, @SafeParcelable.Param(id = 3) Long l4, @SafeParcelable.Param(id = 4) Long l5, @SafeParcelable.Param(id = 5) int i5) {
|
||||
this.zaa = i;
|
||||
this.zab = i4;
|
||||
this.zac = l4;
|
||||
this.zad = l5;
|
||||
this.zae = i5;
|
||||
this.zaf = (l4 == null || l5 == null || l5.longValue() == 0) ? null : new ProgressInfo(l4.longValue(), l5.longValue());
|
||||
}
|
||||
|
||||
public int getErrorCode() {
|
||||
return this.zae;
|
||||
}
|
||||
|
||||
@InstallState
|
||||
public int getInstallState() {
|
||||
return this.zab;
|
||||
}
|
||||
|
||||
public ProgressInfo getProgressInfo() {
|
||||
return this.zaf;
|
||||
}
|
||||
|
||||
public int getSessionId() {
|
||||
return this.zaa;
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable
|
||||
public void writeToParcel(Parcel parcel, int i) {
|
||||
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
|
||||
SafeParcelWriter.writeInt(parcel, 1, getSessionId());
|
||||
SafeParcelWriter.writeInt(parcel, 2, getInstallState());
|
||||
SafeParcelWriter.writeLongObject(parcel, 3, this.zac, false);
|
||||
SafeParcelWriter.writeLongObject(parcel, 4, this.zad, false);
|
||||
SafeParcelWriter.writeInt(parcel, 5, getErrorCode());
|
||||
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.Feature;
|
||||
import com.google.android.gms.common.annotation.KeepForSdk;
|
||||
import com.google.android.gms.common.api.OptionalModuleApi;
|
||||
import com.google.android.gms.common.internal.Objects;
|
||||
import com.google.android.gms.common.internal.Preconditions;
|
||||
import com.google.android.gms.common.internal.safeparcel.AbstractSafeParcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelWriter;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelable;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallRequest;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.TreeSet;
|
||||
|
||||
@KeepForSdk
|
||||
@SafeParcelable.Class(creator = "ApiFeatureRequestCreator")
|
||||
/* loaded from: classes3.dex */
|
||||
public class ApiFeatureRequest extends AbstractSafeParcelable {
|
||||
public static final Parcelable.Creator<ApiFeatureRequest> CREATOR = new zac();
|
||||
private static final Comparator zaa = new Comparator() { // from class: com.google.android.gms.common.moduleinstall.internal.zab
|
||||
@Override // java.util.Comparator
|
||||
public final int compare(Object obj, Object obj2) {
|
||||
Feature feature = (Feature) obj;
|
||||
Feature feature2 = (Feature) obj2;
|
||||
Parcelable.Creator<ApiFeatureRequest> creator = ApiFeatureRequest.CREATOR;
|
||||
return !feature.getName().equals(feature2.getName()) ? feature.getName().compareTo(feature2.getName()) : (feature.getVersion() > feature2.getVersion() ? 1 : (feature.getVersion() == feature2.getVersion() ? 0 : -1));
|
||||
}
|
||||
};
|
||||
|
||||
@SafeParcelable.Field(getter = "getApiFeatures", id = 1)
|
||||
private final List zab;
|
||||
|
||||
@SafeParcelable.Field(getter = "getIsUrgent", id = 2)
|
||||
private final boolean zac;
|
||||
|
||||
@SafeParcelable.Field(getter = "getFeatureRequestSessionId", id = 3)
|
||||
private final String zad;
|
||||
|
||||
@SafeParcelable.Field(getter = "getCallingPackage", id = 4)
|
||||
private final String zae;
|
||||
|
||||
@SafeParcelable.Constructor
|
||||
public ApiFeatureRequest(@SafeParcelable.Param(id = 1) List list, @SafeParcelable.Param(id = 2) boolean z3, @SafeParcelable.Param(id = 3) String str, @SafeParcelable.Param(id = 4) String str2) {
|
||||
Preconditions.checkNotNull(list);
|
||||
this.zab = list;
|
||||
this.zac = z3;
|
||||
this.zad = str;
|
||||
this.zae = str2;
|
||||
}
|
||||
|
||||
@KeepForSdk
|
||||
public static ApiFeatureRequest fromModuleInstallRequest(ModuleInstallRequest moduleInstallRequest) {
|
||||
return zaa(moduleInstallRequest.getApis(), true);
|
||||
}
|
||||
|
||||
public static ApiFeatureRequest zaa(List list, boolean z3) {
|
||||
TreeSet treeSet = new TreeSet(zaa);
|
||||
Iterator it = list.iterator();
|
||||
while (it.hasNext()) {
|
||||
Collections.addAll(treeSet, ((OptionalModuleApi) it.next()).getOptionalFeatures());
|
||||
}
|
||||
return new ApiFeatureRequest(new ArrayList(treeSet), z3, null, null);
|
||||
}
|
||||
|
||||
public final boolean equals(Object obj) {
|
||||
if (obj == null || !(obj instanceof ApiFeatureRequest)) {
|
||||
return false;
|
||||
}
|
||||
ApiFeatureRequest apiFeatureRequest = (ApiFeatureRequest) obj;
|
||||
return this.zac == apiFeatureRequest.zac && Objects.equal(this.zab, apiFeatureRequest.zab) && Objects.equal(this.zad, apiFeatureRequest.zad) && Objects.equal(this.zae, apiFeatureRequest.zae);
|
||||
}
|
||||
|
||||
@KeepForSdk
|
||||
public List<Feature> getApiFeatures() {
|
||||
return this.zab;
|
||||
}
|
||||
|
||||
public final int hashCode() {
|
||||
return Objects.hashCode(Boolean.valueOf(this.zac), this.zab, this.zad, this.zae);
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable
|
||||
public final void writeToParcel(Parcel parcel, int i) {
|
||||
int beginObjectHeader = SafeParcelWriter.beginObjectHeader(parcel);
|
||||
SafeParcelWriter.writeTypedList(parcel, 1, getApiFeatures(), false);
|
||||
SafeParcelWriter.writeBoolean(parcel, 2, this.zac);
|
||||
SafeParcelWriter.writeString(parcel, 3, this.zad, false);
|
||||
SafeParcelWriter.writeString(parcel, 4, this.zae, false);
|
||||
SafeParcelWriter.finishObjectHeader(parcel, beginObjectHeader);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleAvailabilityResponse;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallIntentResponse;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallResponse;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public class zaa extends zad {
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zae
|
||||
public void zab(Status status) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zae
|
||||
public void zac(Status status, ModuleInstallIntentResponse moduleInstallIntentResponse) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zae
|
||||
public void zad(Status status, ModuleInstallResponse moduleInstallResponse) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zae
|
||||
public void zae(Status status, ModuleAvailabilityResponse moduleAvailabilityResponse) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.internal.ListenerHolder;
|
||||
import com.google.android.gms.common.moduleinstall.InstallStatusListener;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallStatusUpdate;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zaaa implements ListenerHolder.Notifier {
|
||||
final /* synthetic */ ModuleInstallStatusUpdate zaa;
|
||||
|
||||
public zaaa(zaab zaabVar, ModuleInstallStatusUpdate moduleInstallStatusUpdate) {
|
||||
this.zaa = moduleInstallStatusUpdate;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.ListenerHolder.Notifier
|
||||
public final /* bridge */ /* synthetic */ void notifyListener(Object obj) {
|
||||
((InstallStatusListener) obj).onInstallStatusUpdated(this.zaa);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.ListenerHolder.Notifier
|
||||
public final void onNotifyListenerFailed() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.internal.ListenerHolder;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallStatusUpdate;
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: package-private */
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zaab extends zag {
|
||||
private final ListenerHolder zaa;
|
||||
|
||||
public zaab(ListenerHolder listenerHolder) {
|
||||
this.zaa = listenerHolder;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zah
|
||||
public final void zab(ModuleInstallStatusUpdate moduleInstallStatusUpdate) {
|
||||
this.zaa.notifyListener(new zaaa(this, moduleInstallStatusUpdate));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.Feature;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zac implements Parcelable.Creator {
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* bridge */ /* synthetic */ Object createFromParcel(Parcel parcel) {
|
||||
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
|
||||
ArrayList arrayList = null;
|
||||
String str = null;
|
||||
boolean z3 = false;
|
||||
String str2 = null;
|
||||
while (parcel.dataPosition() < validateObjectHeader) {
|
||||
int readHeader = SafeParcelReader.readHeader(parcel);
|
||||
int fieldId = SafeParcelReader.getFieldId(readHeader);
|
||||
if (fieldId == 1) {
|
||||
arrayList = SafeParcelReader.createTypedList(parcel, readHeader, Feature.CREATOR);
|
||||
} else if (fieldId == 2) {
|
||||
z3 = SafeParcelReader.readBoolean(parcel, readHeader);
|
||||
} else if (fieldId == 3) {
|
||||
str2 = SafeParcelReader.createString(parcel, readHeader);
|
||||
} else if (fieldId != 4) {
|
||||
SafeParcelReader.skipUnknownField(parcel, readHeader);
|
||||
} else {
|
||||
str = SafeParcelReader.createString(parcel, readHeader);
|
||||
}
|
||||
}
|
||||
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
|
||||
return new ApiFeatureRequest(arrayList, z3, str2, str);
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* synthetic */ Object[] newArray(int i) {
|
||||
return new ApiFeatureRequest[i];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleAvailabilityResponse;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallIntentResponse;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallResponse;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public abstract class zad extends com.google.android.gms.internal.base.zab implements zae {
|
||||
public zad() {
|
||||
super("com.google.android.gms.common.moduleinstall.internal.IModuleInstallCallbacks");
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.internal.base.zab
|
||||
public final boolean zaa(int i, Parcel parcel, Parcel parcel2, int i4) throws RemoteException {
|
||||
if (i == 1) {
|
||||
Status status = (Status) com.google.android.gms.internal.base.zac.zaa(parcel, Status.CREATOR);
|
||||
ModuleAvailabilityResponse moduleAvailabilityResponse = (ModuleAvailabilityResponse) com.google.android.gms.internal.base.zac.zaa(parcel, ModuleAvailabilityResponse.CREATOR);
|
||||
com.google.android.gms.internal.base.zac.zab(parcel);
|
||||
zae(status, moduleAvailabilityResponse);
|
||||
} else if (i == 2) {
|
||||
Status status2 = (Status) com.google.android.gms.internal.base.zac.zaa(parcel, Status.CREATOR);
|
||||
ModuleInstallResponse moduleInstallResponse = (ModuleInstallResponse) com.google.android.gms.internal.base.zac.zaa(parcel, ModuleInstallResponse.CREATOR);
|
||||
com.google.android.gms.internal.base.zac.zab(parcel);
|
||||
zad(status2, moduleInstallResponse);
|
||||
} else if (i == 3) {
|
||||
Status status3 = (Status) com.google.android.gms.internal.base.zac.zaa(parcel, Status.CREATOR);
|
||||
ModuleInstallIntentResponse moduleInstallIntentResponse = (ModuleInstallIntentResponse) com.google.android.gms.internal.base.zac.zaa(parcel, ModuleInstallIntentResponse.CREATOR);
|
||||
com.google.android.gms.internal.base.zac.zab(parcel);
|
||||
zac(status3, moduleInstallIntentResponse);
|
||||
} else {
|
||||
if (i != 4) {
|
||||
return false;
|
||||
}
|
||||
Status status4 = (Status) com.google.android.gms.internal.base.zac.zaa(parcel, Status.CREATOR);
|
||||
com.google.android.gms.internal.base.zac.zab(parcel);
|
||||
zab(status4);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.os.IInterface;
|
||||
import android.os.RemoteException;
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleAvailabilityResponse;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallIntentResponse;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallResponse;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface zae extends IInterface {
|
||||
void zab(Status status) throws RemoteException;
|
||||
|
||||
void zac(Status status, ModuleInstallIntentResponse moduleInstallIntentResponse) throws RemoteException;
|
||||
|
||||
void zad(Status status, ModuleInstallResponse moduleInstallResponse) throws RemoteException;
|
||||
|
||||
void zae(Status status, ModuleAvailabilityResponse moduleAvailabilityResponse) throws RemoteException;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.os.IBinder;
|
||||
import android.os.IInterface;
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
import com.google.android.gms.common.api.internal.IStatusCallback;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zaf extends com.google.android.gms.internal.base.zaa implements IInterface {
|
||||
public zaf(IBinder iBinder) {
|
||||
super(iBinder, "com.google.android.gms.common.moduleinstall.internal.IModuleInstallService");
|
||||
}
|
||||
|
||||
public final void zae(zae zaeVar, ApiFeatureRequest apiFeatureRequest) throws RemoteException {
|
||||
Parcel zaa = zaa();
|
||||
com.google.android.gms.internal.base.zac.zae(zaa, zaeVar);
|
||||
com.google.android.gms.internal.base.zac.zad(zaa, apiFeatureRequest);
|
||||
zac(1, zaa);
|
||||
}
|
||||
|
||||
public final void zaf(zae zaeVar, ApiFeatureRequest apiFeatureRequest) throws RemoteException {
|
||||
Parcel zaa = zaa();
|
||||
com.google.android.gms.internal.base.zac.zae(zaa, zaeVar);
|
||||
com.google.android.gms.internal.base.zac.zad(zaa, apiFeatureRequest);
|
||||
zac(3, zaa);
|
||||
}
|
||||
|
||||
public final void zag(zae zaeVar, ApiFeatureRequest apiFeatureRequest, zah zahVar) throws RemoteException {
|
||||
Parcel zaa = zaa();
|
||||
com.google.android.gms.internal.base.zac.zae(zaa, zaeVar);
|
||||
com.google.android.gms.internal.base.zac.zad(zaa, apiFeatureRequest);
|
||||
com.google.android.gms.internal.base.zac.zae(zaa, zahVar);
|
||||
zac(2, zaa);
|
||||
}
|
||||
|
||||
public final void zah(IStatusCallback iStatusCallback, ApiFeatureRequest apiFeatureRequest) throws RemoteException {
|
||||
Parcel zaa = zaa();
|
||||
com.google.android.gms.internal.base.zac.zae(zaa, iStatusCallback);
|
||||
com.google.android.gms.internal.base.zac.zad(zaa, apiFeatureRequest);
|
||||
zac(4, zaa);
|
||||
}
|
||||
|
||||
public final void zai(IStatusCallback iStatusCallback, zah zahVar) throws RemoteException {
|
||||
Parcel zaa = zaa();
|
||||
com.google.android.gms.internal.base.zac.zae(zaa, iStatusCallback);
|
||||
com.google.android.gms.internal.base.zac.zae(zaa, zahVar);
|
||||
zac(6, zaa);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.RemoteException;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallStatusUpdate;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public abstract class zag extends com.google.android.gms.internal.base.zab implements zah {
|
||||
public zag() {
|
||||
super("com.google.android.gms.common.moduleinstall.internal.IModuleInstallStatusListener");
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.internal.base.zab
|
||||
public final boolean zaa(int i, Parcel parcel, Parcel parcel2, int i4) throws RemoteException {
|
||||
if (i != 1) {
|
||||
return false;
|
||||
}
|
||||
ModuleInstallStatusUpdate moduleInstallStatusUpdate = (ModuleInstallStatusUpdate) com.google.android.gms.internal.base.zac.zaa(parcel, ModuleInstallStatusUpdate.CREATOR);
|
||||
com.google.android.gms.internal.base.zac.zab(parcel);
|
||||
zab(moduleInstallStatusUpdate);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.os.IInterface;
|
||||
import android.os.RemoteException;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallStatusUpdate;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public interface zah extends IInterface {
|
||||
void zab(ModuleInstallStatusUpdate moduleInstallStatusUpdate) throws RemoteException;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Looper;
|
||||
import com.google.android.gms.common.api.Api;
|
||||
import com.google.android.gms.common.api.internal.ConnectionCallbacks;
|
||||
import com.google.android.gms.common.api.internal.OnConnectionFailedListener;
|
||||
import com.google.android.gms.common.internal.ClientSettings;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zaq extends Api.AbstractClientBuilder {
|
||||
@Override // com.google.android.gms.common.api.Api.AbstractClientBuilder
|
||||
public final /* synthetic */ Api.Client buildClient(Context context, Looper looper, ClientSettings clientSettings, Object obj, ConnectionCallbacks connectionCallbacks, OnConnectionFailedListener onConnectionFailedListener) {
|
||||
return new zaz(context, looper, clientSettings, connectionCallbacks, onConnectionFailedListener);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.internal.TaskUtil;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleAvailabilityResponse;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zar extends zaa {
|
||||
final /* synthetic */ TaskCompletionSource zaa;
|
||||
|
||||
public zar(zay zayVar, TaskCompletionSource taskCompletionSource) {
|
||||
this.zaa = taskCompletionSource;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zaa, com.google.android.gms.common.moduleinstall.internal.zae
|
||||
public final void zae(Status status, ModuleAvailabilityResponse moduleAvailabilityResponse) {
|
||||
TaskUtil.trySetResultOrApiException(status, moduleAvailabilityResponse, this.zaa);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.internal.TaskUtil;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zas extends zaa {
|
||||
final /* synthetic */ TaskCompletionSource zaa;
|
||||
|
||||
public zas(zay zayVar, TaskCompletionSource taskCompletionSource) {
|
||||
this.zaa = taskCompletionSource;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zaa, com.google.android.gms.common.moduleinstall.internal.zae
|
||||
public final void zab(Status status) {
|
||||
TaskUtil.trySetResultOrApiException(status, null, this.zaa);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.internal.TaskUtil;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallResponse;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zat extends zaa {
|
||||
final /* synthetic */ TaskCompletionSource zaa;
|
||||
|
||||
public zat(zay zayVar, TaskCompletionSource taskCompletionSource) {
|
||||
this.zaa = taskCompletionSource;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zaa, com.google.android.gms.common.moduleinstall.internal.zae
|
||||
public final void zad(Status status, ModuleInstallResponse moduleInstallResponse) {
|
||||
TaskUtil.trySetResultOrApiException(status, moduleInstallResponse, this.zaa);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.internal.ListenerHolders;
|
||||
import com.google.android.gms.common.api.internal.TaskUtil;
|
||||
import com.google.android.gms.common.moduleinstall.InstallStatusListener;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallResponse;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zau extends zaa {
|
||||
final /* synthetic */ AtomicReference zaa;
|
||||
final /* synthetic */ TaskCompletionSource zab;
|
||||
final /* synthetic */ InstallStatusListener zac;
|
||||
final /* synthetic */ zay zad;
|
||||
|
||||
public zau(zay zayVar, AtomicReference atomicReference, TaskCompletionSource taskCompletionSource, InstallStatusListener installStatusListener) {
|
||||
this.zad = zayVar;
|
||||
this.zaa = atomicReference;
|
||||
this.zab = taskCompletionSource;
|
||||
this.zac = installStatusListener;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zaa, com.google.android.gms.common.moduleinstall.internal.zae
|
||||
public final void zad(Status status, ModuleInstallResponse moduleInstallResponse) {
|
||||
if (moduleInstallResponse != null) {
|
||||
this.zaa.set(moduleInstallResponse);
|
||||
}
|
||||
TaskUtil.trySetResultOrApiException(status, null, this.zab);
|
||||
if (!status.isSuccess() || (moduleInstallResponse != null && moduleInstallResponse.zaa())) {
|
||||
this.zad.doUnregisterEventListener(ListenerHolders.createListenerKey(this.zac, "InstallStatusListener"), 27306);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.internal.IStatusCallback;
|
||||
import com.google.android.gms.common.api.internal.TaskUtil;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zav extends IStatusCallback.Stub {
|
||||
final /* synthetic */ TaskCompletionSource zaa;
|
||||
|
||||
public zav(zay zayVar, TaskCompletionSource taskCompletionSource) {
|
||||
this.zaa = taskCompletionSource;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.IStatusCallback
|
||||
public final void onResult(Status status) {
|
||||
TaskUtil.trySetResultOrApiException(status, Boolean.TRUE, this.zaa);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.internal.TaskUtil;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallIntentResponse;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zaw extends zaa {
|
||||
final /* synthetic */ TaskCompletionSource zaa;
|
||||
|
||||
public zaw(zay zayVar, TaskCompletionSource taskCompletionSource) {
|
||||
this.zaa = taskCompletionSource;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.internal.zaa, com.google.android.gms.common.moduleinstall.internal.zae
|
||||
public final void zac(Status status, ModuleInstallIntentResponse moduleInstallIntentResponse) {
|
||||
TaskUtil.trySetResultOrApiException(status, moduleInstallIntentResponse, this.zaa);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.internal.IStatusCallback;
|
||||
import com.google.android.gms.common.api.internal.TaskUtil;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
final class zax extends IStatusCallback.Stub {
|
||||
final /* synthetic */ TaskCompletionSource zaa;
|
||||
|
||||
public zax(zay zayVar, TaskCompletionSource taskCompletionSource) {
|
||||
this.zaa = taskCompletionSource;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.IStatusCallback
|
||||
public final void onResult(Status status) {
|
||||
TaskUtil.trySetResultOrApiException(status, null, this.zaa);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,220 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import com.google.android.gms.common.api.Api;
|
||||
import com.google.android.gms.common.api.ApiException;
|
||||
import com.google.android.gms.common.api.GoogleApi;
|
||||
import com.google.android.gms.common.api.OptionalModuleApi;
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.internal.ListenerHolder;
|
||||
import com.google.android.gms.common.api.internal.ListenerHolders;
|
||||
import com.google.android.gms.common.api.internal.RegistrationMethods;
|
||||
import com.google.android.gms.common.api.internal.RemoteCall;
|
||||
import com.google.android.gms.common.api.internal.TaskApiCall;
|
||||
import com.google.android.gms.common.internal.Preconditions;
|
||||
import com.google.android.gms.common.moduleinstall.InstallStatusListener;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleAvailabilityResponse;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallClient;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallIntentResponse;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallRequest;
|
||||
import com.google.android.gms.common.moduleinstall.ModuleInstallResponse;
|
||||
import com.google.android.gms.tasks.SuccessContinuation;
|
||||
import com.google.android.gms.tasks.Task;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
import com.google.android.gms.tasks.Tasks;
|
||||
import java.util.Arrays;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zay extends GoogleApi implements ModuleInstallClient {
|
||||
public static final /* synthetic */ int zab = 0;
|
||||
private static final Api.ClientKey zac;
|
||||
private static final Api.AbstractClientBuilder zad;
|
||||
private static final Api zae;
|
||||
|
||||
static {
|
||||
Api.ClientKey clientKey = new Api.ClientKey();
|
||||
zac = clientKey;
|
||||
zaq zaqVar = new zaq();
|
||||
zad = zaqVar;
|
||||
zae = new Api("ModuleInstall.API", zaqVar, clientKey);
|
||||
}
|
||||
|
||||
public zay(Activity activity) {
|
||||
super(activity, (Api<Api.ApiOptions.NoOptions>) zae, Api.ApiOptions.NO_OPTIONS, GoogleApi.Settings.DEFAULT_SETTINGS);
|
||||
}
|
||||
|
||||
public static final ApiFeatureRequest zad(boolean z3, OptionalModuleApi... optionalModuleApiArr) {
|
||||
Preconditions.checkNotNull(optionalModuleApiArr, "Requested APIs must not be null.");
|
||||
Preconditions.checkArgument(optionalModuleApiArr.length > 0, "Please provide at least one OptionalModuleApi.");
|
||||
for (OptionalModuleApi optionalModuleApi : optionalModuleApiArr) {
|
||||
Preconditions.checkNotNull(optionalModuleApi, "Requested API must not be null.");
|
||||
}
|
||||
return ApiFeatureRequest.zaa(Arrays.asList(optionalModuleApiArr), z3);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.ModuleInstallClient
|
||||
public final Task<ModuleAvailabilityResponse> areModulesAvailable(OptionalModuleApi... optionalModuleApiArr) {
|
||||
final ApiFeatureRequest zad2 = zad(false, optionalModuleApiArr);
|
||||
if (zad2.getApiFeatures().isEmpty()) {
|
||||
return Tasks.forResult(new ModuleAvailabilityResponse(true, 0));
|
||||
}
|
||||
TaskApiCall.Builder builder = TaskApiCall.builder();
|
||||
builder.setFeatures(com.google.android.gms.internal.base.zav.zaa);
|
||||
builder.setMethodKey(27301);
|
||||
builder.setAutoResolveMissingFeatures(false);
|
||||
builder.run(new RemoteCall() { // from class: com.google.android.gms.common.moduleinstall.internal.zap
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
@Override // com.google.android.gms.common.api.internal.RemoteCall
|
||||
public final void accept(Object obj, Object obj2) {
|
||||
zay zayVar = zay.this;
|
||||
ApiFeatureRequest apiFeatureRequest = zad2;
|
||||
((zaf) ((zaz) obj).getService()).zae(new zar(zayVar, (TaskCompletionSource) obj2), apiFeatureRequest);
|
||||
}
|
||||
});
|
||||
return doRead(builder.build());
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.ModuleInstallClient
|
||||
public final Task<Void> deferredInstall(OptionalModuleApi... optionalModuleApiArr) {
|
||||
final ApiFeatureRequest zad2 = zad(false, optionalModuleApiArr);
|
||||
if (zad2.getApiFeatures().isEmpty()) {
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
TaskApiCall.Builder builder = TaskApiCall.builder();
|
||||
builder.setFeatures(com.google.android.gms.internal.base.zav.zaa);
|
||||
builder.setMethodKey(27302);
|
||||
builder.setAutoResolveMissingFeatures(false);
|
||||
builder.run(new RemoteCall() { // from class: com.google.android.gms.common.moduleinstall.internal.zan
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
@Override // com.google.android.gms.common.api.internal.RemoteCall
|
||||
public final void accept(Object obj, Object obj2) {
|
||||
zay zayVar = zay.this;
|
||||
ApiFeatureRequest apiFeatureRequest = zad2;
|
||||
((zaf) ((zaz) obj).getService()).zag(new zas(zayVar, (TaskCompletionSource) obj2), apiFeatureRequest, null);
|
||||
}
|
||||
});
|
||||
return doRead(builder.build());
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.ModuleInstallClient
|
||||
public final Task<ModuleInstallIntentResponse> getInstallModulesIntent(OptionalModuleApi... optionalModuleApiArr) {
|
||||
final ApiFeatureRequest zad2 = zad(true, optionalModuleApiArr);
|
||||
if (zad2.getApiFeatures().isEmpty()) {
|
||||
return Tasks.forResult(new ModuleInstallIntentResponse(null));
|
||||
}
|
||||
TaskApiCall.Builder builder = TaskApiCall.builder();
|
||||
builder.setFeatures(com.google.android.gms.internal.base.zav.zaa);
|
||||
builder.setMethodKey(27307);
|
||||
builder.run(new RemoteCall() { // from class: com.google.android.gms.common.moduleinstall.internal.zam
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
@Override // com.google.android.gms.common.api.internal.RemoteCall
|
||||
public final void accept(Object obj, Object obj2) {
|
||||
zay zayVar = zay.this;
|
||||
ApiFeatureRequest apiFeatureRequest = zad2;
|
||||
((zaf) ((zaz) obj).getService()).zaf(new zaw(zayVar, (TaskCompletionSource) obj2), apiFeatureRequest);
|
||||
}
|
||||
});
|
||||
return doRead(builder.build());
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.ModuleInstallClient
|
||||
public final Task<ModuleInstallResponse> installModules(ModuleInstallRequest moduleInstallRequest) {
|
||||
final ApiFeatureRequest fromModuleInstallRequest = ApiFeatureRequest.fromModuleInstallRequest(moduleInstallRequest);
|
||||
final InstallStatusListener listener = moduleInstallRequest.getListener();
|
||||
Executor listenerExecutor = moduleInstallRequest.getListenerExecutor();
|
||||
boolean zaa = moduleInstallRequest.zaa();
|
||||
if (fromModuleInstallRequest.getApiFeatures().isEmpty()) {
|
||||
return Tasks.forResult(new ModuleInstallResponse(0));
|
||||
}
|
||||
if (listener == null) {
|
||||
TaskApiCall.Builder builder = TaskApiCall.builder();
|
||||
builder.setFeatures(com.google.android.gms.internal.base.zav.zaa);
|
||||
builder.setAutoResolveMissingFeatures(zaa);
|
||||
builder.setMethodKey(27304);
|
||||
builder.run(new RemoteCall() { // from class: com.google.android.gms.common.moduleinstall.internal.zao
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
@Override // com.google.android.gms.common.api.internal.RemoteCall
|
||||
public final void accept(Object obj, Object obj2) {
|
||||
zay zayVar = zay.this;
|
||||
ApiFeatureRequest apiFeatureRequest = fromModuleInstallRequest;
|
||||
((zaf) ((zaz) obj).getService()).zag(new zat(zayVar, (TaskCompletionSource) obj2), apiFeatureRequest, null);
|
||||
}
|
||||
});
|
||||
return doRead(builder.build());
|
||||
}
|
||||
Preconditions.checkNotNull(listener);
|
||||
ListenerHolder registerListener = listenerExecutor == null ? registerListener(listener, "InstallStatusListener") : ListenerHolders.createListenerHolder(listener, listenerExecutor, "InstallStatusListener");
|
||||
final zaab zaabVar = new zaab(registerListener);
|
||||
final AtomicReference atomicReference = new AtomicReference();
|
||||
RemoteCall remoteCall = new RemoteCall() { // from class: com.google.android.gms.common.moduleinstall.internal.zai
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
@Override // com.google.android.gms.common.api.internal.RemoteCall
|
||||
public final void accept(Object obj, Object obj2) {
|
||||
zay zayVar = zay.this;
|
||||
AtomicReference atomicReference2 = atomicReference;
|
||||
InstallStatusListener installStatusListener = listener;
|
||||
ApiFeatureRequest apiFeatureRequest = fromModuleInstallRequest;
|
||||
zaab zaabVar2 = zaabVar;
|
||||
((zaf) ((zaz) obj).getService()).zag(new zau(zayVar, atomicReference2, (TaskCompletionSource) obj2, installStatusListener), apiFeatureRequest, zaabVar2);
|
||||
}
|
||||
};
|
||||
RemoteCall remoteCall2 = new RemoteCall() { // from class: com.google.android.gms.common.moduleinstall.internal.zaj
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
@Override // com.google.android.gms.common.api.internal.RemoteCall
|
||||
public final void accept(Object obj, Object obj2) {
|
||||
zay zayVar = zay.this;
|
||||
zaab zaabVar2 = zaabVar;
|
||||
((zaf) ((zaz) obj).getService()).zai(new zav(zayVar, (TaskCompletionSource) obj2), zaabVar2);
|
||||
}
|
||||
};
|
||||
RegistrationMethods.Builder builder2 = RegistrationMethods.builder();
|
||||
builder2.withHolder(registerListener);
|
||||
builder2.setFeatures(com.google.android.gms.internal.base.zav.zaa);
|
||||
builder2.setAutoResolveMissingFeatures(zaa);
|
||||
builder2.register(remoteCall);
|
||||
builder2.unregister(remoteCall2);
|
||||
builder2.setMethodKey(27305);
|
||||
return doRegisterEventListener(builder2.build()).onSuccessTask(new SuccessContinuation() { // from class: com.google.android.gms.common.moduleinstall.internal.zak
|
||||
@Override // com.google.android.gms.tasks.SuccessContinuation
|
||||
public final Task then(Object obj) {
|
||||
AtomicReference atomicReference2 = atomicReference;
|
||||
int i = zay.zab;
|
||||
return atomicReference2.get() != null ? Tasks.forResult((ModuleInstallResponse) atomicReference2.get()) : Tasks.forException(new ApiException(Status.RESULT_INTERNAL_ERROR));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.ModuleInstallClient
|
||||
public final Task<Void> releaseModules(OptionalModuleApi... optionalModuleApiArr) {
|
||||
final ApiFeatureRequest zad2 = zad(false, optionalModuleApiArr);
|
||||
if (zad2.getApiFeatures().isEmpty()) {
|
||||
return Tasks.forResult(null);
|
||||
}
|
||||
TaskApiCall.Builder builder = TaskApiCall.builder();
|
||||
builder.setFeatures(com.google.android.gms.internal.base.zav.zaa);
|
||||
builder.setMethodKey(27303);
|
||||
builder.setAutoResolveMissingFeatures(false);
|
||||
builder.run(new RemoteCall() { // from class: com.google.android.gms.common.moduleinstall.internal.zal
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
@Override // com.google.android.gms.common.api.internal.RemoteCall
|
||||
public final void accept(Object obj, Object obj2) {
|
||||
zay zayVar = zay.this;
|
||||
ApiFeatureRequest apiFeatureRequest = zad2;
|
||||
((zaf) ((zaz) obj).getService()).zah(new zax(zayVar, (TaskCompletionSource) obj2), apiFeatureRequest);
|
||||
}
|
||||
});
|
||||
return doRead(builder.build());
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.moduleinstall.ModuleInstallClient
|
||||
public final Task<Boolean> unregisterListener(InstallStatusListener installStatusListener) {
|
||||
return doUnregisterEventListener(ListenerHolders.createListenerKey(installStatusListener, "InstallStatusListener"), 27306);
|
||||
}
|
||||
|
||||
public zay(Context context) {
|
||||
super(context, (Api<Api.ApiOptions.NoOptions>) zae, Api.ApiOptions.NO_OPTIONS, GoogleApi.Settings.DEFAULT_SETTINGS);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.google.android.gms.common.moduleinstall.internal;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.IBinder;
|
||||
import android.os.IInterface;
|
||||
import android.os.Looper;
|
||||
import com.google.android.gms.common.Feature;
|
||||
import com.google.android.gms.common.api.internal.ConnectionCallbacks;
|
||||
import com.google.android.gms.common.api.internal.OnConnectionFailedListener;
|
||||
import com.google.android.gms.common.internal.ClientSettings;
|
||||
import com.google.android.gms.common.internal.GmsClient;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zaz extends GmsClient {
|
||||
public zaz(Context context, Looper looper, ClientSettings clientSettings, ConnectionCallbacks connectionCallbacks, OnConnectionFailedListener onConnectionFailedListener) {
|
||||
super(context, looper, 308, clientSettings, connectionCallbacks, onConnectionFailedListener);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public final /* synthetic */ IInterface createServiceInterface(IBinder iBinder) {
|
||||
if (iBinder == null) {
|
||||
return null;
|
||||
}
|
||||
IInterface queryLocalInterface = iBinder.queryLocalInterface("com.google.android.gms.common.moduleinstall.internal.IModuleInstallService");
|
||||
return queryLocalInterface instanceof zaf ? (zaf) queryLocalInterface : new zaf(iBinder);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public final Feature[] getApiFeatures() {
|
||||
return com.google.android.gms.internal.base.zav.zab;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient, com.google.android.gms.common.api.Api.Client
|
||||
public final int getMinApkVersion() {
|
||||
return 17895000;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public final String getServiceDescriptor() {
|
||||
return "com.google.android.gms.common.moduleinstall.internal.IModuleInstallService";
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public final String getStartServiceAction() {
|
||||
return "com.google.android.gms.chimera.container.moduleinstall.ModuleInstallService.START";
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public final boolean getUseDynamicLookup() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
||||
public final boolean usesClientTelemetry() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zaa implements Parcelable.Creator {
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* bridge */ /* synthetic */ Object createFromParcel(Parcel parcel) {
|
||||
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
|
||||
boolean z3 = false;
|
||||
int i = 0;
|
||||
while (parcel.dataPosition() < validateObjectHeader) {
|
||||
int readHeader = SafeParcelReader.readHeader(parcel);
|
||||
int fieldId = SafeParcelReader.getFieldId(readHeader);
|
||||
if (fieldId == 1) {
|
||||
z3 = SafeParcelReader.readBoolean(parcel, readHeader);
|
||||
} else if (fieldId != 2) {
|
||||
SafeParcelReader.skipUnknownField(parcel, readHeader);
|
||||
} else {
|
||||
i = SafeParcelReader.readInt(parcel, readHeader);
|
||||
}
|
||||
}
|
||||
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
|
||||
return new ModuleAvailabilityResponse(z3, i);
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* synthetic */ Object[] newArray(int i) {
|
||||
return new ModuleAvailabilityResponse[i];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import android.app.PendingIntent;
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zab implements Parcelable.Creator {
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* bridge */ /* synthetic */ Object createFromParcel(Parcel parcel) {
|
||||
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
|
||||
PendingIntent pendingIntent = null;
|
||||
while (parcel.dataPosition() < validateObjectHeader) {
|
||||
int readHeader = SafeParcelReader.readHeader(parcel);
|
||||
if (SafeParcelReader.getFieldId(readHeader) != 1) {
|
||||
SafeParcelReader.skipUnknownField(parcel, readHeader);
|
||||
} else {
|
||||
pendingIntent = (PendingIntent) SafeParcelReader.createParcelable(parcel, readHeader, PendingIntent.CREATOR);
|
||||
}
|
||||
}
|
||||
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
|
||||
return new ModuleInstallIntentResponse(pendingIntent);
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* synthetic */ Object[] newArray(int i) {
|
||||
return new ModuleInstallIntentResponse[i];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zad implements Parcelable.Creator {
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* bridge */ /* synthetic */ Object createFromParcel(Parcel parcel) {
|
||||
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
|
||||
int i = 0;
|
||||
boolean z3 = false;
|
||||
while (parcel.dataPosition() < validateObjectHeader) {
|
||||
int readHeader = SafeParcelReader.readHeader(parcel);
|
||||
int fieldId = SafeParcelReader.getFieldId(readHeader);
|
||||
if (fieldId == 1) {
|
||||
i = SafeParcelReader.readInt(parcel, readHeader);
|
||||
} else if (fieldId != 2) {
|
||||
SafeParcelReader.skipUnknownField(parcel, readHeader);
|
||||
} else {
|
||||
z3 = SafeParcelReader.readBoolean(parcel, readHeader);
|
||||
}
|
||||
}
|
||||
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
|
||||
return new ModuleInstallResponse(i, z3);
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* synthetic */ Object[] newArray(int i) {
|
||||
return new ModuleInstallResponse[i];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.google.android.gms.common.moduleinstall;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import com.google.android.gms.common.internal.safeparcel.SafeParcelReader;
|
||||
|
||||
/* loaded from: classes3.dex */
|
||||
public final class zae implements Parcelable.Creator {
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* bridge */ /* synthetic */ Object createFromParcel(Parcel parcel) {
|
||||
int validateObjectHeader = SafeParcelReader.validateObjectHeader(parcel);
|
||||
int i = 0;
|
||||
int i4 = 0;
|
||||
int i5 = 0;
|
||||
Long l4 = null;
|
||||
Long l5 = null;
|
||||
while (parcel.dataPosition() < validateObjectHeader) {
|
||||
int readHeader = SafeParcelReader.readHeader(parcel);
|
||||
int fieldId = SafeParcelReader.getFieldId(readHeader);
|
||||
if (fieldId == 1) {
|
||||
i = SafeParcelReader.readInt(parcel, readHeader);
|
||||
} else if (fieldId == 2) {
|
||||
i4 = SafeParcelReader.readInt(parcel, readHeader);
|
||||
} else if (fieldId == 3) {
|
||||
l4 = SafeParcelReader.readLongObject(parcel, readHeader);
|
||||
} else if (fieldId == 4) {
|
||||
l5 = SafeParcelReader.readLongObject(parcel, readHeader);
|
||||
} else if (fieldId != 5) {
|
||||
SafeParcelReader.skipUnknownField(parcel, readHeader);
|
||||
} else {
|
||||
i5 = SafeParcelReader.readInt(parcel, readHeader);
|
||||
}
|
||||
}
|
||||
SafeParcelReader.ensureAtEnd(parcel, validateObjectHeader);
|
||||
return new ModuleInstallStatusUpdate(i, i4, l4, l5, i5);
|
||||
}
|
||||
|
||||
@Override // android.os.Parcelable.Creator
|
||||
public final /* synthetic */ Object[] newArray(int i) {
|
||||
return new ModuleInstallStatusUpdate[i];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user