zzaby.java 4.16 KB
package com.google.android.gms.internal;

import android.os.IBinder;
import android.os.IBinder.DeathRecipient;
import android.os.RemoteException;
import com.google.android.gms.common.api.Api.zzc;
import com.google.android.gms.common.api.Api.zze;
import com.google.android.gms.common.api.Result;
import com.google.android.gms.common.api.Status;
import com.google.android.gms.common.api.zzf;
import java.io.PrintWriter;
import java.lang.ref.WeakReference;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.WeakHashMap;

public class zzaby
{
  private static final zzaaf<?>[] b = new zzaaf[0];
  public static final Status zzaDu = new Status(8, "The connection to Google Play services was lost");
  final Set<zzaaf<?>> a = Collections.synchronizedSet(Collections.newSetFromMap(new WeakHashMap()));
  private final b c = new b()
  {
    public final void a(zzaaf<?> paramAnonymouszzaaf)
    {
      zzaby.this.a.remove(paramAnonymouszzaaf);
      if (paramAnonymouszzaaf.zzvr() != null) {
        zzaby.a();
      }
    }
  };
  private final Map<Api.zzc<?>, Api.zze> d;
  
  public zzaby(Map<Api.zzc<?>, Api.zze> paramMap)
  {
    this.d = paramMap;
  }
  
  final void a(zzaaf<? extends Result> paramzzaaf)
  {
    this.a.add(paramzzaaf);
    paramzzaaf.zza(this.c);
  }
  
  public void dump(PrintWriter paramPrintWriter)
  {
    paramPrintWriter.append(" mUnconsumedApiCalls.size()=").println(this.a.size());
  }
  
  public void release()
  {
    zzaaf[] arrayOfzzaaf = (zzaaf[])this.a.toArray(b);
    int j = arrayOfzzaaf.length;
    int i = 0;
    while (i < j)
    {
      zzaaf localzzaaf = arrayOfzzaaf[i];
      localzzaaf.zza(null);
      if (localzzaaf.zzvr() == null)
      {
        if (localzzaaf.zzvF()) {
          this.a.remove(localzzaaf);
        }
        i += 1;
      }
      else
      {
        localzzaaf.zzvH();
        IBinder localIBinder = ((Api.zze)this.d.get(((zzaad.zza)localzzaaf).zzvg())).zzvi();
        if (localzzaaf.isReady()) {
          localzzaaf.zza(new a(localzzaaf, localIBinder, (byte)0));
        }
        for (;;)
        {
          this.a.remove(localzzaaf);
          break;
          if ((localIBinder != null) && (localIBinder.isBinderAlive()))
          {
            a locala = new a(localzzaaf, localIBinder, (byte)0);
            localzzaaf.zza(locala);
            try
            {
              localIBinder.linkToDeath(locala, 0);
            }
            catch (RemoteException localRemoteException)
            {
              localzzaaf.cancel();
              localzzaaf.zzvr().intValue();
              throw new NullPointerException();
            }
          }
        }
        localzzaaf.zza(null);
        localzzaaf.cancel();
        localzzaaf.zzvr().intValue();
        throw new NullPointerException();
      }
    }
  }
  
  public void zzxd()
  {
    zzaaf[] arrayOfzzaaf = (zzaaf[])this.a.toArray(b);
    int j = arrayOfzzaaf.length;
    int i = 0;
    while (i < j)
    {
      arrayOfzzaaf[i].zzC(zzaDu);
      i += 1;
    }
  }
  
  static final class a
    implements IBinder.DeathRecipient, zzaby.b
  {
    private final WeakReference<zzaaf<?>> a;
    private final WeakReference<zzf> b = new WeakReference(null);
    private final WeakReference<IBinder> c;
    
    private a(zzaaf<?> paramzzaaf, IBinder paramIBinder)
    {
      this.a = new WeakReference(paramzzaaf);
      this.c = new WeakReference(paramIBinder);
    }
    
    private void a()
    {
      Object localObject = (zzaaf)this.a.get();
      zzf localzzf = (zzf)this.b.get();
      if ((localzzf != null) && (localObject != null)) {
        localzzf.remove(((zzaaf)localObject).zzvr().intValue());
      }
      localObject = (IBinder)this.c.get();
      if (localObject != null) {
        ((IBinder)localObject).unlinkToDeath(this, 0);
      }
    }
    
    public final void a(zzaaf<?> paramzzaaf)
    {
      a();
    }
    
    public final void binderDied()
    {
      a();
    }
  }
  
  static abstract interface b
  {
    public abstract void a(zzaaf<?> paramzzaaf);
  }
}


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