Move DuplicatesActivity to GContacts

Bug: 27796451
Change-Id: Ia6a7c6309f584d7cddb7546b766c5dc45b121f5a
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 0b669fb..4467cde 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -78,7 +78,6 @@
 import com.android.contacts.common.util.ImplicitIntentsUtil;
 import com.android.contacts.common.util.ViewUtil;
 import com.android.contacts.common.widget.FloatingActionButtonController;
-import com.android.contacts.commonbind.ObjectFactory;
 import com.android.contacts.editor.EditorIntents;
 import com.android.contacts.group.GroupListItem;
 import com.android.contacts.group.GroupUtil;
@@ -102,6 +101,7 @@
 import com.android.contacts.quickcontact.QuickContactActivity;
 import com.android.contacts.util.DialogManager;
 import com.android.contacts.util.PhoneCapabilityTester;
+import com.android.contactsbind.Assistants;
 import com.android.contactsbind.HelpUtils;
 
 import java.util.List;
@@ -1170,7 +1170,7 @@
         makeMenuItemVisible(menu, R.id.menu_accounts, showMiscOptions);
         makeMenuItemVisible(menu, R.id.menu_blocked_numbers, showMiscOptions && showBlockedNumbers);
         makeMenuItemVisible(menu, R.id.menu_duplicates,
-                showMiscOptions && ObjectFactory.getDuplicatesActivityIntent(this) != null);
+                showMiscOptions && Assistants.getDuplicatesActivityIntent(this) != null);
 
         final boolean showSelectedContactOptions = mActionBarAdapter.isSelectionMode()
                 && mAllFragment.getSelectedContactIds().size() != 0;
@@ -1271,7 +1271,7 @@
             }
             case R.id.menu_duplicates: {
                 ImplicitIntentsUtil.startActivityInAppIfPossible(this,
-                        ObjectFactory.getDuplicatesActivityIntent(this));
+                        Assistants.getDuplicatesActivityIntent(this));
                 return true;
             }
             case R.id.export_database: {
diff --git a/src/com/android/contacts/interactions/JoinContactsDialogFragment.java b/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
index 1dae5dc..205e18e 100644
--- a/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
+++ b/src/com/android/contacts/interactions/JoinContactsDialogFragment.java
@@ -39,23 +39,15 @@
     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 JoinContactsDialogFragment start(Activity activity, TreeSet<Long> contactIds) {
+    public static void 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) {
@@ -66,10 +58,6 @@
         return fragment;
     }
 
-    public void setJoinContactsListener(JoinContactsListener listener) {
-        mListener = listener;
-    }
-
     @Override
     public Dialog onCreateDialog(Bundle savedInstanceState) {
         final TreeSet<Long> contactIds =
@@ -111,8 +99,9 @@
     }
 
     private void notifyListener() {
-        if (mListener != null) {
-            mListener.onContactsJoined();
+        if (getActivity() instanceof JoinContactsListener) {
+            ((JoinContactsListener) getActivity()).onContactsJoined();
         }
     }
+
 }
diff --git a/src/com/android/contactsbind/Assistants.java b/src/com/android/contactsbind/Assistants.java
new file mode 100644
index 0000000..3fba91c
--- /dev/null
+++ b/src/com/android/contactsbind/Assistants.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
+ * in compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
+ * or implied. See the License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.android.contactsbind;
+
+import android.content.Context;
+import android.content.Intent;
+
+/**
+ * Creates default implementations of contacts assistants.
+ */
+public final class Assistants {
+
+    private Assistants() {
+    }
+
+    /**
+     * Returns an Intent to start an Activity to clean up duplicate contacts or null
+     * if it is not a supported feature.
+     */
+    public static Intent getDuplicatesActivityIntent(Context context) {
+        return null;
+    }
+}