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

View File

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