Merge pull request #1564 from Bnyro/master

fix the floating time bar
This commit is contained in:
Bnyro 2022-10-15 17:04:30 +02:00 committed by GitHub
commit 5d30ccf53b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 8 deletions

View File

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

View File

@ -16,6 +16,7 @@ import com.github.libretube.api.RetrofitInstance
import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.databinding.FragmentLibraryBinding import com.github.libretube.databinding.FragmentLibraryBinding
import com.github.libretube.extensions.TAG import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.toDp
import com.github.libretube.models.PlayerViewModel import com.github.libretube.models.PlayerViewModel
import com.github.libretube.ui.adapters.PlaylistsAdapter import com.github.libretube.ui.adapters.PlaylistsAdapter
import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.base.BaseFragment
@ -44,7 +45,7 @@ class LibraryFragment : BaseFragment() {
// listen for the mini player state changing // listen for the mini player state changing
playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) { playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) {
updateFABMargin() updateFABMargin(it)
} }
binding.playlistRecView.layoutManager = LinearLayoutManager(requireContext()) 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 // 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 val layoutParams = binding.createPlaylist.layoutParams as ViewGroup.MarginLayoutParams
layoutParams.bottomMargin = bottomMargin layoutParams.bottomMargin = bottomMargin.toDp(resources).toInt()
binding.createPlaylist.layoutParams = layoutParams binding.createPlaylist.layoutParams = layoutParams
} }

View File

@ -12,6 +12,7 @@ import androidx.fragment.app.FragmentManager
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.databinding.DoubleTapOverlayBinding import com.github.libretube.databinding.DoubleTapOverlayBinding
import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding 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.DoubleTapInterface
import com.github.libretube.models.interfaces.PlayerOptionsInterface import com.github.libretube.models.interfaces.PlayerOptionsInterface
import com.github.libretube.obj.BottomSheetItem import com.github.libretube.obj.BottomSheetItem
@ -369,14 +370,14 @@ internal class CustomExoPlayerView(
override fun onConfigurationChanged(newConfig: Configuration?) { override fun onConfigurationChanged(newConfig: Configuration?) {
super.onConfigurationChanged(newConfig) super.onConfigurationChanged(newConfig)
val offsetFactor: Float = when (newConfig?.orientation) { val offset = when (newConfig?.orientation) {
Configuration.ORIENTATION_LANDSCAPE -> 2F Configuration.ORIENTATION_LANDSCAPE -> 20.toDp(resources)
else -> 1F / 2F else -> 10.toDp(resources)
} }
binding.progressBar.let { binding.progressBar.let {
val params = it.layoutParams as MarginLayoutParams val params = it.layoutParams as MarginLayoutParams
params.bottomMargin = (params.bottomMargin * offsetFactor).toInt() params.bottomMargin = offset.toInt()
it.layoutParams = params it.layoutParams = params
} }
} }