.class final Lcom/bumptech/glide/load/engine/ResourceCacheKey; .super Ljava/lang/Object; .source "ResourceCacheKey.java" # interfaces .implements Lcom/bumptech/glide/load/Key; # static fields .field private static final RESOURCE_CLASS_BYTES:Lcom/bumptech/glide/util/LruCache; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/bumptech/glide/util/LruCache<", "Ljava/lang/Class<", "*>;[B>;" } .end annotation .end field # instance fields .field private final arrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; .field private final decodedResourceClass:Ljava/lang/Class; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Class<", "*>;" } .end annotation .end field .field private final height:I .field private final options:Lcom/bumptech/glide/load/Options; .field private final signature:Lcom/bumptech/glide/load/Key; .field private final sourceKey:Lcom/bumptech/glide/load/Key; .field private final transformation:Lcom/bumptech/glide/load/Transformation; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/bumptech/glide/load/Transformation<", "*>;" } .end annotation .end field .field private final width:I # direct methods .method static constructor ()V .registers 3 .line 17 new-instance v0, Lcom/bumptech/glide/util/LruCache; const-wide/16 v1, 0x32 invoke-direct {v0, v1, v2}, Lcom/bumptech/glide/util/LruCache;->(J)V sput-object v0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->RESOURCE_CLASS_BYTES:Lcom/bumptech/glide/util/LruCache; return-void .end method .method constructor (Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;Lcom/bumptech/glide/load/Key;Lcom/bumptech/glide/load/Key;IILcom/bumptech/glide/load/Transformation;Ljava/lang/Class;Lcom/bumptech/glide/load/Options;)V .registers 9 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;", "Lcom/bumptech/glide/load/Key;", "Lcom/bumptech/glide/load/Key;", "II", "Lcom/bumptech/glide/load/Transformation<", "*>;", "Ljava/lang/Class<", "*>;", "Lcom/bumptech/glide/load/Options;", ")V" } .end annotation .line 35 invoke-direct {p0}, Ljava/lang/Object;->()V .line 36 iput-object p1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->arrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; .line 37 iput-object p2, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->sourceKey:Lcom/bumptech/glide/load/Key; .line 38 iput-object p3, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->signature:Lcom/bumptech/glide/load/Key; .line 39 iput p4, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->width:I .line 40 iput p5, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->height:I .line 41 iput-object p6, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->transformation:Lcom/bumptech/glide/load/Transformation; .line 42 iput-object p7, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->decodedResourceClass:Ljava/lang/Class; .line 43 iput-object p8, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->options:Lcom/bumptech/glide/load/Options; return-void .end method .method private getResourceClassBytes()[B .registers 4 .line 91 sget-object v0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->RESOURCE_CLASS_BYTES:Lcom/bumptech/glide/util/LruCache; iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->decodedResourceClass:Ljava/lang/Class; invoke-virtual {v0, v1}, Lcom/bumptech/glide/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 check-cast v1, [B if-nez v1, :cond_1d .line 93 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->decodedResourceClass:Ljava/lang/Class; invoke-virtual {v1}, Ljava/lang/Class;->getName()Ljava/lang/String; move-result-object v1 sget-object v2, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->CHARSET:Ljava/nio/charset/Charset; invoke-virtual {v1, v2}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object v1 .line 94 iget-object v2, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->decodedResourceClass:Ljava/lang/Class; invoke-virtual {v0, v2, v1}, Lcom/bumptech/glide/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_1d return-object v1 .end method # virtual methods .method public equals(Ljava/lang/Object;)Z .registers 5 .line 48 instance-of v0, p1, Lcom/bumptech/glide/load/engine/ResourceCacheKey; const/4 v1, 0x0 if-eqz v0, :cond_46 .line 49 check-cast p1, Lcom/bumptech/glide/load/engine/ResourceCacheKey; .line 50 iget v0, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->height:I iget v2, p1, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->height:I if-ne v0, v2, :cond_46 iget v0, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->width:I iget v2, p1, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->width:I if-ne v0, v2, :cond_46 iget-object v0, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->transformation:Lcom/bumptech/glide/load/Transformation; iget-object v2, p1, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->transformation:Lcom/bumptech/glide/load/Transformation; .line 51 invoke-static {v0, v2}, Lcom/bumptech/glide/util/Util;->bothNullOrEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_46 iget-object v0, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->decodedResourceClass:Ljava/lang/Class; iget-object v2, p1, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->decodedResourceClass:Ljava/lang/Class; .line 52 invoke-virtual {v0, v2}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_46 iget-object v0, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->sourceKey:Lcom/bumptech/glide/load/Key; iget-object v2, p1, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->sourceKey:Lcom/bumptech/glide/load/Key; .line 53 invoke-interface {v0, v2}, Lcom/bumptech/glide/load/Key;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_46 iget-object v0, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->signature:Lcom/bumptech/glide/load/Key; iget-object v2, p1, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->signature:Lcom/bumptech/glide/load/Key; .line 54 invoke-interface {v0, v2}, Lcom/bumptech/glide/load/Key;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_46 iget-object v0, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->options:Lcom/bumptech/glide/load/Options; iget-object p1, p1, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->options:Lcom/bumptech/glide/load/Options; .line 55 invoke-virtual {v0, p1}, Lcom/bumptech/glide/load/Options;->equals(Ljava/lang/Object;)Z move-result p1 if-eqz p1, :cond_46 const/4 v1, 0x1 :cond_46 return v1 .end method .method public hashCode()I .registers 3 .line 62 iget-object v0, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->sourceKey:Lcom/bumptech/glide/load/Key; invoke-interface {v0}, Lcom/bumptech/glide/load/Key;->hashCode()I move-result v0 mul-int/lit8 v0, v0, 0x1f .line 63 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->signature:Lcom/bumptech/glide/load/Key; invoke-interface {v1}, Lcom/bumptech/glide/load/Key;->hashCode()I move-result v1 add-int/2addr v0, v1 mul-int/lit8 v0, v0, 0x1f .line 64 iget v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->width:I add-int/2addr v0, v1 mul-int/lit8 v0, v0, 0x1f .line 65 iget v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->height:I add-int/2addr v0, v1 .line 66 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->transformation:Lcom/bumptech/glide/load/Transformation; if-eqz v1, :cond_24 mul-int/lit8 v0, v0, 0x1f .line 67 invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I move-result v1 add-int/2addr v0, v1 :cond_24 mul-int/lit8 v0, v0, 0x1f .line 69 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->decodedResourceClass:Ljava/lang/Class; invoke-virtual {v1}, Ljava/lang/Object;->hashCode()I move-result v1 add-int/2addr v0, v1 mul-int/lit8 v0, v0, 0x1f .line 70 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->options:Lcom/bumptech/glide/load/Options; invoke-virtual {v1}, Lcom/bumptech/glide/load/Options;->hashCode()I move-result v1 add-int/2addr v0, v1 return v0 .end method .method public toString()Ljava/lang/String; .registers 3 .line 101 new-instance v0, Ljava/lang/StringBuilder; const-string v1, "ResourceCacheKey{sourceKey=" invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->sourceKey:Lcom/bumptech/glide/load/Key; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", signature=" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->signature:Lcom/bumptech/glide/load/Key; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", width=" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->width:I invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", height=" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->height:I invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", decodedResourceClass=" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->decodedResourceClass:Ljava/lang/Class; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", transformation=\'" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->transformation:Lcom/bumptech/glide/load/Transformation; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, "\', options=" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->options:Lcom/bumptech/glide/load/Options; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const/16 v1, 0x7d invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public updateDiskCacheKey(Ljava/security/MessageDigest;)V .registers 5 .line 77 iget-object v0, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->arrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; const/16 v1, 0x8 const-class v2, [B invoke-interface {v0, v1, v2}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->getExact(ILjava/lang/Class;)Ljava/lang/Object; move-result-object v0 check-cast v0, [B .line 78 invoke-static {v0}, Ljava/nio/ByteBuffer;->wrap([B)Ljava/nio/ByteBuffer; move-result-object v1 iget v2, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->width:I invoke-virtual {v1, v2}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; move-result-object v1 iget v2, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->height:I invoke-virtual {v1, v2}, Ljava/nio/ByteBuffer;->putInt(I)Ljava/nio/ByteBuffer; move-result-object v1 invoke-virtual {v1}, Ljava/nio/ByteBuffer;->array()[B .line 79 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->signature:Lcom/bumptech/glide/load/Key; invoke-interface {v1, p1}, Lcom/bumptech/glide/load/Key;->updateDiskCacheKey(Ljava/security/MessageDigest;)V .line 80 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->sourceKey:Lcom/bumptech/glide/load/Key; invoke-interface {v1, p1}, Lcom/bumptech/glide/load/Key;->updateDiskCacheKey(Ljava/security/MessageDigest;)V .line 81 invoke-virtual {p1, v0}, Ljava/security/MessageDigest;->update([B)V .line 82 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->transformation:Lcom/bumptech/glide/load/Transformation; if-eqz v1, :cond_33 .line 83 invoke-interface {v1, p1}, Lcom/bumptech/glide/load/Transformation;->updateDiskCacheKey(Ljava/security/MessageDigest;)V .line 85 :cond_33 iget-object v1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->options:Lcom/bumptech/glide/load/Options; invoke-virtual {v1, p1}, Lcom/bumptech/glide/load/Options;->updateDiskCacheKey(Ljava/security/MessageDigest;)V .line 86 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->getResourceClassBytes()[B move-result-object v1 invoke-virtual {p1, v1}, Ljava/security/MessageDigest;->update([B)V .line 87 iget-object p1, p0, Lcom/bumptech/glide/load/engine/ResourceCacheKey;->arrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; invoke-interface {p1, v0}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->put(Ljava/lang/Object;)V return-void .end method