Merge pull request #4360 from avently/player-overlays
Player overlays now centered
This commit is contained in:
commit
794c74e514
6 changed files with 242 additions and 219 deletions
|
|
@ -172,6 +172,8 @@ public class VideoPlayerImpl extends VideoPlayer
|
|||
private RecyclerView itemsList;
|
||||
private ItemTouchHelper itemTouchHelper;
|
||||
|
||||
private RelativeLayout playerOverlays;
|
||||
|
||||
private boolean queueVisible;
|
||||
private MainPlayer.PlayerType playerType = MainPlayer.PlayerType.VIDEO;
|
||||
|
||||
|
|
@ -305,6 +307,8 @@ public class VideoPlayerImpl extends VideoPlayer
|
|||
this.itemsListCloseButton = view.findViewById(R.id.playQueueClose);
|
||||
this.itemsList = view.findViewById(R.id.playQueue);
|
||||
|
||||
this.playerOverlays = view.findViewById(R.id.player_overlays);
|
||||
|
||||
closingOverlayView = view.findViewById(R.id.closingOverlay);
|
||||
|
||||
titleTextView.setSelected(true);
|
||||
|
|
@ -481,6 +485,16 @@ public class VideoPlayerImpl extends VideoPlayer
|
|||
return windowInsets;
|
||||
});
|
||||
}
|
||||
|
||||
// PlaybackControlRoot already consumed window insets but we should pass them to
|
||||
// player_overlays too. Without it they will be off-centered
|
||||
getControlsRoot().addOnLayoutChangeListener((v, left, top, right, bottom,
|
||||
oldLeft, oldTop, oldRight, oldBottom) ->
|
||||
playerOverlays.setPadding(
|
||||
v.getPaddingLeft(),
|
||||
v.getPaddingTop(),
|
||||
v.getPaddingRight(),
|
||||
v.getPaddingBottom()));
|
||||
}
|
||||
|
||||
public boolean onKeyDown(final int keyCode) {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import android.graphics.Rect;
|
|||
import android.util.AttributeSet;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.FrameLayout;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.coordinatorlayout.widget.CoordinatorLayout;
|
||||
|
|
@ -21,12 +20,12 @@ public class CustomBottomSheetBehavior extends BottomSheetBehavior<FrameLayout>
|
|||
super(context, attrs);
|
||||
}
|
||||
|
||||
boolean visible;
|
||||
Rect globalRect = new Rect();
|
||||
private boolean skippingInterception = false;
|
||||
private final List<Integer> skipInterceptionOfElements = Arrays.asList(
|
||||
R.id.detail_content_root_layout, R.id.relatedStreamsLayout,
|
||||
R.id.playQueuePanel, R.id.viewpager, R.id.bottomControls);
|
||||
R.id.playQueuePanel, R.id.viewpager, R.id.bottomControls,
|
||||
R.id.playPauseButton, R.id.playPreviousButton, R.id.playNextButton);
|
||||
|
||||
@Override
|
||||
public boolean onInterceptTouchEvent(@NonNull final CoordinatorLayout parent,
|
||||
|
|
@ -48,9 +47,9 @@ public class CustomBottomSheetBehavior extends BottomSheetBehavior<FrameLayout>
|
|||
&& event.getAction() == MotionEvent.ACTION_DOWN) {
|
||||
// Without overriding scrolling will not work when user touches these elements
|
||||
for (final Integer element : skipInterceptionOfElements) {
|
||||
final ViewGroup viewGroup = child.findViewById(element);
|
||||
if (viewGroup != null) {
|
||||
visible = viewGroup.getGlobalVisibleRect(globalRect);
|
||||
final View view = child.findViewById(element);
|
||||
if (view != null) {
|
||||
final boolean visible = view.getGlobalVisibleRect(globalRect);
|
||||
if (visible
|
||||
&& globalRect.contains((int) event.getRawX(), (int) event.getRawY())) {
|
||||
// Makes bottom part of the player draggable in portrait when
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue