diff options
| author | calderwoodra <calderwoodra@google.com> | 2018-01-18 16:51:04 -0800 |
|---|---|---|
| committer | Copybara-Service <copybara-piper@google.com> | 2018-01-18 16:53:20 -0800 |
| commit | 5d272d8c24b2719cacd4940d418efb3559a1fb09 (patch) | |
| tree | 2b045b00d3e609a80196b2a10b829305d6dacbeb /java/com/android/dialer/main/impl/MainSearchController.java | |
| parent | 35f0cc15be02efe78c411da6ff653d3475f30421 (diff) | |
Search, Dialpad, BottomBar and Toolbar now persist state through rotation.
Bug: 64655802
Test: MainActivityIntegrationTest
PiperOrigin-RevId: 182460232
Change-Id: I59b5f6417dd4f1c2b56a9b8d08b9e12e0c51c411
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); + } + } } |
