package com.google.android.m4b.maps.ba;

import com.google.android.m4b.maps.aj.a.c;
import com.google.android.m4b.maps.bc.p;
import com.google.android.m4b.maps.bc.q;
import com.google.android.m4b.maps.bf.b;
import com.google.android.m4b.maps.bu.ab;
import com.google.android.m4b.maps.bu.ad;
import com.google.android.m4b.maps.bu.z;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.WeakHashMap;

public final class i
  implements b
{
  private static i c;
  private static final com.google.android.m4b.maps.aj.c q = new com.google.android.m4b.maps.aj.c(new a.c(0L, 0L), 0);
  private final Map<a, Object> a = Collections.synchronizedMap(new WeakHashMap());
  private final Map<ad, Object> b = Collections.synchronizedMap(new WeakHashMap());
  private final com.google.android.m4b.maps.bk.f<a.c, com.google.android.m4b.maps.aj.c> d = new com.google.android.m4b.maps.bk.f(100);
  private final com.google.android.m4b.maps.bk.f<a.c, com.google.android.m4b.maps.aj.c> e = new com.google.android.m4b.maps.bk.f(100);
  private a.c f;
  private com.google.android.m4b.maps.aj.c g;
  private p h;
  private final Set<a.c> i = Sets.newHashSet();
  private final List<z> j = Lists.newArrayList();
  private final Set<a.c> k = Sets.newHashSet();
  private final Object l = new Object();
  private final com.google.android.m4b.maps.be.d m;
  private final Map<Integer, f> n = Maps.newHashMap();
  private final Map<a.c, f> o = Collections.synchronizedMap(new HashMap());
  private final c p;
  private volatile com.google.android.m4b.maps.aj.c r;
  private volatile com.google.android.m4b.maps.aj.c s;

  @VisibleForTesting
  private i(com.google.android.m4b.maps.be.d paramd)
  {
    this.m = paramd;
    this.p = new d();
  }

  private com.google.android.m4b.maps.aj.c a(p paramp)
  {
    synchronized (this.d)
    {
      Object localObject2 = (com.google.android.m4b.maps.aj.c)this.d.b(paramp.a());
      int i1 = 0;
      q localq;
      if (localObject2 == null)
      {
        localq = paramp.c();
        if (localq != null)
          break label93;
        localObject2 = q;
        this.d.c(paramp.a(), localObject2);
        com.google.android.m4b.maps.aj.c localc1 = q;
        i1 = 0;
        if (localObject2 != localc1)
          i1 = 1;
      }
      if (i1 != 0)
        e(paramp);
      return localObject2;
      label93: com.google.android.m4b.maps.aj.c localc2 = localq.a();
      localObject2 = localc2;
    }
  }

  public static i a()
  {
    return c;
  }

  public static i a(com.google.android.m4b.maps.be.d paramd)
  {
    if (c == null)
      c = new i(paramd);
    return c;
  }

  private void a(a.c paramc, b paramb)
  {
    if (this.m.b(paramc))
      return;
    this.m.a(paramc, paramb);
  }

  @VisibleForTesting
  private boolean a(a.c paramc, com.google.android.m4b.maps.aj.c paramc1)
  {
    label241: 
    while (true)
    {
      synchronized (this.d)
      {
        com.google.android.m4b.maps.aj.c localc = (com.google.android.m4b.maps.aj.c)this.d.b(paramc);
        if (paramc1.equals(localc))
          return false;
        this.d.c(paramc, paramc1);
        if (localc != null);
        synchronized (this.d)
        {
          this.e.c(paramc, localc);
          q localq1 = this.m.c(localc.a());
          if (localq1 == null)
            return true;
          if (paramc1 == q)
          {
            localObject3 = ImmutableList.of();
            Iterator localIterator = localq1.c().iterator();
            if (!localIterator.hasNext())
              break label241;
            a.c localc1 = (a.c)localIterator.next();
            if ((localc1.equals(paramc)) || (((List)localObject3).contains(localc1)))
              continue;
            this.e.c(localc1, this.d.b(localc1));
            this.d.c(localc1, q);
          }
        }
      }
      q localq2 = this.m.c(paramc1.a());
      if (localq2 == null);
      Object localObject3 = localq2.c();
    }
  }

  public static int c(z paramz)
  {
    return paramz.d();
  }

  public static boolean d(z paramz)
  {
    return paramz.e();
  }

  private void e(z paramz)
  {
    k();
    synchronized (this.b)
    {
      Iterator localIterator1 = this.a.keySet().iterator();
      if (localIterator1.hasNext())
        ((a)localIterator1.next()).a(paramz);
    }
    Iterator localIterator2 = this.b.keySet().iterator();
    while (localIterator2.hasNext())
      ((ad)localIterator2.next()).a(paramz);
  }

  private void i()
  {
    synchronized (this.b)
    {
      Iterator localIterator1 = this.a.keySet().iterator();
      if (localIterator1.hasNext())
        ((a)localIterator1.next()).a(this);
    }
    Iterator localIterator2 = this.b.keySet().iterator();
    while (localIterator2.hasNext())
      ((ad)localIterator2.next()).a();
  }

  private void j()
  {
    k();
    synchronized (this.b)
    {
      Iterator localIterator1 = this.a.keySet().iterator();
      if (localIterator1.hasNext())
        ((a)localIterator1.next()).c();
    }
    Iterator localIterator2 = this.b.keySet().iterator();
    while (localIterator2.hasNext())
      localIterator2.next();
  }

  private void k()
  {
    while (true)
    {
      ab localab;
      f localf;
      synchronized (this.o)
      {
        this.n.clear();
        this.o.clear();
        Iterator localIterator = f().iterator();
        if (!localIterator.hasNext())
          break label207;
        localab = (ab)localIterator.next();
        com.google.android.m4b.maps.aj.c localc = localab.a();
        if (localc != null)
        {
          if (localc.equals(this.r))
            break label210;
          if (localc.equals(this.s))
          {
            break label210;
            if (i1 != 0)
              continue;
            localf = (f)this.n.get(Integer.valueOf(localab.f()));
            if (localf != null)
              break label196;
            localf = new f(localab);
            this.n.put(Integer.valueOf(localab.f()), localf);
            this.o.put(localab.b(), localf);
          }
        }
      }
      int i1 = 0;
      continue;
      label196: localf.a(localab);
      continue;
      label207: return;
      label210: i1 = 1;
    }
  }

  public final com.google.android.m4b.maps.aj.c a(a.c paramc)
  {
    while (true)
    {
      synchronized (this.d)
      {
        com.google.android.m4b.maps.aj.c localc = (com.google.android.m4b.maps.aj.c)this.d.b(paramc);
        if (localc == null)
        {
          p localp = this.m.a(paramc);
          if (localp != null)
            localc = a(localp);
        }
        else
        {
          if (localc == q)
            localc = null;
          return localc;
        }
      }
      a(paramc, this);
    }
  }

  public final f a(a.c paramc, boolean paramBoolean1, boolean paramBoolean2, boolean paramBoolean3)
  {
    while (true)
    {
      f localf3;
      synchronized (this.o)
      {
        f localf1 = (f)this.o.get(paramc);
        if ((!paramBoolean2) || (localf1 == null) || (localf1.f().size() <= 1))
          break label216;
        localf2 = localf1;
        localf1 = null;
        if (localf1 != null)
          return localf1;
        p localp = this.m.a(paramc);
        if (localp == null)
        {
          a(paramc, null);
          return null;
        }
        q localq = localp.a(paramc);
        if (localq == null)
          return null;
        localf3 = new f(localq);
        if (paramBoolean3)
        {
          this.o.put(paramc, localf3);
          if (localf2 != null)
          {
            f localf4 = localf2.a(paramc);
            Iterator localIterator = localf4.f().iterator();
            if (localIterator.hasNext())
            {
              a.c localc = (a.c)localIterator.next();
              this.o.put(localc, localf4);
            }
          }
        }
      }
      return localf3;
      label216: f localf2 = null;
    }
  }

  public final void a(a.c paramc, int paramInt, p paramp)
  {
    if ((paramInt != 2) && (paramInt == 0))
    {
      synchronized (this.l)
      {
        com.google.android.m4b.maps.aj.c localc1 = this.g;
        com.google.android.m4b.maps.aj.c localc2 = null;
        if (localc1 != null)
        {
          boolean bool = this.g.a().equals(paramc);
          localc2 = null;
          if (bool)
          {
            localc2 = this.g;
            this.g = null;
          }
        }
        if (localc2 != null)
        {
          q localq = paramp.a(localc2);
          if (localq != null)
          {
            Iterator localIterator = localq.c().iterator();
            while (localIterator.hasNext())
            {
              a.c localc = (a.c)localIterator.next();
              if (a(localc, localq.a()))
                a(localc, new b()
                {
                  public final void a(a.c paramAnonymousc, int paramAnonymousInt, p paramAnonymousp)
                  {
                    if ((paramAnonymousInt != 2) && (paramAnonymousInt == 0))
                      i.a(i.this, paramAnonymousp);
                  }
                });
            }
          }
        }
      }
      a(paramp);
    }
    while (true)
    {
      synchronized (this.l)
      {
        if (!paramc.equals(this.f))
          break label351;
        if ((this.h != null) && (paramp.a().equals(this.h.a())))
          break label345;
        if (paramp.b().isEmpty())
        {
          if (this.h == null)
            break label345;
          this.h = null;
          i1 = 1;
          this.f = null;
          if (i1 != 0)
            i();
        }
      }
      while (true)
      {
        synchronized (this.l)
        {
          if (this.i.contains(paramc))
          {
            this.i.remove(paramc);
            this.j.add(paramp);
            i2 = 1;
            if (i2 != 0)
              j();
            return;
            this.h = paramp;
            i1 = 1;
            break;
            localObject4 = finally;
            throw localObject4;
          }
        }
        int i2 = 0;
      }
      label345: int i1 = 0;
      continue;
      label351: i1 = 0;
    }
  }

  public final void a(com.google.android.m4b.maps.aj.c paramc)
  {
    synchronized (this.l)
    {
      if ((paramc.equals(this.g)) || (this.d.d().contains(paramc)))
        return;
      this.g = paramc;
      a(paramc.a(), this);
      return;
    }
  }

  public final void a(com.google.android.m4b.maps.aj.c paramc1, com.google.android.m4b.maps.aj.c paramc2)
  {
    this.r = paramc1;
    this.s = paramc2;
    k();
  }

  public final void a(a parama)
  {
    this.a.put(parama, null);
  }

  public final void a(ad paramad)
  {
    this.b.put(paramad, null);
  }

  public final void a(z paramz)
  {
    if (paramz != null)
    {
      a(paramz.a(), q);
      e(paramz);
    }
  }

  public final void a(Set<a.c> paramSet)
  {
    Object localObject1 = this.l;
    if (paramSet == null);
    while (true)
    {
      a.c localc;
      try
      {
        paramSet = ImmutableSet.of();
        if (paramSet.equals(this.k))
          return;
        this.k.clear();
        this.k.addAll(paramSet);
        this.i.clear();
        this.i.addAll(paramSet);
        this.j.clear();
        Iterator localIterator = this.k.iterator();
        if (!localIterator.hasNext())
          break;
        localc = (a.c)localIterator.next();
        p localp = this.m.a(localc);
        if (localp != null)
        {
          this.j.add(localp);
          this.i.remove(localc);
          continue;
        }
      }
      finally
      {
      }
      a(localc, this);
    }
    j();
  }

  public final com.google.android.m4b.maps.aj.c b(a.c paramc)
  {
    synchronized (this.d)
    {
      com.google.android.m4b.maps.aj.c localc = (com.google.android.m4b.maps.aj.c)this.e.b(paramc);
      if (localc == q)
        localc = null;
      return localc;
    }
  }

  public final ab b(z paramz)
  {
    com.google.android.m4b.maps.aj.c localc = a(paramz.a());
    if (localc != null)
      return paramz.c(localc);
    return null;
  }

  public final void b()
  {
    this.r = null;
    this.s = null;
    k();
  }

  public final void b(a parama)
  {
    this.a.remove(parama);
  }

  public final boolean b(com.google.android.m4b.maps.aj.c paramc1, com.google.android.m4b.maps.aj.c paramc2)
  {
    return (paramc1 != null) && (paramc2 != null) && (paramc1.equals(this.r)) && (paramc2.equals(this.s));
  }

  public final p c()
  {
    synchronized (this.l)
    {
      p localp = this.h;
      return localp;
    }
  }

  public final void c(a.c paramc)
  {
    if (paramc == null)
      synchronized (this.l)
      {
        p localp = this.h;
        int i1 = 0;
        if (localp != null)
        {
          this.f = null;
          this.h = null;
          i1 = 1;
        }
        if (i1 != 0)
          i();
        return;
      }
    synchronized (this.l)
    {
      if ((paramc.equals(this.f)) || ((this.h != null) && (this.h.a().equals(paramc))))
        return;
    }
    this.f = paramc;
    a(paramc, this);
  }

  public final f d(a.c paramc)
  {
    return a(paramc, true, false, false);
  }

  public final boolean d()
  {
    synchronized (this.l)
    {
      if (!this.j.isEmpty())
      {
        bool = true;
        return bool;
      }
      boolean bool = false;
    }
  }

  public final List<z> e()
  {
    synchronized (this.l)
    {
      ImmutableList localImmutableList = ImmutableList.copyOf(this.j);
      return localImmutableList;
    }
  }

  public final Set<ab> f()
  {
    List localList = e();
    HashSet localHashSet = Sets.newHashSet();
    Iterator localIterator = localList.iterator();
    while (localIterator.hasNext())
    {
      ab localab = b((z)localIterator.next());
      if (localab != null)
        localHashSet.add(localab);
    }
    return localHashSet;
  }

  public final Set<f> g()
  {
    synchronized (this.o)
    {
      ImmutableSet localImmutableSet = ImmutableSet.copyOf(this.o.values());
      return localImmutableSet;
    }
  }

  public final c h()
  {
    return this.p;
  }

  public static abstract interface a
  {
    public abstract void a(i parami);

    public abstract void a(z paramz);

    public abstract void c();
  }
}

/* Location:           C:\Documents and Settings\Cesar Cabello Cea\Mis documentos\Downloads\apk-downloader\com.ikea.kompis-6_dex2jar.jar
 * Qualified Name:     com.google.android.m4b.maps.ba.i
 * JD-Core Version:    0.6.2
 */