zzh.java 6.75 KB
package com.google.android.gms.analytics;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.os.Process;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Log;
import com.google.android.gms.common.internal.zzac;
import com.google.android.gms.internal.zzrk;
import com.google.android.gms.internal.zzrp;
import com.google.android.gms.internal.zztm;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.concurrent.Callable;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.RunnableFuture;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;

public final class zzh
{
  private static volatile zzh b;
  final a a;
  private final Context c;
  private final List<Object> d;
  private final zzd e;
  private volatile zzrk f;
  private Thread.UncaughtExceptionHandler g;
  
  private zzh(Context paramContext)
  {
    paramContext = paramContext.getApplicationContext();
    zzac.zzw(paramContext);
    this.c = paramContext;
    this.a = new a();
    this.d = new CopyOnWriteArrayList();
    this.e = new zzd();
  }
  
  public static zzh zzam(Context paramContext)
  {
    zzac.zzw(paramContext);
    if (b == null) {}
    try
    {
      if (b == null) {
        b = new zzh(paramContext);
      }
      return b;
    }
    finally {}
  }
  
  public static void zzmR()
  {
    if (!(Thread.currentThread() instanceof c)) {
      throw new IllegalStateException("Call expected from worker thread");
    }
  }
  
  public final Context getContext()
  {
    return this.c;
  }
  
  public final void zza(Thread.UncaughtExceptionHandler paramUncaughtExceptionHandler)
  {
    this.g = paramUncaughtExceptionHandler;
  }
  
  public final <V> Future<V> zzc(Callable<V> paramCallable)
  {
    zzac.zzw(paramCallable);
    if ((Thread.currentThread() instanceof c))
    {
      paramCallable = new FutureTask(paramCallable);
      paramCallable.run();
      return paramCallable;
    }
    return this.a.submit(paramCallable);
  }
  
  public final void zzg(Runnable paramRunnable)
  {
    zzac.zzw(paramRunnable);
    this.a.submit(paramRunnable);
  }
  
  public final zzrk zzmP()
  {
    if (this.f == null) {}
    label202:
    for (;;)
    {
      try
      {
        zzrk localzzrk;
        PackageManager localPackageManager;
        String str3;
        Object localObject5;
        Object localObject3;
        if (this.f == null)
        {
          localzzrk = new zzrk();
          localPackageManager = this.c.getPackageManager();
          str3 = this.c.getPackageName();
          localzzrk.setAppId(str3);
          localzzrk.setAppInstallerId(localPackageManager.getInstallerPackageName(str3));
          localObject5 = null;
          localObject3 = str3;
        }
        try
        {
          PackageInfo localPackageInfo = localPackageManager.getPackageInfo(this.c.getPackageName(), 0);
          localObject4 = localObject5;
          String str1 = str3;
          if (localPackageInfo != null)
          {
            localObject3 = str3;
            localObject4 = localPackageManager.getApplicationLabel(localPackageInfo.applicationInfo);
            str1 = str3;
            localObject3 = str3;
            if (!TextUtils.isEmpty((CharSequence)localObject4))
            {
              localObject3 = str3;
              str1 = ((CharSequence)localObject4).toString();
            }
            localObject3 = str1;
            localObject4 = localPackageInfo.versionName;
          }
          localzzrk.setAppName(str1);
          localzzrk.setAppVersion((String)localObject4);
          this.f = localzzrk;
          return this.f;
        }
        catch (PackageManager.NameNotFoundException localNameNotFoundException)
        {
          localObject1 = String.valueOf(localObject3);
          if (((String)localObject1).length() == 0) {
            break label202;
          }
        }
        Object localObject1 = "Error retrieving package info: appName set to ".concat((String)localObject1);
        Log.e("GAv4", (String)localObject1);
        Object localObject4 = localObject5;
        localObject1 = localObject3;
        continue;
        String str2 = new String("Error retrieving package info: appName set to ");
      }
      finally {}
    }
  }
  
  public final zzrp zzmQ()
  {
    DisplayMetrics localDisplayMetrics = this.c.getResources().getDisplayMetrics();
    zzrp localzzrp = new zzrp();
    localzzrp.setLanguage(zztm.zza(Locale.getDefault()));
    localzzrp.zzaB(localDisplayMetrics.widthPixels);
    localzzrp.zzaC(localDisplayMetrics.heightPixels);
    return localzzrp;
  }
  
  final class a
    extends ThreadPoolExecutor
  {
    public a()
    {
      super(1, 1L, TimeUnit.MINUTES, new LinkedBlockingQueue());
      setThreadFactory(new zzh.b((byte)0));
      allowCoreThreadTimeOut(true);
    }
    
    protected final <T> RunnableFuture<T> newTaskFor(Runnable paramRunnable, T paramT)
    {
      new FutureTask(paramRunnable, paramT)
      {
        protected final void setException(Throwable paramAnonymousThrowable)
        {
          Object localObject = zzh.b(zzh.this);
          if (localObject != null) {
            ((Thread.UncaughtExceptionHandler)localObject).uncaughtException(Thread.currentThread(), paramAnonymousThrowable);
          }
          for (;;)
          {
            super.setException(paramAnonymousThrowable);
            return;
            if (Log.isLoggable("GAv4", 6))
            {
              localObject = String.valueOf(paramAnonymousThrowable);
              Log.e("GAv4", String.valueOf(localObject).length() + 37 + "MeasurementExecutor: job failed with " + (String)localObject);
            }
          }
        }
      };
    }
  }
  
  static final class b
    implements ThreadFactory
  {
    private static final AtomicInteger a = new AtomicInteger();
    
    public final Thread newThread(Runnable paramRunnable)
    {
      int i = a.incrementAndGet();
      return new zzh.c(paramRunnable, 23 + "measurement-" + i);
    }
  }
  
  static final class c
    extends Thread
  {
    c(Runnable paramRunnable, String paramString)
    {
      super(paramString);
    }
    
    public final void run()
    {
      Process.setThreadPriority(10);
      super.run();
    }
  }
}


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