655 lines
25 KiB
Java
655 lines
25 KiB
Java
package com.google.android.gms.common.api.internal;
|
|
|
|
import android.app.Activity;
|
|
import android.content.Context;
|
|
import android.os.Bundle;
|
|
import android.os.Looper;
|
|
import android.util.Log;
|
|
import androidx.fragment.app.FragmentActivity;
|
|
import com.google.android.gms.common.ConnectionResult;
|
|
import com.google.android.gms.common.GoogleApiAvailability;
|
|
import com.google.android.gms.common.api.Api;
|
|
import com.google.android.gms.common.api.GoogleApiClient;
|
|
import com.google.android.gms.common.api.PendingResult;
|
|
import com.google.android.gms.common.api.Result;
|
|
import com.google.android.gms.common.api.Status;
|
|
import com.google.android.gms.common.api.internal.BaseImplementation;
|
|
import com.google.android.gms.common.internal.ClientSettings;
|
|
import com.google.android.gms.common.internal.Preconditions;
|
|
import com.google.android.gms.common.internal.service.Common;
|
|
import com.google.android.gms.common.util.ClientLibraryUtils;
|
|
import com.google.android.gms.location.DeviceOrientationRequest;
|
|
import com.google.errorprone.annotations.ResultIgnorabilityUnspecified;
|
|
import java.io.FileDescriptor;
|
|
import java.io.PrintWriter;
|
|
import java.io.StringWriter;
|
|
import java.util.ArrayList;
|
|
import java.util.HashSet;
|
|
import java.util.Iterator;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Queue;
|
|
import java.util.Set;
|
|
import java.util.concurrent.TimeUnit;
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
import java.util.concurrent.locks.Lock;
|
|
|
|
/* JADX INFO: compiled from: com.google.android.gms:play-services-base@@18.4.0 */
|
|
/* JADX INFO: loaded from: classes2.dex */
|
|
public final class zabe extends GoogleApiClient implements zabz {
|
|
zabx zab;
|
|
final Map zac;
|
|
Set zad;
|
|
final ClientSettings zae;
|
|
final Map zaf;
|
|
final Api.AbstractClientBuilder zag;
|
|
Set zah;
|
|
final zadc zai;
|
|
private final Lock zaj;
|
|
private final com.google.android.gms.common.internal.zak zak;
|
|
private final int zam;
|
|
private final Context zan;
|
|
private final Looper zao;
|
|
private volatile boolean zap;
|
|
private long zaq;
|
|
private long zar;
|
|
private final zabc zas;
|
|
private final GoogleApiAvailability zat;
|
|
private final ListenerHolders zau;
|
|
private final ArrayList zav;
|
|
private Integer zaw;
|
|
private final com.google.android.gms.common.internal.zaj zax;
|
|
private zaca zal = null;
|
|
final Queue zaa = new LinkedList();
|
|
|
|
public zabe(Context context, Lock lock, Looper looper, ClientSettings clientSettings, GoogleApiAvailability googleApiAvailability, Api.AbstractClientBuilder abstractClientBuilder, Map map, List list, List list2, Map map2, int i, int i2, ArrayList arrayList) {
|
|
this.zaq = true != ClientLibraryUtils.isPackageSide() ? 120000L : DeviceOrientationRequest.OUTPUT_PERIOD_MEDIUM;
|
|
this.zar = 5000L;
|
|
this.zad = new HashSet();
|
|
this.zau = new ListenerHolders();
|
|
this.zaw = null;
|
|
this.zah = null;
|
|
zaay zaayVar = new zaay(this);
|
|
this.zax = zaayVar;
|
|
this.zan = context;
|
|
this.zaj = lock;
|
|
this.zak = new com.google.android.gms.common.internal.zak(looper, zaayVar);
|
|
this.zao = looper;
|
|
this.zas = new zabc(this, looper);
|
|
this.zat = googleApiAvailability;
|
|
this.zam = i;
|
|
if (i >= 0) {
|
|
this.zaw = Integer.valueOf(i2);
|
|
}
|
|
this.zaf = map;
|
|
this.zac = map2;
|
|
this.zav = arrayList;
|
|
this.zai = new zadc();
|
|
Iterator it = list.iterator();
|
|
while (it.hasNext()) {
|
|
this.zak.zaf((GoogleApiClient.ConnectionCallbacks) it.next());
|
|
}
|
|
Iterator it2 = list2.iterator();
|
|
while (it2.hasNext()) {
|
|
this.zak.zag((GoogleApiClient.OnConnectionFailedListener) it2.next());
|
|
}
|
|
this.zae = clientSettings;
|
|
this.zag = abstractClientBuilder;
|
|
}
|
|
|
|
public static int zad(Iterable iterable, boolean z) {
|
|
Iterator it = iterable.iterator();
|
|
boolean zRequiresSignIn = false;
|
|
boolean zProvidesSignIn = false;
|
|
while (it.hasNext()) {
|
|
Api.Client client = (Api.Client) it.next();
|
|
zRequiresSignIn |= client.requiresSignIn();
|
|
zProvidesSignIn |= client.providesSignIn();
|
|
}
|
|
if (zRequiresSignIn) {
|
|
return (zProvidesSignIn && z) ? 2 : 1;
|
|
}
|
|
return 3;
|
|
}
|
|
|
|
static String zag(int i) {
|
|
return i != 1 ? i != 2 ? i != 3 ? "UNKNOWN" : "SIGN_IN_MODE_NONE" : "SIGN_IN_MODE_OPTIONAL" : "SIGN_IN_MODE_REQUIRED";
|
|
}
|
|
|
|
static /* bridge */ /* synthetic */ void zai(zabe zabeVar) {
|
|
zabeVar.zaj.lock();
|
|
try {
|
|
if (zabeVar.zap) {
|
|
zabeVar.zan();
|
|
}
|
|
} finally {
|
|
zabeVar.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
static /* bridge */ /* synthetic */ void zaj(zabe zabeVar) {
|
|
zabeVar.zaj.lock();
|
|
try {
|
|
if (zabeVar.zak()) {
|
|
zabeVar.zan();
|
|
}
|
|
} finally {
|
|
zabeVar.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
private final void zal(int i) {
|
|
Integer num = this.zaw;
|
|
if (num == null) {
|
|
this.zaw = Integer.valueOf(i);
|
|
} else if (num.intValue() != i) {
|
|
throw new IllegalStateException("Cannot use sign-in mode: " + zag(i) + ". Mode was already set to " + zag(this.zaw.intValue()));
|
|
}
|
|
if (this.zal != null) {
|
|
return;
|
|
}
|
|
boolean zRequiresSignIn = false;
|
|
boolean zProvidesSignIn = false;
|
|
for (Api.Client client : this.zac.values()) {
|
|
zRequiresSignIn |= client.requiresSignIn();
|
|
zProvidesSignIn |= client.providesSignIn();
|
|
}
|
|
int iIntValue = this.zaw.intValue();
|
|
if (iIntValue == 1) {
|
|
if (!zRequiresSignIn) {
|
|
throw new IllegalStateException("SIGN_IN_MODE_REQUIRED cannot be used on a GoogleApiClient that does not contain any authenticated APIs. Use connect() instead.");
|
|
}
|
|
if (zProvidesSignIn) {
|
|
throw new IllegalStateException("Cannot use SIGN_IN_MODE_REQUIRED with GOOGLE_SIGN_IN_API. Use connect(SIGN_IN_MODE_OPTIONAL) instead.");
|
|
}
|
|
} else if (iIntValue == 2 && zRequiresSignIn) {
|
|
this.zal = zaaa.zag(this.zan, this, this.zaj, this.zao, this.zat, this.zac, this.zae, this.zaf, this.zag, this.zav);
|
|
return;
|
|
}
|
|
this.zal = new zabi(this.zan, this, this.zaj, this.zao, this.zat, this.zac, this.zae, this.zaf, this.zag, this.zav, this);
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public final void zam(GoogleApiClient googleApiClient, StatusPendingResult statusPendingResult, boolean z) {
|
|
Common.zaa.zaa(googleApiClient).setResultCallback(new zabb(this, statusPendingResult, z, googleApiClient));
|
|
}
|
|
|
|
private final void zan() {
|
|
this.zak.zab();
|
|
((zaca) Preconditions.checkNotNull(this.zal)).zaq();
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
@ResultIgnorabilityUnspecified
|
|
public final ConnectionResult blockingConnect() {
|
|
boolean z = true;
|
|
Preconditions.checkState(Looper.myLooper() != Looper.getMainLooper(), "blockingConnect must not be called on the UI thread");
|
|
this.zaj.lock();
|
|
try {
|
|
if (this.zam >= 0) {
|
|
if (this.zaw == null) {
|
|
z = false;
|
|
}
|
|
Preconditions.checkState(z, "Sign-in mode should have been set explicitly by auto-manage.");
|
|
} else {
|
|
Integer num = this.zaw;
|
|
if (num == null) {
|
|
this.zaw = Integer.valueOf(zad(this.zac.values(), false));
|
|
} else if (num.intValue() == 2) {
|
|
throw new IllegalStateException("Cannot call blockingConnect() when sign-in mode is set to SIGN_IN_MODE_OPTIONAL. Call connect(SIGN_IN_MODE_OPTIONAL) instead.");
|
|
}
|
|
}
|
|
zal(((Integer) Preconditions.checkNotNull(this.zaw)).intValue());
|
|
this.zak.zab();
|
|
return ((zaca) Preconditions.checkNotNull(this.zal)).zab();
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final PendingResult<Status> clearDefaultAccountAndReconnect() {
|
|
Preconditions.checkState(isConnected(), "GoogleApiClient is not connected yet.");
|
|
Integer num = this.zaw;
|
|
boolean z = true;
|
|
if (num != null && num.intValue() == 2) {
|
|
z = false;
|
|
}
|
|
Preconditions.checkState(z, "Cannot use clearDefaultAccountAndReconnect with GOOGLE_SIGN_IN_API");
|
|
StatusPendingResult statusPendingResult = new StatusPendingResult(this);
|
|
if (this.zac.containsKey(Common.CLIENT_KEY)) {
|
|
zam(this, statusPendingResult, false);
|
|
} else {
|
|
AtomicReference atomicReference = new AtomicReference();
|
|
zaaz zaazVar = new zaaz(this, atomicReference, statusPendingResult);
|
|
zaba zabaVar = new zaba(this, statusPendingResult);
|
|
GoogleApiClient.Builder builder = new GoogleApiClient.Builder(this.zan);
|
|
builder.addApi(Common.API);
|
|
builder.addConnectionCallbacks(zaazVar);
|
|
builder.addOnConnectionFailedListener(zabaVar);
|
|
builder.setHandler(this.zas);
|
|
GoogleApiClient googleApiClientBuild = builder.build();
|
|
atomicReference.set(googleApiClientBuild);
|
|
googleApiClientBuild.connect();
|
|
}
|
|
return statusPendingResult;
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void connect() {
|
|
this.zaj.lock();
|
|
try {
|
|
int i = 2;
|
|
boolean z = false;
|
|
if (this.zam >= 0) {
|
|
Preconditions.checkState(this.zaw != null, "Sign-in mode should have been set explicitly by auto-manage.");
|
|
} else {
|
|
Integer num = this.zaw;
|
|
if (num == null) {
|
|
this.zaw = Integer.valueOf(zad(this.zac.values(), false));
|
|
} else if (num.intValue() == 2) {
|
|
throw new IllegalStateException("Cannot call connect() when SignInMode is set to SIGN_IN_MODE_OPTIONAL. Call connect(SIGN_IN_MODE_OPTIONAL) instead.");
|
|
}
|
|
}
|
|
int iIntValue = ((Integer) Preconditions.checkNotNull(this.zaw)).intValue();
|
|
this.zaj.lock();
|
|
if (iIntValue != 3 && iIntValue != 1) {
|
|
if (iIntValue != 2) {
|
|
i = iIntValue;
|
|
}
|
|
Preconditions.checkArgument(z, "Illegal sign-in mode: " + i);
|
|
zal(i);
|
|
zan();
|
|
this.zaj.unlock();
|
|
}
|
|
i = iIntValue;
|
|
z = true;
|
|
Preconditions.checkArgument(z, "Illegal sign-in mode: " + i);
|
|
zal(i);
|
|
zan();
|
|
this.zaj.unlock();
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void disconnect() {
|
|
this.zaj.lock();
|
|
try {
|
|
this.zai.zab();
|
|
zaca zacaVar = this.zal;
|
|
if (zacaVar != null) {
|
|
zacaVar.zar();
|
|
}
|
|
this.zau.zab();
|
|
for (BaseImplementation.ApiMethodImpl apiMethodImpl : this.zaa) {
|
|
apiMethodImpl.zan(null);
|
|
apiMethodImpl.cancel();
|
|
}
|
|
this.zaa.clear();
|
|
if (this.zal != null) {
|
|
zak();
|
|
this.zak.zaa();
|
|
}
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void dump(String str, FileDescriptor fileDescriptor, PrintWriter printWriter, String[] strArr) {
|
|
printWriter.append((CharSequence) str).append("mContext=").println(this.zan);
|
|
printWriter.append((CharSequence) str).append("mResuming=").print(this.zap);
|
|
printWriter.append(" mWorkQueue.size()=").print(this.zaa.size());
|
|
printWriter.append(" mUnconsumedApiCalls.size()=").println(this.zai.zab.size());
|
|
zaca zacaVar = this.zal;
|
|
if (zacaVar != null) {
|
|
zacaVar.zas(str, fileDescriptor, printWriter, strArr);
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
@ResultIgnorabilityUnspecified
|
|
public final <A extends Api.AnyClient, R extends Result, T extends BaseImplementation.ApiMethodImpl<R, A>> T enqueue(T t) {
|
|
Api<?> api = t.getApi();
|
|
Preconditions.checkArgument(this.zac.containsKey(t.getClientKey()), "GoogleApiClient is not configured to use " + (api != null ? api.zad() : "the API") + " required for this call.");
|
|
this.zaj.lock();
|
|
try {
|
|
zaca zacaVar = this.zal;
|
|
if (zacaVar == null) {
|
|
this.zaa.add(t);
|
|
} else {
|
|
t = (T) zacaVar.zae(t);
|
|
}
|
|
return t;
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
@ResultIgnorabilityUnspecified
|
|
public final <A extends Api.AnyClient, T extends BaseImplementation.ApiMethodImpl<? extends Result, A>> T execute(T t) {
|
|
Map map = this.zac;
|
|
Api<?> api = t.getApi();
|
|
Preconditions.checkArgument(map.containsKey(t.getClientKey()), "GoogleApiClient is not configured to use " + (api != null ? api.zad() : "the API") + " required for this call.");
|
|
this.zaj.lock();
|
|
try {
|
|
zaca zacaVar = this.zal;
|
|
if (zacaVar == null) {
|
|
throw new IllegalStateException("GoogleApiClient is not connected yet.");
|
|
}
|
|
if (this.zap) {
|
|
this.zaa.add(t);
|
|
while (!this.zaa.isEmpty()) {
|
|
BaseImplementation.ApiMethodImpl apiMethodImpl = (BaseImplementation.ApiMethodImpl) this.zaa.remove();
|
|
this.zai.zaa(apiMethodImpl);
|
|
apiMethodImpl.setFailedResult(Status.RESULT_INTERNAL_ERROR);
|
|
}
|
|
} else {
|
|
t = (T) zacaVar.zaf(t);
|
|
}
|
|
return t;
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final <C extends Api.Client> C getClient(Api.AnyClientKey<C> anyClientKey) {
|
|
C c = (C) this.zac.get(anyClientKey);
|
|
Preconditions.checkNotNull(c, "Appropriate Api was not requested.");
|
|
return c;
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final ConnectionResult getConnectionResult(Api<?> api) {
|
|
ConnectionResult connectionResult;
|
|
this.zaj.lock();
|
|
try {
|
|
if (!isConnected() && !this.zap) {
|
|
throw new IllegalStateException("Cannot invoke getConnectionResult unless GoogleApiClient is connected");
|
|
}
|
|
if (!this.zac.containsKey(api.zab())) {
|
|
throw new IllegalArgumentException(api.zad() + " was never registered with GoogleApiClient");
|
|
}
|
|
ConnectionResult connectionResultZad = ((zaca) Preconditions.checkNotNull(this.zal)).zad(api);
|
|
if (connectionResultZad != null) {
|
|
return connectionResultZad;
|
|
}
|
|
if (this.zap) {
|
|
connectionResult = ConnectionResult.RESULT_SUCCESS;
|
|
} else {
|
|
Log.w("GoogleApiClientImpl", zaf());
|
|
Log.wtf("GoogleApiClientImpl", api.zad() + " requested in getConnectionResult is not connected but is not present in the failed connections map", new Exception());
|
|
connectionResult = new ConnectionResult(8, null);
|
|
}
|
|
return connectionResult;
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final Context getContext() {
|
|
return this.zan;
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final Looper getLooper() {
|
|
return this.zao;
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final boolean hasApi(Api<?> api) {
|
|
return this.zac.containsKey(api.zab());
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final boolean hasConnectedApi(Api<?> api) {
|
|
Api.Client client;
|
|
return isConnected() && (client = (Api.Client) this.zac.get(api.zab())) != null && client.isConnected();
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final boolean isConnected() {
|
|
zaca zacaVar = this.zal;
|
|
return zacaVar != null && zacaVar.zaw();
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final boolean isConnecting() {
|
|
zaca zacaVar = this.zal;
|
|
return zacaVar != null && zacaVar.zax();
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final boolean isConnectionCallbacksRegistered(GoogleApiClient.ConnectionCallbacks connectionCallbacks) {
|
|
return this.zak.zaj(connectionCallbacks);
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final boolean isConnectionFailedListenerRegistered(GoogleApiClient.OnConnectionFailedListener onConnectionFailedListener) {
|
|
return this.zak.zak(onConnectionFailedListener);
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final boolean maybeSignIn(SignInConnectionListener signInConnectionListener) {
|
|
zaca zacaVar = this.zal;
|
|
return zacaVar != null && zacaVar.zay(signInConnectionListener);
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void maybeSignOut() {
|
|
zaca zacaVar = this.zal;
|
|
if (zacaVar != null) {
|
|
zacaVar.zau();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void reconnect() {
|
|
disconnect();
|
|
connect();
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void registerConnectionCallbacks(GoogleApiClient.ConnectionCallbacks connectionCallbacks) {
|
|
this.zak.zaf(connectionCallbacks);
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void registerConnectionFailedListener(GoogleApiClient.OnConnectionFailedListener onConnectionFailedListener) {
|
|
this.zak.zag(onConnectionFailedListener);
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final <L> ListenerHolder<L> registerListener(L l) {
|
|
this.zaj.lock();
|
|
try {
|
|
return this.zau.zaa(l, this.zao, "NO_TYPE");
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void stopAutoManage(FragmentActivity fragmentActivity) {
|
|
LifecycleActivity lifecycleActivity = new LifecycleActivity((Activity) fragmentActivity);
|
|
if (this.zam < 0) {
|
|
throw new IllegalStateException("Called stopAutoManage but automatic lifecycle management is not enabled.");
|
|
}
|
|
zak.zaa(lifecycleActivity).zae(this.zam);
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void unregisterConnectionCallbacks(GoogleApiClient.ConnectionCallbacks connectionCallbacks) {
|
|
this.zak.zah(connectionCallbacks);
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void unregisterConnectionFailedListener(GoogleApiClient.OnConnectionFailedListener onConnectionFailedListener) {
|
|
this.zak.zai(onConnectionFailedListener);
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.internal.zabz
|
|
public final void zaa(ConnectionResult connectionResult) {
|
|
if (!this.zat.isPlayServicesPossiblyUpdating(this.zan, connectionResult.getErrorCode())) {
|
|
zak();
|
|
}
|
|
if (this.zap) {
|
|
return;
|
|
}
|
|
this.zak.zac(connectionResult);
|
|
this.zak.zaa();
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.internal.zabz
|
|
public final void zab(Bundle bundle) {
|
|
while (!this.zaa.isEmpty()) {
|
|
execute((BaseImplementation.ApiMethodImpl) this.zaa.remove());
|
|
}
|
|
this.zak.zad(bundle);
|
|
}
|
|
|
|
final String zaf() {
|
|
StringWriter stringWriter = new StringWriter();
|
|
dump("", null, new PrintWriter(stringWriter), null);
|
|
return stringWriter.toString();
|
|
}
|
|
|
|
@ResultIgnorabilityUnspecified
|
|
final boolean zak() {
|
|
if (!this.zap) {
|
|
return false;
|
|
}
|
|
this.zap = false;
|
|
this.zas.removeMessages(2);
|
|
this.zas.removeMessages(1);
|
|
zabx zabxVar = this.zab;
|
|
if (zabxVar != null) {
|
|
zabxVar.zab();
|
|
this.zab = null;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void zao(zada zadaVar) {
|
|
this.zaj.lock();
|
|
try {
|
|
if (this.zah == null) {
|
|
this.zah = new HashSet();
|
|
}
|
|
this.zah.add(zadaVar);
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void zap(zada zadaVar) {
|
|
this.zaj.lock();
|
|
try {
|
|
Set set = this.zah;
|
|
if (set == null) {
|
|
Log.wtf("GoogleApiClientImpl", "Attempted to remove pending transform when no transforms are registered.", new Exception());
|
|
} else if (set.remove(zadaVar)) {
|
|
this.zaj.lock();
|
|
Set set2 = this.zah;
|
|
if (set2 == null) {
|
|
this.zaj.unlock();
|
|
} else {
|
|
boolean zIsEmpty = set2.isEmpty();
|
|
this.zaj.unlock();
|
|
if (zIsEmpty) {
|
|
}
|
|
}
|
|
zaca zacaVar = this.zal;
|
|
if (zacaVar != null) {
|
|
zacaVar.zat();
|
|
}
|
|
} else {
|
|
Log.wtf("GoogleApiClientImpl", "Failed to remove pending transform - this may lead to memory leaks!", new Exception());
|
|
}
|
|
} catch (Throwable th) {
|
|
throw th;
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.internal.zabz
|
|
public final void zac(int i, boolean z) {
|
|
if (i == 1) {
|
|
if (!z && !this.zap) {
|
|
this.zap = true;
|
|
if (this.zab == null && !ClientLibraryUtils.isPackageSide()) {
|
|
try {
|
|
this.zab = this.zat.zac(this.zan.getApplicationContext(), new zabd(this));
|
|
} catch (SecurityException unused) {
|
|
}
|
|
}
|
|
zabc zabcVar = this.zas;
|
|
zabcVar.sendMessageDelayed(zabcVar.obtainMessage(1), this.zaq);
|
|
zabc zabcVar2 = this.zas;
|
|
zabcVar2.sendMessageDelayed(zabcVar2.obtainMessage(2), this.zar);
|
|
}
|
|
i = 1;
|
|
}
|
|
for (BasePendingResult basePendingResult : (BasePendingResult[]) this.zai.zab.toArray(new BasePendingResult[0])) {
|
|
basePendingResult.forceFailureUnlessReady(zadc.zaa);
|
|
}
|
|
this.zak.zae(i);
|
|
this.zak.zaa();
|
|
if (i == 2) {
|
|
zan();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final ConnectionResult blockingConnect(long j, TimeUnit timeUnit) {
|
|
Preconditions.checkState(Looper.myLooper() != Looper.getMainLooper(), "blockingConnect must not be called on the UI thread");
|
|
Preconditions.checkNotNull(timeUnit, "TimeUnit must not be null");
|
|
this.zaj.lock();
|
|
try {
|
|
Integer num = this.zaw;
|
|
if (num != null) {
|
|
if (num.intValue() == 2) {
|
|
throw new IllegalStateException("Cannot call blockingConnect() when sign-in mode is set to SIGN_IN_MODE_OPTIONAL. Call connect(SIGN_IN_MODE_OPTIONAL) instead.");
|
|
}
|
|
} else {
|
|
this.zaw = Integer.valueOf(zad(this.zac.values(), false));
|
|
}
|
|
zal(((Integer) Preconditions.checkNotNull(this.zaw)).intValue());
|
|
this.zak.zab();
|
|
return ((zaca) Preconditions.checkNotNull(this.zal)).zac(j, timeUnit);
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
|
|
@Override // com.google.android.gms.common.api.GoogleApiClient
|
|
public final void connect(int i) {
|
|
this.zaj.lock();
|
|
boolean z = true;
|
|
if (i != 3 && i != 1) {
|
|
if (i == 2) {
|
|
i = 2;
|
|
} else {
|
|
z = false;
|
|
}
|
|
}
|
|
try {
|
|
Preconditions.checkArgument(z, "Illegal sign-in mode: " + i);
|
|
zal(i);
|
|
zan();
|
|
} finally {
|
|
this.zaj.unlock();
|
|
}
|
|
}
|
|
} |