17d7d03dceae92dc32a9b84dee665a34c300017a7Sam Juddpackage com.bumptech.glide.load.engine; 27d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 37d7d03dceae92dc32a9b84dee665a34c300017a7Sam Juddimport com.bumptech.glide.load.Key; 47d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 57d7d03dceae92dc32a9b84dee665a34c300017a7Sam Juddimport java.io.UnsupportedEncodingException; 67d7d03dceae92dc32a9b84dee665a34c300017a7Sam Juddimport java.security.MessageDigest; 77d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 87d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd/** 97d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd * A class for keeping track of the cache key of the original data + any requested signature. 107d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd */ 117d7d03dceae92dc32a9b84dee665a34c300017a7Sam Juddclass OriginalKey implements Key { 127d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 137d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd private final String id; 147d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd private final Key signature; 157d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 167d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd public OriginalKey(String id, Key signature) { 177d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd this.id = id; 187d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd this.signature = signature; 197d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd } 207d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 217d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd @Override 227d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd public boolean equals(Object o) { 237d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd if (this == o) { 247d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd return true; 257d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd } 267d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd if (o == null || getClass() != o.getClass()) { 277d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd return false; 287d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd } 297d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 307d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd OriginalKey that = (OriginalKey) o; 317d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 327d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd if (!id.equals(that.id)) { 337d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd return false; 347d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd } 357d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd if (!signature.equals(that.signature)) { 367d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd return false; 377d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd } 387d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 397d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd return true; 407d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd } 417d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 427d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd @Override 437d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd public int hashCode() { 447d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd int result = id.hashCode(); 457d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd result = 31 * result + signature.hashCode(); 467d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd return result; 477d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd } 487d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd 497d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd @Override 507d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd public void updateDiskCacheKey(MessageDigest messageDigest) throws UnsupportedEncodingException { 517d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd messageDigest.update(id.getBytes(STRING_CHARSET_NAME)); 527d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd signature.updateDiskCacheKey(messageDigest); 537d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd } 547d7d03dceae92dc32a9b84dee665a34c300017a7Sam Judd} 55