Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapViewHolder.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapViewHolder.java |
| index 70d18a837fd8316262c9c3918ccda1a786811a35..ad2d23235185cb46e1b793e91f533fb33886f077 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapViewHolder.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapViewHolder.java |
| @@ -45,6 +45,16 @@ public class PickerBitmapViewHolder extends ViewHolder { |
| return; |
| } |
| + if (mCategoryView.getHighResBitmaps().get(filePath) == null) { |
| + mCategoryView.getHighResBitmaps().put(filePath, bitmap); |
|
Michael van Ouwerkerk
2017/04/27 17:07:34
The documentation for this param says it might be
Finnur
2017/05/04 16:05:15
That changed with the latest sync. Decoding will n
|
| + } |
| + |
| + if (mCategoryView.getLowResBitmaps().get(filePath) == null) { |
| + // Scaling the image down takes between 0-1 ms on average (Nexus 6 phone debug build). |
| + Bitmap lowres = BitmapUtils.scale(bitmap, 40, false); |
|
Michael van Ouwerkerk
2017/04/27 17:07:34
What's 40? Px? Dp? Maybe extract a documented cons
Finnur
2017/05/04 16:05:15
Done.
|
| + mCategoryView.getLowResBitmaps().put(filePath, lowres); |
| + } |
| + |
| if (!TextUtils.equals(mBitmapDetails.getFilePath(), filePath)) { |
| return; |
| } |
| @@ -69,10 +79,24 @@ public class PickerBitmapViewHolder extends ViewHolder { |
| return; |
| } |
| - // TODO(finnur): Use cached image, if available. |
| + String filePath = mBitmapDetails.getFilePath(); |
| + Bitmap original = mCategoryView.getHighResBitmaps().get(filePath); |
| + if (original != null) { |
| + mItemView.initialize(mBitmapDetails, original, false); |
| + return; |
| + } |
| + |
| + int size = mCategoryView.getImageSize(); |
| + Bitmap placeholder = mCategoryView.getLowResBitmaps().get(filePath); |
| + if (placeholder != null) { |
| + // Scaling the image up takes between 3-4 ms on average (Nexus 6 phone debug build). |
| + placeholder = BitmapUtils.scale(placeholder, size, false); |
| + mItemView.initialize(mBitmapDetails, placeholder, true); |
| + } else { |
| + mItemView.initialize(mBitmapDetails, null, true); |
| + } |
| // TODO(finnur): Use decoder instead. |
| - int size = mCategoryView.getImageSize(); |
| imageDecodedCallback(mBitmapDetails.getFilePath(), createPlaceholderBitmap(size, size)); |
| } |