mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-29 16:30:31 +05:30
Merge pull request #2266 from Bnyro/master
Fix the option to disable watch positions and playlist import
This commit is contained in:
commit
eb1c9a4247
@ -1,6 +1,7 @@
|
|||||||
package com.github.libretube.api
|
package com.github.libretube.api
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import android.net.Uri
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
import com.github.libretube.api.obj.Playlist
|
import com.github.libretube.api.obj.Playlist
|
||||||
@ -195,7 +196,7 @@ object PlaylistsHelper {
|
|||||||
addToPlaylist(
|
addToPlaylist(
|
||||||
playlistId,
|
playlistId,
|
||||||
*playlist.videos.map {
|
*playlist.videos.map {
|
||||||
it.substringAfter("=")
|
Uri.parse(it).getQueryParameter("v")!!
|
||||||
}.toTypedArray()
|
}.toTypedArray()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@ -231,7 +232,7 @@ object PlaylistsHelper {
|
|||||||
return if (loggedIn()) PlaylistType.PRIVATE else PlaylistType.LOCAL
|
return if (loggedIn()) PlaylistType.PRIVATE else PlaylistType.LOCAL
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getPrivatePlaylistType(playlistId: String): PlaylistType {
|
private fun getPrivatePlaylistType(playlistId: String): PlaylistType {
|
||||||
if (playlistId.all { it.isDigit() }) return PlaylistType.LOCAL
|
if (playlistId.all { it.isDigit() }) return PlaylistType.LOCAL
|
||||||
if (playlistId.matches(pipedPlaylistRegex)) return PlaylistType.PRIVATE
|
if (playlistId.matches(pipedPlaylistRegex)) return PlaylistType.PRIVATE
|
||||||
return PlaylistType.PUBLIC
|
return PlaylistType.PUBLIC
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
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
|
|
||||||
}
|
|
10
app/src/main/java/com/github/libretube/extensions/ToPixel.kt
Normal file
10
app/src/main/java/com/github/libretube/extensions/ToPixel.kt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
package com.github.libretube.extensions
|
||||||
|
|
||||||
|
import android.content.res.Resources
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert DP to pixels
|
||||||
|
*/
|
||||||
|
fun Int.toPixel(): Float {
|
||||||
|
return this * Resources.getSystem().displayMetrics.density + 0.5f
|
||||||
|
}
|
@ -7,7 +7,7 @@ import androidx.recyclerview.widget.RecyclerView
|
|||||||
import com.github.libretube.databinding.PlaylistBookmarkRowBinding
|
import com.github.libretube.databinding.PlaylistBookmarkRowBinding
|
||||||
import com.github.libretube.db.obj.PlaylistBookmark
|
import com.github.libretube.db.obj.PlaylistBookmark
|
||||||
import com.github.libretube.enums.PlaylistType
|
import com.github.libretube.enums.PlaylistType
|
||||||
import com.github.libretube.extensions.toDp
|
import com.github.libretube.extensions.toPixel
|
||||||
import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet
|
import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet
|
||||||
import com.github.libretube.ui.viewholders.PlaylistBookmarkViewHolder
|
import com.github.libretube.ui.viewholders.PlaylistBookmarkViewHolder
|
||||||
import com.github.libretube.util.ImageHelper
|
import com.github.libretube.util.ImageHelper
|
||||||
@ -31,7 +31,7 @@ class PlaylistBookmarkAdapter(
|
|||||||
holder.binding.apply {
|
holder.binding.apply {
|
||||||
if (bookmarkMode == BookmarkMode.HOME) {
|
if (bookmarkMode == BookmarkMode.HOME) {
|
||||||
val params = root.layoutParams
|
val params = root.layoutParams
|
||||||
params.width = (210).toDp(root.context.resources).toInt()
|
params.width = (210).toPixel().toInt()
|
||||||
root.layoutParams = params
|
root.layoutParams = params
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ import com.github.libretube.databinding.AllCaughtUpRowBinding
|
|||||||
import com.github.libretube.databinding.TrendingRowBinding
|
import com.github.libretube.databinding.TrendingRowBinding
|
||||||
import com.github.libretube.databinding.VideoRowBinding
|
import com.github.libretube.databinding.VideoRowBinding
|
||||||
import com.github.libretube.extensions.formatShort
|
import com.github.libretube.extensions.formatShort
|
||||||
import com.github.libretube.extensions.toDp
|
import com.github.libretube.extensions.toPixel
|
||||||
import com.github.libretube.extensions.toID
|
import com.github.libretube.extensions.toID
|
||||||
import com.github.libretube.ui.base.BaseActivity
|
import com.github.libretube.ui.base.BaseActivity
|
||||||
import com.github.libretube.ui.extensions.setFormattedDuration
|
import com.github.libretube.ui.extensions.setFormattedDuration
|
||||||
@ -91,8 +91,8 @@ class VideosAdapter(
|
|||||||
// set a fixed width for better visuals
|
// set a fixed width for better visuals
|
||||||
val params = root.layoutParams
|
val params = root.layoutParams
|
||||||
when (forceMode) {
|
when (forceMode) {
|
||||||
ForceMode.RELATED -> params.width = (180).toDp(root.context.resources).toInt()
|
ForceMode.RELATED -> params.width = (180).toPixel().toInt()
|
||||||
ForceMode.HOME -> params.width = (250).toDp(root.context.resources).toInt()
|
ForceMode.HOME -> params.width = (250).toPixel().toInt()
|
||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
root.layoutParams = params
|
root.layoutParams = params
|
||||||
|
@ -16,7 +16,7 @@ import com.github.libretube.api.PlaylistsHelper
|
|||||||
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.extensions.toPixel
|
||||||
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
|
||||||
import com.github.libretube.ui.dialogs.CreatePlaylistDialog
|
import com.github.libretube.ui.dialogs.CreatePlaylistDialog
|
||||||
@ -91,7 +91,7 @@ class LibraryFragment : BaseFragment() {
|
|||||||
// optimize CreatePlaylistFab bottom margin if miniPlayer active
|
// optimize CreatePlaylistFab bottom margin if miniPlayer active
|
||||||
val bottomMargin = if (isMiniPlayerVisible) 64 else 16
|
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.toDp(resources).toInt()
|
layoutParams.bottomMargin = bottomMargin.toPixel().toInt()
|
||||||
binding.createPlaylist.layoutParams = layoutParams
|
binding.createPlaylist.layoutParams = layoutParams
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -463,7 +463,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
|||||||
binding.playerDescriptionArrow.animate().rotation(0F).setDuration(250).start()
|
binding.playerDescriptionArrow.animate().rotation(0F).setDuration(250).start()
|
||||||
binding.descLinLayout.visibility = View.GONE
|
binding.descLinLayout.visibility = View.GONE
|
||||||
|
|
||||||
// show formated short view count
|
// show formatted short view count
|
||||||
viewInfo = getString(R.string.views, streams.views.formatShort()) + viewInfo
|
viewInfo = getString(R.string.views, streams.views.formatShort()) + viewInfo
|
||||||
} else {
|
} else {
|
||||||
// show the description and chapters
|
// show the description and chapters
|
||||||
@ -880,10 +880,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
|
|||||||
|
|
||||||
// save the watch position when paused
|
// save the watch position when paused
|
||||||
if (playbackState == PlaybackState.STATE_PAUSED) {
|
if (playbackState == PlaybackState.STATE_PAUSED) {
|
||||||
val watchPosition = WatchPosition(videoId!!, exoPlayer.currentPosition)
|
saveWatchPosition()
|
||||||
query {
|
|
||||||
Database.watchPositionDao().insertAll(watchPosition)
|
|
||||||
}
|
|
||||||
disableAutoPiP()
|
disableAutoPiP()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -23,7 +23,7 @@ import com.github.libretube.enums.PlaylistType
|
|||||||
import com.github.libretube.extensions.TAG
|
import com.github.libretube.extensions.TAG
|
||||||
import com.github.libretube.extensions.awaitQuery
|
import com.github.libretube.extensions.awaitQuery
|
||||||
import com.github.libretube.extensions.query
|
import com.github.libretube.extensions.query
|
||||||
import com.github.libretube.extensions.toDp
|
import com.github.libretube.extensions.toPixel
|
||||||
import com.github.libretube.extensions.toID
|
import com.github.libretube.extensions.toID
|
||||||
import com.github.libretube.ui.adapters.PlaylistAdapter
|
import com.github.libretube.ui.adapters.PlaylistAdapter
|
||||||
import com.github.libretube.ui.base.BaseFragment
|
import com.github.libretube.ui.base.BaseFragment
|
||||||
@ -81,7 +81,7 @@ class PlaylistFragment : BaseFragment() {
|
|||||||
|
|
||||||
playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) {
|
playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) {
|
||||||
binding.playlistRecView.updatePadding(
|
binding.playlistRecView.updatePadding(
|
||||||
bottom = if (it) (64).toDp(resources).toInt() else 0
|
bottom = if (it) (64).toPixel().toInt() else 0
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,7 +12,7 @@ import androidx.recyclerview.widget.RecyclerView
|
|||||||
import com.github.libretube.databinding.FragmentWatchHistoryBinding
|
import com.github.libretube.databinding.FragmentWatchHistoryBinding
|
||||||
import com.github.libretube.db.DatabaseHolder.Companion.Database
|
import com.github.libretube.db.DatabaseHolder.Companion.Database
|
||||||
import com.github.libretube.extensions.awaitQuery
|
import com.github.libretube.extensions.awaitQuery
|
||||||
import com.github.libretube.extensions.toDp
|
import com.github.libretube.extensions.toPixel
|
||||||
import com.github.libretube.ui.adapters.WatchHistoryAdapter
|
import com.github.libretube.ui.adapters.WatchHistoryAdapter
|
||||||
import com.github.libretube.ui.base.BaseFragment
|
import com.github.libretube.ui.base.BaseFragment
|
||||||
import com.github.libretube.ui.models.PlayerViewModel
|
import com.github.libretube.ui.models.PlayerViewModel
|
||||||
@ -37,7 +37,7 @@ class WatchHistoryFragment : BaseFragment() {
|
|||||||
|
|
||||||
playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) {
|
playerViewModel.isMiniPlayerVisible.observe(viewLifecycleOwner) {
|
||||||
binding.watchHistoryRecView.updatePadding(
|
binding.watchHistoryRecView.updatePadding(
|
||||||
bottom = if (it) (64).toDp(resources).toInt() else 0
|
bottom = if (it) (64).toPixel().toInt() else 0
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ import com.github.libretube.databinding.DoubleTapOverlayBinding
|
|||||||
import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding
|
import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding
|
||||||
import com.github.libretube.databinding.PlayerGestureControlsViewBinding
|
import com.github.libretube.databinding.PlayerGestureControlsViewBinding
|
||||||
import com.github.libretube.extensions.normalize
|
import com.github.libretube.extensions.normalize
|
||||||
import com.github.libretube.extensions.toDp
|
import com.github.libretube.extensions.toPixel
|
||||||
import com.github.libretube.obj.BottomSheetItem
|
import com.github.libretube.obj.BottomSheetItem
|
||||||
import com.github.libretube.ui.activities.MainActivity
|
import com.github.libretube.ui.activities.MainActivity
|
||||||
import com.github.libretube.ui.base.BaseActivity
|
import com.github.libretube.ui.base.BaseActivity
|
||||||
@ -494,8 +494,8 @@ internal class CustomExoPlayerView(
|
|||||||
super.onConfigurationChanged(newConfig)
|
super.onConfigurationChanged(newConfig)
|
||||||
|
|
||||||
val offset = when (newConfig?.orientation) {
|
val offset = when (newConfig?.orientation) {
|
||||||
Configuration.ORIENTATION_LANDSCAPE -> 20.toDp(resources)
|
Configuration.ORIENTATION_LANDSCAPE -> 20.toPixel()
|
||||||
else -> 10.toDp(resources)
|
else -> 10.toPixel()
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.progressBar.let {
|
binding.progressBar.let {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user