summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/main/impl/MainSearchController.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/main/impl/MainSearchController.java')
-rw-r--r--java/com/android/dialer/main/impl/MainSearchController.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/java/com/android/dialer/main/impl/MainSearchController.java b/java/com/android/dialer/main/impl/MainSearchController.java
index 76c93bb87..041e32ed7 100644
--- a/java/com/android/dialer/main/impl/MainSearchController.java
+++ b/java/com/android/dialer/main/impl/MainSearchController.java
@@ -17,6 +17,7 @@
package com.android.dialer.main.impl;
import android.app.FragmentTransaction;
+import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.design.widget.FloatingActionButton;
import android.text.TextUtils;
@@ -52,6 +53,12 @@ import com.google.common.base.Optional;
*/
final class MainSearchController implements SearchBarListener {
+ private static final String KEY_IS_FAB_HIDDEN = "is_fab_hidden";
+ private static final String KEY_CURRENT_TAB = "current_tab";
+ private static final String KEY_BOTTOM_NAV_VISIBILITY = "bottom_nav_visibility";
+ private static final String KEY_IS_TOOLBAR_EXPANDED = "is_toolbar_expanded";
+ private static final String KEY_IS_TOOLBAR_SLIDE_UP = "is_toolbar_slide_up";
+
private static final String DIALPAD_FRAGMENT_TAG = "dialpad_fragment_tag";
private static final String SEARCH_FRAGMENT_TAG = "search_fragment_tag";
@@ -155,6 +162,7 @@ final class MainSearchController implements SearchBarListener {
/** Should be called when {@link DialpadListener#onDialpadShown()} is called. */
public void onDialpadShown() {
getDialpadFragment().slideUp(true);
+ hideBottomNav();
}
/**
@@ -293,4 +301,26 @@ final class MainSearchController implements SearchBarListener {
@Override
public void sendFeedback() {}
+
+ public void onSaveInstanceState(Bundle bundle) {
+ bundle.putBoolean(KEY_IS_FAB_HIDDEN, !fab.isShown());
+ bundle.putInt(KEY_CURRENT_TAB, bottomNav.getSelectedTab());
+ bundle.putInt(KEY_BOTTOM_NAV_VISIBILITY, bottomNav.getVisibility());
+ bundle.putBoolean(KEY_IS_TOOLBAR_EXPANDED, toolbar.isExpanded());
+ bundle.putBoolean(KEY_IS_TOOLBAR_SLIDE_UP, toolbar.isSlideUp());
+ }
+
+ public void onRestoreInstanceState(Bundle savedInstanceState) {
+ bottomNav.selectTab(savedInstanceState.getInt(KEY_CURRENT_TAB));
+ bottomNav.setVisibility(savedInstanceState.getInt(KEY_BOTTOM_NAV_VISIBILITY));
+ if (savedInstanceState.getBoolean(KEY_IS_FAB_HIDDEN, false)) {
+ fab.hide();
+ }
+ if (savedInstanceState.getBoolean(KEY_IS_TOOLBAR_EXPANDED, false)) {
+ toolbar.expand(false, Optional.absent());
+ }
+ if (savedInstanceState.getBoolean(KEY_IS_TOOLBAR_SLIDE_UP, false)) {
+ toolbar.slideUp(false);
+ }
+ }
}