package com.google.android.gms.common.internal; import android.accounts.Account; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.DeadObjectException; import android.os.Handler; import android.os.IBinder; import android.os.IInterface; import android.os.Looper; import android.os.RemoteException; import android.text.TextUtils; import android.util.Log; import androidx.annotation.CallSuper; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.annotation.WorkerThread; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.Feature; import com.google.android.gms.common.GoogleApiAvailabilityLight; import com.google.android.gms.common.annotation.KeepForSdk; import com.google.android.gms.common.api.CommonStatusCodes; import com.google.android.gms.common.api.Scope; import java.io.FileDescriptor; import java.io.PrintWriter; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.Locale; import java.util.Set; import java.util.concurrent.Executor; import java.util.concurrent.atomic.AtomicInteger; @KeepForSdk /* loaded from: classes2.dex */ public abstract class BaseGmsClient { @KeepForSdk public static final int CONNECT_STATE_CONNECTED = 4; @KeepForSdk public static final int CONNECT_STATE_DISCONNECTED = 1; @KeepForSdk public static final int CONNECT_STATE_DISCONNECTING = 5; @NonNull @KeepForSdk public static final String DEFAULT_ACCOUNT = "<>"; @NonNull @KeepForSdk public static final String KEY_PENDING_INTENT = "pendingIntent"; @Nullable private volatile String zzA; @Nullable private ConnectionResult zzB; private boolean zzC; @Nullable private volatile zzk zzD; @VisibleForTesting zzv zza; final Handler zzb; @NonNull @VisibleForTesting protected ConnectionProgressReportCallbacks zzc; @NonNull @VisibleForTesting protected AtomicInteger zzd; private int zzf; private long zzg; private long zzh; private int zzi; private long zzj; @Nullable private volatile String zzk; private final Context zzl; private final Looper zzm; private final GmsClientSupervisor zzn; private final GoogleApiAvailabilityLight zzo; private final Object zzp; private final Object zzq; @Nullable private IGmsServiceBroker zzr; @Nullable private IInterface zzs; private final ArrayList zzt; @Nullable private zze zzu; private int zzv; @Nullable private final BaseConnectionCallbacks zzw; @Nullable private final BaseOnConnectionFailedListener zzx; private final int zzy; @Nullable private final String zzz; private static final Feature[] zze = new Feature[0]; @NonNull @KeepForSdk public static final String[] GOOGLE_PLUS_REQUIRED_FEATURES = {"service_esmobile", "service_googleme"}; @KeepForSdk public interface BaseConnectionCallbacks { @KeepForSdk public static final int CAUSE_DEAD_OBJECT_EXCEPTION = 3; @KeepForSdk public static final int CAUSE_SERVICE_DISCONNECTED = 1; @KeepForSdk void onConnected(@Nullable Bundle bundle); @KeepForSdk void onConnectionSuspended(int i); } @KeepForSdk public interface BaseOnConnectionFailedListener { @KeepForSdk void onConnectionFailed(@NonNull ConnectionResult connectionResult); } @KeepForSdk public interface ConnectionProgressReportCallbacks { @KeepForSdk void onReportServiceBinding(@NonNull ConnectionResult connectionResult); } public class LegacyClientCallbackAdapter implements ConnectionProgressReportCallbacks { @KeepForSdk public LegacyClientCallbackAdapter() { } @Override // com.google.android.gms.common.internal.BaseGmsClient.ConnectionProgressReportCallbacks public final void onReportServiceBinding(@NonNull ConnectionResult connectionResult) { if (connectionResult.isSuccess()) { BaseGmsClient baseGmsClient = BaseGmsClient.this; baseGmsClient.getRemoteService(null, baseGmsClient.getScopes()); } else if (BaseGmsClient.this.zzx != null) { BaseGmsClient.this.zzx.onConnectionFailed(connectionResult); } } } @KeepForSdk public interface SignOutCallbacks { @KeepForSdk void onSignOutComplete(); } @KeepForSdk @VisibleForTesting public BaseGmsClient(@NonNull Context context, @NonNull Handler handler, @NonNull GmsClientSupervisor gmsClientSupervisor, @NonNull GoogleApiAvailabilityLight googleApiAvailabilityLight, int i, @Nullable BaseConnectionCallbacks baseConnectionCallbacks, @Nullable BaseOnConnectionFailedListener baseOnConnectionFailedListener) { this.zzk = null; this.zzp = new Object(); this.zzq = new Object(); this.zzt = new ArrayList(); this.zzv = 1; this.zzB = null; this.zzC = false; this.zzD = null; this.zzd = new AtomicInteger(0); Preconditions.checkNotNull(context, "Context must not be null"); this.zzl = context; Preconditions.checkNotNull(handler, "Handler must not be null"); this.zzb = handler; this.zzm = handler.getLooper(); Preconditions.checkNotNull(gmsClientSupervisor, "Supervisor must not be null"); this.zzn = gmsClientSupervisor; Preconditions.checkNotNull(googleApiAvailabilityLight, "API availability must not be null"); this.zzo = googleApiAvailabilityLight; this.zzy = i; this.zzw = baseConnectionCallbacks; this.zzx = baseOnConnectionFailedListener; this.zzz = null; } public static /* bridge */ /* synthetic */ void zzj(BaseGmsClient baseGmsClient, zzk zzkVar) { baseGmsClient.zzD = zzkVar; if (baseGmsClient.usesClientTelemetry()) { ConnectionTelemetryConfiguration connectionTelemetryConfiguration = zzkVar.zzd; RootTelemetryConfigManager.getInstance().zza(connectionTelemetryConfiguration == null ? null : connectionTelemetryConfiguration.zza()); } } public static /* bridge */ /* synthetic */ void zzk(BaseGmsClient baseGmsClient, int i) { int i2; int i3; synchronized (baseGmsClient.zzp) { i2 = baseGmsClient.zzv; } if (i2 == 3) { baseGmsClient.zzC = true; i3 = 5; } else { i3 = 4; } Handler handler = baseGmsClient.zzb; handler.sendMessage(handler.obtainMessage(i3, baseGmsClient.zzd.get(), 16)); } public static /* bridge */ /* synthetic */ boolean zzn(BaseGmsClient baseGmsClient, int i, int i2, IInterface iInterface) { synchronized (baseGmsClient.zzp) { try { if (baseGmsClient.zzv != i) { return false; } baseGmsClient.zzp(i2, iInterface); return true; } finally { } } } public static /* bridge */ /* synthetic */ boolean zzo(BaseGmsClient baseGmsClient) { if (baseGmsClient.zzC || TextUtils.isEmpty(baseGmsClient.getServiceDescriptor()) || TextUtils.isEmpty(baseGmsClient.getLocalStartServiceAction())) { return false; } try { Class.forName(baseGmsClient.getServiceDescriptor()); return true; } catch (ClassNotFoundException unused) { return false; } } /* JADX INFO: Access modifiers changed from: private */ /* JADX WARN: Multi-variable type inference failed */ public final void zzp(int i, @Nullable IInterface iInterface) { zzv zzvVar; Preconditions.checkArgument((i == 4) == (iInterface != 0)); synchronized (this.zzp) { try { this.zzv = i; this.zzs = iInterface; if (i == 1) { zze zzeVar = this.zzu; if (zzeVar != null) { GmsClientSupervisor gmsClientSupervisor = this.zzn; String zzb = this.zza.zzb(); Preconditions.checkNotNull(zzb); gmsClientSupervisor.zzb(zzb, this.zza.zza(), 4225, zzeVar, zze(), this.zza.zzc()); this.zzu = null; } } else if (i == 2 || i == 3) { zze zzeVar2 = this.zzu; if (zzeVar2 != null && (zzvVar = this.zza) != null) { Log.e("GmsClient", "Calling connect() while still connected, missing disconnect() for " + zzvVar.zzb() + " on " + zzvVar.zza()); GmsClientSupervisor gmsClientSupervisor2 = this.zzn; String zzb2 = this.zza.zzb(); Preconditions.checkNotNull(zzb2); gmsClientSupervisor2.zzb(zzb2, this.zza.zza(), 4225, zzeVar2, zze(), this.zza.zzc()); this.zzd.incrementAndGet(); } zze zzeVar3 = new zze(this, this.zzd.get()); this.zzu = zzeVar3; zzv zzvVar2 = (this.zzv != 3 || getLocalStartServiceAction() == null) ? new zzv(getStartServicePackage(), getStartServiceAction(), false, 4225, getUseDynamicLookup()) : new zzv(getContext().getPackageName(), getLocalStartServiceAction(), true, 4225, false); this.zza = zzvVar2; if (zzvVar2.zzc() && getMinApkVersion() < 17895000) { throw new IllegalStateException("Internal Error, the minimum apk version of this BaseGmsClient is too low to support dynamic lookup. Start service action: ".concat(String.valueOf(this.zza.zzb()))); } GmsClientSupervisor gmsClientSupervisor3 = this.zzn; String zzb3 = this.zza.zzb(); Preconditions.checkNotNull(zzb3); if (!gmsClientSupervisor3.zzc(new zzo(zzb3, this.zza.zza(), 4225, this.zza.zzc()), zzeVar3, zze(), getBindServiceExecutor())) { Log.w("GmsClient", "unable to connect to service: " + this.zza.zzb() + " on " + this.zza.zza()); zzl(16, null, this.zzd.get()); } } else if (i == 4) { Preconditions.checkNotNull(iInterface); onConnectedLocked(iInterface); } } finally { } } } @KeepForSdk public void checkAvailabilityAndConnect() { int isGooglePlayServicesAvailable = this.zzo.isGooglePlayServicesAvailable(this.zzl, getMinApkVersion()); if (isGooglePlayServicesAvailable == 0) { connect(new LegacyClientCallbackAdapter()); } else { zzp(1, null); triggerNotAvailable(new LegacyClientCallbackAdapter(), isGooglePlayServicesAvailable, null); } } @KeepForSdk public final void checkConnected() { if (!isConnected()) { throw new IllegalStateException("Not connected. Call connect() and wait for onConnected() to be called."); } } @KeepForSdk public void connect(@NonNull ConnectionProgressReportCallbacks connectionProgressReportCallbacks) { Preconditions.checkNotNull(connectionProgressReportCallbacks, "Connection progress callbacks cannot be null."); this.zzc = connectionProgressReportCallbacks; zzp(2, null); } @Nullable @KeepForSdk public abstract T createServiceInterface(@NonNull IBinder iBinder); @KeepForSdk public void disconnect() { this.zzd.incrementAndGet(); synchronized (this.zzt) { try { int size = this.zzt.size(); for (int i = 0; i < size; i++) { ((zzc) this.zzt.get(i)).zzf(); } this.zzt.clear(); } catch (Throwable th) { throw th; } } synchronized (this.zzq) { this.zzr = null; } zzp(1, null); } @KeepForSdk public void dump(@NonNull String str, @NonNull FileDescriptor fileDescriptor, @NonNull PrintWriter printWriter, @NonNull String[] strArr) { int i; IInterface iInterface; IGmsServiceBroker iGmsServiceBroker; synchronized (this.zzp) { i = this.zzv; iInterface = this.zzs; } synchronized (this.zzq) { iGmsServiceBroker = this.zzr; } printWriter.append((CharSequence) str).append("mConnectState="); if (i == 1) { printWriter.print("DISCONNECTED"); } else if (i == 2) { printWriter.print("REMOTE_CONNECTING"); } else if (i == 3) { printWriter.print("LOCAL_CONNECTING"); } else if (i == 4) { printWriter.print("CONNECTED"); } else if (i != 5) { printWriter.print("UNKNOWN"); } else { printWriter.print("DISCONNECTING"); } printWriter.append(" mService="); if (iInterface == null) { printWriter.append("null"); } else { printWriter.append((CharSequence) getServiceDescriptor()).append("@").append((CharSequence) Integer.toHexString(System.identityHashCode(iInterface.asBinder()))); } printWriter.append(" mServiceBroker="); if (iGmsServiceBroker == null) { printWriter.println("null"); } else { printWriter.append("IGmsServiceBroker@").println(Integer.toHexString(System.identityHashCode(iGmsServiceBroker.asBinder()))); } SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US); if (this.zzh > 0) { PrintWriter append = printWriter.append((CharSequence) str).append("lastConnectedTime="); long j = this.zzh; append.println(j + " " + simpleDateFormat.format(new Date(j))); } if (this.zzg > 0) { printWriter.append((CharSequence) str).append("lastSuspendedCause="); int i2 = this.zzf; if (i2 == 1) { printWriter.append("CAUSE_SERVICE_DISCONNECTED"); } else if (i2 == 2) { printWriter.append("CAUSE_NETWORK_LOST"); } else if (i2 != 3) { printWriter.append((CharSequence) String.valueOf(i2)); } else { printWriter.append("CAUSE_DEAD_OBJECT_EXCEPTION"); } PrintWriter append2 = printWriter.append(" lastSuspendedTime="); long j2 = this.zzg; append2.println(j2 + " " + simpleDateFormat.format(new Date(j2))); } if (this.zzj > 0) { printWriter.append((CharSequence) str).append("lastFailedStatus=").append((CharSequence) CommonStatusCodes.getStatusCodeString(this.zzi)); PrintWriter append3 = printWriter.append(" lastFailedTime="); long j3 = this.zzj; append3.println(j3 + " " + simpleDateFormat.format(new Date(j3))); } } @KeepForSdk public boolean enableLocalFallback() { return false; } @Nullable @KeepForSdk public Account getAccount() { return null; } @NonNull @KeepForSdk public Feature[] getApiFeatures() { return zze; } @Nullable @KeepForSdk public final Feature[] getAvailableFeatures() { zzk zzkVar = this.zzD; if (zzkVar == null) { return null; } return zzkVar.zzb; } @Nullable @KeepForSdk public Executor getBindServiceExecutor() { return null; } @Nullable @KeepForSdk public Bundle getConnectionHint() { return null; } @NonNull @KeepForSdk public final Context getContext() { return this.zzl; } @NonNull @KeepForSdk public String getEndpointPackageName() { zzv zzvVar; if (!isConnected() || (zzvVar = this.zza) == null) { throw new RuntimeException("Failed to connect when checking package"); } return zzvVar.zza(); } @KeepForSdk public int getGCoreServiceId() { return this.zzy; } @NonNull @KeepForSdk public Bundle getGetServiceRequestExtraArgs() { return new Bundle(); } @Nullable @KeepForSdk public String getLastDisconnectMessage() { return this.zzk; } @Nullable @KeepForSdk public String getLocalStartServiceAction() { return null; } @NonNull @KeepForSdk public final Looper getLooper() { return this.zzm; } @KeepForSdk public int getMinApkVersion() { return GoogleApiAvailabilityLight.GOOGLE_PLAY_SERVICES_VERSION_CODE; } @KeepForSdk @WorkerThread public void getRemoteService(@Nullable IAccountAccessor iAccountAccessor, @NonNull Set set) { Bundle getServiceRequestExtraArgs = getGetServiceRequestExtraArgs(); String str = this.zzA; int i = GoogleApiAvailabilityLight.GOOGLE_PLAY_SERVICES_VERSION_CODE; Scope[] scopeArr = GetServiceRequest.zza; Bundle bundle = new Bundle(); int i2 = this.zzy; Feature[] featureArr = GetServiceRequest.zzb; GetServiceRequest getServiceRequest = new GetServiceRequest(6, i2, i, null, null, scopeArr, bundle, null, featureArr, featureArr, true, 0, false, str); getServiceRequest.zzf = this.zzl.getPackageName(); getServiceRequest.zzi = getServiceRequestExtraArgs; if (set != null) { getServiceRequest.zzh = (Scope[]) set.toArray(new Scope[0]); } if (requiresSignIn()) { Account account = getAccount(); if (account == null) { account = new Account("<>", "com.google"); } getServiceRequest.zzj = account; if (iAccountAccessor != null) { getServiceRequest.zzg = iAccountAccessor.asBinder(); } } else if (requiresAccount()) { getServiceRequest.zzj = getAccount(); } getServiceRequest.zzk = zze; getServiceRequest.zzl = getApiFeatures(); if (usesClientTelemetry()) { getServiceRequest.zzo = true; } try { synchronized (this.zzq) { try { IGmsServiceBroker iGmsServiceBroker = this.zzr; if (iGmsServiceBroker != null) { iGmsServiceBroker.getService(new zzd(this, this.zzd.get()), getServiceRequest); } else { Log.w("GmsClient", "mServiceBroker is null, client disconnected"); } } finally { } } } catch (DeadObjectException e) { Log.w("GmsClient", "IGmsServiceBroker.getService failed", e); triggerConnectionSuspended(3); } catch (RemoteException e2) { e = e2; Log.w("GmsClient", "IGmsServiceBroker.getService failed", e); onPostInitHandler(8, null, null, this.zzd.get()); } catch (SecurityException e3) { throw e3; } catch (RuntimeException e4) { e = e4; Log.w("GmsClient", "IGmsServiceBroker.getService failed", e); onPostInitHandler(8, null, null, this.zzd.get()); } } @NonNull @KeepForSdk public Set getScopes() { return Collections.emptySet(); } @NonNull @KeepForSdk public final T getService() throws DeadObjectException { T t; synchronized (this.zzp) { try { if (this.zzv == 5) { throw new DeadObjectException(); } checkConnected(); t = (T) this.zzs; Preconditions.checkNotNull(t, "Client is connected but service is null"); } catch (Throwable th) { throw th; } } return t; } @NonNull @KeepForSdk public abstract String getServiceDescriptor(); @NonNull @KeepForSdk public Intent getSignInIntent() { throw new UnsupportedOperationException("Not a sign in API"); } @NonNull @KeepForSdk public abstract String getStartServiceAction(); @NonNull @KeepForSdk public String getStartServicePackage() { return "com.google.android.gms"; } @Nullable @KeepForSdk public ConnectionTelemetryConfiguration getTelemetryConfiguration() { zzk zzkVar = this.zzD; if (zzkVar == null) { return null; } return zzkVar.zzd; } @KeepForSdk public boolean getUseDynamicLookup() { return getMinApkVersion() >= 211700000; } @KeepForSdk public boolean hasConnectionInfo() { return this.zzD != null; } @KeepForSdk public boolean isConnected() { boolean z; synchronized (this.zzp) { z = this.zzv == 4; } return z; } @KeepForSdk public boolean isConnecting() { boolean z; synchronized (this.zzp) { int i = this.zzv; z = true; if (i != 2 && i != 3) { z = false; } } return z; } @KeepForSdk @CallSuper public void onConnectedLocked(@NonNull T t) { this.zzh = System.currentTimeMillis(); } @KeepForSdk @CallSuper public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { this.zzi = connectionResult.getErrorCode(); this.zzj = System.currentTimeMillis(); } @KeepForSdk @CallSuper public void onConnectionSuspended(int i) { this.zzf = i; this.zzg = System.currentTimeMillis(); } @KeepForSdk public void onPostInitHandler(int i, @Nullable IBinder iBinder, @Nullable Bundle bundle, int i2) { this.zzb.sendMessage(this.zzb.obtainMessage(1, i2, -1, new zzf(this, i, iBinder, bundle))); } @KeepForSdk public void onUserSignOut(@NonNull SignOutCallbacks signOutCallbacks) { signOutCallbacks.onSignOutComplete(); } @KeepForSdk public boolean providesSignIn() { return false; } @KeepForSdk public boolean requiresAccount() { return false; } @KeepForSdk public boolean requiresGooglePlayServices() { return true; } @KeepForSdk public boolean requiresSignIn() { return false; } @KeepForSdk public void setAttributionTag(@NonNull String str) { this.zzA = str; } @KeepForSdk public void triggerConnectionSuspended(int i) { this.zzb.sendMessage(this.zzb.obtainMessage(6, this.zzd.get(), i)); } @KeepForSdk @VisibleForTesting public void triggerNotAvailable(@NonNull ConnectionProgressReportCallbacks connectionProgressReportCallbacks, int i, @Nullable PendingIntent pendingIntent) { Preconditions.checkNotNull(connectionProgressReportCallbacks, "Connection progress callbacks cannot be null."); this.zzc = connectionProgressReportCallbacks; this.zzb.sendMessage(this.zzb.obtainMessage(3, this.zzd.get(), i, pendingIntent)); } @KeepForSdk public boolean usesClientTelemetry() { return false; } @NonNull public final String zze() { String str = this.zzz; return str == null ? this.zzl.getClass().getName() : str; } public final void zzl(int i, @Nullable Bundle bundle, int i2) { this.zzb.sendMessage(this.zzb.obtainMessage(7, i2, -1, new zzg(this, i, null))); } @Nullable @KeepForSdk public IBinder getServiceBrokerBinder() { synchronized (this.zzq) { try { IGmsServiceBroker iGmsServiceBroker = this.zzr; if (iGmsServiceBroker == null) { return null; } return iGmsServiceBroker.asBinder(); } catch (Throwable th) { throw th; } } } /* JADX WARN: Illegal instructions before constructor call */ @com.google.android.gms.common.annotation.KeepForSdk /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public BaseGmsClient(@androidx.annotation.NonNull android.content.Context r10, @androidx.annotation.NonNull android.os.Looper r11, int r12, @androidx.annotation.Nullable com.google.android.gms.common.internal.BaseGmsClient.BaseConnectionCallbacks r13, @androidx.annotation.Nullable com.google.android.gms.common.internal.BaseGmsClient.BaseOnConnectionFailedListener r14, @androidx.annotation.Nullable java.lang.String r15) { /* r9 = this; com.google.android.gms.common.internal.GmsClientSupervisor r3 = com.google.android.gms.common.internal.GmsClientSupervisor.getInstance(r10) com.google.android.gms.common.GoogleApiAvailabilityLight r4 = com.google.android.gms.common.GoogleApiAvailabilityLight.getInstance() com.google.android.gms.common.internal.Preconditions.checkNotNull(r13) com.google.android.gms.common.internal.Preconditions.checkNotNull(r14) r0 = r9 r1 = r10 r2 = r11 r5 = r12 r6 = r13 r7 = r14 r8 = r15 r0.(r1, r2, r3, r4, r5, r6, r7, r8) return */ throw new UnsupportedOperationException("Method not decompiled: com.google.android.gms.common.internal.BaseGmsClient.(android.content.Context, android.os.Looper, int, com.google.android.gms.common.internal.BaseGmsClient$BaseConnectionCallbacks, com.google.android.gms.common.internal.BaseGmsClient$BaseOnConnectionFailedListener, java.lang.String):void"); } @KeepForSdk public void disconnect(@NonNull String str) { this.zzk = str; disconnect(); } @KeepForSdk @VisibleForTesting public BaseGmsClient(@NonNull Context context, @NonNull Looper looper, @NonNull GmsClientSupervisor gmsClientSupervisor, @NonNull GoogleApiAvailabilityLight googleApiAvailabilityLight, int i, @Nullable BaseConnectionCallbacks baseConnectionCallbacks, @Nullable BaseOnConnectionFailedListener baseOnConnectionFailedListener, @Nullable String str) { this.zzk = null; this.zzp = new Object(); this.zzq = new Object(); this.zzt = new ArrayList(); this.zzv = 1; this.zzB = null; this.zzC = false; this.zzD = null; this.zzd = new AtomicInteger(0); Preconditions.checkNotNull(context, "Context must not be null"); this.zzl = context; Preconditions.checkNotNull(looper, "Looper must not be null"); this.zzm = looper; Preconditions.checkNotNull(gmsClientSupervisor, "Supervisor must not be null"); this.zzn = gmsClientSupervisor; Preconditions.checkNotNull(googleApiAvailabilityLight, "API availability must not be null"); this.zzo = googleApiAvailabilityLight; this.zzb = new zzb(this, looper); this.zzy = i; this.zzw = baseConnectionCallbacks; this.zzx = baseOnConnectionFailedListener; this.zzz = str; } }