mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 23:40:33 +05:30
commit
5d30ccf53b
@ -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
|
||||
}
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user