Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java |
| index 06924a277da047a7ee5dc556b7820e8af09806c0..088a1b51d2a1f42ceea968cdfdc6129559644e94 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/download/ui/FilterAdapter.java |
| @@ -4,8 +4,7 @@ |
| package org.chromium.chrome.browser.download.ui; |
| -import android.content.res.Resources; |
| -import android.graphics.drawable.Drawable; |
| +import android.support.annotation.LayoutRes; |
| import android.view.LayoutInflater; |
| import android.view.View; |
| import android.view.ViewGroup; |
| @@ -13,18 +12,13 @@ import android.widget.AdapterView; |
| import android.widget.BaseAdapter; |
| import android.widget.TextView; |
| -import org.chromium.base.ApiCompatibilityUtils; |
| import org.chromium.chrome.R; |
| import org.chromium.chrome.browser.download.ui.DownloadManagerUi.DownloadUiObserver; |
| -import org.chromium.chrome.browser.widget.TintedDrawable; |
| -/** An adapter that allows selecting an item from a list displayed in the drawer. */ |
| -class FilterAdapter extends BaseAdapter |
| - implements AdapterView.OnItemClickListener, DownloadUiObserver { |
| - |
| - private int mSelectedBackgroundColor; |
| +/** An adapter that allows selecting an item from a dropdown spinner. */ |
| +class FilterAdapter |
| + extends BaseAdapter implements AdapterView.OnItemSelectedListener, DownloadUiObserver { |
| private DownloadManagerUi mManagerUi; |
| - private int mSelectedIndex; |
| @Override |
| public int getCount() { |
| @@ -42,62 +36,53 @@ class FilterAdapter extends BaseAdapter |
| } |
| @Override |
| + public View getDropDownView(int position, View convertView, ViewGroup parent) { |
| + TextView labelView = |
| + getTextViewFromResource(convertView, R.layout.download_manager_spinner_drop_down); |
| + labelView.setText(DownloadFilter.getStringIdForFilter(position)); |
| + return labelView; |
| + } |
| + |
| + @Override |
| public View getView(int position, View convertView, ViewGroup parent) { |
| - Resources resources = mManagerUi.getActivity().getResources(); |
| + TextView labelView = |
| + getTextViewFromResource(convertView, R.layout.download_manager_spinner); |
| + labelView.setText(position == 0 ? R.string.menu_downloads |
| + : DownloadFilter.getStringIdForFilter(position)); |
| + return labelView; |
| + } |
| + private TextView getTextViewFromResource(View convertView, @LayoutRes int resId) { |
| TextView labelView = null; |
| if (convertView instanceof TextView) { |
| labelView = (TextView) convertView; |
| } else { |
| - labelView = (TextView) LayoutInflater.from(mManagerUi.getActivity()).inflate( |
| - R.layout.download_manager_ui_drawer_filter, null); |
| + labelView = |
| + (TextView) LayoutInflater.from(mManagerUi.getActivity()).inflate(resId, null); |
| } |
| - int iconId = DownloadFilter.getDrawableForFilter(position); |
| - labelView.setText(DownloadFilter.getStringIdForFilter(position)); |
| - |
| - Drawable iconDrawable = null; |
| - if (position == mSelectedIndex) { |
| - // Highlight the selected item by changing the foreground and background colors. |
| - labelView.setBackgroundColor(mSelectedBackgroundColor); |
| - iconDrawable = TintedDrawable.constructTintedDrawable( |
| - resources, iconId, R.color.light_active_color); |
| - labelView.setTextColor( |
| - ApiCompatibilityUtils.getColor(resources, R.color.light_active_color)); |
| - } else { |
| - // Draw the item normally. |
| - labelView.setBackground(null); |
| - iconDrawable = TintedDrawable.constructTintedDrawable( |
| - resources, iconId, R.color.descriptive_text_color); |
| - labelView.setTextColor( |
| - ApiCompatibilityUtils.getColor(resources, R.color.default_text_color)); |
| - } |
| - |
| - labelView.setCompoundDrawablesWithIntrinsicBounds(iconDrawable, null, null, null); |
| return labelView; |
| } |
| @Override |
| - public void onItemClick(AdapterView<?> parent, View view, int position, long id) { |
| + public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { |
| mManagerUi.onFilterChanged(position); |
| } |
| public void initialize(DownloadManagerUi manager) { |
| mManagerUi = manager; |
| - mSelectedBackgroundColor = ApiCompatibilityUtils |
| - .getColor(mManagerUi.getActivity().getResources(), R.color.default_primary_color); |
| } |
| @Override |
| public void onFilterChanged(int filter) { |
| - if (mSelectedIndex == filter) return; |
|
Theresa
2017/04/24 20:48:17
Is this early return not needed because the spinne
shaktisahu
2017/04/24 22:07:09
Done.
Removed.
|
| - mSelectedIndex = filter; |
| notifyDataSetChanged(); |
|
Theresa
2017/04/24 20:48:17
I think we can drop notifyDataSetChanged() since D
shaktisahu
2017/04/24 22:07:09
Done. That seems correct. Thanks!
|
| - mManagerUi.closeDrawer(); |
| } |
| @Override |
| public void onManagerDestroyed() { |
| mManagerUi = null; |
| } |
| + |
| + @Override |
| + public void onNothingSelected(AdapterView<?> parent) {} |
| } |