Merge pull request #1782 from Bnyro/master

layout fixes
This commit is contained in:
Bnyro 2022-11-06 16:36:05 +01:00 committed by GitHub
commit 62d3d9fbbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 49 additions and 33 deletions

View File

@ -9,7 +9,6 @@ const val GITHUB_API_URL = "https://api.github.com/repos/libre-tube/LibreTube/re
* Links for the about fragment * Links for the about fragment
*/ */
const val WEBSITE_URL = "https://libre-tube.github.io/" const val WEBSITE_URL = "https://libre-tube.github.io/"
const val DONATE_URL = "https://github.com/libre-tube/LibreTube#donate"
const val GITHUB_URL = "https://github.com/libre-tube/LibreTube" const val GITHUB_URL = "https://github.com/libre-tube/LibreTube"
const val PIPED_GITHUB_URL = "https://github.com/TeamPiped/Piped" const val PIPED_GITHUB_URL = "https://github.com/TeamPiped/Piped"
const val WEBLATE_URL = "https://hosted.weblate.org/projects/libretube/libretube/" const val WEBLATE_URL = "https://hosted.weblate.org/projects/libretube/libretube/"

View File

@ -27,13 +27,13 @@ import com.github.libretube.constants.IntentData
import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.databinding.ActivityMainBinding import com.github.libretube.databinding.ActivityMainBinding
import com.github.libretube.extensions.toID import com.github.libretube.extensions.toID
import com.github.libretube.models.PlayerViewModel
import com.github.libretube.models.SearchViewModel
import com.github.libretube.models.SubscriptionsViewModel
import com.github.libretube.services.ClosingService import com.github.libretube.services.ClosingService
import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.base.BaseActivity
import com.github.libretube.ui.dialogs.ErrorDialog import com.github.libretube.ui.dialogs.ErrorDialog
import com.github.libretube.ui.fragments.PlayerFragment import com.github.libretube.ui.fragments.PlayerFragment
import com.github.libretube.ui.models.PlayerViewModel
import com.github.libretube.ui.models.SearchViewModel
import com.github.libretube.ui.models.SubscriptionsViewModel
import com.github.libretube.ui.sheets.PlayingQueueSheet import com.github.libretube.ui.sheets.PlayingQueueSheet
import com.github.libretube.util.NavBarHelper import com.github.libretube.util.NavBarHelper
import com.github.libretube.util.NetworkHelper import com.github.libretube.util.NetworkHelper

View File

@ -20,6 +20,7 @@ import com.github.libretube.ui.viewholders.CommentsViewHolder
import com.github.libretube.util.ClipboardHelper import com.github.libretube.util.ClipboardHelper
import com.github.libretube.util.ImageHelper import com.github.libretube.util.ImageHelper
import com.github.libretube.util.NavigationHelper import com.github.libretube.util.NavigationHelper
import com.github.libretube.util.TextUtils
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -61,7 +62,7 @@ class CommentsAdapter(
root.scaleY = 0.9f root.scaleY = 0.9f
} }
commentInfos.text = comment.author.toString() + "" + comment.commentedTime.toString() commentInfos.text = comment.author.toString() + TextUtils.SEPARATOR + comment.commentedTime.toString()
commentText.text = comment.commentText.toString() commentText.text = comment.commentText.toString()
ImageHelper.loadImage(comment.thumbnail, commentorImage) ImageHelper.loadImage(comment.thumbnail, commentorImage)

View File

@ -13,6 +13,7 @@ import com.github.libretube.obj.DownloadedFile
import com.github.libretube.ui.activities.OfflinePlayerActivity import com.github.libretube.ui.activities.OfflinePlayerActivity
import com.github.libretube.ui.viewholders.DownloadsViewHolder import com.github.libretube.ui.viewholders.DownloadsViewHolder
import com.github.libretube.util.DownloadHelper import com.github.libretube.util.DownloadHelper
import com.github.libretube.util.TextUtils
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import java.io.File import java.io.File
@ -39,7 +40,7 @@ class DownloadsAdapter(
uploaderName.text = it.uploader uploaderName.text = it.uploader
videoInfo.text = it.views.formatShort() + " " + videoInfo.text = it.views.formatShort() + " " +
root.context.getString(R.string.views_placeholder) + root.context.getString(R.string.views_placeholder) +
"" + it.uploadDate TextUtils.SEPARATOR + it.uploadDate
} }
thumbnailImage.setImageBitmap(file.thumbnail) thumbnailImage.setImageBitmap(file.thumbnail)

View File

@ -21,6 +21,7 @@ import com.github.libretube.ui.sheets.VideoOptionsBottomSheet
import com.github.libretube.ui.viewholders.SearchViewHolder import com.github.libretube.ui.viewholders.SearchViewHolder
import com.github.libretube.util.ImageHelper import com.github.libretube.util.ImageHelper
import com.github.libretube.util.NavigationHelper import com.github.libretube.util.NavigationHelper
import com.github.libretube.util.TextUtils
class SearchAdapter( class SearchAdapter(
private val searchItems: MutableList<ContentItem>, private val searchItems: MutableList<ContentItem>,
@ -121,7 +122,7 @@ class SearchAdapter(
searchViews.text = root.context.getString( searchViews.text = root.context.getString(
R.string.subscribers, R.string.subscribers,
item.subscribers.formatShort() item.subscribers.formatShort()
) + "" + root.context.getString(R.string.videoCount, item.videos.toString()) ) + TextUtils.SEPARATOR + root.context.getString(R.string.videoCount, item.videos.toString())
root.setOnClickListener { root.setOnClickListener {
NavigationHelper.navigateChannel(root.context, item.url) NavigationHelper.navigateChannel(root.context, item.url)
} }
@ -137,8 +138,8 @@ class SearchAdapter(
binding.apply { binding.apply {
ImageHelper.loadImage(item.thumbnail, playlistThumbnail) ImageHelper.loadImage(item.thumbnail, playlistThumbnail)
if (item.videos?.toInt() != -1) videoCount.text = item.videos.toString() if (item.videos?.toInt() != -1) videoCount.text = item.videos.toString()
playlistDescription.text = item.name playlistTitle.text = item.name
playlistTitle.text = item.uploaderName playlistDescription.text = item.uploaderName
root.setOnClickListener { root.setOnClickListener {
NavigationHelper.navigatePlaylist(root.context, item.url, false) NavigationHelper.navigatePlaylist(root.context, item.url, false)
} }

View File

@ -21,6 +21,7 @@ import com.github.libretube.ui.viewholders.VideosViewHolder
import com.github.libretube.util.ImageHelper import com.github.libretube.util.ImageHelper
import com.github.libretube.util.NavigationHelper import com.github.libretube.util.NavigationHelper
import com.github.libretube.util.PreferenceHelper import com.github.libretube.util.PreferenceHelper
import com.github.libretube.util.TextUtils
class VideosAdapter( class VideosAdapter(
private val streamItems: MutableList<StreamItem>, private val streamItems: MutableList<StreamItem>,
@ -79,10 +80,10 @@ class VideosAdapter(
holder.trendingRowBinding?.apply { holder.trendingRowBinding?.apply {
textViewTitle.text = video.title textViewTitle.text = video.title
textViewChannel.text = textViewChannel.text =
video.uploaderName + "" + video.uploaderName + TextUtils.SEPARATOR +
video.views.formatShort() + " " + video.views.formatShort() + " " +
root.context.getString(R.string.views_placeholder) + root.context.getString(R.string.views_placeholder) +
"" + video.uploaded?.let { DateUtils.getRelativeTimeSpanString(it) } TextUtils.SEPARATOR + video.uploaded?.let { DateUtils.getRelativeTimeSpanString(it) }
video.duration?.let { thumbnailDuration.setFormattedDuration(it) } video.duration?.let { thumbnailDuration.setFormattedDuration(it) }
channelImage.setOnClickListener { channelImage.setOnClickListener {
NavigationHelper.navigateChannel(root.context, video.uploaderUrl) NavigationHelper.navigateChannel(root.context, video.uploaderUrl)
@ -114,7 +115,7 @@ class VideosAdapter(
videoInfo.text = videoInfo.text =
video.views.formatShort() + " " + video.views.formatShort() + " " +
root.context.getString(R.string.views_placeholder) + root.context.getString(R.string.views_placeholder) +
"" + video.uploaded?.let { DateUtils.getRelativeTimeSpanString(it) } TextUtils.SEPARATOR + video.uploaded?.let { DateUtils.getRelativeTimeSpanString(it) }
thumbnailDuration.text = thumbnailDuration.text =
video.duration?.let { DateUtils.formatElapsedTime(it) } video.duration?.let { DateUtils.formatElapsedTime(it) }

View File

@ -16,7 +16,7 @@ import com.github.libretube.constants.IntentData
import com.github.libretube.databinding.DialogAddtoplaylistBinding import com.github.libretube.databinding.DialogAddtoplaylistBinding
import com.github.libretube.extensions.TAG import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.toastFromMainThread import com.github.libretube.extensions.toastFromMainThread
import com.github.libretube.models.PlaylistViewModel import com.github.libretube.ui.models.PlaylistViewModel
import com.github.libretube.util.PreferenceHelper import com.github.libretube.util.PreferenceHelper
import com.github.libretube.util.ThemeHelper import com.github.libretube.util.ThemeHelper
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder

View File

@ -17,10 +17,10 @@ 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.toDp
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
import com.github.libretube.ui.dialogs.CreatePlaylistDialog import com.github.libretube.ui.dialogs.CreatePlaylistDialog
import com.github.libretube.ui.models.PlayerViewModel
import com.github.libretube.util.PreferenceHelper import com.github.libretube.util.PreferenceHelper
import retrofit2.HttpException import retrofit2.HttpException
import java.io.IOException import java.io.IOException

View File

@ -55,8 +55,6 @@ import com.github.libretube.extensions.query
import com.github.libretube.extensions.setupSubscriptionButton import com.github.libretube.extensions.setupSubscriptionButton
import com.github.libretube.extensions.toID import com.github.libretube.extensions.toID
import com.github.libretube.extensions.toStreamItem import com.github.libretube.extensions.toStreamItem
import com.github.libretube.models.PlayerViewModel
import com.github.libretube.models.interfaces.OnlinePlayerOptions
import com.github.libretube.obj.ShareData import com.github.libretube.obj.ShareData
import com.github.libretube.services.BackgroundMode import com.github.libretube.services.BackgroundMode
import com.github.libretube.services.DownloadService import com.github.libretube.services.DownloadService
@ -68,6 +66,8 @@ import com.github.libretube.ui.base.BaseFragment
import com.github.libretube.ui.dialogs.AddToPlaylistDialog import com.github.libretube.ui.dialogs.AddToPlaylistDialog
import com.github.libretube.ui.dialogs.DownloadDialog import com.github.libretube.ui.dialogs.DownloadDialog
import com.github.libretube.ui.dialogs.ShareDialog import com.github.libretube.ui.dialogs.ShareDialog
import com.github.libretube.ui.interfaces.OnlinePlayerOptions
import com.github.libretube.ui.models.PlayerViewModel
import com.github.libretube.ui.sheets.BaseBottomSheet import com.github.libretube.ui.sheets.BaseBottomSheet
import com.github.libretube.ui.sheets.PlayingQueueSheet import com.github.libretube.ui.sheets.PlayingQueueSheet
import com.github.libretube.util.BackgroundHelper import com.github.libretube.util.BackgroundHelper
@ -76,6 +76,7 @@ import com.github.libretube.util.NowPlayingNotification
import com.github.libretube.util.PlayerHelper import com.github.libretube.util.PlayerHelper
import com.github.libretube.util.PlayingQueue import com.github.libretube.util.PlayingQueue
import com.github.libretube.util.PreferenceHelper import com.github.libretube.util.PreferenceHelper
import com.github.libretube.util.TextUtils
import com.google.android.exoplayer2.C import com.google.android.exoplayer2.C
import com.google.android.exoplayer2.DefaultLoadControl import com.google.android.exoplayer2.DefaultLoadControl
import com.google.android.exoplayer2.ExoPlayer import com.google.android.exoplayer2.ExoPlayer
@ -765,7 +766,7 @@ class PlayerFragment : BaseFragment(), OnlinePlayerOptions {
binding.apply { binding.apply {
playerViewsInfo.text = playerViewsInfo.text =
context?.getString(R.string.views, response.views.formatShort()) + context?.getString(R.string.views, response.views.formatShort()) +
if (!isLive) "" + response.uploadDate else "" if (!isLive) TextUtils.SEPARATOR + response.uploadDate else ""
textLike.text = response.likes.formatShort() textLike.text = response.likes.formatShort()
textDislike.text = response.dislikes.formatShort() textDislike.text = response.dislikes.formatShort()

View File

@ -24,6 +24,7 @@ import com.github.libretube.ui.dialogs.ShareDialog
import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet
import com.github.libretube.util.ImageHelper import com.github.libretube.util.ImageHelper
import com.github.libretube.util.NavigationHelper import com.github.libretube.util.NavigationHelper
import com.github.libretube.util.TextUtils
import retrofit2.HttpException import retrofit2.HttpException
import java.io.IOException import java.io.IOException
@ -89,7 +90,7 @@ class PlaylistFragment : BaseFragment() {
ImageHelper.loadImage(response.thumbnailUrl, binding.thumbnail) ImageHelper.loadImage(response.thumbnailUrl, binding.thumbnail)
binding.playlistProgress.visibility = View.GONE binding.playlistProgress.visibility = View.GONE
binding.playlistName.text = response.name binding.playlistName.text = response.name
binding.playlistInfo.text = response.uploader + "" + getString(R.string.videoCount, response.videos.toString()) binding.playlistInfo.text = response.uploader + TextUtils.SEPARATOR + getString(R.string.videoCount, response.videos.toString())
// show playlist options // show playlist options
binding.optionsMenu.setOnClickListener { binding.optionsMenu.setOnClickListener {
@ -127,7 +128,7 @@ class PlaylistFragment : BaseFragment() {
RecyclerView.AdapterDataObserver() { RecyclerView.AdapterDataObserver() {
override fun onChanged() { override fun onChanged() {
binding.playlistInfo.text = binding.playlistInfo.text =
binding.playlistInfo.text.split("").first() + "" + getString( binding.playlistInfo.text.split(TextUtils.SEPARATOR).first() + TextUtils.SEPARATOR + getString(
R.string.videoCount, R.string.videoCount,
playlistAdapter!!.itemCount.toString() playlistAdapter!!.itemCount.toString()
) )

View File

@ -15,11 +15,11 @@ import com.github.libretube.databinding.FragmentSearchBinding
import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.db.DatabaseHolder.Companion.Database
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.models.SearchViewModel
import com.github.libretube.ui.activities.MainActivity import com.github.libretube.ui.activities.MainActivity
import com.github.libretube.ui.adapters.SearchHistoryAdapter import com.github.libretube.ui.adapters.SearchHistoryAdapter
import com.github.libretube.ui.adapters.SearchSuggestionsAdapter import com.github.libretube.ui.adapters.SearchSuggestionsAdapter
import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.base.BaseFragment
import com.github.libretube.ui.models.SearchViewModel
import retrofit2.HttpException import retrofit2.HttpException
import java.io.IOException import java.io.IOException

View File

@ -12,11 +12,11 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.databinding.FragmentSubscriptionsBinding import com.github.libretube.databinding.FragmentSubscriptionsBinding
import com.github.libretube.models.SubscriptionsViewModel
import com.github.libretube.ui.adapters.LegacySubscriptionAdapter import com.github.libretube.ui.adapters.LegacySubscriptionAdapter
import com.github.libretube.ui.adapters.SubscriptionChannelAdapter import com.github.libretube.ui.adapters.SubscriptionChannelAdapter
import com.github.libretube.ui.adapters.VideosAdapter import com.github.libretube.ui.adapters.VideosAdapter
import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.base.BaseFragment
import com.github.libretube.ui.models.SubscriptionsViewModel
import com.github.libretube.ui.sheets.BaseBottomSheet import com.github.libretube.ui.sheets.BaseBottomSheet
import com.github.libretube.util.LayoutHelper import com.github.libretube.util.LayoutHelper
import com.github.libretube.util.PreferenceHelper import com.github.libretube.util.PreferenceHelper

View File

@ -1,4 +1,4 @@
package com.github.libretube.models.interfaces package com.github.libretube.ui.interfaces
interface DoubleTapInterface { interface DoubleTapInterface {
fun onEvent(x: Float) fun onEvent(x: Float)

View File

@ -1,4 +1,4 @@
package com.github.libretube.util package com.github.libretube.ui.interfaces
import android.os.Handler import android.os.Handler
import android.os.Looper import android.os.Looper

View File

@ -1,4 +1,4 @@
package com.github.libretube.models.interfaces package com.github.libretube.ui.interfaces
interface OnlinePlayerOptions { interface OnlinePlayerOptions {
fun onCaptionsClicked() fun onCaptionsClicked()

View File

@ -1,4 +1,4 @@
package com.github.libretube.models.interfaces package com.github.libretube.ui.interfaces
interface PlayerOptions { interface PlayerOptions {
fun onAutoplayClicked() fun onAutoplayClicked()

View File

@ -1,4 +1,4 @@
package com.github.libretube.models package com.github.libretube.ui.models
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel

View File

@ -1,4 +1,4 @@
package com.github.libretube.models package com.github.libretube.ui.models
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel

View File

@ -1,4 +1,4 @@
package com.github.libretube.models package com.github.libretube.ui.models
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel

View File

@ -1,4 +1,4 @@
package com.github.libretube.models package com.github.libretube.ui.models
import android.util.Log import android.util.Log
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData

View File

@ -13,14 +13,14 @@ 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.extensions.toDp
import com.github.libretube.models.interfaces.DoubleTapInterface
import com.github.libretube.models.interfaces.OnlinePlayerOptions
import com.github.libretube.models.interfaces.PlayerOptions
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.interfaces.DoubleTapInterface
import com.github.libretube.ui.interfaces.DoubleTapListener
import com.github.libretube.ui.interfaces.OnlinePlayerOptions
import com.github.libretube.ui.interfaces.PlayerOptions
import com.github.libretube.ui.sheets.BaseBottomSheet import com.github.libretube.ui.sheets.BaseBottomSheet
import com.github.libretube.ui.sheets.PlaybackSpeedSheet import com.github.libretube.ui.sheets.PlaybackSpeedSheet
import com.github.libretube.util.DoubleTapListener
import com.github.libretube.util.PlayerHelper import com.github.libretube.util.PlayerHelper
import com.google.android.exoplayer2.PlaybackParameters import com.google.android.exoplayer2.PlaybackParameters
import com.google.android.exoplayer2.trackselection.TrackSelector import com.google.android.exoplayer2.trackselection.TrackSelector

View File

@ -0,0 +1,8 @@
package com.github.libretube.util
object TextUtils {
/**
* Separator used for descriptions
*/
const val SEPARATOR = ""
}

View File

@ -75,6 +75,9 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
android:ellipsize="end"
android:maxLines="2"
android:textSize="14sp"
app:layout_constraintEnd_toStartOf="@id/delete_playlist" app:layout_constraintEnd_toStartOf="@id/delete_playlist"
app:layout_constraintStart_toEndOf="@+id/card_playlist_thumbnail" app:layout_constraintStart_toEndOf="@+id/card_playlist_thumbnail"
app:layout_constraintTop_toBottomOf="@+id/playlist_title" /> app:layout_constraintTop_toBottomOf="@+id/playlist_title" />