| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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.ui; | 5 package org.chromium.ui; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 import android.graphics.Color; | 8 import android.graphics.Color; |
| 9 import android.graphics.Typeface; | 9 import android.graphics.Typeface; |
| 10 import android.text.TextUtils; | 10 import android.text.TextUtils; |
| 11 import android.view.LayoutInflater; | 11 import android.view.LayoutInflater; |
| 12 import android.view.View; | 12 import android.view.View; |
| 13 import android.view.ViewGroup; | 13 import android.view.ViewGroup; |
| 14 import android.widget.AbsListView.LayoutParams; | 14 import android.widget.AbsListView.LayoutParams; |
| 15 import android.widget.ArrayAdapter; | 15 import android.widget.ArrayAdapter; |
| 16 import android.widget.ImageView; |
| 16 import android.widget.TextView; | 17 import android.widget.TextView; |
| 17 | 18 |
| 18 import org.chromium.base.ApiCompatibilityUtils; | 19 import org.chromium.base.ApiCompatibilityUtils; |
| 19 | 20 |
| 20 import java.util.List; | 21 import java.util.List; |
| 21 import java.util.Set; | 22 import java.util.Set; |
| 22 | 23 |
| 23 /** | 24 /** |
| 24 * Dropdown item adapter for DropdownPopupWindow. | 25 * Dropdown item adapter for DropdownPopupWindow. |
| 25 */ | 26 */ |
| (...skipping 29 matching lines...) Expand all Loading... |
| 55 @Override | 56 @Override |
| 56 public View getView(int position, View convertView, ViewGroup parent) { | 57 public View getView(int position, View convertView, ViewGroup parent) { |
| 57 View layout = convertView; | 58 View layout = convertView; |
| 58 if (convertView == null) { | 59 if (convertView == null) { |
| 59 LayoutInflater inflater = | 60 LayoutInflater inflater = |
| 60 (LayoutInflater) mContext.getSystemService(Context.LAYOUT_IN
FLATER_SERVICE); | 61 (LayoutInflater) mContext.getSystemService(Context.LAYOUT_IN
FLATER_SERVICE); |
| 61 layout = inflater.inflate(R.layout.dropdown_item, null); | 62 layout = inflater.inflate(R.layout.dropdown_item, null); |
| 62 ApiCompatibilityUtils.setBackgroundForView(layout, new DropdownDivid
erDrawable()); | 63 ApiCompatibilityUtils.setBackgroundForView(layout, new DropdownDivid
erDrawable()); |
| 63 } | 64 } |
| 64 | 65 |
| 65 DropdownItem item = getItem(position); | |
| 66 | |
| 67 TextView labelView = (TextView) layout.findViewById(R.id.dropdown_label)
; | |
| 68 labelView.setText(item.getLabel()); | |
| 69 | |
| 70 labelView.setEnabled(item.isEnabled()); | |
| 71 if (item.isGroupHeader()) { | |
| 72 labelView.setTypeface(null, Typeface.BOLD); | |
| 73 } else { | |
| 74 labelView.setTypeface(null, Typeface.NORMAL); | |
| 75 } | |
| 76 | |
| 77 DropdownDividerDrawable divider = (DropdownDividerDrawable) layout.getBa
ckground(); | 66 DropdownDividerDrawable divider = (DropdownDividerDrawable) layout.getBa
ckground(); |
| 78 int height = mContext.getResources().getDimensionPixelSize(R.dimen.dropd
own_item_height); | 67 int height = mContext.getResources().getDimensionPixelSize(R.dimen.dropd
own_item_height); |
| 79 if (position == 0) { | 68 if (position == 0) { |
| 80 divider.setColor(Color.TRANSPARENT); | 69 divider.setColor(Color.TRANSPARENT); |
| 81 } else { | 70 } else { |
| 82 int dividerHeight = mContext.getResources().getDimensionPixelSize( | 71 int dividerHeight = mContext.getResources().getDimensionPixelSize( |
| 83 R.dimen.dropdown_item_divider_height); | 72 R.dimen.dropdown_item_divider_height); |
| 84 height += dividerHeight; | 73 height += dividerHeight; |
| 85 divider.setHeight(dividerHeight); | 74 divider.setHeight(dividerHeight); |
| 86 if (mSeparators != null && mSeparators.contains(position)) { | 75 if (mSeparators != null && mSeparators.contains(position)) { |
| 87 divider.setColor(mContext.getResources().getColor( | 76 divider.setColor(mContext.getResources().getColor( |
| 88 R.color.dropdown_dark_divider_color)); | 77 R.color.dropdown_dark_divider_color)); |
| 89 } else { | 78 } else { |
| 90 divider.setColor(mContext.getResources().getColor( | 79 divider.setColor(mContext.getResources().getColor( |
| 91 R.color.dropdown_divider_color)); | 80 R.color.dropdown_divider_color)); |
| 92 } | 81 } |
| 93 } | 82 } |
| 94 layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, heigh
t)); | 83 layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, heigh
t)); |
| 95 | 84 |
| 85 DropdownItem item = getItem(position); |
| 86 TextView labelView = (TextView) layout.findViewById(R.id.dropdown_label)
; |
| 87 labelView.setText(item.getLabel()); |
| 88 |
| 89 labelView.setEnabled(item.isEnabled()); |
| 90 if (item.isGroupHeader()) { |
| 91 labelView.setTypeface(null, Typeface.BOLD); |
| 92 } else { |
| 93 labelView.setTypeface(null, Typeface.NORMAL); |
| 94 } |
| 95 |
| 96 TextView sublabelView = (TextView) layout.findViewById(R.id.dropdown_sub
label); | 96 TextView sublabelView = (TextView) layout.findViewById(R.id.dropdown_sub
label); |
| 97 CharSequence sublabel = item.getSublabel(); | 97 CharSequence sublabel = item.getSublabel(); |
| 98 if (TextUtils.isEmpty(sublabel)) { | 98 if (TextUtils.isEmpty(sublabel)) { |
| 99 sublabelView.setVisibility(View.GONE); | 99 sublabelView.setVisibility(View.GONE); |
| 100 } else { | 100 } else { |
| 101 sublabelView.setText(sublabel); | 101 sublabelView.setText(sublabel); |
| 102 sublabelView.setVisibility(View.VISIBLE); | 102 sublabelView.setVisibility(View.VISIBLE); |
| 103 } | 103 } |
| 104 | 104 |
| 105 ImageView iconView = (ImageView) layout.findViewById(R.id.dropdown_icon)
; |
| 106 if (item.getIconId() == DropdownItem.NO_ICON) { |
| 107 iconView.setVisibility(View.GONE); |
| 108 } else { |
| 109 iconView.setImageResource(item.getIconId()); |
| 110 iconView.setVisibility(View.VISIBLE); |
| 111 } |
| 112 |
| 105 return layout; | 113 return layout; |
| 106 } | 114 } |
| 107 | 115 |
| 108 @Override | 116 @Override |
| 109 public boolean areAllItemsEnabled() { | 117 public boolean areAllItemsEnabled() { |
| 110 return mAreAllItemsEnabled; | 118 return mAreAllItemsEnabled; |
| 111 } | 119 } |
| 112 | 120 |
| 113 @Override | 121 @Override |
| 114 public boolean isEnabled(int position) { | 122 public boolean isEnabled(int position) { |
| 115 if (position < 0 || position >= getCount()) return false; | 123 if (position < 0 || position >= getCount()) return false; |
| 116 DropdownItem item = getItem(position); | 124 DropdownItem item = getItem(position); |
| 117 return item.isEnabled() && !item.isGroupHeader(); | 125 return item.isEnabled() && !item.isGroupHeader(); |
| 118 } | 126 } |
| 119 } | 127 } |
| OLD | NEW |