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/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";