- fix PiP issues

- fix overlay issues
This commit is contained in:
Kai 2024-12-17 13:44:16 -06:00
commit 04c0679930
No known key found for this signature in database
5 changed files with 47 additions and 31 deletions

View file

@ -255,14 +255,14 @@ class VideoDetailFragment() : MainFragment() {
fun minimizeVideoDetail() { fun minimizeVideoDetail() {
_viewDetail?.setFullscreen(false); _viewDetail?.setFullscreen(false);
_motionLayout?.setTransition(R.id.maximize) _motionLayout?.transitionToState(R.id.collapsed)
_motionLayout?.transitionToStart();
} }
fun maximizeVideoDetail(instant: Boolean) { fun maximizeVideoDetail(instant: Boolean) {
state = State.MAXIMIZED state = State.MAXIMIZED
onMaximized.emit() onMaximized.emit()
if(instant) { if(instant) {
_motionLayout?.setState(R.id.collapsed, _motionLayout!!.width,_motionLayout!!.height) _motionLayout?.setTransition(R.id.maximize)
_motionLayout?.progress = 1f
} else { } else {
_motionLayout?.transitionToState(R.id.expanded) _motionLayout?.transitionToState(R.id.expanded)
} }
@ -286,8 +286,7 @@ class VideoDetailFragment() : MainFragment() {
viewDetail.onVideoChanged.subscribe(::onVideoChanged) viewDetail.onVideoChanged.subscribe(::onVideoChanged)
viewDetail.onMinimize.subscribe { viewDetail.onMinimize.subscribe {
isMinimizingFromFullScreen = true isMinimizingFromFullScreen = true
_motionLayout!!.setTransition(R.id.maximize) _motionLayout?.transitionToState(R.id.collapsed)
_motionLayout!!.transitionToStart()
}; };
viewDetail.onClose.subscribe { viewDetail.onClose.subscribe {
Logger.i(TAG, "onClose") Logger.i(TAG, "onClose")

View file

@ -807,7 +807,6 @@ class VideoDetailView(fragment: VideoDetailFragment, inflater: LayoutInflater) :
if(currentId == R.id.full_screen_gesture) { if(currentId == R.id.full_screen_gesture) {
setFullscreen(true) setFullscreen(true)
motionLayout?.transitionToState(R.id.expanded) motionLayout?.transitionToState(R.id.expanded)
motionLayout?.isInteractionEnabled = false
} }
} }

View file

@ -113,7 +113,6 @@ class FutoVideoPlayer : FutoVideoPlayerBase {
private var _lastSourceFit: Float? = null; private var _lastSourceFit: Float? = null;
private var _lastWindowWidth: Int = resources.configuration.screenWidthDp private var _lastWindowWidth: Int = resources.configuration.screenWidthDp
private var _lastWindowHeight: Int = resources.configuration.screenHeightDp private var _lastWindowHeight: Int = resources.configuration.screenHeightDp
private var _originalBottomMargin: Int = 0;
private var _isControlsLocked: Boolean = false; private var _isControlsLocked: Boolean = false;
@ -710,11 +709,6 @@ class FutoVideoPlayer : FutoVideoPlayerBase {
@OptIn(UnstableApi::class) @OptIn(UnstableApi::class)
fun fitHeight(videoSize: VideoSize? = null) { fun fitHeight(videoSize: VideoSize? = null) {
Logger.i(TAG, "Video Fit Height") Logger.i(TAG, "Video Fit Height")
if (_originalBottomMargin != 0) {
val layoutParams = _videoView.layoutParams as ConstraintLayout.LayoutParams
layoutParams.setMargins(0, 0, 0, _originalBottomMargin)
_videoView.layoutParams = layoutParams
}
var h = videoSize?.height ?: lastVideoSource?.height ?: exoPlayer?.player?.videoSize?.height var h = videoSize?.height ?: lastVideoSource?.height ?: exoPlayer?.player?.videoSize?.height
?: 0 ?: 0
@ -760,6 +754,7 @@ class FutoVideoPlayer : FutoVideoPlayerBase {
_lastSourceFit!!, _lastSourceFit!!,
resources.displayMetrics resources.displayMetrics
) )
_videoView.setPadding(_videoView.paddingLeft, _videoView.paddingTop, _videoView.paddingRight, TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 7.0f, Resources.getSystem().displayMetrics).toInt())
val rootParams = LayoutParams(LayoutParams.MATCH_PARENT, (height).toInt()) val rootParams = LayoutParams(LayoutParams.MATCH_PARENT, (height).toInt())
_root.layoutParams = rootParams _root.layoutParams = rootParams
isFitMode = true isFitMode = true
@ -768,9 +763,7 @@ class FutoVideoPlayer : FutoVideoPlayerBase {
@OptIn(UnstableApi::class) @OptIn(UnstableApi::class)
fun fillHeight(isMiniPlayer: Boolean) { fun fillHeight(isMiniPlayer: Boolean) {
Logger.i(TAG, "Video Fill Height"); Logger.i(TAG, "Video Fill Height");
val layoutParams = _videoView.layoutParams as ConstraintLayout.LayoutParams; var layoutParams = _videoView.layoutParams as ConstraintLayout.LayoutParams;
_originalBottomMargin =
if (layoutParams.bottomMargin > 0) layoutParams.bottomMargin else _originalBottomMargin;
layoutParams.setMargins(0); layoutParams.setMargins(0);
_videoView.layoutParams = layoutParams; _videoView.layoutParams = layoutParams;
_videoView.invalidate(); _videoView.invalidate();
@ -781,6 +774,9 @@ class FutoVideoPlayer : FutoVideoPlayerBase {
if(isMiniPlayer){ if(isMiniPlayer){
_videoView.resizeMode = AspectRatioFrameLayout.RESIZE_MODE_ZOOM _videoView.resizeMode = AspectRatioFrameLayout.RESIZE_MODE_ZOOM
_videoView.setPadding(_videoView.paddingLeft, _videoView.paddingTop, _videoView.paddingRight, TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 7.0f, Resources.getSystem().displayMetrics).toInt())
} else {
_videoView.setPadding(_videoView.paddingLeft, _videoView.paddingTop, _videoView.paddingRight, TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 0.0f, Resources.getSystem().displayMetrics).toInt())
} }
isFitMode = false; isFitMode = false;

View file

@ -380,19 +380,23 @@
android:id="@+id/videodetail_rating" android:id="@+id/videodetail_rating"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toStartOf="@id/buttons_pins"
android:layout_marginTop="7dp" android:layout_marginTop="7dp"
android:layout_marginStart="15dp" /> android:layout_marginStart="15dp"
app:layout_constraintHorizontal_chainStyle="spread_inside"/>
<com.futo.platformplayer.views.pills.RoundButtonGroup <com.futo.platformplayer.views.pills.RoundButtonGroup
android:id="@+id/buttons_pins" android:id="@+id/buttons_pins"
app:layout_constraintLeft_toRightOf="@id/videodetail_rating" app:layout_constraintStart_toEndOf="@id/videodetail_rating"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintEnd_toEndOf="parent"
android:layout_marginLeft="10dp" android:layout_marginStart="10dp"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" /> android:layout_height="wrap_content"
app:layout_constraintWidth_max="500dp"
app:layout_constraintHorizontal_chainStyle="spread_inside"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
@ -591,15 +595,13 @@
<FrameLayout <FrameLayout
android:id="@+id/videodetail_quality_overview" android:id="@+id/videodetail_quality_overview"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="0dp"
android:elevation="100dp" android:visibility="gone"/>
android:visibility="gone" />
<FrameLayout <FrameLayout
android:id="@+id/overlay_container" android:id="@+id/overlay_container"
android:layout_width="match_parent" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="0dp"
android:elevation="100dp"
android:visibility="gone" /> android:visibility="gone" />
</com.futo.platformplayer.views.containers.CustomMotionLayout> </com.futo.platformplayer.views.containers.CustomMotionLayout>

View file

@ -73,12 +73,18 @@
<Constraint <Constraint
android:id="@id/videodetail_progress" android:id="@id/videodetail_progress"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="-11.7dp" android:layout_marginTop="-12dp"
android:background="@color/black" android:background="@color/black"
android:elevation="2dp" android:elevation="2dp"
app:layout_constraintEnd_toEndOf="@id/minimize_controls" app:layout_constraintEnd_toEndOf="@id/minimize_controls"
app:layout_constraintStart_toStartOf="@id/layout_player_container" app:layout_constraintStart_toStartOf="@id/layout_player_container"
app:layout_constraintTop_toBottomOf="@id/layout_player_container" /> app:layout_constraintTop_toBottomOf="@id/layout_player_container" />
<Constraint
android:id="@id/videodetail_quality_overview"
app:visibilityMode="ignore"/>
<Constraint
android:id="@id/overlay_container"
app:visibilityMode="ignore"/>
</ConstraintSet> </ConstraintSet>
<ConstraintSet android:id="@+id/expanded"> <ConstraintSet android:id="@+id/expanded">
@ -112,12 +118,26 @@
<Constraint <Constraint
android:id="@id/videodetail_progress" android:id="@id/videodetail_progress"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="-11.7dp" android:layout_marginTop="-12dp"
android:background="@color/transparent" android:background="@color/transparent"
android:elevation="1dp" android:elevation="1dp"
app:layout_constraintEnd_toEndOf="@id/minimize_controls" app:layout_constraintEnd_toEndOf="@id/minimize_controls"
app:layout_constraintStart_toStartOf="@id/layout_player_container" app:layout_constraintStart_toStartOf="@id/layout_player_container"
app:layout_constraintTop_toBottomOf="@id/layout_player_container" /> app:layout_constraintTop_toBottomOf="@id/layout_player_container" />
<Constraint
android:id="@id/videodetail_quality_overview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="100dp"
android:visibility="gone"
app:visibilityMode="ignore"/>
<Constraint
android:id="@id/overlay_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="100dp"
android:visibility="gone"
app:visibilityMode="ignore"/>
</ConstraintSet> </ConstraintSet>
<ConstraintSet android:id="@+id/full_screen_gesture"> <ConstraintSet android:id="@+id/full_screen_gesture">
@ -152,7 +172,7 @@
<Constraint <Constraint
android:id="@id/videodetail_progress" android:id="@id/videodetail_progress"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="-11.7dp" android:layout_marginTop="-12dp"
android:background="@color/transparent" android:background="@color/transparent"
android:elevation="1dp" android:elevation="1dp"
app:layout_constraintEnd_toEndOf="@id/minimize_controls" app:layout_constraintEnd_toEndOf="@id/minimize_controls"