Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerBitmapViewHolder.java

Issue 2915863002: Photo Picker dialog: Add UMA statistics. (Closed)
Patch Set: Address feedback from Mark Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.photo_picker; 5 package org.chromium.chrome.browser.photo_picker;
6 6
7 import android.content.res.Resources; 7 import android.content.res.Resources;
8 import android.graphics.Bitmap; 8 import android.graphics.Bitmap;
9 import android.os.AsyncTask; 9 import android.os.AsyncTask;
10 import android.os.SystemClock;
10 import android.support.v7.widget.RecyclerView.ViewHolder; 11 import android.support.v7.widget.RecyclerView.ViewHolder;
11 import android.text.TextUtils; 12 import android.text.TextUtils;
12 13
14 import org.chromium.base.metrics.RecordHistogram;
13 import org.chromium.chrome.R; 15 import org.chromium.chrome.R;
14 16
15 import java.util.List; 17 import java.util.List;
18 import java.util.concurrent.TimeUnit;
16 19
17 /** 20 /**
18 * Holds on to a {@link PickerBitmapView} that displays information about a pick er bitmap. 21 * Holds on to a {@link PickerBitmapView} that displays information about a pick er bitmap.
19 */ 22 */
20 public class PickerBitmapViewHolder 23 public class PickerBitmapViewHolder
21 extends ViewHolder implements DecoderServiceHost.ImageDecodedCallback { 24 extends ViewHolder implements DecoderServiceHost.ImageDecodedCallback {
22 // Our parent category. 25 // Our parent category.
23 private PickerCategoryView mCategoryView; 26 private PickerCategoryView mCategoryView;
24 27
25 // The bitmap view we are holding on to. 28 // The bitmap view we are holding on to.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 65
63 if (mItemView.setThumbnailBitmap(bitmap)) { 66 if (mItemView.setThumbnailBitmap(bitmap)) {
64 mItemView.fadeInThumbnail(); 67 mItemView.fadeInThumbnail();
65 } 68 }
66 } 69 }
67 70
68 /** 71 /**
69 * Display a single item from |position| in the PickerCategoryView. 72 * Display a single item from |position| in the PickerCategoryView.
70 * @param categoryView The PickerCategoryView to use to fetch the image. 73 * @param categoryView The PickerCategoryView to use to fetch the image.
71 * @param position The position of the item to fetch. 74 * @param position The position of the item to fetch.
75 * @return The decoding action required to display the item.
72 */ 76 */
73 public void displayItem(PickerCategoryView categoryView, int position) { 77 public @PickerAdapter.DecodeActions int displayItem(
78 PickerCategoryView categoryView, int position) {
74 mCategoryView = categoryView; 79 mCategoryView = categoryView;
75 80
76 List<PickerBitmap> pickerBitmaps = mCategoryView.getPickerBitmaps(); 81 List<PickerBitmap> pickerBitmaps = mCategoryView.getPickerBitmaps();
77 mBitmapDetails = pickerBitmaps.get(position); 82 mBitmapDetails = pickerBitmaps.get(position);
78 83
79 if (mBitmapDetails.type() == PickerBitmap.CAMERA 84 if (mBitmapDetails.type() == PickerBitmap.CAMERA
80 || mBitmapDetails.type() == PickerBitmap.GALLERY) { 85 || mBitmapDetails.type() == PickerBitmap.GALLERY) {
81 mItemView.initialize(mBitmapDetails, null, false); 86 mItemView.initialize(mBitmapDetails, null, false);
82 return; 87 return PickerAdapter.NO_ACTION;
83 } 88 }
84 89
85 String filePath = mBitmapDetails.getFilePath(); 90 String filePath = mBitmapDetails.getFilePath();
86 Bitmap original = mCategoryView.getHighResBitmaps().get(filePath); 91 Bitmap original = mCategoryView.getHighResBitmaps().get(filePath);
87 if (original != null) { 92 if (original != null) {
88 mItemView.initialize(mBitmapDetails, original, false); 93 mItemView.initialize(mBitmapDetails, original, false);
89 return; 94 return PickerAdapter.FROM_CACHE;
90 } 95 }
91 96
92 int size = mCategoryView.getImageSize(); 97 int size = mCategoryView.getImageSize();
93 Bitmap placeholder = mCategoryView.getLowResBitmaps().get(filePath); 98 Bitmap placeholder = mCategoryView.getLowResBitmaps().get(filePath);
94 if (placeholder != null) { 99 if (placeholder != null) {
95 // For performance stats see http://crbug.com/719919. 100 // For performance stats see http://crbug.com/719919.
101 long begin = SystemClock.elapsedRealtime();
96 placeholder = BitmapUtils.scale(placeholder, size, false); 102 placeholder = BitmapUtils.scale(placeholder, size, false);
103 long scaleTime = SystemClock.elapsedRealtime() - begin;
104 RecordHistogram.recordTimesHistogram(
105 "Android.PhotoPicker.UpscaleLowResBitmap", scaleTime, TimeUn it.MILLISECONDS);
106
97 mItemView.initialize(mBitmapDetails, placeholder, true); 107 mItemView.initialize(mBitmapDetails, placeholder, true);
98 } else { 108 } else {
99 mItemView.initialize(mBitmapDetails, null, true); 109 mItemView.initialize(mBitmapDetails, null, true);
100 } 110 }
101 111
102 mCategoryView.getDecoderServiceHost().decodeImage(filePath, size, this); 112 mCategoryView.getDecoderServiceHost().decodeImage(filePath, size, this);
113 return PickerAdapter.DECODE;
103 } 114 }
104 115
105 /** 116 /**
106 * Returns the file path of the current request. 117 * Returns the file path of the current request.
107 */ 118 */
108 public String getFilePath() { 119 public String getFilePath() {
109 return mBitmapDetails == null ? null : mBitmapDetails.getFilePath(); 120 return mBitmapDetails == null ? null : mBitmapDetails.getFilePath();
110 } 121 }
111 } 122 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698