zzc.java 8.63 KB
package com.google.android.gms.common.api;

import android.accounts.Account;
import android.app.Activity;
import android.content.Context;
import android.os.Handler;
import android.os.Looper;
import android.support.annotation.MainThread;
import android.support.annotation.NonNull;
import android.support.annotation.WorkerThread;
import com.google.android.gms.common.internal.zzac;
import com.google.android.gms.common.internal.zzg;
import com.google.android.gms.internal.zzaad.zza;
import com.google.android.gms.internal.zzaam;
import com.google.android.gms.internal.zzaax;
import com.google.android.gms.internal.zzaax.zza;
import com.google.android.gms.internal.zzaay;
import com.google.android.gms.internal.zzabh;
import com.google.android.gms.internal.zzabh.zzb;
import com.google.android.gms.internal.zzabi;
import com.google.android.gms.internal.zzabm;
import com.google.android.gms.internal.zzabr;
import com.google.android.gms.internal.zzabs;
import com.google.android.gms.internal.zzabv;
import com.google.android.gms.internal.zzabz;
import com.google.android.gms.internal.zzzy;
import com.google.android.gms.internal.zzzz;
import com.google.android.gms.tasks.Task;
import com.google.android.gms.tasks.TaskCompletionSource;

public abstract class zzc<O extends Api.ApiOptions>
{
  private final Context a;
  private final Api<O> b;
  private final O c;
  private final zzzz<O> d;
  private final Looper e;
  private final int f;
  private final GoogleApiClient g;
  private final zzabs h;
  private final Account i;
  protected final zzaax zzayX;
  
  @Deprecated
  @MainThread
  public zzc(@NonNull Activity paramActivity, Api<O> paramApi, O paramO, Looper paramLooper, zzabs paramzzabs)
  {
    this(paramActivity, paramApi, paramO, new zzc.zza.zza().zzb(paramLooper).zza(paramzzabs).zzvk());
  }
  
  @MainThread
  public zzc(@NonNull Activity paramActivity, Api<O> paramApi, O paramO, zza paramzza)
  {
    zzac.zzb(paramActivity, "Null activity is not permitted.");
    zzac.zzb(paramApi, "Api must not be null.");
    zzac.zzb(paramzza, "Settings must not be null; use Settings.createDefault() instead.");
    this.a = paramActivity.getApplicationContext();
    this.b = paramApi;
    this.c = paramO;
    this.e = paramzza.zzaza;
    this.d = zzzz.zza(this.b, this.c);
    this.g = new zzaay(this);
    this.zzayX = zzaax.zzaP(this.a);
    this.f = this.zzayX.zzwz();
    this.h = paramzza.zzayZ;
    this.i = paramzza.account;
    zzaam.zza(paramActivity, this.zzayX, this.d);
    this.zzayX.zzb(this);
  }
  
  @Deprecated
  public zzc(@NonNull Activity paramActivity, Api<O> paramApi, O paramO, zzabs paramzzabs)
  {
    this(paramActivity, paramApi, paramO, new zzc.zza.zza().zza(paramzzabs).zzb(paramActivity.getMainLooper()).zzvk());
  }
  
  protected zzc(@NonNull Context paramContext, Api<O> paramApi, Looper paramLooper)
  {
    zzac.zzb(paramContext, "Null context is not permitted.");
    zzac.zzb(paramApi, "Api must not be null.");
    zzac.zzb(paramLooper, "Looper must not be null.");
    this.a = paramContext.getApplicationContext();
    this.b = paramApi;
    this.c = null;
    this.e = paramLooper;
    this.d = zzzz.zzb(paramApi);
    this.g = new zzaay(this);
    this.zzayX = zzaax.zzaP(this.a);
    this.f = this.zzayX.zzwz();
    this.h = new zzzy();
    this.i = null;
  }
  
  @Deprecated
  public zzc(@NonNull Context paramContext, Api<O> paramApi, O paramO, Looper paramLooper, zzabs paramzzabs)
  {
    this(paramContext, paramApi, paramO, new zzc.zza.zza().zzb(paramLooper).zza(paramzzabs).zzvk());
  }
  
  public zzc(@NonNull Context paramContext, Api<O> paramApi, O paramO, zza paramzza)
  {
    zzac.zzb(paramContext, "Null context is not permitted.");
    zzac.zzb(paramApi, "Api must not be null.");
    zzac.zzb(paramzza, "Settings must not be null; use Settings.createDefault() instead.");
    this.a = paramContext.getApplicationContext();
    this.b = paramApi;
    this.c = paramO;
    this.e = paramzza.zzaza;
    this.d = zzzz.zza(this.b, this.c);
    this.g = new zzaay(this);
    this.zzayX = zzaax.zzaP(this.a);
    this.f = this.zzayX.zzwz();
    this.h = paramzza.zzayZ;
    this.i = paramzza.account;
    this.zzayX.zzb(this);
  }
  
  @Deprecated
  public zzc(@NonNull Context paramContext, Api<O> paramApi, O paramO, zzabs paramzzabs)
  {
    this(paramContext, paramApi, paramO, new zzc.zza.zza().zza(paramzzabs).zzvk());
  }
  
  private <A extends Api.zzb, T extends zzaad.zza<? extends Result, A>> T a(int paramInt, @NonNull T paramT)
  {
    paramT.zzvI();
    this.zzayX.zza(this, paramInt, paramT);
    return paramT;
  }
  
  private <TResult, A extends Api.zzb> Task<TResult> a(int paramInt, @NonNull zzabv<A, TResult> paramzzabv)
  {
    TaskCompletionSource localTaskCompletionSource = new TaskCompletionSource();
    this.zzayX.zza(this, paramInt, paramzzabv, localTaskCompletionSource, this.h);
    return localTaskCompletionSource.getTask();
  }
  
  public GoogleApiClient asGoogleApiClient()
  {
    return this.g;
  }
  
  @WorkerThread
  public Api.zze buildApiClient(Looper paramLooper, zzaax.zza<O> paramzza)
  {
    zzg localzzg = new GoogleApiClient.Builder(this.a).zze(this.i).zzvp();
    return this.b.zzvf().zza(this.a, paramLooper, localzzg, this.c, paramzza, paramzza);
  }
  
  public zzabr createSignInCoordinator(Context paramContext, Handler paramHandler)
  {
    return new zzabr(paramContext, paramHandler);
  }
  
  public <A extends Api.zzb, T extends zzaad.zza<? extends Result, A>> T doBestEffortWrite(@NonNull T paramT)
  {
    return a(2, paramT);
  }
  
  public <TResult, A extends Api.zzb> Task<TResult> doBestEffortWrite(zzabv<A, TResult> paramzzabv)
  {
    return a(2, paramzzabv);
  }
  
  public <A extends Api.zzb, T extends zzaad.zza<? extends Result, A>> T doRead(@NonNull T paramT)
  {
    return a(0, paramT);
  }
  
  public <TResult, A extends Api.zzb> Task<TResult> doRead(zzabv<A, TResult> paramzzabv)
  {
    return a(0, paramzzabv);
  }
  
  public <A extends Api.zzb, T extends zzabm<A, ?>, U extends zzabz<A, ?>> Task<Void> doRegisterEventListener(@NonNull T paramT, U paramU)
  {
    zzac.zzw(paramT);
    zzac.zzw(paramU);
    zzac.zzb(paramT.zzwW(), "Listener has already been released.");
    zzac.zzb(paramU.zzwW(), "Listener has already been released.");
    zzac.zzb(paramT.zzwW().equals(paramU.zzwW()), "Listener registration and unregistration methods must be constructed with the same ListenerHolder.");
    return this.zzayX.zza(this, paramT, paramU);
  }
  
  public Task<Void> doUnregisterEventListener(@NonNull zzabh.zzb<?> paramzzb)
  {
    zzac.zzb(paramzzb, "Listener key cannot be null.");
    return this.zzayX.zza(this, paramzzb);
  }
  
  public <A extends Api.zzb, T extends zzaad.zza<? extends Result, A>> T doWrite(@NonNull T paramT)
  {
    return a(1, paramT);
  }
  
  public <TResult, A extends Api.zzb> Task<TResult> doWrite(zzabv<A, TResult> paramzzabv)
  {
    return a(1, paramzzabv);
  }
  
  public Api<O> getApi()
  {
    return this.b;
  }
  
  public zzzz<O> getApiKey()
  {
    return this.d;
  }
  
  public O getApiOptions()
  {
    return this.c;
  }
  
  public Context getApplicationContext()
  {
    return this.a;
  }
  
  public int getInstanceId()
  {
    return this.f;
  }
  
  public Looper getLooper()
  {
    return this.e;
  }
  
  public <L> zzabh<L> registerListener(@NonNull L paramL, String paramString)
  {
    return zzabi.zzb(paramL, this.e, paramString);
  }
  
  public static class zza
  {
    public static final zza zzayY = new zza().zzvk();
    public final Account account;
    public final zzabs zzayZ;
    public final Looper zzaza;
    
    private zza(zzabs paramzzabs, Looper paramLooper)
    {
      this.zzayZ = paramzzabs;
      this.account = null;
      this.zzaza = paramLooper;
    }
    
    public static class zza
    {
      private zzabs a;
      private Looper b;
      
      public zza zza(zzabs paramzzabs)
      {
        zzac.zzb(paramzzabs, "StatusExceptionMapper must not be null.");
        this.a = paramzzabs;
        return this;
      }
      
      public zza zzb(Looper paramLooper)
      {
        zzac.zzb(paramLooper, "Looper must not be null.");
        this.b = paramLooper;
        return this;
      }
      
      public zzc.zza zzvk()
      {
        if (this.a == null) {
          this.a = new zzzy();
        }
        if (this.b == null) {
          if (Looper.myLooper() == null) {
            break label55;
          }
        }
        label55:
        for (this.b = Looper.myLooper();; this.b = Looper.getMainLooper()) {
          return new zzc.zza(this.a, this.b, (byte)0);
        }
      }
    }
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/google/android/gms/common/api/zzc.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */