Merge "Refactor JoinContactsDialogFragment for reuse"
diff --git a/src/com/android/contacts/interactions/JoinContactsDialogFragment.java b/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
index 205e18e..1dae5dc 100644
--- a/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
+++ b/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
@@ -39,15 +39,23 @@
private static final String FRAGMENT_TAG = "joinDialog";
private static final String KEY_CONTACT_IDS = "contactIds";
+ private JoinContactsListener mListener;
+
public interface JoinContactsListener {
void onContactsJoined();
}
- public static void start(Activity activity, TreeSet<Long> contactIds) {
+ public static JoinContactsDialogFragment start(Activity activity, TreeSet<Long> contactIds) {
final FragmentTransaction ft = activity.getFragmentManager().beginTransaction();
final JoinContactsDialogFragment newFragment
= JoinContactsDialogFragment.newInstance(contactIds);
newFragment.show(ft, FRAGMENT_TAG);
+
+ if (activity instanceof JoinContactsListener) {
+ newFragment.setJoinContactsListener(((JoinContactsListener) activity));
+ }
+
+ return newFragment;
}
private static JoinContactsDialogFragment newInstance(TreeSet<Long> contactIds) {
@@ -58,6 +66,10 @@
return fragment;
}
+ public void setJoinContactsListener(JoinContactsListener listener) {
+ mListener = listener;
+ }
+
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final TreeSet<Long> contactIds =
@@ -99,9 +111,8 @@
}
private void notifyListener() {
- if (getActivity() instanceof JoinContactsListener) {
- ((JoinContactsListener) getActivity()).onContactsJoined();
+ if (mListener != null) {
+ mListener.onContactsJoined();
}
}
-
}