LruCache.java 4.52 KB
package com.squareup.picasso;

import android.content.Context;
import android.graphics.Bitmap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map.Entry;
import java.util.Set;
import sy;

public class LruCache
  implements Cache
{
  final LinkedHashMap<String, Bitmap> a;
  private final int b;
  private int c;
  private int d;
  private int e;
  private int f;
  private int g;
  
  public LruCache(int paramInt)
  {
    if (paramInt <= 0) {
      throw new IllegalArgumentException("Max size must be positive.");
    }
    this.b = paramInt;
    this.a = new LinkedHashMap(0, 0.75F, true);
  }
  
  public LruCache(Context paramContext)
  {
    this(sy.c(paramContext));
  }
  
  private void a(int paramInt)
  {
    try
    {
      if ((this.c < 0) || ((this.a.isEmpty()) && (this.c != 0))) {
        throw new IllegalStateException(getClass().getName() + ".sizeOf() is reporting inconsistent results!");
      }
    }
    finally
    {
      throw ((Throwable)localObject1);
      if ((this.c <= paramInt) || (this.a.isEmpty())) {
        return;
      }
      Object localObject2 = (Map.Entry)this.a.entrySet().iterator().next();
      String str = (String)((Map.Entry)localObject2).getKey();
      localObject2 = (Bitmap)((Map.Entry)localObject2).getValue();
      this.a.remove(str);
      this.c -= sy.a((Bitmap)localObject2);
      this.e += 1;
    }
  }
  
  public final void clear()
  {
    try
    {
      evictAll();
      return;
    }
    finally
    {
      localObject = finally;
      throw ((Throwable)localObject);
    }
  }
  
  public final void clearKeyUri(String paramString)
  {
    int i = 0;
    for (;;)
    {
      try
      {
        int j = paramString.length();
        Iterator localIterator = this.a.entrySet().iterator();
        if (localIterator.hasNext())
        {
          Object localObject = (Map.Entry)localIterator.next();
          String str = (String)((Map.Entry)localObject).getKey();
          localObject = (Bitmap)((Map.Entry)localObject).getValue();
          int k = str.indexOf('\n');
          if ((k == j) && (str.substring(0, k).equals(paramString)))
          {
            localIterator.remove();
            this.c -= sy.a((Bitmap)localObject);
            i = 1;
          }
        }
        else
        {
          if (i != 0) {
            a(this.b);
          }
          return;
        }
      }
      finally {}
    }
  }
  
  public final void evictAll()
  {
    a(-1);
  }
  
  public final int evictionCount()
  {
    try
    {
      int i = this.e;
      return i;
    }
    finally
    {
      localObject = finally;
      throw ((Throwable)localObject);
    }
  }
  
  public Bitmap get(String paramString)
  {
    if (paramString == null) {
      throw new NullPointerException("key == null");
    }
    try
    {
      paramString = (Bitmap)this.a.get(paramString);
      if (paramString != null)
      {
        this.f += 1;
        return paramString;
      }
      this.g += 1;
      return null;
    }
    finally {}
  }
  
  public final int hitCount()
  {
    try
    {
      int i = this.f;
      return i;
    }
    finally
    {
      localObject = finally;
      throw ((Throwable)localObject);
    }
  }
  
  public final int maxSize()
  {
    try
    {
      int i = this.b;
      return i;
    }
    finally
    {
      localObject = finally;
      throw ((Throwable)localObject);
    }
  }
  
  public final int missCount()
  {
    try
    {
      int i = this.g;
      return i;
    }
    finally
    {
      localObject = finally;
      throw ((Throwable)localObject);
    }
  }
  
  public final int putCount()
  {
    try
    {
      int i = this.d;
      return i;
    }
    finally
    {
      localObject = finally;
      throw ((Throwable)localObject);
    }
  }
  
  public void set(String paramString, Bitmap paramBitmap)
  {
    if ((paramString == null) || (paramBitmap == null)) {
      throw new NullPointerException("key == null || bitmap == null");
    }
    try
    {
      this.d += 1;
      this.c += sy.a(paramBitmap);
      paramString = (Bitmap)this.a.put(paramString, paramBitmap);
      if (paramString != null) {
        this.c -= sy.a(paramString);
      }
      a(this.b);
      return;
    }
    finally {}
  }
  
  public final int size()
  {
    try
    {
      int i = this.c;
      return i;
    }
    finally
    {
      localObject = finally;
      throw ((Throwable)localObject);
    }
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/squareup/picasso/LruCache.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */