Auto dismiss popups when touches happen outside the popup window
b/18218445
Change-Id: I9f5d0b2bfbc023c1f77967cf14de45e769bdd543
diff --git a/src/com/android/ex/chips/RecipientEditTextView.java b/src/com/android/ex/chips/RecipientEditTextView.java
index 4adaf7a..2e6b94b 100644
--- a/src/com/android/ex/chips/RecipientEditTextView.java
+++ b/src/com/android/ex/chips/RecipientEditTextView.java
@@ -86,6 +86,7 @@
import android.widget.ListPopupWindow;
import android.widget.ListView;
import android.widget.MultiAutoCompleteTextView;
+import android.widget.PopupWindow;
import android.widget.ScrollView;
import android.widget.TextView;
@@ -266,9 +267,9 @@
sSelectedTextColor = context.getResources().getColor(android.R.color.white);
}
mAlternatesPopup = new ListPopupWindow(context);
- mAlternatesPopup.setBackgroundDrawable(null);
+ setupPopupWindow(mAlternatesPopup);
mAddressPopup = new ListPopupWindow(context);
- mAddressPopup.setBackgroundDrawable(null);
+ setupPopupWindow(mAddressPopup);
mCopyDialog = new Dialog(context);
mAlternatesListener = new OnItemClickListener() {
@Override
@@ -304,6 +305,16 @@
setDropdownChipLayouter(new DropdownChipLayouter(LayoutInflater.from(context), context));
}
+ private void setupPopupWindow(ListPopupWindow popup) {
+ popup.setModal(true);
+ popup.setOnDismissListener(new PopupWindow.OnDismissListener() {
+ @Override
+ public void onDismiss() {
+ clearSelectedChip();
+ }
+ });
+ }
+
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);