Merge "Hide assistant menu in AOSP Contacts" into ub-contactsdialer-i-dev
diff --git a/src-bind/com/android/contactsbind/ObjectFactory.java b/src-bind/com/android/contactsbind/ObjectFactory.java
index c5170be..e8b9ceb 100644
--- a/src-bind/com/android/contactsbind/ObjectFactory.java
+++ b/src-bind/com/android/contactsbind/ObjectFactory.java
@@ -20,7 +20,6 @@
import com.android.contacts.logging.Logger;
import com.android.contacts.util.DeviceLocalAccountTypeFactory;
-import com.android.contactsbind.search.AutocompleteHelper;
/**
* Creates default bindings for overlays.
@@ -31,10 +30,6 @@
return null;
}
- public static AutocompleteHelper getAutocompleteHelper(Context context) {
- return null;
- }
-
public static DeviceLocalAccountTypeFactory getDeviceLocalAccountTypeFactory(Context context) {
return new DeviceLocalAccountTypeFactory.Default(context);
}
diff --git a/src-bind/com/android/contactsbind/search/AutocompleteHelper.java b/src-bind/com/android/contactsbind/search/AutocompleteHelper.java
deleted file mode 100644
index ff0678c..0000000
--- a/src-bind/com/android/contactsbind/search/AutocompleteHelper.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * 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.search;
-
-import android.database.Cursor;
-
-public final class AutocompleteHelper {
-
- public static final String TAG = "Autocomplete";
-
- public interface Listener {
- void onAutocompletesAvailable(Cursor cursor);
- }
-
- public AutocompleteHelper() {
- }
-
- public void setListener(Listener listener) {
- }
-
- public void setProjection(String[] projection) {
- }
-
- public void setQuery(String query) {
- }
-}
\ No newline at end of file
diff --git a/src/com/android/contacts/Experiments.java b/src/com/android/contacts/Experiments.java
index 9dbe1bf..97b0474 100644
--- a/src/com/android/contacts/Experiments.java
+++ b/src/com/android/contacts/Experiments.java
@@ -48,16 +48,6 @@
public static final String PULL_TO_REFRESH_CANCEL_REFRESH_MILLIS =
"PullToRefresh__cancel_refresh_millis";
- /**
- * Search study boolean indicating whether to inject yenta search results before CP2 results.
- */
- public static final String SEARCH_YENTA = "Search__yenta";
-
- /**
- * The time to wait for Yenta search results before giving up.
- */
- public static final String SEARCH_YENTA_TIMEOUT_MILLIS = "Search__yenta_timeout";
-
private Experiments() {
}
}
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index a23eaad..34b4f40 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -1237,12 +1237,5 @@
return intent;
}
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == DefaultContactBrowseListFragment.ACTIVITY_REQUEST_QUICK_CONTACT &&
- resultCode == ContactDeletionInteraction.RESULT_CODE_DELETED &&
- mContactsListFragment != null) {
- mContactsListFragment.maybeRestartDefaultDirectoryPartitionLoader();
- }
- }
+
}
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
index e63fca4..161571c 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -81,10 +81,6 @@
private static final int COLUMN_INDEX_DISPLAY_NAME = 5;
private static final int COLUMN_INDEX_DISPLAY_NAME_ALT = 6;
- public interface Listener {
- void onDeletionFinished();
- }
-
private boolean mActive;
private Uri mContactUri;
private String mDisplayName;
@@ -92,7 +88,6 @@
private boolean mFinishActivityWhenDone;
private Context mContext;
private AlertDialog mDialog;
- private Listener mListener;
/** This is a wrapper around the fragment's loader manager to be used only during testing. */
private TestLoaderManagerBase mTestLoaderManager;
@@ -351,9 +346,6 @@
protected void doDeleteContact(Uri contactUri) {
mContext.startService(ContactSaveService.createDeleteContactIntent(mContext, contactUri));
- if (mListener != null) {
- mListener.onDeletionFinished();
- }
if (isAdded() && mFinishActivityWhenDone) {
getActivity().setResult(RESULT_CODE_DELETED);
getActivity().finish();
@@ -370,8 +362,4 @@
Toast.makeText(mContext, deleteToastMessage, Toast.LENGTH_LONG).show();
}
}
-
- public void setListener(Listener listener) {
- mListener = listener;
- }
}
diff --git a/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java b/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
index 3e1dd5d..695e9f6 100644
--- a/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactMultiDeletionInteraction.java
@@ -313,9 +313,7 @@
protected void doDeleteContact(long[] contactIds, final String[] names) {
mContext.startService(ContactSaveService.createDeleteMultipleContactsIntent(mContext,
contactIds, names));
- if (mListener != null) {
- mListener.onDeletionFinished();
- }
+ mListener.onDeletionFinished();
}
public void setListener(MultiContactDeleteListener listener) {
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index d8620a8..6115b50 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -348,22 +348,6 @@
mLoadPriorityDirectoriesOnly = false;
}
- /** Restarts the {@link DirectoryPartition} with {@link Directory#DEFAULT} directory ID. */
- protected void restartDefaultDirectoryPartitionLoader() {
- if (mAdapter == null) return;
- int partitionCount = mAdapter.getPartitionCount();
- for (int i = 0; i < partitionCount; i++) {
- final Partition partition = mAdapter.getPartition(i);
- if (partition instanceof DirectoryPartition) {
- final DirectoryPartition directoryPartition = (DirectoryPartition) partition;
- long directoryId = directoryPartition.getDirectoryId();
- if (directoryId == Directory.DEFAULT) {
- loadDirectoryPartitionDelayed(i, directoryPartition);
- }
- }
- }
- }
-
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
if (id == DIRECTORY_LOADER_ID) {
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index a174b91..f4d244e 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -97,7 +97,6 @@
private static final String KEY_SEARCH_RESULT_CLICKED = "search_result_clicked";
private static final int ACTIVITY_REQUEST_CODE_SHARE = 0;
- public static final int ACTIVITY_REQUEST_QUICK_CONTACT = 1000;
private View mSearchHeaderView;
private View mSearchProgress;
@@ -943,24 +942,14 @@
/* count */ getAdapter().getCount(),
/* clickedIndex */ position, /* numSelected */ 0);
- // Start QuickContact "for result" in case we're using yenta search and need
- // to manually reload the default directory partition when contacts are deleted.
- // The QuickContact Activity result is handled in PeopleActivity.
- ImplicitIntentsUtil.startQuickContactForResult(getActivity(), contactLookupUri,
- previousScreen, ACTIVITY_REQUEST_QUICK_CONTACT);
+ ImplicitIntentsUtil.startQuickContact(
+ getActivity(), contactLookupUri, previousScreen);
}
}
@Override
public void onDeleteContactAction(Uri contactUri) {
- final ContactDeletionInteraction interacton =
- ContactDeletionInteraction.start(mActivity, contactUri, false);
- interacton.setListener(new ContactDeletionInteraction.Listener() {
- @Override
- public void onDeletionFinished() {
- maybeRestartDefaultDirectoryPartitionLoader();
- }
- });
+ ContactDeletionInteraction.start(mActivity, contactUri, false);
}
@Override
@@ -1168,16 +1157,6 @@
/* numSelected */ getSelectedContactIds().size());
mActionBarAdapter.setSelectionMode(false);
mIsDeletionInProgress = false;
- maybeRestartDefaultDirectoryPartitionLoader();
- }
- }
-
- // Because the yenta search loader is not automatically restarted when contacts are deleted
- // we must manually restart it when contacts displayed in yenta search results are deleted
- // either on this fragment directly or after opening QuickContact.
- public void maybeRestartDefaultDirectoryPartitionLoader() {
- if (isSearchMode() && Flags.getInstance().getBoolean(Experiments.SEARCH_YENTA)) {
- restartDefaultDirectoryPartitionLoader();
}
}
@@ -1204,7 +1183,7 @@
/* listType */ getListTypeIncludingSearch(),
/* count */ getAdapter().getCount(), /* clickedIndex */ -1,
/* numSelected */ getAdapter().getSelectedContactIds().size());
- break;
+
// TODO fix or remove multipicker code: ag/54762
// else if (resultCode == RESULT_CANCELED && mMode == MODE_PICK_MULTIPLE_PHONES) {
// // Finish the activity if the sub activity was canceled as back key is used
diff --git a/src/com/android/contacts/list/DefaultContactListAdapter.java b/src/com/android/contacts/list/DefaultContactListAdapter.java
index d8344c6..bc76331 100644
--- a/src/com/android/contacts/list/DefaultContactListAdapter.java
+++ b/src/com/android/contacts/list/DefaultContactListAdapter.java
@@ -31,11 +31,9 @@
import android.text.TextUtils;
import android.view.View;
-import com.android.contacts.Experiments;
import com.android.contacts.compat.ContactsCompat;
import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.preference.ContactsPreferences;
-import com.android.contactsbind.experiments.Flags;
import java.util.ArrayList;
import java.util.List;
@@ -116,13 +114,6 @@
loader.setUri(builder.build());
loader.setProjection(getProjection(true));
sortOrder = STREQUENT_SORT;
- if (Flags.getInstance().getBoolean(Experiments.SEARCH_YENTA)
- && loader instanceof FavoritesAndContactsLoader
- && directoryId == Directory.DEFAULT) {
- final FavoritesAndContactsLoader favoritesAndContactsLoader =
- (FavoritesAndContactsLoader) loader;
- favoritesAndContactsLoader.setAutocompleteQuery(query);
- }
}
} else {
final ContactListFilter filter = getFilter();
diff --git a/src/com/android/contacts/list/FavoritesAndContactsLoader.java b/src/com/android/contacts/list/FavoritesAndContactsLoader.java
index 5868d29..54e5f3f 100644
--- a/src/com/android/contacts/list/FavoritesAndContactsLoader.java
+++ b/src/com/android/contacts/list/FavoritesAndContactsLoader.java
@@ -22,38 +22,24 @@
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;
-import android.util.Log;
-import com.android.contacts.Experiments;
-import com.android.contactsbind.ObjectFactory;
-import com.android.contactsbind.experiments.Flags;
-import com.android.contactsbind.search.AutocompleteHelper;
import com.google.common.collect.Lists;
import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
/**
* A loader for use in the default contact list, which will also query for favorite contacts
* if configured to do so.
*/
-public class FavoritesAndContactsLoader extends CursorLoader implements
- AutocompleteHelper.Listener {
+public class FavoritesAndContactsLoader extends CursorLoader {
private boolean mLoadFavorites;
private String[] mProjection;
- private String mAutocompleteQuery;
- private CountDownLatch mAutocompleteLatch = new CountDownLatch(1);
- private Cursor mAutocompleteCursor;
- private int mAutocompleteTimeout;
public FavoritesAndContactsLoader(Context context) {
super(context);
- mAutocompleteTimeout = Flags.getInstance().getInteger(
- Experiments.SEARCH_YENTA_TIMEOUT_MILLIS);
}
/** Whether to load favorites and merge results in before any other results. */
@@ -61,10 +47,6 @@
mLoadFavorites = flag;
}
- public void setAutocompleteQuery(String autocompleteQuery) {
- mAutocompleteQuery = autocompleteQuery;
- }
-
public void setProjection(String[] projection) {
super.setProjection(projection);
mProjection = projection;
@@ -76,36 +58,8 @@
if (mLoadFavorites) {
cursors.add(loadFavoritesContacts());
}
-
- if (mAutocompleteQuery != null) {
- final AutocompleteHelper autocompleteHelper =
- ObjectFactory.getAutocompleteHelper(getContext());
- if (autocompleteHelper != null) {
- autocompleteHelper.setListener(this);
- autocompleteHelper.setProjection(mProjection);
- autocompleteHelper.setQuery(mAutocompleteQuery);
- try {
- if (!mAutocompleteLatch.await(mAutocompleteTimeout, TimeUnit.MILLISECONDS)) {
- logw("Timeout expired before receiving autocompletions");
- }
- } catch (InterruptedException e) {
- logw("Interrupted while waiting for autocompletions");
- }
- if (mAutocompleteCursor != null) {
- cursors.add(mAutocompleteCursor);
- // TODO: exclude these results from the main loader results, see b/30742359
- }
- }
- }
-
- // TODO: if the autocomplete experiment in on, only show those results even if they're empty
- final Cursor contactsCursor = mAutocompleteQuery == null ? loadContacts() : null;
- if (mAutocompleteQuery == null) {
- cursors.add(contactsCursor);
- }
- // Guard against passing an empty array to the MergeCursor constructor
- if (cursors.isEmpty()) cursors.add(null);
-
+ final Cursor contactsCursor = loadContacts();
+ cursors.add(contactsCursor);
return new MergeCursor(cursors.toArray(new Cursor[cursors.size()])) {
@Override
public Bundle getExtras() {
@@ -139,18 +93,4 @@
Contacts.CONTENT_URI, mProjection, selection.toString(), new String[]{"1"},
getSortOrder());
}
-
- @Override
- public void onAutocompletesAvailable(Cursor cursor) {
- if (cursor != null && cursor.getCount() > 0) {
- mAutocompleteCursor = cursor;
- mAutocompleteLatch.countDown();
- }
- }
-
- private static void logw(String message) {
- if (Log.isLoggable(AutocompleteHelper.TAG, Log.WARN)) {
- Log.w(AutocompleteHelper.TAG, message);
- }
- }
}