From 04c0679930a5b6b1e235baac5913926d886bf261 Mon Sep 17 00:00:00 2001 From: Kai Date: Tue, 17 Dec 2024 13:44:16 -0600 Subject: [PATCH] - fix PiP issues - fix overlay issues --- .../mainactivity/main/VideoDetailFragment.kt | 9 +++--- .../mainactivity/main/VideoDetailView.kt | 1 - .../views/video/FutoVideoPlayer.kt | 14 ++++------ .../main/res/layout/fragview_video_detail.xml | 28 ++++++++++--------- app/src/main/res/xml/videodetail_scene.xml | 26 +++++++++++++++-- 5 files changed, 47 insertions(+), 31 deletions(-) diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt index 6c4e9ee6..122c02c8 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailFragment.kt @@ -255,14 +255,14 @@ class VideoDetailFragment() : MainFragment() { fun minimizeVideoDetail() { _viewDetail?.setFullscreen(false); - _motionLayout?.setTransition(R.id.maximize) - _motionLayout?.transitionToStart(); + _motionLayout?.transitionToState(R.id.collapsed) } fun maximizeVideoDetail(instant: Boolean) { state = State.MAXIMIZED onMaximized.emit() if(instant) { - _motionLayout?.setState(R.id.collapsed, _motionLayout!!.width,_motionLayout!!.height) + _motionLayout?.setTransition(R.id.maximize) + _motionLayout?.progress = 1f } else { _motionLayout?.transitionToState(R.id.expanded) } @@ -286,8 +286,7 @@ class VideoDetailFragment() : MainFragment() { viewDetail.onVideoChanged.subscribe(::onVideoChanged) viewDetail.onMinimize.subscribe { isMinimizingFromFullScreen = true - _motionLayout!!.setTransition(R.id.maximize) - _motionLayout!!.transitionToStart() + _motionLayout?.transitionToState(R.id.collapsed) }; viewDetail.onClose.subscribe { Logger.i(TAG, "onClose") diff --git a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt index 61fccbff..42030e63 100644 --- a/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt +++ b/app/src/main/java/com/futo/platformplayer/fragment/mainactivity/main/VideoDetailView.kt @@ -807,7 +807,6 @@ class VideoDetailView(fragment: VideoDetailFragment, inflater: LayoutInflater) : if(currentId == R.id.full_screen_gesture) { setFullscreen(true) motionLayout?.transitionToState(R.id.expanded) - motionLayout?.isInteractionEnabled = false } } diff --git a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt index eedc02f3..b41fae81 100644 --- a/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt +++ b/app/src/main/java/com/futo/platformplayer/views/video/FutoVideoPlayer.kt @@ -113,7 +113,6 @@ class FutoVideoPlayer : FutoVideoPlayerBase { private var _lastSourceFit: Float? = null; private var _lastWindowWidth: Int = resources.configuration.screenWidthDp private var _lastWindowHeight: Int = resources.configuration.screenHeightDp - private var _originalBottomMargin: Int = 0; private var _isControlsLocked: Boolean = false; @@ -710,11 +709,6 @@ class FutoVideoPlayer : FutoVideoPlayerBase { @OptIn(UnstableApi::class) fun fitHeight(videoSize: VideoSize? = null) { 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 ?: 0 @@ -760,6 +754,7 @@ class FutoVideoPlayer : FutoVideoPlayerBase { _lastSourceFit!!, 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()) _root.layoutParams = rootParams isFitMode = true @@ -768,9 +763,7 @@ class FutoVideoPlayer : FutoVideoPlayerBase { @OptIn(UnstableApi::class) fun fillHeight(isMiniPlayer: Boolean) { Logger.i(TAG, "Video Fill Height"); - val layoutParams = _videoView.layoutParams as ConstraintLayout.LayoutParams; - _originalBottomMargin = - if (layoutParams.bottomMargin > 0) layoutParams.bottomMargin else _originalBottomMargin; + var layoutParams = _videoView.layoutParams as ConstraintLayout.LayoutParams; layoutParams.setMargins(0); _videoView.layoutParams = layoutParams; _videoView.invalidate(); @@ -781,6 +774,9 @@ class FutoVideoPlayer : FutoVideoPlayerBase { if(isMiniPlayer){ _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; diff --git a/app/src/main/res/layout/fragview_video_detail.xml b/app/src/main/res/layout/fragview_video_detail.xml index d6fa09d7..8f9f9866 100644 --- a/app/src/main/res/layout/fragview_video_detail.xml +++ b/app/src/main/res/layout/fragview_video_detail.xml @@ -380,19 +380,23 @@ android:id="@+id/videodetail_rating" android:layout_width="wrap_content" android:layout_height="wrap_content" - app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" + app:layout_constraintEnd_toStartOf="@id/buttons_pins" android:layout_marginTop="7dp" - android:layout_marginStart="15dp" /> + android:layout_marginStart="15dp" + app:layout_constraintHorizontal_chainStyle="spread_inside"/> + android:layout_height="wrap_content" + app:layout_constraintWidth_max="500dp" + app:layout_constraintHorizontal_chainStyle="spread_inside"/> @@ -591,15 +595,13 @@ + android:layout_width="0dp" + android:layout_height="0dp" + android:visibility="gone"/> \ No newline at end of file diff --git a/app/src/main/res/xml/videodetail_scene.xml b/app/src/main/res/xml/videodetail_scene.xml index 3fb6eb86..7a03f0f8 100644 --- a/app/src/main/res/xml/videodetail_scene.xml +++ b/app/src/main/res/xml/videodetail_scene.xml @@ -73,12 +73,18 @@ + + @@ -112,12 +118,26 @@ + + @@ -152,7 +172,7 @@