Set bottom padding of the main fragment when the mini player is visible
This commit is contained in:
parent
5ef407d15f
commit
d3d65c8e3a
|
@ -2176,6 +2176,30 @@ public class VideoDetailFragment
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When the mini player exists the view underneath it is not touchable.
|
||||||
|
* Bottom padding should be equal to the mini player's height in this case
|
||||||
|
*
|
||||||
|
* @param showMore whether main fragment should be expanded or not
|
||||||
|
* */
|
||||||
|
private void manageSpaceAtTheBottom(final boolean showMore) {
|
||||||
|
final int peekHeight = getResources().getDimensionPixelSize(R.dimen.mini_player_height);
|
||||||
|
final ViewGroup holder = requireActivity().findViewById(R.id.fragment_holder);
|
||||||
|
final int newBottomPadding;
|
||||||
|
if (showMore) {
|
||||||
|
newBottomPadding = 0;
|
||||||
|
} else {
|
||||||
|
newBottomPadding = peekHeight;
|
||||||
|
}
|
||||||
|
if (holder.getPaddingBottom() == newBottomPadding) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
holder.setPadding(holder.getPaddingLeft(),
|
||||||
|
holder.getPaddingTop(),
|
||||||
|
holder.getPaddingRight(),
|
||||||
|
newBottomPadding);
|
||||||
|
}
|
||||||
|
|
||||||
private void setupBottomPlayer() {
|
private void setupBottomPlayer() {
|
||||||
final CoordinatorLayout.LayoutParams params =
|
final CoordinatorLayout.LayoutParams params =
|
||||||
(CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
|
(CoordinatorLayout.LayoutParams) appBarLayout.getLayoutParams();
|
||||||
|
@ -2186,6 +2210,7 @@ public class VideoDetailFragment
|
||||||
bottomSheetBehavior.setState(bottomSheetState);
|
bottomSheetBehavior.setState(bottomSheetState);
|
||||||
final int peekHeight = getResources().getDimensionPixelSize(R.dimen.mini_player_height);
|
final int peekHeight = getResources().getDimensionPixelSize(R.dimen.mini_player_height);
|
||||||
if (bottomSheetState != BottomSheetBehavior.STATE_HIDDEN) {
|
if (bottomSheetState != BottomSheetBehavior.STATE_HIDDEN) {
|
||||||
|
manageSpaceAtTheBottom(false);
|
||||||
bottomSheetBehavior.setPeekHeight(peekHeight);
|
bottomSheetBehavior.setPeekHeight(peekHeight);
|
||||||
if (bottomSheetState == BottomSheetBehavior.STATE_COLLAPSED) {
|
if (bottomSheetState == BottomSheetBehavior.STATE_COLLAPSED) {
|
||||||
overlay.setAlpha(MAX_OVERLAY_ALPHA);
|
overlay.setAlpha(MAX_OVERLAY_ALPHA);
|
||||||
|
@ -2203,12 +2228,14 @@ public class VideoDetailFragment
|
||||||
switch (newState) {
|
switch (newState) {
|
||||||
case BottomSheetBehavior.STATE_HIDDEN:
|
case BottomSheetBehavior.STATE_HIDDEN:
|
||||||
moveFocusToMainFragment(true);
|
moveFocusToMainFragment(true);
|
||||||
|
manageSpaceAtTheBottom(true);
|
||||||
|
|
||||||
bottomSheetBehavior.setPeekHeight(0);
|
bottomSheetBehavior.setPeekHeight(0);
|
||||||
cleanUp();
|
cleanUp();
|
||||||
break;
|
break;
|
||||||
case BottomSheetBehavior.STATE_EXPANDED:
|
case BottomSheetBehavior.STATE_EXPANDED:
|
||||||
moveFocusToMainFragment(false);
|
moveFocusToMainFragment(false);
|
||||||
|
manageSpaceAtTheBottom(false);
|
||||||
|
|
||||||
bottomSheetBehavior.setPeekHeight(peekHeight);
|
bottomSheetBehavior.setPeekHeight(peekHeight);
|
||||||
// Disable click because overlay buttons located on top of buttons
|
// Disable click because overlay buttons located on top of buttons
|
||||||
|
|
Loading…
Reference in New Issue