Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillPopup.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillPopup.java b/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillPopup.java |
| index c1b5d9a965a75ac31c72084c30c9ec12cdb556e9..35caf5bcc31358ed65ad159ae6d4020d55eef939 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillPopup.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/autofill/AutofillPopup.java |
| @@ -35,7 +35,7 @@ public class AutofillPopup extends ListPopupWindow implements AdapterView.OnItem |
| private static final int ITEM_ID_PASSWORD_ENTRY = -2; |
| private static final int ITEM_ID_DATA_LIST_ENTRY = -6; |
| - private static final int TEXT_PADDING_DP = 40; |
| + private static final int TEXT_PADDING_DP = 25; |
| private final AutofillPopupDelegate mAutofillCallback; |
| private final Context mContext; |
| @@ -45,8 +45,8 @@ public class AutofillPopup extends ListPopupWindow implements AdapterView.OnItem |
| private float mAnchorHeight; |
| private float mAnchorX; |
| private float mAnchorY; |
| - private Paint mNameViewPaint; |
| private Paint mLabelViewPaint; |
| + private Paint mSublabelViewPaint; |
| private OnLayoutChangeListener mLayoutChangeListener; |
| /** |
| @@ -73,7 +73,7 @@ public class AutofillPopup extends ListPopupWindow implements AdapterView.OnItem |
| */ |
| public AutofillPopup(Context context, ViewAndroidDelegate viewAndroidDelegate, |
| AutofillPopupDelegate autofillCallback) { |
| - super(context); |
| + super(context, null, 0, R.style.AutofillPopupWindow); |
| mContext = context; |
| mViewAndroidDelegate = viewAndroidDelegate ; |
| mAutofillCallback = autofillCallback; |
| @@ -96,6 +96,13 @@ public class AutofillPopup extends ListPopupWindow implements AdapterView.OnItem |
| setAnchorView(mAnchorView); |
| } |
| + @Override |
| + public void show() { |
| + // An ugly hack to keep the popup from expanding on top of the keyboard. |
| + setInputMethodMode(INPUT_METHOD_NEEDED); |
| + super.show(); |
| + } |
| + |
| /** |
| * Sets the location and the size of the anchor view that the AutofillPopup will use to attach |
| * itself. |
| @@ -159,34 +166,36 @@ public class AutofillPopup extends ListPopupWindow implements AdapterView.OnItem |
| * @return The popup window width in DIP. |
| */ |
| private float getDesiredWidth(AutofillSuggestion[] data) { |
| - if (mNameViewPaint == null || mLabelViewPaint == null) { |
| + if (mLabelViewPaint == null || mSublabelViewPaint == null) { |
| LayoutInflater inflater = |
| (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); |
| View layout = inflater.inflate(R.layout.autofill_text, null); |
| - TextView nameView = (TextView) layout.findViewById(R.id.autofill_name); |
| - mNameViewPaint = nameView.getPaint(); |
| TextView labelView = (TextView) layout.findViewById(R.id.autofill_label); |
| mLabelViewPaint = labelView.getPaint(); |
| + TextView sublabelView = (TextView) layout.findViewById(R.id.autofill_sublabel); |
| + mSublabelViewPaint = sublabelView.getPaint(); |
| } |
| float maxTextWidth = 0; |
| Rect bounds = new Rect(); |
| for (int i = 0; i < data.length; ++i) { |
| bounds.setEmpty(); |
| - String name = data[i].mName; |
| - float width = 0; |
| - if (name.length() > 0) { |
| - mNameViewPaint.getTextBounds(name, 0, name.length(), bounds); |
| - } |
| - width += bounds.width(); |
| - |
| - bounds.setEmpty(); |
| String label = data[i].mLabel; |
| + float labelWidth = 0; |
|
Ted C
2013/06/14 20:57:53
this isn't used until after the conditional
aurimas (slooooooooow)
2013/06/14 21:09:09
Done.
|
| if (label.length() > 0) { |
| mLabelViewPaint.getTextBounds(label, 0, label.length(), bounds); |
| } |
| - width += bounds.width(); |
| - maxTextWidth = Math.max(width, maxTextWidth); |
| + labelWidth = bounds.width(); |
| + |
| + bounds.setEmpty(); |
| + String sublabel = data[i].mSublabel; |
| + float sublabelWidth = 0; |
|
Ted C
2013/06/14 20:57:53
same here
aurimas (slooooooooow)
2013/06/14 21:09:09
Done.
|
| + if (sublabel.length() > 0) { |
|
Ted C
2013/06/14 20:57:53
TextUtils isEmpty?
aurimas (slooooooooow)
2013/06/14 21:09:09
Done.
|
| + mSublabelViewPaint.getTextBounds(sublabel, 0, sublabel.length(), bounds); |
| + } |
| + sublabelWidth = bounds.width(); |
| + float localMax = Math.max(labelWidth, sublabelWidth); |
| + maxTextWidth = Math.max(maxTextWidth, localMax); |
| } |
| // Scale it down to make it unscaled by screen density. |
| maxTextWidth = maxTextWidth / mContext.getResources().getDisplayMetrics().density; |