Initial version -- added millennium read funcionality
This commit is contained in:
@@ -0,0 +1,510 @@
|
||||
package com.google.android.gms.common.api.internal;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.DeadObjectException;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
import androidx.collection.ArrayMap;
|
||||
import com.google.android.gms.common.ConnectionResult;
|
||||
import com.google.android.gms.common.Feature;
|
||||
import com.google.android.gms.common.api.Api;
|
||||
import com.google.android.gms.common.api.GoogleApi;
|
||||
import com.google.android.gms.common.api.GoogleApiClient;
|
||||
import com.google.android.gms.common.api.Status;
|
||||
import com.google.android.gms.common.api.UnsupportedApiCallException;
|
||||
import com.google.android.gms.common.api.internal.ListenerHolder;
|
||||
import com.google.android.gms.common.internal.Objects;
|
||||
import com.google.android.gms.common.internal.Preconditions;
|
||||
import com.google.android.gms.common.util.ArrayUtils;
|
||||
import com.google.android.gms.tasks.TaskCompletionSource;
|
||||
import com.google.errorprone.annotations.ResultIgnorabilityUnspecified;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
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 org.checkerframework.checker.initialization.qual.NotOnlyInitialized;
|
||||
|
||||
/* JADX INFO: compiled from: com.google.android.gms:play-services-base@@18.4.0 */
|
||||
/* JADX INFO: loaded from: classes2.dex */
|
||||
public final class zabq implements GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener, zau {
|
||||
final /* synthetic */ GoogleApiManager zaa;
|
||||
|
||||
@NotOnlyInitialized
|
||||
private final Api.Client zac;
|
||||
private final ApiKey zad;
|
||||
private final zaad zae;
|
||||
private final int zah;
|
||||
private final zact zai;
|
||||
private boolean zaj;
|
||||
private final Queue zab = new LinkedList();
|
||||
private final Set zaf = new HashSet();
|
||||
private final Map zag = new HashMap();
|
||||
private final List zak = new ArrayList();
|
||||
private ConnectionResult zal = null;
|
||||
private int zam = 0;
|
||||
|
||||
public zabq(GoogleApiManager googleApiManager, GoogleApi googleApi) {
|
||||
this.zaa = googleApiManager;
|
||||
Api.Client clientZab = googleApi.zab(googleApiManager.zar.getLooper(), this);
|
||||
this.zac = clientZab;
|
||||
this.zad = googleApi.getApiKey();
|
||||
this.zae = new zaad();
|
||||
this.zah = googleApi.zaa();
|
||||
if (clientZab.requiresSignIn()) {
|
||||
this.zai = googleApi.zac(googleApiManager.zai, googleApiManager.zar);
|
||||
} else {
|
||||
this.zai = null;
|
||||
}
|
||||
}
|
||||
|
||||
/* JADX WARN: Multi-variable type inference failed */
|
||||
private final Feature zaC(Feature[] featureArr) {
|
||||
if (featureArr != null && featureArr.length != 0) {
|
||||
Feature[] availableFeatures = this.zac.getAvailableFeatures();
|
||||
if (availableFeatures == null) {
|
||||
availableFeatures = new Feature[0];
|
||||
}
|
||||
ArrayMap arrayMap = new ArrayMap(availableFeatures.length);
|
||||
for (Feature feature : availableFeatures) {
|
||||
arrayMap.put(feature.getName(), Long.valueOf(feature.getVersion()));
|
||||
}
|
||||
for (Feature feature2 : featureArr) {
|
||||
Long l = (Long) arrayMap.get(feature2.getName());
|
||||
if (l == null || l.longValue() < feature2.getVersion()) {
|
||||
return feature2;
|
||||
}
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private final void zaD(ConnectionResult connectionResult) {
|
||||
Iterator it = this.zaf.iterator();
|
||||
while (it.hasNext()) {
|
||||
((zal) it.next()).zac(this.zad, connectionResult, Objects.equal(connectionResult, ConnectionResult.RESULT_SUCCESS) ? this.zac.getEndpointPackageName() : null);
|
||||
}
|
||||
this.zaf.clear();
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public final void zaE(Status status) {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
zaF(status, null, false);
|
||||
}
|
||||
|
||||
private final void zaF(Status status, Exception exc, boolean z) {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
if ((status == null) == (exc == null)) {
|
||||
throw new IllegalArgumentException("Status XOR exception should be null");
|
||||
}
|
||||
Iterator it = this.zab.iterator();
|
||||
while (it.hasNext()) {
|
||||
zai zaiVar = (zai) it.next();
|
||||
if (!z || zaiVar.zac == 2) {
|
||||
if (status != null) {
|
||||
zaiVar.zad(status);
|
||||
} else {
|
||||
zaiVar.zae(exc);
|
||||
}
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private final void zaG() {
|
||||
ArrayList arrayList = new ArrayList(this.zab);
|
||||
int size = arrayList.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
zai zaiVar = (zai) arrayList.get(i);
|
||||
if (!this.zac.isConnected()) {
|
||||
return;
|
||||
}
|
||||
if (zaM(zaiVar)) {
|
||||
this.zab.remove(zaiVar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public final void zaH() {
|
||||
zan();
|
||||
zaD(ConnectionResult.RESULT_SUCCESS);
|
||||
zaL();
|
||||
Iterator it = this.zag.values().iterator();
|
||||
while (it.hasNext()) {
|
||||
zaci zaciVar = (zaci) it.next();
|
||||
if (zaC(zaciVar.zaa.getRequiredFeatures()) != null) {
|
||||
it.remove();
|
||||
} else {
|
||||
try {
|
||||
zaciVar.zaa.registerListener(this.zac, new TaskCompletionSource<>());
|
||||
} catch (DeadObjectException unused) {
|
||||
onConnectionSuspended(3);
|
||||
this.zac.disconnect("DeadObjectException thrown while calling register listener method.");
|
||||
} catch (RemoteException unused2) {
|
||||
it.remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
zaG();
|
||||
zaJ();
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public final void zaI(int i) {
|
||||
zan();
|
||||
this.zaj = true;
|
||||
this.zae.zae(i, this.zac.getLastDisconnectMessage());
|
||||
ApiKey apiKey = this.zad;
|
||||
GoogleApiManager googleApiManager = this.zaa;
|
||||
googleApiManager.zar.sendMessageDelayed(Message.obtain(googleApiManager.zar, 9, apiKey), 5000L);
|
||||
ApiKey apiKey2 = this.zad;
|
||||
GoogleApiManager googleApiManager2 = this.zaa;
|
||||
googleApiManager2.zar.sendMessageDelayed(Message.obtain(googleApiManager2.zar, 11, apiKey2), 120000L);
|
||||
this.zaa.zak.zac();
|
||||
Iterator it = this.zag.values().iterator();
|
||||
while (it.hasNext()) {
|
||||
((zaci) it.next()).zac.run();
|
||||
}
|
||||
}
|
||||
|
||||
private final void zaJ() {
|
||||
this.zaa.zar.removeMessages(12, this.zad);
|
||||
ApiKey apiKey = this.zad;
|
||||
GoogleApiManager googleApiManager = this.zaa;
|
||||
googleApiManager.zar.sendMessageDelayed(googleApiManager.zar.obtainMessage(12, apiKey), this.zaa.zae);
|
||||
}
|
||||
|
||||
private final void zaK(zai zaiVar) {
|
||||
zaiVar.zag(this.zae, zaA());
|
||||
try {
|
||||
zaiVar.zaf(this);
|
||||
} catch (DeadObjectException unused) {
|
||||
onConnectionSuspended(1);
|
||||
this.zac.disconnect("DeadObjectException thrown while running ApiCallRunner.");
|
||||
}
|
||||
}
|
||||
|
||||
private final void zaL() {
|
||||
if (this.zaj) {
|
||||
GoogleApiManager googleApiManager = this.zaa;
|
||||
googleApiManager.zar.removeMessages(11, this.zad);
|
||||
GoogleApiManager googleApiManager2 = this.zaa;
|
||||
googleApiManager2.zar.removeMessages(9, this.zad);
|
||||
this.zaj = false;
|
||||
}
|
||||
}
|
||||
|
||||
private final boolean zaM(zai zaiVar) {
|
||||
if (!(zaiVar instanceof zac)) {
|
||||
zaK(zaiVar);
|
||||
return true;
|
||||
}
|
||||
zac zacVar = (zac) zaiVar;
|
||||
Feature featureZaC = zaC(zacVar.zab(this));
|
||||
if (featureZaC == null) {
|
||||
zaK(zaiVar);
|
||||
return true;
|
||||
}
|
||||
Log.w("GoogleApiManager", this.zac.getClass().getName() + " could not execute call because it requires feature (" + featureZaC.getName() + ", " + featureZaC.getVersion() + ").");
|
||||
if (!this.zaa.zas || !zacVar.zaa(this)) {
|
||||
zacVar.zae(new UnsupportedApiCallException(featureZaC));
|
||||
return true;
|
||||
}
|
||||
zabs zabsVar = new zabs(this.zad, featureZaC, null);
|
||||
int iIndexOf = this.zak.indexOf(zabsVar);
|
||||
if (iIndexOf >= 0) {
|
||||
zabs zabsVar2 = (zabs) this.zak.get(iIndexOf);
|
||||
this.zaa.zar.removeMessages(15, zabsVar2);
|
||||
GoogleApiManager googleApiManager = this.zaa;
|
||||
googleApiManager.zar.sendMessageDelayed(Message.obtain(googleApiManager.zar, 15, zabsVar2), 5000L);
|
||||
return false;
|
||||
}
|
||||
this.zak.add(zabsVar);
|
||||
GoogleApiManager googleApiManager2 = this.zaa;
|
||||
googleApiManager2.zar.sendMessageDelayed(Message.obtain(googleApiManager2.zar, 15, zabsVar), 5000L);
|
||||
GoogleApiManager googleApiManager3 = this.zaa;
|
||||
googleApiManager3.zar.sendMessageDelayed(Message.obtain(googleApiManager3.zar, 16, zabsVar), 120000L);
|
||||
ConnectionResult connectionResult = new ConnectionResult(2, null);
|
||||
if (zaN(connectionResult)) {
|
||||
return false;
|
||||
}
|
||||
this.zaa.zaE(connectionResult, this.zah);
|
||||
return false;
|
||||
}
|
||||
|
||||
private final boolean zaN(ConnectionResult connectionResult) {
|
||||
synchronized (GoogleApiManager.zac) {
|
||||
GoogleApiManager googleApiManager = this.zaa;
|
||||
if (googleApiManager.zao == null || !googleApiManager.zap.contains(this.zad)) {
|
||||
return false;
|
||||
}
|
||||
this.zaa.zao.zah(connectionResult, this.zah);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
/* JADX INFO: Access modifiers changed from: private */
|
||||
public final boolean zaO(boolean z) {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
if (!this.zac.isConnected() || !this.zag.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
if (!this.zae.zag()) {
|
||||
this.zac.disconnect("Timing out service connection.");
|
||||
return true;
|
||||
}
|
||||
if (!z) {
|
||||
return false;
|
||||
}
|
||||
zaJ();
|
||||
return false;
|
||||
}
|
||||
|
||||
static /* bridge */ /* synthetic */ void zal(zabq zabqVar, zabs zabsVar) {
|
||||
if (zabqVar.zak.contains(zabsVar) && !zabqVar.zaj) {
|
||||
if (zabqVar.zac.isConnected()) {
|
||||
zabqVar.zaG();
|
||||
} else {
|
||||
zabqVar.zao();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static /* bridge */ /* synthetic */ void zam(zabq zabqVar, zabs zabsVar) {
|
||||
Feature[] featureArrZab;
|
||||
if (zabqVar.zak.remove(zabsVar)) {
|
||||
zabqVar.zaa.zar.removeMessages(15, zabsVar);
|
||||
zabqVar.zaa.zar.removeMessages(16, zabsVar);
|
||||
Feature feature = zabsVar.zab;
|
||||
ArrayList arrayList = new ArrayList(zabqVar.zab.size());
|
||||
for (zai zaiVar : zabqVar.zab) {
|
||||
if ((zaiVar instanceof zac) && (featureArrZab = ((zac) zaiVar).zab(zabqVar)) != null && ArrayUtils.contains(featureArrZab, feature)) {
|
||||
arrayList.add(zaiVar);
|
||||
}
|
||||
}
|
||||
int size = arrayList.size();
|
||||
for (int i = 0; i < size; i++) {
|
||||
zai zaiVar2 = (zai) arrayList.get(i);
|
||||
zabqVar.zab.remove(zaiVar2);
|
||||
zaiVar2.zae(new UnsupportedApiCallException(feature));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.ConnectionCallbacks
|
||||
public final void onConnected(Bundle bundle) {
|
||||
if (Looper.myLooper() == this.zaa.zar.getLooper()) {
|
||||
zaH();
|
||||
} else {
|
||||
this.zaa.zar.post(new zabm(this));
|
||||
}
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.OnConnectionFailedListener
|
||||
public final void onConnectionFailed(ConnectionResult connectionResult) {
|
||||
zar(connectionResult, null);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.ConnectionCallbacks
|
||||
public final void onConnectionSuspended(int i) {
|
||||
if (Looper.myLooper() == this.zaa.zar.getLooper()) {
|
||||
zaI(i);
|
||||
} else {
|
||||
this.zaa.zar.post(new zabn(this, i));
|
||||
}
|
||||
}
|
||||
|
||||
public final boolean zaA() {
|
||||
return this.zac.requiresSignIn();
|
||||
}
|
||||
|
||||
@ResultIgnorabilityUnspecified
|
||||
public final boolean zaB() {
|
||||
return zaO(true);
|
||||
}
|
||||
|
||||
@Override // com.google.android.gms.common.api.internal.zau
|
||||
public final void zaa(ConnectionResult connectionResult, Api api, boolean z) {
|
||||
throw null;
|
||||
}
|
||||
|
||||
public final int zab() {
|
||||
return this.zah;
|
||||
}
|
||||
|
||||
final int zac() {
|
||||
return this.zam;
|
||||
}
|
||||
|
||||
public final ConnectionResult zad() {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
return this.zal;
|
||||
}
|
||||
|
||||
public final Api.Client zaf() {
|
||||
return this.zac;
|
||||
}
|
||||
|
||||
public final Map zah() {
|
||||
return this.zag;
|
||||
}
|
||||
|
||||
public final void zan() {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
this.zal = null;
|
||||
}
|
||||
|
||||
public final void zao() {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
if (this.zac.isConnected() || this.zac.isConnecting()) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
GoogleApiManager googleApiManager = this.zaa;
|
||||
int iZab = googleApiManager.zak.zab(googleApiManager.zai, this.zac);
|
||||
if (iZab != 0) {
|
||||
ConnectionResult connectionResult = new ConnectionResult(iZab, null);
|
||||
Log.w("GoogleApiManager", "The service for " + this.zac.getClass().getName() + " is not available: " + connectionResult.toString());
|
||||
zar(connectionResult, null);
|
||||
return;
|
||||
}
|
||||
GoogleApiManager googleApiManager2 = this.zaa;
|
||||
Api.Client client = this.zac;
|
||||
zabu zabuVar = new zabu(googleApiManager2, client, this.zad);
|
||||
if (client.requiresSignIn()) {
|
||||
((zact) Preconditions.checkNotNull(this.zai)).zae(zabuVar);
|
||||
}
|
||||
try {
|
||||
this.zac.connect(zabuVar);
|
||||
} catch (SecurityException e) {
|
||||
zar(new ConnectionResult(10), e);
|
||||
}
|
||||
} catch (IllegalStateException e2) {
|
||||
zar(new ConnectionResult(10), e2);
|
||||
}
|
||||
}
|
||||
|
||||
public final void zap(zai zaiVar) {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
if (this.zac.isConnected()) {
|
||||
if (zaM(zaiVar)) {
|
||||
zaJ();
|
||||
return;
|
||||
} else {
|
||||
this.zab.add(zaiVar);
|
||||
return;
|
||||
}
|
||||
}
|
||||
this.zab.add(zaiVar);
|
||||
ConnectionResult connectionResult = this.zal;
|
||||
if (connectionResult == null || !connectionResult.hasResolution()) {
|
||||
zao();
|
||||
} else {
|
||||
zar(this.zal, null);
|
||||
}
|
||||
}
|
||||
|
||||
final void zaq() {
|
||||
this.zam++;
|
||||
}
|
||||
|
||||
public final void zar(ConnectionResult connectionResult, Exception exc) {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
zact zactVar = this.zai;
|
||||
if (zactVar != null) {
|
||||
zactVar.zaf();
|
||||
}
|
||||
zan();
|
||||
this.zaa.zak.zac();
|
||||
zaD(connectionResult);
|
||||
if ((this.zac instanceof com.google.android.gms.common.internal.service.zap) && connectionResult.getErrorCode() != 24) {
|
||||
this.zaa.zaf = true;
|
||||
GoogleApiManager googleApiManager = this.zaa;
|
||||
googleApiManager.zar.sendMessageDelayed(googleApiManager.zar.obtainMessage(19), 300000L);
|
||||
}
|
||||
if (connectionResult.getErrorCode() == 4) {
|
||||
zaE(GoogleApiManager.zab);
|
||||
return;
|
||||
}
|
||||
if (this.zab.isEmpty()) {
|
||||
this.zal = connectionResult;
|
||||
return;
|
||||
}
|
||||
if (exc != null) {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
zaF(null, exc, false);
|
||||
return;
|
||||
}
|
||||
if (!this.zaa.zas) {
|
||||
zaE(GoogleApiManager.zaF(this.zad, connectionResult));
|
||||
return;
|
||||
}
|
||||
zaF(GoogleApiManager.zaF(this.zad, connectionResult), null, true);
|
||||
if (this.zab.isEmpty() || zaN(connectionResult) || this.zaa.zaE(connectionResult, this.zah)) {
|
||||
return;
|
||||
}
|
||||
if (connectionResult.getErrorCode() == 18) {
|
||||
this.zaj = true;
|
||||
}
|
||||
if (!this.zaj) {
|
||||
zaE(GoogleApiManager.zaF(this.zad, connectionResult));
|
||||
return;
|
||||
}
|
||||
GoogleApiManager googleApiManager2 = this.zaa;
|
||||
googleApiManager2.zar.sendMessageDelayed(Message.obtain(googleApiManager2.zar, 9, this.zad), 5000L);
|
||||
}
|
||||
|
||||
public final void zas(ConnectionResult connectionResult) {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
Api.Client client = this.zac;
|
||||
client.disconnect("onSignInFailed for " + client.getClass().getName() + " with " + String.valueOf(connectionResult));
|
||||
zar(connectionResult, null);
|
||||
}
|
||||
|
||||
public final void zat(zal zalVar) {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
this.zaf.add(zalVar);
|
||||
}
|
||||
|
||||
public final void zau() {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
if (this.zaj) {
|
||||
zao();
|
||||
}
|
||||
}
|
||||
|
||||
public final void zav() {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
zaE(GoogleApiManager.zaa);
|
||||
this.zae.zaf();
|
||||
for (ListenerHolder.ListenerKey listenerKey : (ListenerHolder.ListenerKey[]) this.zag.keySet().toArray(new ListenerHolder.ListenerKey[0])) {
|
||||
zap(new zah(listenerKey, new TaskCompletionSource()));
|
||||
}
|
||||
zaD(new ConnectionResult(4));
|
||||
if (this.zac.isConnected()) {
|
||||
this.zac.onUserSignOut(new zabp(this));
|
||||
}
|
||||
}
|
||||
|
||||
public final void zaw() {
|
||||
Preconditions.checkHandlerThread(this.zaa.zar);
|
||||
if (this.zaj) {
|
||||
zaL();
|
||||
GoogleApiManager googleApiManager = this.zaa;
|
||||
zaE(googleApiManager.zaj.isGooglePlayServicesAvailable(googleApiManager.zai) == 18 ? new Status(21, "Connection timed out waiting for Google Play services update to complete.") : new Status(22, "API failed to connect while resuming due to an unknown error."));
|
||||
this.zac.disconnect("Timing out connection while resuming.");
|
||||
}
|
||||
}
|
||||
|
||||
final boolean zaz() {
|
||||
return this.zac.isConnected();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user