am 619e4dca: Merge "Improve ListPopupWindow RTL support" into jb-mr1-dev

* commit '619e4dca8e9dfe4daa0754b0568a7590788cd50e':
  Improve ListPopupWindow RTL support
This commit is contained in:
Fabrice Di Meglio
2012-07-30 13:10:21 -07:00
committed by Android Git Automerger

View File

@@ -22,6 +22,7 @@ import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.util.AttributeSet;
import android.util.LocaleUtil;
import android.util.Log;
import android.view.KeyEvent;
import android.view.MotionEvent;
@@ -31,6 +32,8 @@ import android.view.View.OnTouchListener;
import android.view.ViewGroup;
import android.view.ViewParent;
import java.util.Locale;
/**
* A ListPopupWindow anchors itself to a host view and displays a
* list of choices.
@@ -92,6 +95,8 @@ public class ListPopupWindow {
private boolean mModal;
private int mLayoutDirection;
/**
* The provided prompt view should appear above list content.
*
@@ -193,6 +198,9 @@ public class ListPopupWindow {
mContext = context;
mPopup = new PopupWindow(context, attrs, defStyleAttr, defStyleRes);
mPopup.setInputMethodMode(PopupWindow.INPUT_METHOD_NEEDED);
// Set the default layout direction to match the default locale one
final Locale locale = mContext.getResources().getConfiguration().locale;
mLayoutDirection = LocaleUtil.getLayoutDirectionFromLocale(locale);
}
/**
@@ -1013,6 +1021,8 @@ public class ListPopupWindow {
mDropDownList.setOnItemSelectedListener(mItemSelectedListener);
}
mDropDownList.setLayoutDirection(mLayoutDirection);
dropDownView = mDropDownList;
View hintView = mPromptView;
@@ -1121,9 +1131,18 @@ public class ListPopupWindow {
return listContent + otherHeights;
}
public void setLayoutDirection(int resolvedLayoutDirection) {
/**
* Set the layout direction for this popup. Should be a resolved direction as the
* popup as no capacity to do the resolution on his own.
*
* @param layoutDirection One of {@link View#LAYOUT_DIRECTION_LTR},
* {@link View#LAYOUT_DIRECTION_RTL},
*
*/
public void setLayoutDirection(int layoutDirection) {
mLayoutDirection = layoutDirection;
if (mDropDownList != null) {
mDropDownList.setLayoutDirection(resolvedLayoutDirection);
mDropDownList.setLayoutDirection(mLayoutDirection);
}
}