am 5b5a6579: Merge "Make SearchView RTL aware" into jb-mr1-dev
* commit '5b5a6579cf384643686f6bd476003fb4b106963a': Make SearchView RTL aware
This commit is contained in:
@@ -1078,6 +1078,7 @@ public class AutoCompleteTextView extends EditText implements Filter.FilterListe
|
|||||||
mPopup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NEEDED);
|
mPopup.setInputMethodMode(ListPopupWindow.INPUT_METHOD_NEEDED);
|
||||||
mPopup.setListItemExpandMax(EXPAND_MAX);
|
mPopup.setListItemExpandMax(EXPAND_MAX);
|
||||||
}
|
}
|
||||||
|
mPopup.setLayoutDirection(getResolvedLayoutDirection());
|
||||||
mPopup.show();
|
mPopup.show();
|
||||||
mPopup.getListView().setOverScrollMode(View.OVER_SCROLL_ALWAYS);
|
mPopup.getListView().setOverScrollMode(View.OVER_SCROLL_ALWAYS);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1121,6 +1121,12 @@ public class ListPopupWindow {
|
|||||||
return listContent + otherHeights;
|
return listContent + otherHeights;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setLayoutDirection(int resolvedLayoutDirection) {
|
||||||
|
if (mDropDownList != null) {
|
||||||
|
mDropDownList.setLayoutDirection(resolvedLayoutDirection);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>Wrapper class for a ListView. This wrapper can hijack the focus to
|
* <p>Wrapper class for a ListView. This wrapper can hijack the focus to
|
||||||
* make sure the list uses the appropriate drawables and states when
|
* make sure the list uses the appropriate drawables and states when
|
||||||
|
|||||||
@@ -326,7 +326,6 @@ public class SearchView extends LinearLayout implements CollapsibleActionView {
|
|||||||
int oldLeft, int oldTop, int oldRight, int oldBottom) {
|
int oldLeft, int oldTop, int oldRight, int oldBottom) {
|
||||||
adjustDropDownSizeAndPosition();
|
adjustDropDownSizeAndPosition();
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1285,15 +1284,22 @@ public class SearchView extends LinearLayout implements CollapsibleActionView {
|
|||||||
Resources res = getContext().getResources();
|
Resources res = getContext().getResources();
|
||||||
int anchorPadding = mSearchPlate.getPaddingLeft();
|
int anchorPadding = mSearchPlate.getPaddingLeft();
|
||||||
Rect dropDownPadding = new Rect();
|
Rect dropDownPadding = new Rect();
|
||||||
|
final boolean isLayoutRtl = isLayoutRtl();
|
||||||
int iconOffset = mIconifiedByDefault
|
int iconOffset = mIconifiedByDefault
|
||||||
? res.getDimensionPixelSize(R.dimen.dropdownitem_icon_width)
|
? res.getDimensionPixelSize(R.dimen.dropdownitem_icon_width)
|
||||||
+ res.getDimensionPixelSize(R.dimen.dropdownitem_text_padding_left)
|
+ res.getDimensionPixelSize(R.dimen.dropdownitem_text_padding_left)
|
||||||
: 0;
|
: 0;
|
||||||
mQueryTextView.getDropDownBackground().getPadding(dropDownPadding);
|
mQueryTextView.getDropDownBackground().getPadding(dropDownPadding);
|
||||||
mQueryTextView.setDropDownHorizontalOffset(-(dropDownPadding.left + iconOffset)
|
int offset;
|
||||||
+ anchorPadding);
|
if (isLayoutRtl) {
|
||||||
mQueryTextView.setDropDownWidth(mDropDownAnchor.getWidth() + dropDownPadding.left
|
offset = - dropDownPadding.left;
|
||||||
+ dropDownPadding.right + iconOffset - (anchorPadding));
|
} else {
|
||||||
|
offset = anchorPadding - (dropDownPadding.left + iconOffset);
|
||||||
|
}
|
||||||
|
mQueryTextView.setDropDownHorizontalOffset(offset);
|
||||||
|
final int width = mDropDownAnchor.getWidth() + dropDownPadding.left
|
||||||
|
+ dropDownPadding.right + iconOffset - anchorPadding;
|
||||||
|
mQueryTextView.setDropDownWidth(width);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1347,6 +1353,11 @@ public class SearchView extends LinearLayout implements CollapsibleActionView {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onResolvedLayoutDirectionChanged() {
|
||||||
|
mQueryTextView.setLayoutDirection(getResolvedLayoutDirection());
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Query rewriting.
|
* Query rewriting.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user