Index: ui/android/java/src/org/chromium/ui/DropdownPopupWindow.java |
diff --git a/ui/android/java/src/org/chromium/ui/DropdownPopupWindow.java b/ui/android/java/src/org/chromium/ui/DropdownPopupWindow.java |
index 45b799e33ece7d4e5a067421924f246b75afcbf4..7286630818c45779eb0005d2ebb66e0c7f33ed26 100644 |
--- a/ui/android/java/src/org/chromium/ui/DropdownPopupWindow.java |
+++ b/ui/android/java/src/org/chromium/ui/DropdownPopupWindow.java |
@@ -18,7 +18,6 @@ import android.widget.ListPopupWindow; |
import android.widget.PopupWindow; |
import org.chromium.base.ApiCompatibilityUtils; |
-import org.chromium.ui.base.ViewAndroidDelegate; |
import java.lang.reflect.Method; |
@@ -28,12 +27,7 @@ import java.lang.reflect.Method; |
public class DropdownPopupWindow extends ListPopupWindow { |
private final Context mContext; |
- private final ViewAndroidDelegate mViewAndroidDelegate; |
private final View mAnchorView; |
- private float mAnchorWidth; |
- private float mAnchorHeight; |
- private float mAnchorX; |
- private float mAnchorY; |
private boolean mRtl; |
private int mInitialSelection = -1; |
private OnLayoutChangeListener mLayoutChangeListener; |
@@ -44,14 +38,13 @@ public class DropdownPopupWindow extends ListPopupWindow { |
/** |
* Creates an DropdownPopupWindow with specified parameters. |
* @param context Application context. |
- * @param viewAndroidDelegate View delegate used to add and remove views. |
+ * @param anchorView Popup view to be anchored. |
*/ |
- public DropdownPopupWindow(Context context, ViewAndroidDelegate viewAndroidDelegate) { |
+ public DropdownPopupWindow(Context context, View anchorView) { |
super(context, null, 0, R.style.DropdownPopupWindow); |
mContext = context; |
- mViewAndroidDelegate = viewAndroidDelegate; |
+ mAnchorView = anchorView; |
- mAnchorView = mViewAndroidDelegate.acquireAnchorView(); |
mAnchorView.setId(R.id.dropdown_popup_window); |
mAnchorView.setTag(this); |
@@ -72,7 +65,6 @@ public class DropdownPopupWindow extends ListPopupWindow { |
} |
mAnchorView.removeOnLayoutChangeListener(mLayoutChangeListener); |
mAnchorView.setTag(null); |
- mViewAndroidDelegate.releaseAnchorView(mAnchorView); |
} |
}); |
@@ -82,26 +74,6 @@ public class DropdownPopupWindow extends ListPopupWindow { |
setVerticalOffset(-originalPadding.top); |
} |
- /** |
- * Sets the location and the size of the anchor view that the DropdownPopupWindow will use to |
- * attach itself. Calling this method can cause a layout change, so the adapter should not be |
- * null. |
- * @param x X coordinate of the top left corner of the anchor view. |
- * @param y Y coordinate of the top left corner of the anchor view. |
- * @param width The width of the anchor view. |
- * @param height The height of the anchor view. |
- */ |
- public void setAnchorRect(float x, float y, float width, float height) { |
- mAnchorWidth = width; |
- mAnchorHeight = height; |
- mAnchorX = x; |
- mAnchorY = y; |
- if (mAnchorView != null) { |
- mViewAndroidDelegate.setAnchorViewPosition(mAnchorView, mAnchorX, mAnchorY, |
- mAnchorWidth, mAnchorHeight); |
- } |
- } |
- |
@Override |
public void setAdapter(ListAdapter adapter) { |
mAdapter = adapter; |
@@ -122,11 +94,11 @@ public class DropdownPopupWindow extends ListPopupWindow { |
setInputMethodMode(INPUT_METHOD_NEEDED); |
int contentWidth = measureContentWidth(); |
- float contentWidthInDip = contentWidth |
- / mContext.getResources().getDisplayMetrics().density; |
+ float anchorWidth = mAnchorView.getLayoutParams().width; |
+ assert anchorWidth > 0; |
Rect padding = new Rect(); |
getBackground().getPadding(padding); |
- if (contentWidthInDip + padding.left + padding.right > mAnchorWidth) { |
+ if (contentWidth + padding.left + padding.right > anchorWidth) { |
setContentWidth(contentWidth); |
final Rect displayFrame = new Rect(); |
mAnchorView.getWindowVisibleDisplayFrame(displayFrame); |
@@ -136,8 +108,6 @@ public class DropdownPopupWindow extends ListPopupWindow { |
} else { |
setWidth(ViewGroup.LayoutParams.WRAP_CONTENT); |
} |
- mViewAndroidDelegate.setAnchorViewPosition(mAnchorView, mAnchorX, mAnchorY, mAnchorWidth, |
- mAnchorHeight); |
boolean wasShowing = isShowing(); |
super.show(); |
getListView().setDividerHeight(0); |