Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java |
| index c4df1df71446dc6dbd32174b29ef20ea916cb8ed..82c211ca6e447a42d25d0049dba16fd978de312b 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java |
| @@ -5,6 +5,7 @@ |
| package org.chromium.chrome.browser.download.ui; |
| import android.content.ComponentName; |
| +import android.support.annotation.Nullable; |
| import android.support.v7.widget.RecyclerView.ViewHolder; |
| import android.text.TextUtils; |
| import android.view.LayoutInflater; |
| @@ -25,6 +26,9 @@ import org.chromium.chrome.browser.download.ui.DownloadManagerUi.DownloadUiObser |
| import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageDownloadBridge; |
| import org.chromium.chrome.browser.offlinepages.downloads.OfflinePageDownloadItem; |
| import org.chromium.chrome.browser.widget.DateDividedAdapter; |
| +import org.chromium.chrome.browser.widget.displaystyle.MarginResizer; |
| +import org.chromium.chrome.browser.widget.displaystyle.UiConfig; |
| +import org.chromium.chrome.browser.widget.selection.SelectableListLayout; |
| import org.chromium.chrome.browser.widget.selection.SelectionDelegate; |
| import org.chromium.components.offline_items_collection.ContentId; |
| import org.chromium.content_public.browser.DownloadState; |
| @@ -152,11 +156,15 @@ public class DownloadHistoryAdapter extends DateDividedAdapter |
| private final List<DownloadItemView> mViews = new ArrayList<>(); |
| private BackendProvider mBackendProvider; |
| + @Nullable // This may be null during tests. |
| + private UiConfig mUiConfig; |
|
gone
2017/05/02 17:49:48
yank these two lines out into their own block? th
Theresa
2017/05/02 18:15:25
Done.
|
| private OfflinePageDownloadBridge.Observer mOfflinePageObserver; |
| private int mFilter = DownloadFilter.FILTER_ALL; |
| private String mSearchQuery = EMPTY_QUERY; |
| private SpaceDisplay mSpaceDisplay; |
| + private boolean mIsSearching; |
| + |
| DownloadHistoryAdapter(boolean showOffTheRecord, ComponentName parentComponent) { |
| mShowOffTheRecord = showOffTheRecord; |
| mParentComponent = parentComponent; |
| @@ -166,8 +174,14 @@ public class DownloadHistoryAdapter extends DateDividedAdapter |
| setHasStableIds(true); |
| } |
| - public void initialize(BackendProvider provider) { |
| + /** |
| + * Initializes the adapter. |
| + * @param provider The {@link BackendProvider} that provides classes needed by the adapter. |
| + * @param uiConfig The UiConfig used to observe display style changes. |
| + */ |
| + public void initialize(BackendProvider provider, @Nullable UiConfig uiConfig) { |
| mBackendProvider = provider; |
| + mUiConfig = uiConfig; |
| DownloadItemSelectionDelegate selectionDelegate = |
| (DownloadItemSelectionDelegate) mBackendProvider.getSelectionDelegate(); |
| @@ -296,6 +310,7 @@ public class DownloadHistoryAdapter extends DateDividedAdapter |
| .inflate(R.layout.offline_download_header, parent, false); |
| offlineHeader.setAdapter(this); |
| offlineHeader.setSelectionDelegate((DownloadItemSelectionDelegate) getSelectionDelegate()); |
| + if (mUiConfig != null) offlineHeader.setHasWideDisplayStyle(mUiConfig); |
| return new SubsectionHeaderViewHolder(offlineHeader); |
| } |
| @@ -308,10 +323,23 @@ public class DownloadHistoryAdapter extends DateDividedAdapter |
| } |
| @Override |
| + protected DateViewHolder createDateViewHolder(ViewGroup parent) { |
| + DateViewHolder viewHolder = super.createDateViewHolder(parent); |
| + if (mUiConfig != null) { |
| + MarginResizer.createWithViewAdapter(viewHolder.itemView, mUiConfig, |
| + parent.getResources().getDimensionPixelSize(R.dimen.list_item_default_margin), |
| + SelectableListLayout.getDefaultListItemLateralShadowSizePx( |
| + parent.getResources())); |
| + } |
| + return viewHolder; |
| + } |
| + |
| + @Override |
| public ViewHolder createViewHolder(ViewGroup parent) { |
| DownloadItemView v = (DownloadItemView) LayoutInflater.from(parent.getContext()).inflate( |
| R.layout.download_item_view, parent, false); |
| v.setSelectionDelegate(getSelectionDelegate()); |
| + if (mUiConfig != null) v.setHasWideDisplayStyle(mUiConfig); |
| mViews.add(v); |
| return new DownloadHistoryItemViewHolder(v); |
| } |
| @@ -334,6 +362,13 @@ public class DownloadHistoryAdapter extends DateDividedAdapter |
| if (mSpaceDisplay == null) { |
| mSpaceDisplay = new SpaceDisplay(parent, this); |
| registerAdapterDataObserver(mSpaceDisplay); |
| + if (mUiConfig != null) { |
| + MarginResizer.createWithViewAdapter(mSpaceDisplay.getView(), mUiConfig, |
| + parent.getResources().getDimensionPixelSize( |
| + R.dimen.list_item_default_margin), |
| + SelectableListLayout.getDefaultListItemLateralShadowSizePx( |
| + parent.getResources())); |
| + } |
| } |
| mSpaceDisplay.onChanged(); |
| @@ -482,6 +517,7 @@ public class DownloadHistoryAdapter extends DateDividedAdapter |
| * @param query The text to search for. |
| */ |
| void search(String query) { |
| + mIsSearching = true; |
| mSearchQuery = query; |
| filter(mFilter); |
| } |
| @@ -490,6 +526,7 @@ public class DownloadHistoryAdapter extends DateDividedAdapter |
| * Called when a search is ended. |
| */ |
| void onEndSearch() { |
| + mIsSearching = false; |
| mSearchQuery = EMPTY_QUERY; |
| filter(mFilter); |
| } |
| @@ -523,7 +560,7 @@ public class DownloadHistoryAdapter extends DateDividedAdapter |
| } |
| clear(false); |
| - if (!filteredTimedItems.isEmpty()) addHeader(); |
| + if (!filteredTimedItems.isEmpty() && !mIsSearching) addHeader(); |
| loadItems(filteredTimedItems); |
| } |