91 lines
3.4 KiB
Java
91 lines
3.4 KiB
Java
|
package com.google.android.gms.common.api.internal;
|
||
|
|
||
|
import android.app.PendingIntent;
|
||
|
import android.os.DeadObjectException;
|
||
|
import android.os.RemoteException;
|
||
|
import com.google.android.gms.common.api.Api;
|
||
|
import com.google.android.gms.common.api.GoogleApiClient;
|
||
|
import com.google.android.gms.common.api.Result;
|
||
|
import com.google.android.gms.common.api.Status;
|
||
|
import com.google.android.gms.common.api.internal.BasePendingResult;
|
||
|
import com.google.android.gms.common.internal.Preconditions;
|
||
|
|
||
|
/* loaded from: classes.dex */
|
||
|
public class BaseImplementation {
|
||
|
|
||
|
/* loaded from: classes.dex */
|
||
|
public interface ResultHolder<R> {
|
||
|
void setFailedResult(Status status);
|
||
|
|
||
|
void setResult(R r);
|
||
|
}
|
||
|
|
||
|
/* loaded from: classes.dex */
|
||
|
public static abstract class ApiMethodImpl<R extends Result, A extends Api.AnyClient> extends BasePendingResult<R> implements ResultHolder<R> {
|
||
|
private final Api<?> mApi;
|
||
|
private final Api.AnyClientKey<A> mClientKey;
|
||
|
|
||
|
@Deprecated
|
||
|
protected ApiMethodImpl(Api.AnyClientKey<A> anyClientKey, GoogleApiClient googleApiClient) {
|
||
|
super((GoogleApiClient) Preconditions.checkNotNull(googleApiClient, "GoogleApiClient must not be null"));
|
||
|
this.mClientKey = (Api.AnyClientKey) Preconditions.checkNotNull(anyClientKey);
|
||
|
this.mApi = null;
|
||
|
}
|
||
|
|
||
|
private void setFailedResult(RemoteException remoteException) {
|
||
|
setFailedResult(new Status(8, remoteException.getLocalizedMessage(), (PendingIntent) null));
|
||
|
}
|
||
|
|
||
|
protected abstract void doExecute(A a) throws RemoteException;
|
||
|
|
||
|
protected void onSetFailedResult(R r) {
|
||
|
}
|
||
|
|
||
|
public final void run(A a) throws DeadObjectException {
|
||
|
try {
|
||
|
doExecute(a);
|
||
|
} catch (DeadObjectException e) {
|
||
|
setFailedResult(e);
|
||
|
throw e;
|
||
|
} catch (RemoteException e2) {
|
||
|
setFailedResult(e2);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/* JADX WARN: Multi-variable type inference failed */
|
||
|
@Override // com.google.android.gms.common.api.internal.BaseImplementation.ResultHolder
|
||
|
public /* bridge */ /* synthetic */ void setResult(Object obj) {
|
||
|
super.setResult((ApiMethodImpl<R, A>) obj);
|
||
|
}
|
||
|
|
||
|
public ApiMethodImpl(Api<?> api, GoogleApiClient googleApiClient) {
|
||
|
super((GoogleApiClient) Preconditions.checkNotNull(googleApiClient, "GoogleApiClient must not be null"));
|
||
|
Preconditions.checkNotNull(api, "Api must not be null");
|
||
|
this.mClientKey = (Api.AnyClientKey<A>) api.zab();
|
||
|
this.mApi = api;
|
||
|
}
|
||
|
|
||
|
@Override // com.google.android.gms.common.api.internal.BaseImplementation.ResultHolder
|
||
|
public final void setFailedResult(Status status) {
|
||
|
Preconditions.checkArgument(!status.isSuccess(), "Failed result must not be success");
|
||
|
R createFailedResult = createFailedResult(status);
|
||
|
setResult((ApiMethodImpl<R, A>) createFailedResult);
|
||
|
onSetFailedResult(createFailedResult);
|
||
|
}
|
||
|
|
||
|
protected ApiMethodImpl(BasePendingResult.CallbackHandler<R> callbackHandler) {
|
||
|
super(callbackHandler);
|
||
|
this.mClientKey = new Api.AnyClientKey<>();
|
||
|
this.mApi = null;
|
||
|
}
|
||
|
|
||
|
public final Api.AnyClientKey<A> getClientKey() {
|
||
|
return this.mClientKey;
|
||
|
}
|
||
|
|
||
|
public final Api<?> getApi() {
|
||
|
return this.mApi;
|
||
|
}
|
||
|
}
|
||
|
}
|