- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
239 lines
9.6 KiB
Java
239 lines
9.6 KiB
Java
package com.google.android.gms.internal.drive;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.pm.ResolveInfo;
|
|
import android.content.pm.ServiceInfo;
|
|
import android.os.Bundle;
|
|
import android.os.IBinder;
|
|
import android.os.IInterface;
|
|
import android.os.Looper;
|
|
import android.os.Process;
|
|
import android.os.RemoteException;
|
|
import com.google.android.gms.common.GooglePlayServicesUtilLight;
|
|
import com.google.android.gms.common.api.GoogleApiClient;
|
|
import com.google.android.gms.common.api.PendingResult;
|
|
import com.google.android.gms.common.api.Status;
|
|
import com.google.android.gms.common.internal.ClientSettings;
|
|
import com.google.android.gms.common.internal.GmsClient;
|
|
import com.google.android.gms.common.internal.Preconditions;
|
|
import com.google.android.gms.common.internal.ServiceSpecificExtraArgs;
|
|
import com.google.android.gms.common.util.UidVerifier;
|
|
import com.google.android.gms.common.util.VisibleForTesting;
|
|
import com.google.android.gms.drive.DriveId;
|
|
import com.google.android.gms.drive.events.ChangeListener;
|
|
import com.google.android.gms.drive.events.DriveEventService;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
|
|
/* loaded from: classes3.dex */
|
|
public final class zzaw extends GmsClient<zzeo> {
|
|
private final String zzeb;
|
|
protected final boolean zzec;
|
|
private volatile DriveId zzed;
|
|
private volatile DriveId zzee;
|
|
private volatile boolean zzef;
|
|
|
|
@VisibleForTesting
|
|
private final Map<DriveId, Map<ChangeListener, zzee>> zzeg;
|
|
|
|
@VisibleForTesting
|
|
private final Map<com.google.android.gms.drive.events.zzd, zzee> zzeh;
|
|
|
|
@VisibleForTesting
|
|
private final Map<DriveId, Map<com.google.android.gms.drive.events.zzl, zzee>> zzei;
|
|
|
|
@VisibleForTesting
|
|
private final Map<DriveId, Map<com.google.android.gms.drive.events.zzl, zzee>> zzej;
|
|
private final Bundle zzz;
|
|
|
|
public zzaw(Context context, Looper looper, ClientSettings clientSettings, GoogleApiClient.ConnectionCallbacks connectionCallbacks, GoogleApiClient.OnConnectionFailedListener onConnectionFailedListener, Bundle bundle) {
|
|
super(context, looper, 11, clientSettings, connectionCallbacks, onConnectionFailedListener);
|
|
this.zzef = false;
|
|
this.zzeg = new HashMap();
|
|
this.zzeh = new HashMap();
|
|
this.zzei = new HashMap();
|
|
this.zzej = new HashMap();
|
|
this.zzeb = clientSettings.getRealClientPackageName();
|
|
this.zzz = bundle;
|
|
Intent intent = new Intent(DriveEventService.ACTION_HANDLE_EVENT);
|
|
intent.setPackage(context.getPackageName());
|
|
List<ResolveInfo> queryIntentServices = context.getPackageManager().queryIntentServices(intent, 0);
|
|
int size = queryIntentServices.size();
|
|
if (size == 0) {
|
|
this.zzec = false;
|
|
return;
|
|
}
|
|
if (size != 1) {
|
|
String action = intent.getAction();
|
|
StringBuilder sb = new StringBuilder(String.valueOf(action).length() + 72);
|
|
sb.append("AndroidManifest.xml can only define one service that handles the ");
|
|
sb.append(action);
|
|
sb.append(" action");
|
|
throw new IllegalStateException(sb.toString());
|
|
}
|
|
ServiceInfo serviceInfo = queryIntentServices.get(0).serviceInfo;
|
|
if (serviceInfo.exported) {
|
|
this.zzec = true;
|
|
return;
|
|
}
|
|
String str = serviceInfo.name;
|
|
StringBuilder sb2 = new StringBuilder(String.valueOf(str).length() + 60);
|
|
sb2.append("Drive event service ");
|
|
sb2.append(str);
|
|
sb2.append(" must be exported in AndroidManifest.xml");
|
|
throw new IllegalStateException(sb2.toString());
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.internal.BaseGmsClient, com.google.android.gms.common.api.Api.Client
|
|
public final int getMinApkVersion() {
|
|
return GooglePlayServicesUtilLight.GOOGLE_PLAY_SERVICES_VERSION_CODE;
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
|
public final String getServiceDescriptor() {
|
|
return "com.google.android.gms.drive.internal.IDriveService";
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
|
public final String getStartServiceAction() {
|
|
return "com.google.android.gms.drive.ApiService.START";
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.internal.BaseGmsClient, com.google.android.gms.common.api.Api.Client
|
|
public final boolean requiresAccount() {
|
|
return true;
|
|
}
|
|
|
|
public final DriveId zzae() {
|
|
return this.zzed;
|
|
}
|
|
|
|
public final DriveId zzaf() {
|
|
return this.zzee;
|
|
}
|
|
|
|
public final boolean zzag() {
|
|
return this.zzef;
|
|
}
|
|
|
|
public final boolean zzah() {
|
|
return this.zzec;
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.internal.BaseGmsClient, com.google.android.gms.common.api.Api.Client
|
|
public final boolean requiresSignIn() {
|
|
return (getContext().getPackageName().equals(this.zzeb) && UidVerifier.isGooglePlayServicesUid(getContext(), Process.myUid())) ? false : true;
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
|
public final Bundle getGetServiceRequestExtraArgs() {
|
|
String packageName = getContext().getPackageName();
|
|
Preconditions.checkNotNull(packageName);
|
|
Preconditions.checkState(!getClientSettings().getAllRequestedScopes().isEmpty());
|
|
Bundle bundle = new Bundle();
|
|
if (!packageName.equals(this.zzeb)) {
|
|
bundle.putString("proxy_package_name", this.zzeb);
|
|
}
|
|
bundle.putAll(this.zzz);
|
|
return bundle;
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.internal.BaseGmsClient, com.google.android.gms.common.api.Api.Client
|
|
public final void disconnect() {
|
|
if (isConnected()) {
|
|
try {
|
|
((zzeo) getService()).zza(new zzad());
|
|
} catch (RemoteException unused) {
|
|
}
|
|
}
|
|
super.disconnect();
|
|
synchronized (this.zzeg) {
|
|
this.zzeg.clear();
|
|
}
|
|
synchronized (this.zzeh) {
|
|
this.zzeh.clear();
|
|
}
|
|
synchronized (this.zzei) {
|
|
this.zzei.clear();
|
|
}
|
|
synchronized (this.zzej) {
|
|
this.zzej.clear();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.internal.BaseGmsClient
|
|
public final void onPostInitHandler(int i, IBinder iBinder, Bundle bundle, int i2) {
|
|
if (bundle != null) {
|
|
bundle.setClassLoader(zzaw.class.getClassLoader());
|
|
this.zzed = (DriveId) bundle.getParcelable("com.google.android.gms.drive.root_id");
|
|
this.zzee = (DriveId) bundle.getParcelable("com.google.android.gms.drive.appdata_id");
|
|
this.zzef = true;
|
|
}
|
|
super.onPostInitHandler(i, iBinder, bundle, i2);
|
|
}
|
|
|
|
public final PendingResult<Status> zza(GoogleApiClient googleApiClient, DriveId driveId, ChangeListener changeListener) {
|
|
Preconditions.checkArgument(com.google.android.gms.drive.events.zzj.zza(1, driveId));
|
|
Preconditions.checkNotNull(changeListener, ServiceSpecificExtraArgs.CastExtraArgs.LISTENER);
|
|
Preconditions.checkState(isConnected(), "Client must be connected");
|
|
synchronized (this.zzeg) {
|
|
try {
|
|
Map<ChangeListener, zzee> map = this.zzeg.get(driveId);
|
|
if (map == null) {
|
|
map = new HashMap<>();
|
|
this.zzeg.put(driveId, map);
|
|
}
|
|
zzee zzeeVar = map.get(changeListener);
|
|
if (zzeeVar == null) {
|
|
zzeeVar = new zzee(getLooper(), getContext(), 1, changeListener);
|
|
map.put(changeListener, zzeeVar);
|
|
} else if (zzeeVar.zzg(1)) {
|
|
return new zzat(googleApiClient, Status.RESULT_SUCCESS);
|
|
}
|
|
zzeeVar.zzf(1);
|
|
return googleApiClient.execute(new zzax(this, googleApiClient, new zzj(1, driveId), zzeeVar));
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
}
|
|
|
|
public final PendingResult<Status> zzb(GoogleApiClient googleApiClient, DriveId driveId, ChangeListener changeListener) {
|
|
Preconditions.checkArgument(com.google.android.gms.drive.events.zzj.zza(1, driveId));
|
|
Preconditions.checkState(isConnected(), "Client must be connected");
|
|
Preconditions.checkNotNull(changeListener, ServiceSpecificExtraArgs.CastExtraArgs.LISTENER);
|
|
synchronized (this.zzeg) {
|
|
try {
|
|
Map<ChangeListener, zzee> map = this.zzeg.get(driveId);
|
|
if (map == null) {
|
|
return new zzat(googleApiClient, Status.RESULT_SUCCESS);
|
|
}
|
|
zzee remove = map.remove(changeListener);
|
|
if (remove == null) {
|
|
return new zzat(googleApiClient, Status.RESULT_SUCCESS);
|
|
}
|
|
if (map.isEmpty()) {
|
|
this.zzeg.remove(driveId);
|
|
}
|
|
return googleApiClient.execute(new zzay(this, googleApiClient, new zzgs(driveId, 1), remove));
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
}
|
|
}
|
|
}
|
|
|
|
@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.drive.internal.IDriveService");
|
|
if (queryLocalInterface instanceof zzeo) {
|
|
return (zzeo) queryLocalInterface;
|
|
}
|
|
return new zzep(iBinder);
|
|
}
|
|
}
|