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