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);
return true;
case KeyEvent.KEYCODE_BACK:
if (mSlidingView.isHidden() == false) {
if (mSlidingView.isShrinkable()) {
mSlidingView.hideSlide();
return true;
}

View File

@ -284,7 +284,7 @@ public class LibraryActivity
case KeyEvent.KEYCODE_BACK:
Limiter limiter = mPagerAdapter.getCurrentLimiter();
if (mSlidingView.isHidden() == false) {
if (mSlidingView.isShrinkable()) {
mSlidingView.hideSlide();
break;
}
@ -439,7 +439,7 @@ public class LibraryActivity
*/
public void openPlaybackActivity()
{
if (mSlidingView.isExpanded())
if (mSlidingView.isShrinkable())
mSlidingView.hideSlideDelayed();
startActivity(new Intent(this, FullPlaybackActivity.class));
}
@ -784,7 +784,7 @@ public class LibraryActivity
menu.findItem(MENU_GO_HOME).setVisible(
adapter != null &&
adapter.getMediaType() == MediaUtils.TYPE_FILE &&
!mSlidingView.isExpanded());
(!mSlidingView.isShrinkable() || !mSlidingView.isFullyExpanded()));
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;
}
/**
* Returns true if the slide is fully expanded
*/
public boolean isExpanded() {
public boolean isFullyExpanded() {
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
*