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..3a155c8dad8fade96b84f98879b549aaefe1a473 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,51 @@ 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; |
- mSelectedIndex = filter; |
- notifyDataSetChanged(); |
- mManagerUi.closeDrawer(); |
- } |
+ public void onFilterChanged(int filter) {} |
@Override |
public void onManagerDestroyed() { |
mManagerUi = null; |
} |
+ |
+ @Override |
+ public void onNothingSelected(AdapterView<?> parent) {} |
} |