diff --git a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt index 7f4171127..466ecf12f 100644 --- a/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/fragments/PlayerFragment.kt @@ -21,6 +21,7 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.constraintlayout.motion.widget.MotionLayout +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.net.toUri import androidx.core.os.bundleOf import androidx.core.view.isVisible @@ -75,6 +76,7 @@ import com.google.android.exoplayer2.upstream.DataSource import com.google.android.exoplayer2.upstream.DefaultDataSource import com.google.android.exoplayer2.upstream.DefaultHttpDataSource import com.google.android.exoplayer2.util.RepeatModeUtil +import com.google.android.exoplayer2.video.VideoSize import com.google.android.material.button.MaterialButton import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.squareup.picasso.Picasso @@ -169,6 +171,7 @@ class PlayerFragment : Fragment() { mainActivity.binding.container.visibility = View.VISIBLE exoPlayerView = binding.player + binding.mainContainer.visibility = View.GONE binding.playerMotionLayout.addTransitionListener(object : MotionLayout.TransitionListener { override fun onTransitionStarted( @@ -671,6 +674,24 @@ class PlayerFragment : Fragment() { } } + override fun onVideoSizeChanged( + videoSize: VideoSize + ) { + // Set new width/height of view + // height or width must be cast to float as int/int will give 0 + + val currentWidth = binding.mainContainer.height + // Redraw myView + (binding.mainContainer.layoutParams as ConstraintLayout.LayoutParams).apply { + matchConstraintPercentHeight = ( + videoSize.height / videoSize.width * currentWidth + ).toFloat() + } + binding.mainContainer.requestLayout() + + // FIXME and make me work :/ + } + @Deprecated(message = "Deprecated", level = DeprecationLevel.HIDDEN) override fun onPlayerStateChanged( playWhenReady: Boolean, @@ -835,7 +856,7 @@ class PlayerFragment : Fragment() { // append hls to list if available if (response.hls != null) { - videosNameArray += "HLS" + videosNameArray += getString(R.string.hls) videosUrlArray += response.hls.toUri() } @@ -916,7 +937,7 @@ class PlayerFragment : Fragment() { ) { _, which -> whichQuality = which if ( - videosNameArray[which] == "HLS" || + videosNameArray[which] == getString(R.string.hls) || videosNameArray[which] == "LBRY HLS" ) { // no need to merge sources if using hls diff --git a/app/src/main/res/layout/exo_styled_player_control_view.xml b/app/src/main/res/layout/exo_styled_player_control_view.xml index d0f2f93f2..4198611ec 100644 --- a/app/src/main/res/layout/exo_styled_player_control_view.xml +++ b/app/src/main/res/layout/exo_styled_player_control_view.xml @@ -110,7 +110,7 @@ android:layout_height="wrap_content" android:layout_gravity="center" android:padding="@dimen/exo_icon_padding" - android:text="HLS" + android:text="@string/hls" android:textColor="#FFFFFF" /> - HLS + @string/hls 1080p 720p 480p diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 85e2da13d..d31c6745f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -213,4 +213,5 @@ Authentication instance Use a different instance for authenticated calls. Choose an auth instance + Auto \ No newline at end of file