From 4676b6ab68acd6d601958b1b4df45953b8dd090b Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Tue, 7 Jul 2015 19:13:03 -0700 Subject: Fix panel state when rotating with panel expanded --- .../daneren2005/dsub/activity/SubsonicFragmentActivity.java | 13 +++++++++---- .../main/java/github/daneren2005/dsub/util/Constants.java | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java index 0e9101f8..276a89d0 100644 --- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java +++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java @@ -90,12 +90,12 @@ public class SubsonicFragmentActivity extends SubsonicActivity { private Handler handler = new Handler(); private SlidingUpPanelLayout slideUpPanel; + private SlidingUpPanelLayout.PanelSlideListener panelSlideListener; private NowPlayingFragment nowPlayingFragment; private Toolbar mainToolbar; private Toolbar nowPlayingToolbar; private ScheduledExecutorService executorService; - private View slideUpFrame; private View bottomBar; private ImageView coverArtView; private TextView trackView; @@ -201,7 +201,7 @@ public class SubsonicFragmentActivity extends SubsonicActivity { } slideUpPanel = (SlidingUpPanelLayout) findViewById(R.id.slide_up_panel); - slideUpPanel.setPanelSlideListener(new SlidingUpPanelLayout.PanelSlideListener() { + panelSlideListener = new SlidingUpPanelLayout.PanelSlideListener() { @Override public void onPanelSlide(View panel, float slideOffset) { @@ -248,7 +248,8 @@ public class SubsonicFragmentActivity extends SubsonicActivity { public void onPanelHidden(View panel) { } - }); + }; + slideUpPanel.setPanelSlideListener(panelSlideListener); if(getIntent().hasExtra(Constants.INTENT_EXTRA_NAME_DOWNLOAD)) { // Post this later so it actually runs @@ -260,7 +261,6 @@ public class SubsonicFragmentActivity extends SubsonicActivity { }, 200); } - slideUpFrame = findViewById(R.id.slide_up_frame); bottomBar = findViewById(R.id.bottom_bar); mainToolbar = (Toolbar) findViewById(R.id.main_toolbar); nowPlayingToolbar = (Toolbar) findViewById(R.id.now_playing_toolbar); @@ -451,6 +451,7 @@ public class SubsonicFragmentActivity extends SubsonicActivity { public void onSaveInstanceState(Bundle savedInstanceState) { super.onSaveInstanceState(savedInstanceState); savedInstanceState.putString(Constants.MAIN_NOW_PLAYING, nowPlayingFragment.getTag()); + savedInstanceState.putInt(Constants.MAIN_SLIDE_PANEL_STATE, slideUpPanel.getPanelState().hashCode()); } @Override public void onRestoreInstanceState(Bundle savedInstanceState) { @@ -462,6 +463,10 @@ public class SubsonicFragmentActivity extends SubsonicActivity { if(drawerToggle != null && backStack.size() > 0) { drawerToggle.setDrawerIndicatorEnabled(false); } + + if(savedInstanceState.getInt(Constants.MAIN_SLIDE_PANEL_STATE, -1) == SlidingUpPanelLayout.PanelState.EXPANDED.hashCode()) { + panelSlideListener.onPanelExpanded(null); + } } @Override diff --git a/app/src/main/java/github/daneren2005/dsub/util/Constants.java b/app/src/main/java/github/daneren2005/dsub/util/Constants.java index 6252d0e4..95fabc23 100644 --- a/app/src/main/java/github/daneren2005/dsub/util/Constants.java +++ b/app/src/main/java/github/daneren2005/dsub/util/Constants.java @@ -173,6 +173,7 @@ public final class Constants { public static final String MAIN_BACK_STACK = "backStackIds"; public static final String MAIN_BACK_STACK_SIZE = "backStackIdsSize"; public static final String MAIN_NOW_PLAYING = "nowPlayingId"; + public static final String MAIN_SLIDE_PANEL_STATE = "slidePanelState"; public static final String FRAGMENT_LIST = "fragmentList"; public static final String FRAGMENT_LIST2 = "fragmentList2"; public static final String FRAGMENT_EXTRA = "fragmentExtra"; -- cgit v1.2.3