- fix PiP issues

- fix overlay issues
This commit is contained in:
Kai 2024-12-17 13:44:16 -06:00
parent 45ded8d384
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() {
_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")

View file

@ -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
}
}

View file

@ -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;

View file

@ -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"/>
<com.futo.platformplayer.views.pills.RoundButtonGroup
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_constraintRight_toRightOf="parent"
android:layout_marginLeft="10dp"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginStart="10dp"
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>
@ -591,15 +595,13 @@
<FrameLayout
android:id="@+id/videodetail_quality_overview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="100dp"
android:visibility="gone" />
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone"/>
<FrameLayout
android:id="@+id/overlay_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:elevation="100dp"
android:layout_width="0dp"
android:layout_height="0dp"
android:visibility="gone" />
</com.futo.platformplayer.views.containers.CustomMotionLayout>

View file

@ -73,12 +73,18 @@
<Constraint
android:id="@id/videodetail_progress"
android:layout_height="wrap_content"
android:layout_marginTop="-11.7dp"
android:layout_marginTop="-12dp"
android:background="@color/black"
android:elevation="2dp"
app:layout_constraintEnd_toEndOf="@id/minimize_controls"
app:layout_constraintStart_toStartOf="@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 android:id="@+id/expanded">
@ -112,12 +118,26 @@
<Constraint
android:id="@id/videodetail_progress"
android:layout_height="wrap_content"
android:layout_marginTop="-11.7dp"
android:layout_marginTop="-12dp"
android:background="@color/transparent"
android:elevation="1dp"
app:layout_constraintEnd_toEndOf="@id/minimize_controls"
app:layout_constraintStart_toStartOf="@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 android:id="@+id/full_screen_gesture">
@ -152,7 +172,7 @@
<Constraint
android:id="@id/videodetail_progress"
android:layout_height="wrap_content"
android:layout_marginTop="-11.7dp"
android:layout_marginTop="-12dp"
android:background="@color/transparent"
android:elevation="1dp"
app:layout_constraintEnd_toEndOf="@id/minimize_controls"