Use single method to handle all popup.dismiss() logic.
Refactor to reduce duplicate code.
Bug: 7902358
Change-Id: I6395635eba435ef6ebe4a34125d9a310c18f7e93
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index d4d5fc7..0222a89 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -112,6 +112,7 @@
import com.android.contacts.util.DateUtils;
import com.android.contacts.util.PhoneCapabilityTester;
import com.android.contacts.util.StructuredPostalUtils;
+import com.android.contacts.util.UiClosables;
import com.android.internal.telephony.ITelephony;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.Iterables;
@@ -1028,9 +1029,7 @@
}
private void dismissPopupIfShown() {
- if (mPopup != null && mPopup.isShowing()) {
- mPopup.dismiss();
- }
+ UiClosables.closeQuietly(mPopup);
mPopup = null;
}
diff --git a/src/com/android/contacts/detail/PhotoSelectionHandler.java b/src/com/android/contacts/detail/PhotoSelectionHandler.java
index 3f913f2..9689acc 100644
--- a/src/com/android/contacts/detail/PhotoSelectionHandler.java
+++ b/src/com/android/contacts/detail/PhotoSelectionHandler.java
@@ -46,6 +46,7 @@
import com.android.contacts.common.model.account.AccountType;
import com.android.contacts.model.RawContactDeltaList;
import com.android.contacts.util.ContactPhotoUtils;
+import com.android.contacts.util.UiClosables;
import java.io.File;
@@ -79,9 +80,7 @@
}
public void destroy() {
- if (mPopup != null) {
- mPopup.dismiss();
- }
+ UiClosables.closeQuietly(mPopup);
}
public abstract PhotoActionListener getListener();
diff --git a/src/com/android/contacts/editor/GroupMembershipView.java b/src/com/android/contacts/editor/GroupMembershipView.java
index ab7895c..d150be8 100644
--- a/src/com/android/contacts/editor/GroupMembershipView.java
+++ b/src/com/android/contacts/editor/GroupMembershipView.java
@@ -43,6 +43,7 @@
import com.android.contacts.model.RawContactDelta;
import com.android.contacts.common.model.ValuesDelta;
import com.android.contacts.model.RawContactModifier;
+import com.android.contacts.util.UiClosables;
import com.google.common.base.Objects;
import java.util.ArrayList;
@@ -280,8 +281,7 @@
@Override
public void onClick(View v) {
- if (mPopup != null && mPopup.isShowing()) {
- mPopup.dismiss();
+ if (UiClosables.closeQuietly(mPopup)) {
return;
}
@@ -329,10 +329,8 @@
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
- if (mPopup != null) {
- mPopup.dismiss();
- mPopup = null;
- }
+ UiClosables.closeQuietly(mPopup);
+ mPopup = null;
}
@Override
@@ -409,10 +407,8 @@
}
private void createNewGroup() {
- if (mPopup != null) {
- mPopup.dismiss();
- mPopup = null;
- }
+ UiClosables.closeQuietly(mPopup);
+ mPopup = null;
GroupCreationDialogFragment.show(
((Activity) getContext()).getFragmentManager(),
diff --git a/src/com/android/contacts/editor/PhotoActionPopup.java b/src/com/android/contacts/editor/PhotoActionPopup.java
index 4c7e7b7..9903880 100644
--- a/src/com/android/contacts/editor/PhotoActionPopup.java
+++ b/src/com/android/contacts/editor/PhotoActionPopup.java
@@ -26,6 +26,7 @@
import com.android.contacts.R;
import com.android.contacts.util.PhoneCapabilityTester;
+import com.android.contacts.util.UiClosables;
import java.util.ArrayList;
@@ -122,7 +123,7 @@
break;
}
- listPopupWindow.dismiss();
+ UiClosables.closeQuietly(listPopupWindow);
}
};
diff --git a/src/com/android/contacts/util/UiClosables.java b/src/com/android/contacts/util/UiClosables.java
index 66ab6cd..3f960b1 100644
--- a/src/com/android/contacts/util/UiClosables.java
+++ b/src/com/android/contacts/util/UiClosables.java
@@ -27,10 +27,13 @@
* Close a {@link ListPopupWindow}.
*
* @param popup The popup window to close.
+ * @return {@code true} if the popup was showing. {@code false} otherwise.
*/
- public static void closeQuietly(ListPopupWindow popup) {
+ public static boolean closeQuietly(ListPopupWindow popup) {
if (popup != null && popup.isShowing()) {
popup.dismiss();
+ return true;
}
+ return false;
}
}