Hide assistant left nav behind flag
Add flag to flip between assistant and duplicates
in left nav.
Test: manual
- default flag to false - see duplicates and navigate to and from
- flip flag to true - see assistant and navigate to and from
Bug:32091041
Change-Id: I74979d4fcbd8c6d99f09007d4354d16e9ba9104e
diff --git a/res/menu/activity_main_drawer.xml b/res/menu/activity_main_drawer.xml
index 4082f5f..75deb8b 100644
--- a/res/menu/activity_main_drawer.xml
+++ b/res/menu/activity_main_drawer.xml
@@ -27,6 +27,10 @@
android:id="@+id/nav_assistant"
android:icon="@drawable/ic_assistant"
android:title="@string/menu_assistant"/>
+ <item
+ android:id="@+id/nav_find_duplicates"
+ android:icon="@drawable/ic_menu_duplicates"
+ android:title="@string/menu_duplicates"/>
</group>
<group android:id="@+id/groups">
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e5d6413..d170127 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -902,6 +902,9 @@
<!-- The menu item to open the Google contacts assistant. [CHAR LIMIT=20]-->
<string name="menu_assistant">Assistant</string>
+ <!-- The menu item to open the link/merge duplicates activity. [CHAR LIMIT=20]-->
+ <string name="menu_duplicates">Duplicates</string>
+
<!-- Open drawer content descriptions [CHAR LIMIT=40] -->
<string name="navigation_drawer_open">Open navigation drawer</string>
diff --git a/src-bind/com/android/contactsbind/ObjectFactory.java b/src-bind/com/android/contactsbind/ObjectFactory.java
index e336e4f..c9539ee 100644
--- a/src-bind/com/android/contactsbind/ObjectFactory.java
+++ b/src-bind/com/android/contactsbind/ObjectFactory.java
@@ -42,7 +42,11 @@
return new DeviceLocalAccountTypeFactory.Default(context);
}
- public static Fragment getAssistantFragment() {
+ public static Fragment getAssistantFragment(String tag) {
+ return null;
+ }
+
+ public static Fragment getDuplicatesUtilFragment() {
return null;
}
diff --git a/src/com/android/contacts/ContactsDrawerActivity.java b/src/com/android/contacts/ContactsDrawerActivity.java
index 68b9884..0892baf 100644
--- a/src/com/android/contacts/ContactsDrawerActivity.java
+++ b/src/com/android/contacts/ContactsDrawerActivity.java
@@ -44,6 +44,7 @@
import com.android.contacts.activities.ActionBarAdapter;
import com.android.contacts.common.ContactsUtils;
+import com.android.contacts.common.Experiments;
import com.android.contacts.common.compat.CompatUtils;
import com.android.contacts.common.list.AccountFilterActivity;
import com.android.contacts.common.list.ContactListFilter;
@@ -74,6 +75,7 @@
import com.android.contacts.util.SharedPreferenceUtil;
import com.android.contactsbind.HelpUtils;
import com.android.contactsbind.ObjectFactory;
+import com.android.contactsbind.experiments.Flags;
import java.util.HashMap;
import java.util.Iterator;
@@ -272,11 +274,21 @@
private void setUpMenu() {
final Menu menu = mNavigationView.getMenu();
- if (ObjectFactory.getAssistantFragment() == null) {
+ if (ObjectFactory.getDuplicatesUtilFragment() == null) {
menu.removeItem(R.id.nav_assistant);
+ menu.removeItem(R.id.nav_find_duplicates);
} else {
- final MenuItem assistantMenu = menu.findItem(R.id.nav_assistant);
- mIdMenuMap.put(R.id.nav_assistant, assistantMenu);
+ int id;
+ if (Flags.getInstance(this).getBoolean(Experiments.ASSISTANT)) {
+ id = R.id.nav_assistant;
+ menu.removeItem(R.id.nav_find_duplicates);
+ } else {
+ id = R.id.nav_find_duplicates;
+ menu.removeItem(R.id.nav_assistant);
+ }
+
+ final MenuItem assistantMenu = menu.findItem(id);
+ mIdMenuMap.put(id, assistantMenu);
if (isAssistantView()) {
updateMenuSelection(assistantMenu);
}
@@ -591,7 +603,7 @@
HelpUtils.launchHelpAndFeedbackForMainScreen(ContactsDrawerActivity.this);
} else if (id == R.id.nav_all_contacts) {
switchToAllContacts();
- } else if (id == R.id.nav_assistant) {
+ } else if (id == R.id.nav_assistant || id == R.id.nav_find_duplicates) {
if (!isAssistantView()) {
launchAssistant();
updateMenuSelection(item);
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index 5621c1b..9326b0d 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -790,13 +790,26 @@
transaction.replace(
R.id.contacts_list_container, mMembersFragment, TAG_GROUP_VIEW);
} else if(isAssistantView()) {
- Fragment assistantFragment = fragmentManager.findFragmentByTag(TAG_ASSISTANT);
- if (assistantFragment == null) {
- assistantFragment = ObjectFactory.getAssistantFragment();
+ String fragmentTag;
+ if (Flags.getInstance(this).getBoolean(Experiments.ASSISTANT)) {
+ fragmentTag = TAG_ASSISTANT;
+ } else {
+ fragmentTag = TAG_DUPLICATES;
}
- if (assistantFragment != null) {
- transaction.replace(
- R.id.contacts_list_container, assistantFragment, TAG_ASSISTANT);
+
+ Fragment uiFragment = fragmentManager.findFragmentByTag(fragmentTag);
+ if (uiFragment == null) {
+ uiFragment = ObjectFactory.getAssistantFragment(fragmentTag);
+ }
+ transaction.replace(R.id.contacts_list_container, uiFragment, fragmentTag);
+
+ Fragment duplicatesUtilFragment =
+ fragmentManager.findFragmentByTag(TAG_DUPLICATES_UTIL);
+ if (duplicatesUtilFragment == null) {
+ duplicatesUtilFragment = ObjectFactory.getDuplicatesUtilFragment();
+ }
+ if (!duplicatesUtilFragment.isAdded()) {
+ transaction.add(duplicatesUtilFragment, TAG_DUPLICATES_UTIL);
}
resetToolBarStatusBarColor();
}
diff --git a/src/com/android/contacts/common/Experiments.java b/src/com/android/contacts/common/Experiments.java
index 4487b45..df709b3 100644
--- a/src/com/android/contacts/common/Experiments.java
+++ b/src/com/android/contacts/common/Experiments.java
@@ -21,6 +21,11 @@
public final class Experiments {
/**
+ * Experiment to enable assistant in left navigation drawer.
+ */
+ public static final String ASSISTANT = "Assistant__enable_assistant";
+
+ /**
* Whether to open contact sheet (aka smart profile) instead of our own QuickContact.
*/
public static final String CONTACT_SHEET = "QuickContact__contact_sheet";