summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/searchfragment
diff options
context:
space:
mode:
authorcalderwoodra <calderwoodra@google.com>2017-09-18 14:26:14 -0700
committerEric Erfanian <erfanian@google.com>2017-09-18 15:46:04 -0700
commitdf06af5411002174c6aeb653ca7790f202284de6 (patch)
tree0aacd85dd55bd03870f54e2f14911338f3883c1b /java/com/android/dialer/searchfragment
parentb615f7b460de730094af948e9827a9a1017ce1fd (diff)
Now persist state through configuration changes in Search.
This CL adds logic to persist the search query and call initiation type through configuration changes like device rotation. list of bugs: https://docs.google.com/document/d/1GajzkAqXXRqbj_-qeYeDxIKr0fPsSZC3nXhRkIQg5tE/edit#heading=h.bopot1qivvxg Bug: 65751247 Test: NSFT PiperOrigin-RevId: 169146766 Change-Id: I7a68c01d5698c07a362ad621642a9138fd9a9aaa
Diffstat (limited to 'java/com/android/dialer/searchfragment')
-rw-r--r--java/com/android/dialer/searchfragment/list/NewSearchFragment.java18
-rw-r--r--java/com/android/dialer/searchfragment/list/SearchAdapter.java7
2 files changed, 22 insertions, 3 deletions
diff --git a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
index 2527b87ee..036d53fb5 100644
--- a/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
+++ b/java/com/android/dialer/searchfragment/list/NewSearchFragment.java
@@ -80,6 +80,9 @@ public final class NewSearchFragment extends Fragment
private static final int REMOTE_DIRECTORIES_LOADER_ID = 2;
private static final int REMOTE_CONTACTS_LOADER_ID = 3;
+ private static final String KEY_QUERY = "key_query";
+ private static final String KEY_CALL_INITIATION_TYPE = "key_call_initiation_type";
+
private EmptyContentView emptyContentView;
private RecyclerView recyclerView;
private SearchAdapter adapter;
@@ -99,7 +102,7 @@ public final class NewSearchFragment extends Fragment
@Nullable
@Override
public View onCreateView(
- LayoutInflater inflater, @Nullable ViewGroup parent, @Nullable Bundle bundle) {
+ LayoutInflater inflater, @Nullable ViewGroup parent, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_search, parent, false);
adapter = new SearchAdapter(getActivity(), new SearchCursorManager());
adapter.setCallInitiationType(callInitiationType);
@@ -119,12 +122,25 @@ public final class NewSearchFragment extends Fragment
initLoaders();
}
+ if (savedInstanceState != null) {
+ setQuery(
+ savedInstanceState.getString(KEY_QUERY),
+ CallInitiationType.Type.forNumber(savedInstanceState.getInt(KEY_CALL_INITIATION_TYPE)));
+ }
+
if (updatePositionRunnable != null) {
ViewUtil.doOnPreDraw(view, false, updatePositionRunnable);
}
return view;
}
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ outState.putInt(KEY_CALL_INITIATION_TYPE, callInitiationType.getNumber());
+ outState.putString(KEY_QUERY, query);
+ }
+
private void initLoaders() {
getLoaderManager().initLoader(CONTACTS_LOADER_ID, null, this);
loadRemoteDirectoriesCursor();
diff --git a/java/com/android/dialer/searchfragment/list/SearchAdapter.java b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
index 61055a0c1..3bfdd98f3 100644
--- a/java/com/android/dialer/searchfragment/list/SearchAdapter.java
+++ b/java/com/android/dialer/searchfragment/list/SearchAdapter.java
@@ -111,8 +111,11 @@ public final class SearchAdapter extends RecyclerView.Adapter<ViewHolder>
}
public void setContactsCursor(SearchCursor cursor) {
- searchCursorManager.setContactsCursor(cursor);
- notifyDataSetChanged();
+ if (searchCursorManager.setContactsCursor(cursor)) {
+ // Since this is a new contacts cursor, we need to reapply the filter.
+ searchCursorManager.setQuery(query);
+ notifyDataSetChanged();
+ }
}
void clear() {