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

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: Some fix 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 int getOfflineGroupHeaderResId() {
211 return R.layout.offline_download_header;
Theresa 2017/02/03 19:53:06 Since this is only called in one place I think it'
shaktisahu 2017/02/04 18:57:43 Done.
212 }
213
214 private static class OfflineGroupHeaderViewHolder extends RecyclerView.ViewH older {
215 private OfflineGroupHeaderView mView;
216
217 public OfflineGroupHeaderViewHolder(View view) {
218 super(view);
219 mView = (OfflineGroupHeaderView) view;
220 }
221
222 public OfflineGroupHeaderView getView() {
223 return mView;
224 }
225 }
226
227 @Override
228 public final RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, in t viewType) {
229 if (viewType == TYPE_SUGGESTED_OFFLINE_PAGES_HEADER) {
230 return new OfflineGroupHeaderViewHolder(
231 LayoutInflater.from(parent.getContext())
232 .inflate(getOfflineGroupHeaderResId(), parent, false ));
233 } else {
234 return super.onCreateViewHolder(parent, viewType);
235 }
236 }
237
238 @Override
239 public final void onBindViewHolder(RecyclerView.ViewHolder holder, int posit ion) {
240 if (holder instanceof OfflineGroupHeaderViewHolder) {
241 Pair<ItemGroup, Integer> pair = getGroupAt(position);
242 DownloadItemGroup group = (DownloadItemGroup) pair.first;
243 OfflineGroupHeaderView offlineView = ((OfflineGroupHeaderViewHolder) holder).getView();
244 offlineView.bindGroupAndAdapter(group, this);
245 offlineView.updateTitleText(group.getSuggestedOfflinePageCount());
246 } else {
247 super.onBindViewHolder(holder, position);
248 }
249 }
250
207 @Override 251 @Override
208 public ViewHolder createViewHolder(ViewGroup parent) { 252 public ViewHolder createViewHolder(ViewGroup parent) {
209 DownloadItemView v = (DownloadItemView) LayoutInflater.from(parent.getCo ntext()).inflate( 253 DownloadItemView v = (DownloadItemView) LayoutInflater.from(parent.getCo ntext()).inflate(
210 R.layout.download_item_view, parent, false); 254 R.layout.download_item_view, parent, false);
211 v.setSelectionDelegate(getSelectionDelegate()); 255 v.setSelectionDelegate(getSelectionDelegate());
212 mViews.add(v); 256 mViews.add(v);
213 return new DownloadHistoryItemViewHolder(v); 257 return new DownloadHistoryItemViewHolder(v);
214 } 258 }
215 259
216 @Override 260 @Override
217 public void bindViewHolderForTimedItem(ViewHolder current, TimedItem timedIt em) { 261 public void bindViewHolderForTimedItem(ViewHolder current, TimedItem timedIt em) {
218 final DownloadHistoryItemWrapper item = (DownloadHistoryItemWrapper) tim edItem; 262 final DownloadHistoryItemWrapper item = (DownloadHistoryItemWrapper) tim edItem;
219 263
220 DownloadHistoryItemViewHolder holder = (DownloadHistoryItemViewHolder) c urrent; 264 DownloadHistoryItemViewHolder holder = (DownloadHistoryItemViewHolder) c urrent;
221 holder.getItemView().displayItem(mBackendProvider, item); 265 holder.getItemView().displayItem(mBackendProvider, item);
222 } 266 }
223 267
268 public void expandSuggestedPagesHeader(DownloadItemGroup group) {
269 group.setIsSuggestedOfflinePagesSectionExpanded(true);
270 computeItemCount();
271 setGroupPositions();
272 notifyDataSetChanged();
273 }
274
275 public void collapseSuggestedPagesHeader(DownloadItemGroup group) {
276 group.setIsSuggestedOfflinePagesSectionExpanded(false);
277 computeItemCount();
278 setGroupPositions();
279 notifyDataSetChanged();
280 }
281
282 @Override
283 protected ItemGroup createGroup(long timeStamp) {
284 ItemGroup group = new DownloadItemGroup(timeStamp);
285 return group;
286 }
287
224 /** Called when a new DownloadItem has been created by the native DownloadMa nager. */ 288 /** Called when a new DownloadItem has been created by the native DownloadMa nager. */
225 public void onDownloadItemCreated(DownloadItem item) { 289 public void onDownloadItemCreated(DownloadItem item) {
226 boolean isOffTheRecord = item.getDownloadInfo().isOffTheRecord(); 290 boolean isOffTheRecord = item.getDownloadInfo().isOffTheRecord();
227 if (isOffTheRecord && !mShowOffTheRecord) return; 291 if (isOffTheRecord && !mShowOffTheRecord) return;
228 292
229 BackendItems list = getDownloadItemList(isOffTheRecord); 293 BackendItems list = getDownloadItemList(isOffTheRecord);
230 assert list.findItemIndex(item.getId()) == BackendItems.INVALID_INDEX; 294 assert list.findItemIndex(item.getId()) == BackendItems.INVALID_INDEX;
231 295
232 DownloadItemWrapper wrapper = createDownloadItemWrapper(item); 296 DownloadItemWrapper wrapper = createDownloadItemWrapper(item);
233 boolean wasAdded = addDownloadHistoryItemWrapper(wrapper); 297 boolean wasAdded = addDownloadHistoryItemWrapper(wrapper);
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 itemCounts[DownloadFilter.FILTER_VIDEO]); 540 itemCounts[DownloadFilter.FILTER_VIDEO]);
477 } 541 }
478 542
479 private void recordTotalDownloadCountHistogram() { 543 private void recordTotalDownloadCountHistogram() {
480 // The total count intentionally leaves out incognito downloads. This sh ould be revisited 544 // 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. 545 // if/when incognito downloads are persistently available in downloads h ome.
482 RecordHistogram.recordCountHistogram("Android.DownloadManager.InitialCou nt.Total", 546 RecordHistogram.recordCountHistogram("Android.DownloadManager.InitialCou nt.Total",
483 mRegularDownloadItems.size() + mOfflinePageItems.size()); 547 mRegularDownloadItems.size() + mOfflinePageItems.size());
484 } 548 }
485 } 549 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698