fix back button behavior

This commit is contained in:
Adrian Ulrich 2018-06-16 16:08:33 +02:00
parent 54414e1a4f
commit bd9676c139
3 changed files with 15 additions and 7 deletions

View File

@ -458,7 +458,7 @@ public class FullPlaybackActivity extends SlidingPlaybackActivity
mHandler.sendEmptyMessage(MSG_SAVE_CONTROLS); mHandler.sendEmptyMessage(MSG_SAVE_CONTROLS);
return true; return true;
case KeyEvent.KEYCODE_BACK: case KeyEvent.KEYCODE_BACK:
if (mSlidingView.isHidden() == false) { if (mSlidingView.isShrinkable()) {
mSlidingView.hideSlide(); mSlidingView.hideSlide();
return true; return true;
} }

View File

@ -284,7 +284,7 @@ public class LibraryActivity
case KeyEvent.KEYCODE_BACK: case KeyEvent.KEYCODE_BACK:
Limiter limiter = mPagerAdapter.getCurrentLimiter(); Limiter limiter = mPagerAdapter.getCurrentLimiter();
if (mSlidingView.isHidden() == false) { if (mSlidingView.isShrinkable()) {
mSlidingView.hideSlide(); mSlidingView.hideSlide();
break; break;
} }
@ -439,7 +439,7 @@ public class LibraryActivity
*/ */
public void openPlaybackActivity() public void openPlaybackActivity()
{ {
if (mSlidingView.isExpanded()) if (mSlidingView.isShrinkable())
mSlidingView.hideSlideDelayed(); mSlidingView.hideSlideDelayed();
startActivity(new Intent(this, FullPlaybackActivity.class)); startActivity(new Intent(this, FullPlaybackActivity.class));
} }
@ -784,7 +784,7 @@ public class LibraryActivity
menu.findItem(MENU_GO_HOME).setVisible( menu.findItem(MENU_GO_HOME).setVisible(
adapter != null && adapter != null &&
adapter.getMediaType() == MediaUtils.TYPE_FILE && adapter.getMediaType() == MediaUtils.TYPE_FILE &&
!mSlidingView.isExpanded()); (!mSlidingView.isShrinkable() || !mSlidingView.isFullyExpanded()));
return super.onPrepareOptionsMenu(menu); return super.onPrepareOptionsMenu(menu);
} }

View File

@ -164,19 +164,27 @@ public class SlidingView extends FrameLayout
} }
/** /**
* Returns true if the slide is fully hidden * Returns true if the slide is in its smallest stage
*/ */
public boolean isHidden() { public boolean isMinimized() {
return mCurrentStage == 0; return mCurrentStage == 0;
} }
/** /**
* Returns true if the slide is fully expanded * Returns true if the slide is fully expanded
*/ */
public boolean isExpanded() { public boolean isFullyExpanded() {
return mCurrentStage == (mStages.size()-1); return mCurrentStage == (mStages.size()-1);
} }
/**
* Returns true if the slide can be minimized, that is:
* It is not always visible and NOT in stage 0.
*/
public boolean isShrinkable() {
return !mSliderAlwaysExpanded && !isMinimized();
}
/** /**
* Transforms to the new expansion state * Transforms to the new expansion state
* *