mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-28 16:00:31 +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.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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user