diff --git a/app/src/main/java/com/github/libretube/extensions/ToDp.kt b/app/src/main/java/com/github/libretube/extensions/ToDp.kt new file mode 100644 index 000000000..5523fee74 --- /dev/null +++ b/app/src/main/java/com/github/libretube/extensions/ToDp.kt @@ -0,0 +1,8 @@ +package com.github.libretube.extensions + +import android.content.res.Resources + +fun Int.toDp(resources: Resources): Float { + val scale = resources.displayMetrics.density + return this * scale + 0.5f +} diff --git a/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt index 42e689cb0..1c6cabbdd 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt @@ -16,6 +16,7 @@ import com.github.libretube.api.RetrofitInstance import com.github.libretube.constants.PreferenceKeys import com.github.libretube.databinding.FragmentLibraryBinding import com.github.libretube.extensions.TAG +import com.github.libretube.extensions.toDp import com.github.libretube.models.PlayerViewModel import com.github.libretube.ui.adapters.PlaylistsAdapter import com.github.libretube.ui.base.BaseFragment @@ -44,7 +45,7 @@ class LibraryFragment : BaseFragment() { // listen for the mini player state changing playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) { - updateFABMargin() + updateFABMargin(it) } binding.playlistRecView.layoutManager = LinearLayoutManager(requireContext()) @@ -86,11 +87,11 @@ class LibraryFragment : BaseFragment() { } } - private fun updateFABMargin() { + private fun updateFABMargin(isMiniPlayerVisible: Boolean) { // optimize CreatePlaylistFab bottom margin if miniPlayer active - val bottomMargin = if (playerViewModel.isMiniPlayerVisible.value == true) 180 else 64 + val bottomMargin = if (isMiniPlayerVisible) 64 else 16 val layoutParams = binding.createPlaylist.layoutParams as ViewGroup.MarginLayoutParams - layoutParams.bottomMargin = bottomMargin + layoutParams.bottomMargin = bottomMargin.toDp(resources).toInt() binding.createPlaylist.layoutParams = layoutParams } diff --git a/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt b/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt index 9d46b5a97..dd46b2ceb 100644 --- a/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt +++ b/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt @@ -12,6 +12,7 @@ import androidx.fragment.app.FragmentManager import com.github.libretube.R import com.github.libretube.databinding.DoubleTapOverlayBinding import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding +import com.github.libretube.extensions.toDp import com.github.libretube.models.interfaces.DoubleTapInterface import com.github.libretube.models.interfaces.PlayerOptionsInterface import com.github.libretube.obj.BottomSheetItem @@ -369,14 +370,14 @@ internal class CustomExoPlayerView( override fun onConfigurationChanged(newConfig: Configuration?) { super.onConfigurationChanged(newConfig) - val offsetFactor: Float = when (newConfig?.orientation) { - Configuration.ORIENTATION_LANDSCAPE -> 2F - else -> 1F / 2F + val offset = when (newConfig?.orientation) { + Configuration.ORIENTATION_LANDSCAPE -> 20.toDp(resources) + else -> 10.toDp(resources) } binding.progressBar.let { val params = it.layoutParams as MarginLayoutParams - params.bottomMargin = (params.bottomMargin * offsetFactor).toInt() + params.bottomMargin = offset.toInt() it.layoutParams = params } }