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

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

Issue 2703463002: [List UI Unification] Basic list unification for phones (Closed)
Patch Set: [List UI Unification] Basic list unification for phones 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.app.Activity; 7 import android.app.Activity;
8 import android.content.ComponentName; 8 import android.content.ComponentName;
9 import android.content.Intent; 9 import android.content.Intent;
10 import android.content.res.Resources; 10 import android.content.res.Resources;
11 import android.os.AsyncTask; 11 import android.os.AsyncTask;
12 import android.support.graphics.drawable.VectorDrawableCompat; 12 import android.support.graphics.drawable.VectorDrawableCompat;
13 import android.support.v4.view.GravityCompat; 13 import android.support.v4.view.GravityCompat;
14 import android.support.v4.widget.DrawerLayout; 14 import android.support.v4.widget.DrawerLayout;
15 import android.support.v4.widget.DrawerLayout.DrawerListener; 15 import android.support.v4.widget.DrawerLayout.DrawerListener;
16 import android.support.v7.widget.RecyclerView; 16 import android.support.v7.widget.RecyclerView;
17 import android.support.v7.widget.RecyclerView.ItemAnimator;
18 import android.support.v7.widget.Toolbar.OnMenuItemClickListener; 17 import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
19 import android.view.Gravity; 18 import android.view.Gravity;
20 import android.view.LayoutInflater; 19 import android.view.LayoutInflater;
21 import android.view.MenuItem; 20 import android.view.MenuItem;
22 import android.view.View; 21 import android.view.View;
23 import android.view.ViewGroup; 22 import android.view.ViewGroup;
24 import android.widget.ListView; 23 import android.widget.ListView;
25 24
26 import org.chromium.base.ContextUtils; 25 import org.chromium.base.ContextUtils;
27 import org.chromium.base.FileUtils; 26 import org.chromium.base.FileUtils;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
167 166
168 private final DownloadHistoryAdapter mHistoryAdapter; 167 private final DownloadHistoryAdapter mHistoryAdapter;
169 private final FilterAdapter mFilterAdapter; 168 private final FilterAdapter mFilterAdapter;
170 private final ObserverList<DownloadUiObserver> mObservers = new ObserverList <>(); 169 private final ObserverList<DownloadUiObserver> mObservers = new ObserverList <>();
171 private final BackendProvider mBackendProvider; 170 private final BackendProvider mBackendProvider;
172 171
173 private final SpaceDisplay mSpaceDisplay; 172 private final SpaceDisplay mSpaceDisplay;
174 private final ListView mFilterView; 173 private final ListView mFilterView;
175 private final UndoDeletionSnackbarController mUndoDeletionSnackbarController ; 174 private final UndoDeletionSnackbarController mUndoDeletionSnackbarController ;
176 private final RecyclerView mRecyclerView; 175 private final RecyclerView mRecyclerView;
177 private final ItemAnimator mItemAnimator;
178 176
179 private BasicNativePage mNativePage; 177 private BasicNativePage mNativePage;
180 private Activity mActivity; 178 private Activity mActivity;
181 private ViewGroup mMainView; 179 private ViewGroup mMainView;
182 private DownloadManagerToolbar mToolbar; 180 private DownloadManagerToolbar mToolbar;
183 private SelectableListLayout<DownloadHistoryItemWrapper> mSelectableListLayo ut; 181 private SelectableListLayout<DownloadHistoryItemWrapper> mSelectableListLayo ut;
184 182
185 @SuppressWarnings("unchecked") // mSelectableListLayout 183 @SuppressWarnings("unchecked") // mSelectableListLayout
186 public DownloadManagerUi( 184 public DownloadManagerUi(
187 Activity activity, boolean isOffTheRecord, ComponentName parentCompo nent) { 185 Activity activity, boolean isOffTheRecord, ComponentName parentCompo nent) {
188 mActivity = activity; 186 mActivity = activity;
189 mBackendProvider = 187 mBackendProvider =
190 sProviderForTests == null ? new DownloadBackendProvider() : sPro viderForTests; 188 sProviderForTests == null ? new DownloadBackendProvider() : sPro viderForTests;
191 189
192 mMainView = (ViewGroup) LayoutInflater.from(activity).inflate(R.layout.d ownload_main, null); 190 mMainView = (ViewGroup) LayoutInflater.from(activity).inflate(R.layout.d ownload_main, null);
193 191
194 DrawerLayout drawerLayout = null; 192 DrawerLayout drawerLayout = null;
195 if (!DeviceFormFactor.isLargeTablet(activity)) { 193 if (!DeviceFormFactor.isLargeTablet(activity)) {
196 drawerLayout = (DrawerLayout) mMainView; 194 drawerLayout = (DrawerLayout) mMainView;
197 addDrawerListener(drawerLayout); 195 addDrawerListener(drawerLayout);
198 } 196 }
199 197
200 mSelectableListLayout = (SelectableListLayout<DownloadHistoryItemWrapper >) 198 mSelectableListLayout = (SelectableListLayout<DownloadHistoryItemWrapper >)
201 mMainView.findViewById(R.id.selectable_list); 199 mMainView.findViewById(R.id.selectable_list);
202 200
203 mSelectableListLayout.initializeEmptyView( 201 mSelectableListLayout.initializeEmptyView(
204 VectorDrawableCompat.create(mActivity.getResources(), 202 VectorDrawableCompat.create(
205 R.drawable.downloads_big, mActivity.getTheme()), 203 mActivity.getResources(), R.drawable.downloads_big, mAct ivity.getTheme()),
206 R.string.download_manager_ui_empty); 204 R.string.download_manager_ui_empty, R.string.download_manager_no _results);
207 205
208 mHistoryAdapter = new DownloadHistoryAdapter(isOffTheRecord, parentCompo nent); 206 mHistoryAdapter = new DownloadHistoryAdapter(isOffTheRecord, parentCompo nent);
209 mRecyclerView = mSelectableListLayout.initializeRecyclerView(mHistoryAda pter); 207 mRecyclerView = mSelectableListLayout.initializeRecyclerView(mHistoryAda pter);
210 mItemAnimator = mRecyclerView.getItemAnimator();
211 208
212 // Prevent every progress update from causing a transition animation. 209 // Prevent every progress update from causing a transition animation.
213 mItemAnimator.setChangeDuration(0); 210 mRecyclerView.getItemAnimator().setChangeDuration(0);
214 211
215 mHistoryAdapter.initialize(mBackendProvider); 212 mHistoryAdapter.initialize(mBackendProvider);
216 addObserver(mHistoryAdapter); 213 addObserver(mHistoryAdapter);
217 214
218 mSpaceDisplay = new SpaceDisplay(mMainView, mHistoryAdapter); 215 mSpaceDisplay = new SpaceDisplay(mMainView, mHistoryAdapter);
219 mHistoryAdapter.registerAdapterDataObserver(mSpaceDisplay); 216 mHistoryAdapter.registerAdapterDataObserver(mSpaceDisplay);
220 mSpaceDisplay.onChanged(); 217 mSpaceDisplay.onChanged();
221 218
222 mFilterAdapter = new FilterAdapter(); 219 mFilterAdapter = new FilterAdapter();
223 mFilterAdapter.initialize(this); 220 mFilterAdapter.initialize(this);
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
303 if (item.getItemId() == R.id.close_menu_id && !DeviceFormFactor.isTablet (mActivity)) { 300 if (item.getItemId() == R.id.close_menu_id && !DeviceFormFactor.isTablet (mActivity)) {
304 mActivity.finish(); 301 mActivity.finish();
305 return true; 302 return true;
306 } else if (item.getItemId() == R.id.selection_mode_delete_menu_id) { 303 } else if (item.getItemId() == R.id.selection_mode_delete_menu_id) {
307 deleteSelectedItems(); 304 deleteSelectedItems();
308 return true; 305 return true;
309 } else if (item.getItemId() == R.id.selection_mode_share_menu_id) { 306 } else if (item.getItemId() == R.id.selection_mode_share_menu_id) {
310 shareSelectedItems(); 307 shareSelectedItems();
311 return true; 308 return true;
312 } else if (item.getItemId() == R.id.search_menu_id) { 309 } else if (item.getItemId() == R.id.search_menu_id) {
313 mRecyclerView.setItemAnimator(null); 310 mSelectableListLayout.onStartSearch();
314 mToolbar.showSearchView(); 311 mToolbar.showSearchView();
315 mSelectableListLayout.setEmptyViewText(R.string.download_manager_no_ results);
316 RecordUserAction.record("Android.DownloadManager.Search"); 312 RecordUserAction.record("Android.DownloadManager.Search");
317 return true; 313 return true;
318 } 314 }
319 return false; 315 return false;
320 } 316 }
321 317
322 /** 318 /**
323 * @see DrawerLayout#openDrawer(int) 319 * @see DrawerLayout#openDrawer(int)
324 */ 320 */
325 @VisibleForTesting 321 @VisibleForTesting
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
384 DownloadFilter.FILTER_BOUNDARY); 380 DownloadFilter.FILTER_BOUNDARY);
385 } 381 }
386 382
387 @Override 383 @Override
388 public void onSearchTextChanged(String query) { 384 public void onSearchTextChanged(String query) {
389 mHistoryAdapter.search(query); 385 mHistoryAdapter.search(query);
390 } 386 }
391 387
392 @Override 388 @Override
393 public void onEndSearch() { 389 public void onEndSearch() {
394 mSelectableListLayout.setEmptyViewText(R.string.download_manager_ui_empt y); 390 mSelectableListLayout.onEndSearch();
395 mHistoryAdapter.onEndSearch(); 391 mHistoryAdapter.onEndSearch();
396 mRecyclerView.setItemAnimator(mItemAnimator);
397 } 392 }
398 393
399 private void shareSelectedItems() { 394 private void shareSelectedItems() {
400 List<DownloadHistoryItemWrapper> selectedItems = 395 List<DownloadHistoryItemWrapper> selectedItems =
401 mBackendProvider.getSelectionDelegate().getSelectedItems(); 396 mBackendProvider.getSelectionDelegate().getSelectedItems();
402 assert selectedItems.size() > 0; 397 assert selectedItems.size() > 0;
403 398
404 mActivity.startActivity(Intent.createChooser(createShareIntent(), 399 mActivity.startActivity(Intent.createChooser(createShareIntent(),
405 mActivity.getString(R.string.share_link_chooser_title))); 400 mActivity.getString(R.string.share_link_chooser_title)));
406 401
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
514 public SpaceDisplay getSpaceDisplayForTests() { 509 public SpaceDisplay getSpaceDisplayForTests() {
515 return mSpaceDisplay; 510 return mSpaceDisplay;
516 } 511 }
517 512
518 /** Sets a BackendProvider that is used in place of a real one. */ 513 /** Sets a BackendProvider that is used in place of a real one. */
519 @VisibleForTesting 514 @VisibleForTesting
520 public static void setProviderForTests(BackendProvider provider) { 515 public static void setProviderForTests(BackendProvider provider) {
521 sProviderForTests = provider; 516 sProviderForTests = provider;
522 } 517 }
523 } 518 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698