summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2017-09-19 11:20:31 -0700
committerEric Erfanian <erfanian@google.com>2017-09-19 13:13:23 -0700
commit218fff34d5a6b0a7191c9a3bba403945144528c1 (patch)
tree1a7be5a702a2f7bf7da94b99bee408b6ef7a9d18
parent07e75c776ff291514b6a42b7de57f69df5e496fc (diff)
Removed zero suggest from dialpad search in new search fragment.
Zero suggest in dialpad search clutters the UI and we shouldn't show and search results until the user has input something into the dialpad. Additionally, this change ensures the fab stays hidden through device rotation in regular search. Bug: 65858825 Test: implemented PiperOrigin-RevId: 169270161 Change-Id: Ia08ce56ffd02f74ea9e4d9d8a1efc3726fcc66d9
-rw-r--r--java/com/android/dialer/app/DialtactsActivity.java5
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java20
-rw-r--r--java/com/android/dialer/searchfragment/list/SearchAdapter.java14
3 files changed, 35 insertions, 4 deletions
diff --git a/java/com/android/dialer/app/DialtactsActivity.java b/java/com/android/dialer/app/DialtactsActivity.java
index 588f9d77e..74bf98dae 100644
--- a/java/com/android/dialer/app/DialtactsActivity.java
+++ b/java/com/android/dialer/app/DialtactsActivity.java
@@ -173,6 +173,7 @@ public class DialtactsActivity extends TransactionSafeActivity
private static final String KEY_FIRST_LAUNCH = "first_launch";
private static final String KEY_WAS_CONFIGURATION_CHANGE = "was_configuration_change";
private static final String KEY_IS_DIALPAD_SHOWN = "is_dialpad_shown";
+ private static final String KEY_FAB_VISIBLE = "fab_visible";
private static final String TAG_NEW_SEARCH_FRAGMENT = "new_search";
private static final String TAG_REGULAR_SEARCH_FRAGMENT = "search";
private static final String TAG_SMARTDIAL_SEARCH_FRAGMENT = "smartdial";
@@ -435,6 +436,7 @@ public class DialtactsActivity extends TransactionSafeActivity
mFirstLaunch = savedInstanceState.getBoolean(KEY_FIRST_LAUNCH);
mWasConfigurationChange = savedInstanceState.getBoolean(KEY_WAS_CONFIGURATION_CHANGE);
mShowDialpadOnResume = savedInstanceState.getBoolean(KEY_IS_DIALPAD_SHOWN);
+ mFloatingActionButtonController.setVisible(savedInstanceState.getBoolean(KEY_FAB_VISIBLE));
mActionBarController.restoreInstanceState(savedInstanceState);
}
@@ -629,6 +631,7 @@ public class DialtactsActivity extends TransactionSafeActivity
outState.putBoolean(KEY_IN_NEW_SEARCH_UI, mInNewSearch);
outState.putBoolean(KEY_FIRST_LAUNCH, mFirstLaunch);
outState.putBoolean(KEY_IS_DIALPAD_SHOWN, mIsDialpadShown);
+ outState.putBoolean(KEY_FAB_VISIBLE, mFloatingActionButtonController.isVisible());
outState.putBoolean(KEY_WAS_CONFIGURATION_CHANGE, isChangingConfigurations());
mActionBarController.saveInstanceState(outState);
mStateSaved = true;
@@ -1180,7 +1183,7 @@ public class DialtactsActivity extends TransactionSafeActivity
Fragment fragment = getFragmentManager().findFragmentByTag(tag);
if (fragment == null) {
if (useNewSearch) {
- fragment = new NewSearchFragment();
+ fragment = NewSearchFragment.newInstance(!isDialpadShown());
} else if (smartDialSearch) {
fragment = new SmartDialSearchFragment();
} else {
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index 036d53fb5..3cf8fb5b9 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -73,6 +73,8 @@ public final class NewSearchFragment extends Fragment
// updates so they are bundled together
private static final int ENRICHED_CALLING_CAPABILITIES_UPDATED_DELAY = 400;
+ private static final String KEY_SHOW_ZERO_SUGGEST = "use_zero_suggest";
+
@VisibleForTesting public static final int READ_CONTACTS_PERMISSION_REQUEST_CODE = 1;
private static final int CONTACTS_LOADER_ID = 0;
@@ -99,6 +101,14 @@ public final class NewSearchFragment extends Fragment
private Runnable updatePositionRunnable;
+ public static NewSearchFragment newInstance(boolean showZeroSuggest) {
+ NewSearchFragment fragment = new NewSearchFragment();
+ Bundle args = new Bundle();
+ args.putBoolean(KEY_SHOW_ZERO_SUGGEST, showZeroSuggest);
+ fragment.setArguments(args);
+ return fragment;
+ }
+
@Nullable
@Override
public View onCreateView(
@@ -107,6 +117,7 @@ public final class NewSearchFragment extends Fragment
adapter = new SearchAdapter(getActivity(), new SearchCursorManager());
adapter.setCallInitiationType(callInitiationType);
adapter.setSearchActions(getActions());
+ adapter.setZeroSuggestVisible(getArguments().getBoolean(KEY_SHOW_ZERO_SUGGEST));
emptyContentView = view.findViewById(R.id.empty_view);
recyclerView = view.findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
@@ -212,6 +223,7 @@ public final class NewSearchFragment extends Fragment
adapter.setQuery(query);
adapter.setCallInitiationType(callInitiationType);
adapter.setSearchActions(getActions());
+ adapter.setZeroSuggestVisible(isRegularSearch());
loadNearbyPlacesCursor();
loadRemoteContactsCursors();
}
@@ -354,9 +366,7 @@ public final class NewSearchFragment extends Fragment
* the list of supported actions, see {@link SearchActionViewHolder.Action}.
*/
private List<Integer> getActions() {
- if (TextUtils.isEmpty(query)
- || query.length() == 1
- || callInitiationType == CallInitiationType.Type.REGULAR_SEARCH) {
+ if (TextUtils.isEmpty(query) || query.length() == 1 || isRegularSearch()) {
return Collections.emptyList();
}
@@ -369,4 +379,8 @@ public final class NewSearchFragment extends Fragment
}
return actions;
}
+
+ private boolean isRegularSearch() {
+ return callInitiationType == CallInitiationType.Type.REGULAR_SEARCH;
+ }
}
diff --git a/java/com/android/dialer/searchfragment/list/SearchAdapter.java b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
index 3bfdd98f3..d4b5cf29d 100644
--- a/java/com/android/dialer/searchfragment/list/SearchAdapter.java
+++ b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
@@ -21,6 +21,7 @@ import android.content.Intent;
import android.support.annotation.VisibleForTesting;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
+import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import com.android.dialer.callcomposer.CallComposerActivity;
@@ -50,6 +51,7 @@ public final class SearchAdapter extends RecyclerView.Adapter<ViewHolder>
private final SearchCursorManager searchCursorManager;
private final Activity activity;
+ private boolean showZeroSuggest;
private String query;
private CallInitiationType.Type callInitiationType = CallInitiationType.Type.UNKNOWN_INITIATION;
@@ -124,9 +126,21 @@ public final class SearchAdapter extends RecyclerView.Adapter<ViewHolder>
@Override
public int getItemCount() {
+ if (TextUtils.isEmpty(query) && !showZeroSuggest) {
+ return 0;
+ }
return searchCursorManager.getCount();
}
+ /**
+ * @param visible If true and query is empty, the adapter won't show any list elements.
+ * @see #setQuery(String)
+ * @see #getItemCount()
+ */
+ public void setZeroSuggestVisible(boolean visible) {
+ showZeroSuggest = visible;
+ }
+
public void setQuery(String query) {
this.query = query;
if (searchCursorManager.setQuery(query)) {