| Index: chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerAdapter.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerAdapter.java
|
| index c2c43e705d8b377054c2cb3ec45d15f843fd9643..c1548b15a0aa71b44a8ea18c195ebbb08f5f3a76 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerAdapter.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/photo_picker/PickerAdapter.java
|
| @@ -4,6 +4,7 @@
|
|
|
| package org.chromium.chrome.browser.photo_picker;
|
|
|
| +import android.support.annotation.IntDef;
|
| import android.support.v7.widget.RecyclerView.Adapter;
|
| import android.support.v7.widget.RecyclerView.ViewHolder;
|
| import android.view.LayoutInflater;
|
| @@ -12,13 +13,32 @@ import android.view.ViewGroup;
|
|
|
| import org.chromium.chrome.R;
|
|
|
| +import java.lang.annotation.Retention;
|
| +import java.lang.annotation.RetentionPolicy;
|
| +
|
| /**
|
| * A data adapter for the Photo Picker.
|
| */
|
| public class PickerAdapter extends Adapter<ViewHolder> {
|
| + // The possible types of actions required during decoding.
|
| + @IntDef({NO_ACTION, FROM_CACHE, DECODE})
|
| + @Retention(RetentionPolicy.SOURCE)
|
| + public @interface DecodeActions {}
|
| + public static final int NO_ACTION = 0; // Gallery/Camera tile: No action.
|
| + public static final int FROM_CACHE = 1; // Image already decoded.
|
| + public static final int DECODE = 2; // Image needed to be decoded.
|
| +
|
| // The category view to use to show the images.
|
| private PickerCategoryView mCategoryView;
|
|
|
| + // How many times the (high-res) cache was useful.
|
| + @DecodeActions
|
| + private int mCacheHits;
|
| +
|
| + // How many times a decoding was requested.
|
| + @DecodeActions
|
| + private int mDecodeRequests;
|
| +
|
| /**
|
| * The PickerAdapter constructor.
|
| * @param categoryView The category view to use to show the images.
|
| @@ -42,7 +62,12 @@ public class PickerAdapter extends Adapter<ViewHolder> {
|
| public void onBindViewHolder(ViewHolder holder, int position) {
|
| if (holder instanceof PickerBitmapViewHolder) {
|
| PickerBitmapViewHolder myHolder = (PickerBitmapViewHolder) holder;
|
| - myHolder.displayItem(mCategoryView, position);
|
| + int result = myHolder.displayItem(mCategoryView, position);
|
| + if (result == FROM_CACHE) {
|
| + mCacheHits++;
|
| + } else if (result == DECODE) {
|
| + mDecodeRequests++;
|
| + }
|
| }
|
| }
|
|
|
| @@ -50,4 +75,14 @@ public class PickerAdapter extends Adapter<ViewHolder> {
|
| public int getItemCount() {
|
| return mCategoryView.getPickerBitmaps().size();
|
| }
|
| +
|
| + /** Returns the number of times the cache supplied a bitmap. */
|
| + public int getCacheHitCount() {
|
| + return mCacheHits;
|
| + }
|
| +
|
| + /** Returns the number of decode requests (cache-misses). */
|
| + public int getDecodeRequestCount() {
|
| + return mDecodeRequests;
|
| + }
|
| }
|
|
|