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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/download/ui/DownloadHistoryAdapter.java

Issue 2670083002: [Download Home] Displaying offline page bundle per day (Closed)
Patch Set: Modified removeItem Created 3 years, 10 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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.download.ui; 5 package org.chromium.chrome.browser.download.ui;
6 6
7 import android.content.ComponentName; 7 import android.content.ComponentName;
8 import android.support.v7.widget.RecyclerView;
8 import android.support.v7.widget.RecyclerView.ViewHolder; 9 import android.support.v7.widget.RecyclerView.ViewHolder;
9 import android.text.TextUtils; 10 import android.text.TextUtils;
11 import android.util.Pair;
10 import android.view.LayoutInflater; 12 import android.view.LayoutInflater;
13 import android.view.View;
11 import android.view.ViewGroup; 14 import android.view.ViewGroup;
12 15
13 import org.chromium.base.ObserverList; 16 import org.chromium.base.ObserverList;
14 import org.chromium.base.metrics.RecordHistogram; 17 import org.chromium.base.metrics.RecordHistogram;
15 import org.chromium.base.metrics.RecordUserAction; 18 import org.chromium.base.metrics.RecordUserAction;
16 import org.chromium.chrome.R; 19 import org.chromium.chrome.R;
17 import org.chromium.chrome.browser.download.DownloadItem; 20 import org.chromium.chrome.browser.download.DownloadItem;
18 import org.chromium.chrome.browser.download.DownloadSharedPreferenceHelper; 21 import org.chromium.chrome.browser.download.DownloadSharedPreferenceHelper;
19 import org.chromium.chrome.browser.download.ui.BackendProvider.DownloadDelegate; 22 import org.chromium.chrome.browser.download.ui.BackendProvider.DownloadDelegate;
20 import org.chromium.chrome.browser.download.ui.BackendProvider.OfflinePageDelega te; 23 import org.chromium.chrome.browser.download.ui.BackendProvider.OfflinePageDelega te;
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 totalSize += mIncognitoDownloadItems.getTotalBytes(); 200 totalSize += mIncognitoDownloadItems.getTotalBytes();
198 totalSize += mOfflinePageItems.getTotalBytes(); 201 totalSize += mOfflinePageItems.getTotalBytes();
199 return totalSize; 202 return totalSize;
200 } 203 }
201 204
202 @Override 205 @Override
203 protected int getTimedItemViewResId() { 206 protected int getTimedItemViewResId() {
204 return R.layout.date_view; 207 return R.layout.date_view;
205 } 208 }
206 209
210 private static class OfflineGroupHeaderViewHolder extends RecyclerView.ViewH older {
211 private OfflineGroupHeaderView mView;
212
213 public OfflineGroupHeaderViewHolder(View view) {
214 super(view);
215 mView = (OfflineGroupHeaderView) view;
216 }
217
218 public OfflineGroupHeaderView getView() {
219 return mView;
220 }
221 }
222
223 @Override
224 protected ViewHolder createSubsectionHeader(ViewGroup parent) {
225 OfflineGroupHeaderView offlineHeader =
226 (OfflineGroupHeaderView) LayoutInflater.from(parent.getContext() )
227 .inflate(R.layout.offline_download_header, parent, false );
228 offlineHeader.setAdapter(this);
229 return new OfflineGroupHeaderViewHolder(offlineHeader);
230 }
231
232 @Override
233 public final void onBindViewHolder(RecyclerView.ViewHolder holder, int posit ion) {
234 if (holder instanceof OfflineGroupHeaderViewHolder) {
235 Pair<ItemGroup, Integer> pair = getGroupAt(position);
236 DownloadItemGroup group = (DownloadItemGroup) pair.first;
237 OfflineGroupHeaderView offlineHeader =
238 ((OfflineGroupHeaderViewHolder) holder).getView();
239 offlineHeader.setGroup(group);
240 } else {
241 super.onBindViewHolder(holder, position);
242 }
243 }
244
207 @Override 245 @Override
208 public ViewHolder createViewHolder(ViewGroup parent) { 246 public ViewHolder createViewHolder(ViewGroup parent) {
209 DownloadItemView v = (DownloadItemView) LayoutInflater.from(parent.getCo ntext()).inflate( 247 DownloadItemView v = (DownloadItemView) LayoutInflater.from(parent.getCo ntext()).inflate(
210 R.layout.download_item_view, parent, false); 248 R.layout.download_item_view, parent, false);
211 v.setSelectionDelegate(getSelectionDelegate()); 249 v.setSelectionDelegate(getSelectionDelegate());
212 mViews.add(v); 250 mViews.add(v);
213 return new DownloadHistoryItemViewHolder(v); 251 return new DownloadHistoryItemViewHolder(v);
214 } 252 }
215 253
216 @Override 254 @Override
217 public void bindViewHolderForTimedItem(ViewHolder current, TimedItem timedIt em) { 255 public void bindViewHolderForTimedItem(ViewHolder current, TimedItem timedIt em) {
218 final DownloadHistoryItemWrapper item = (DownloadHistoryItemWrapper) tim edItem; 256 final DownloadHistoryItemWrapper item = (DownloadHistoryItemWrapper) tim edItem;
219 257
220 DownloadHistoryItemViewHolder holder = (DownloadHistoryItemViewHolder) c urrent; 258 DownloadHistoryItemViewHolder holder = (DownloadHistoryItemViewHolder) c urrent;
221 holder.getItemView().displayItem(mBackendProvider, item); 259 holder.getItemView().displayItem(mBackendProvider, item);
222 } 260 }
223 261
262 /**
263 * Expands or collapses the suggested pages section header for a group.
264 * @param group The item group associated.
265 * @param expanded Whether the group should be shown as expanded or collapse d.
266 */
267 public void setSuggestedPagesHeaderState(DownloadItemGroup group, boolean ex panded) {
268 group.setIsSuggestedOfflinePagesSectionExpanded(expanded);
269 computeItemCount();
270 setGroupPositions();
271 notifyDataSetChanged();
272 }
273
274 @Override
275 protected ItemGroup createGroup(long timeStamp) {
276 return new DownloadItemGroup(timeStamp);
277 }
278
224 /** Called when a new DownloadItem has been created by the native DownloadMa nager. */ 279 /** Called when a new DownloadItem has been created by the native DownloadMa nager. */
225 public void onDownloadItemCreated(DownloadItem item) { 280 public void onDownloadItemCreated(DownloadItem item) {
226 boolean isOffTheRecord = item.getDownloadInfo().isOffTheRecord(); 281 boolean isOffTheRecord = item.getDownloadInfo().isOffTheRecord();
227 if (isOffTheRecord && !mShowOffTheRecord) return; 282 if (isOffTheRecord && !mShowOffTheRecord) return;
228 283
229 BackendItems list = getDownloadItemList(isOffTheRecord); 284 BackendItems list = getDownloadItemList(isOffTheRecord);
230 assert list.findItemIndex(item.getId()) == BackendItems.INVALID_INDEX; 285 assert list.findItemIndex(item.getId()) == BackendItems.INVALID_INDEX;
231 286
232 DownloadItemWrapper wrapper = createDownloadItemWrapper(item); 287 DownloadItemWrapper wrapper = createDownloadItemWrapper(item);
233 boolean wasAdded = addDownloadHistoryItemWrapper(wrapper); 288 boolean wasAdded = addDownloadHistoryItemWrapper(wrapper);
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 itemCounts[DownloadFilter.FILTER_VIDEO]); 531 itemCounts[DownloadFilter.FILTER_VIDEO]);
477 } 532 }
478 533
479 private void recordTotalDownloadCountHistogram() { 534 private void recordTotalDownloadCountHistogram() {
480 // The total count intentionally leaves out incognito downloads. This sh ould be revisited 535 // The total count intentionally leaves out incognito downloads. This sh ould be revisited
481 // if/when incognito downloads are persistently available in downloads h ome. 536 // if/when incognito downloads are persistently available in downloads h ome.
482 RecordHistogram.recordCountHistogram("Android.DownloadManager.InitialCou nt.Total", 537 RecordHistogram.recordCountHistogram("Android.DownloadManager.InitialCou nt.Total",
483 mRegularDownloadItems.size() + mOfflinePageItems.size()); 538 mRegularDownloadItems.size() + mOfflinePageItems.size());
484 } 539 }
485 } 540 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698