| OLD | NEW |
| 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.app.Activity; | 7 import android.app.Activity; |
| 8 import android.content.Context; | 8 import android.content.Context; |
| 9 import android.graphics.Bitmap; | 9 import android.graphics.Bitmap; |
| 10 import android.graphics.Rect; | 10 import android.graphics.Rect; |
| 11 import android.support.annotation.Nullable; |
| 11 import android.support.v7.widget.GridLayoutManager; | 12 import android.support.v7.widget.GridLayoutManager; |
| 12 import android.support.v7.widget.RecyclerView; | 13 import android.support.v7.widget.RecyclerView; |
| 13 import android.util.LruCache; | 14 import android.util.LruCache; |
| 14 import android.view.LayoutInflater; | 15 import android.view.LayoutInflater; |
| 15 import android.view.View; | 16 import android.view.View; |
| 16 import android.widget.Button; | 17 import android.widget.Button; |
| 17 import android.widget.RelativeLayout; | 18 import android.widget.RelativeLayout; |
| 18 | 19 |
| 20 import org.chromium.base.VisibleForTesting; |
| 19 import org.chromium.chrome.R; | 21 import org.chromium.chrome.R; |
| 20 import org.chromium.chrome.browser.widget.selection.SelectableListLayout; | 22 import org.chromium.chrome.browser.widget.selection.SelectableListLayout; |
| 21 import org.chromium.chrome.browser.widget.selection.SelectionDelegate; | 23 import org.chromium.chrome.browser.widget.selection.SelectionDelegate; |
| 22 import org.chromium.ui.PhotoPickerListener; | 24 import org.chromium.ui.PhotoPickerListener; |
| 23 | 25 |
| 24 import java.util.Arrays; | 26 import java.util.Arrays; |
| 25 import java.util.List; | 27 import java.util.List; |
| 26 | 28 |
| 27 /** | 29 /** |
| 28 * A class for keeping track of common data associated with showing photos in | 30 * A class for keeping track of common data associated with showing photos in |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 | 85 |
| 84 // The size of the bitmaps (equal length for width and height). | 86 // The size of the bitmaps (equal length for width and height). |
| 85 private int mImageSize; | 87 private int mImageSize; |
| 86 | 88 |
| 87 // A worker task for asynchronously enumerating files off the main thread. | 89 // A worker task for asynchronously enumerating files off the main thread. |
| 88 private FileEnumWorkerTask mWorkerTask; | 90 private FileEnumWorkerTask mWorkerTask; |
| 89 | 91 |
| 90 // Whether the connection to the service has been established. | 92 // Whether the connection to the service has been established. |
| 91 private boolean mServiceReady; | 93 private boolean mServiceReady; |
| 92 | 94 |
| 93 public PickerCategoryView(Context context) { | 95 public PickerCategoryView(Context context, @Nullable List<PickerBitmap> test
Files) { |
| 94 super(context); | 96 super(context); |
| 97 |
| 98 mPickerBitmaps = testFiles; |
| 95 postConstruction(context); | 99 postConstruction(context); |
| 96 } | 100 } |
| 97 | 101 |
| 98 /** | 102 /** |
| 99 * A helper function for initializing the PickerCategoryView. | 103 * A helper function for initializing the PickerCategoryView. |
| 100 * @param context The context to use. | 104 * @param context The context to use. |
| 101 */ | 105 */ |
| 102 @SuppressWarnings("unchecked") // mSelectableListLayout | 106 @SuppressWarnings("unchecked") // mSelectableListLayout |
| 103 private void postConstruction(Context context) { | 107 private void postConstruction(Context context) { |
| 104 mContext = context; | 108 mContext = context; |
| 105 | 109 |
| 106 mDecoderServiceHost = new DecoderServiceHost(this); | 110 mDecoderServiceHost = new DecoderServiceHost(this); |
| 107 mDecoderServiceHost.bind(mContext); | 111 mDecoderServiceHost.bind(mContext); |
| 108 | 112 |
| 109 enumerateBitmaps(); | 113 if (mPickerBitmaps == null) { |
| 114 enumerateBitmaps(); |
| 115 } |
| 110 | 116 |
| 111 mSelectionDelegate = new SelectionDelegate<PickerBitmap>(); | 117 mSelectionDelegate = new SelectionDelegate<PickerBitmap>(); |
| 112 | 118 |
| 113 View root = LayoutInflater.from(context).inflate(R.layout.photo_picker_d
ialog, this); | 119 View root = LayoutInflater.from(context).inflate(R.layout.photo_picker_d
ialog, this); |
| 114 mSelectableListLayout = | 120 mSelectableListLayout = |
| 115 (SelectableListLayout<PickerBitmap>) root.findViewById(R.id.sele
ctable_list); | 121 (SelectableListLayout<PickerBitmap>) root.findViewById(R.id.sele
ctable_list); |
| 116 | 122 |
| 117 mPickerAdapter = new PickerAdapter(this); | 123 mPickerAdapter = new PickerAdapter(this); |
| 118 mRecyclerView = mSelectableListLayout.initializeRecyclerView(mPickerAdap
ter); | 124 mRecyclerView = mSelectableListLayout.initializeRecyclerView(mPickerAdap
ter); |
| 119 PhotoPickerToolbar toolbar = (PhotoPickerToolbar) mSelectableListLayout.
initializeToolbar( | 125 PhotoPickerToolbar toolbar = (PhotoPickerToolbar) mSelectableListLayout.
initializeToolbar( |
| (...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 337 | 343 |
| 338 if (position < mSpanCount) { | 344 if (position < mSpanCount) { |
| 339 top = mSpacing; | 345 top = mSpacing; |
| 340 } | 346 } |
| 341 bottom = mSpacing; | 347 bottom = mSpacing; |
| 342 } | 348 } |
| 343 | 349 |
| 344 outRect.set(left, top, right, bottom); | 350 outRect.set(left, top, right, bottom); |
| 345 } | 351 } |
| 346 } | 352 } |
| 353 |
| 354 @VisibleForTesting |
| 355 public SelectionDelegate<PickerBitmap> getSelectionDelegateForTesting() { |
| 356 return mSelectionDelegate; |
| 357 } |
| 347 } | 358 } |
| OLD | NEW |