diff options
Diffstat (limited to 'java/com/android/dialer/main/impl/MainSearchController.java')
-rw-r--r-- | java/com/android/dialer/main/impl/MainSearchController.java | 30 |
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); + } + } } |