1bcf4a0dae04a4ad14287eeb34069a97c96fe9bb1Sam Juddpackage com.bumptech.glide.load.resource.bitmap;
2b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd
3b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Juddimport android.graphics.Bitmap;
4b7c7c2b2505f996dbda219faeb0d08dc1c9982d7Sam Juddimport com.bumptech.glide.load.engine.Resource;
59fc12334a7d14347cd6951d0653264b2597bd3a0Sam Juddimport com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool;
6b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Juddimport com.bumptech.glide.util.Util;
7b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd
859dfe6bccb7a462c6239aaca30ead1f3db47e555Sam Juddpublic class BitmapResource extends Resource<Bitmap> {
9b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd    private Bitmap bitmap;
10faacbfc1109f255836b4091f6459976295bba7baSam Judd    private BitmapPool bitmapPool;
11b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd
12faacbfc1109f255836b4091f6459976295bba7baSam Judd    public BitmapResource(Bitmap bitmap, BitmapPool bitmapPool) {
13b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd        this.bitmap = bitmap;
14faacbfc1109f255836b4091f6459976295bba7baSam Judd        this.bitmapPool = bitmapPool;
15b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd    }
16b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd
17b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd    @Override
18b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd    public Bitmap get() {
19b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd        return bitmap;
20b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd    }
21b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd
22b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd    @Override
23b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd    public int getSize() {
24b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd        return Util.getSize(bitmap);
25b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd    }
26faacbfc1109f255836b4091f6459976295bba7baSam Judd
27faacbfc1109f255836b4091f6459976295bba7baSam Judd    @Override
2859dfe6bccb7a462c6239aaca30ead1f3db47e555Sam Judd    public void recycleInternal() {
29faacbfc1109f255836b4091f6459976295bba7baSam Judd        if (!bitmapPool.put(bitmap)) {
30faacbfc1109f255836b4091f6459976295bba7baSam Judd            bitmap.recycle();
31faacbfc1109f255836b4091f6459976295bba7baSam Judd        }
32faacbfc1109f255836b4091f6459976295bba7baSam Judd    }
33b215b51a0ba86c2db14bd735cc0207cf3f1c7cd8Sam Judd}
34