mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 15:30:31 +05:30
commit
14f2b10586
@ -1,18 +1,15 @@
|
||||
package com.github.libretube.adapters
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.format.DateUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.databinding.VideoChannelRowBinding
|
||||
import com.github.libretube.dialogs.VideoOptionsDialog
|
||||
import com.github.libretube.fragments.PlayerFragment
|
||||
import com.github.libretube.obj.StreamItem
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
import com.github.libretube.util.formatShort
|
||||
|
||||
class ChannelAdapter(
|
||||
@ -47,17 +44,7 @@ class ChannelAdapter(
|
||||
DateUtils.formatElapsedTime(trending.duration!!)
|
||||
ConnectionHelper.loadImage(trending.thumbnail, channelThumbnail)
|
||||
root.setOnClickListener {
|
||||
var bundle = Bundle()
|
||||
bundle.putString("videoId", trending.url!!.replace("/watch?v=", ""))
|
||||
var frag = PlayerFragment()
|
||||
frag.arguments = bundle
|
||||
val activity = root.context as AppCompatActivity
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.remove(PlayerFragment())
|
||||
.commit()
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.container, frag)
|
||||
.commitNow()
|
||||
NavigationHelper.navigateVideo(root.context, trending.url)
|
||||
}
|
||||
root.setOnLongClickListener {
|
||||
val videoId = trending.url!!.replace("/watch?v=", "")
|
||||
|
@ -5,16 +5,14 @@ import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.MainActivity
|
||||
import com.github.libretube.databinding.CommentsRowBinding
|
||||
import com.github.libretube.obj.Comment
|
||||
import com.github.libretube.obj.CommentsPage
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
import com.github.libretube.util.RetrofitInstance
|
||||
import com.github.libretube.util.formatShort
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@ -66,19 +64,7 @@ class CommentsAdapter(
|
||||
heartedImageView.visibility = View.VISIBLE
|
||||
}
|
||||
commentorImage.setOnClickListener {
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("channel_id" to comment.commentorUrl)
|
||||
activity.navController.navigate(R.id.channelFragment, bundle)
|
||||
try {
|
||||
val mainMotionLayout =
|
||||
activity.findViewById<MotionLayout>(R.id.mainMotionLayout)
|
||||
if (mainMotionLayout.progress == 0.toFloat()) {
|
||||
mainMotionLayout.transitionToEnd()
|
||||
activity.findViewById<MotionLayout>(R.id.playerMotionLayout)
|
||||
.transitionToEnd()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
NavigationHelper.navigateChannel(root.context, comment.commentorUrl)
|
||||
}
|
||||
repliesRecView.layoutManager = LinearLayoutManager(root.context)
|
||||
val repliesAdapter = RepliesAdapter(CommentsPage().comments)
|
||||
|
@ -1,23 +1,20 @@
|
||||
package com.github.libretube.adapters
|
||||
|
||||
import android.app.Activity
|
||||
import android.os.Bundle
|
||||
import android.text.format.DateUtils
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.databinding.PlaylistRowBinding
|
||||
import com.github.libretube.dialogs.VideoOptionsDialog
|
||||
import com.github.libretube.fragments.PlayerFragment
|
||||
import com.github.libretube.obj.PlaylistId
|
||||
import com.github.libretube.obj.StreamItem
|
||||
import com.github.libretube.preferences.PreferenceHelper
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
import com.github.libretube.util.RetrofitInstance
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@ -57,18 +54,7 @@ class PlaylistAdapter(
|
||||
playlistDuration.text = DateUtils.formatElapsedTime(streamItem.duration!!)
|
||||
ConnectionHelper.loadImage(streamItem.thumbnail, playlistThumbnail)
|
||||
root.setOnClickListener {
|
||||
var bundle = Bundle()
|
||||
bundle.putString("videoId", streamItem.url!!.replace("/watch?v=", ""))
|
||||
bundle.putString("playlistId", playlistId)
|
||||
var frag = PlayerFragment()
|
||||
frag.arguments = bundle
|
||||
val activity = root.context as AppCompatActivity
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.remove(PlayerFragment())
|
||||
.commit()
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.container, frag)
|
||||
.commitNow()
|
||||
NavigationHelper.navigateVideo(root.context, streamItem.url, playlistId)
|
||||
}
|
||||
root.setOnLongClickListener {
|
||||
val videoId = streamItem.url!!.replace("/watch?v=", "")
|
||||
|
@ -4,15 +4,14 @@ import android.app.Activity
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.MainActivity
|
||||
import com.github.libretube.databinding.PlaylistsRowBinding
|
||||
import com.github.libretube.obj.PlaylistId
|
||||
import com.github.libretube.obj.Playlists
|
||||
import com.github.libretube.preferences.PreferenceHelper
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
import com.github.libretube.util.RetrofitInstance
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@ -65,10 +64,7 @@ class PlaylistsAdapter(
|
||||
builder.show()
|
||||
}
|
||||
root.setOnClickListener {
|
||||
// playlists clicked
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("playlist_id" to playlist.id)
|
||||
activity.navController.navigate(R.id.playlistFragment, bundle)
|
||||
NavigationHelper.navigatePlaylist(root.context, playlist.id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -3,14 +3,11 @@ package com.github.libretube.adapters
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.MainActivity
|
||||
import com.github.libretube.databinding.RepliesRowBinding
|
||||
import com.github.libretube.obj.Comment
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
import com.github.libretube.util.formatShort
|
||||
|
||||
class RepliesAdapter(
|
||||
@ -57,19 +54,7 @@ class RepliesAdapter(
|
||||
heartedImageView.visibility = View.VISIBLE
|
||||
}
|
||||
commentorImage.setOnClickListener {
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("channel_id" to reply.commentorUrl)
|
||||
activity.navController.navigate(R.id.channelFragment, bundle)
|
||||
try {
|
||||
val mainMotionLayout =
|
||||
activity.findViewById<MotionLayout>(R.id.mainMotionLayout)
|
||||
if (mainMotionLayout.progress == 0.toFloat()) {
|
||||
mainMotionLayout.transitionToEnd()
|
||||
activity.findViewById<MotionLayout>(R.id.playerMotionLayout)
|
||||
.transitionToEnd()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
NavigationHelper.navigateVideo(root.context, reply.commentorUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,26 +1,22 @@
|
||||
package com.github.libretube.adapters
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.format.DateUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.MainActivity
|
||||
import com.github.libretube.databinding.ChannelSearchRowBinding
|
||||
import com.github.libretube.databinding.PlaylistSearchRowBinding
|
||||
import com.github.libretube.databinding.VideoSearchRowBinding
|
||||
import com.github.libretube.dialogs.PlaylistOptionsDialog
|
||||
import com.github.libretube.dialogs.VideoOptionsDialog
|
||||
import com.github.libretube.fragments.PlayerFragment
|
||||
import com.github.libretube.obj.SearchItem
|
||||
import com.github.libretube.obj.Subscribe
|
||||
import com.github.libretube.preferences.PreferenceHelper
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
import com.github.libretube.util.RetrofitInstance
|
||||
import com.github.libretube.util.formatShort
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@ -103,17 +99,7 @@ class SearchAdapter(
|
||||
}
|
||||
searchChannelName.text = item.uploaderName
|
||||
root.setOnClickListener {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("videoId", item.url!!.replace("/watch?v=", ""))
|
||||
val frag = PlayerFragment()
|
||||
frag.arguments = bundle
|
||||
val activity = root.context as AppCompatActivity
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.remove(PlayerFragment())
|
||||
.commit()
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.container, frag)
|
||||
.commitNow()
|
||||
NavigationHelper.navigateVideo(root.context, item.url)
|
||||
}
|
||||
root.setOnLongClickListener {
|
||||
val videoId = item.url!!.replace("/watch?v=", "")
|
||||
@ -122,9 +108,7 @@ class SearchAdapter(
|
||||
true
|
||||
}
|
||||
searchChannelImage.setOnClickListener {
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("channel_id" to item.uploaderUrl)
|
||||
activity.navController.navigate(R.id.channelFragment, bundle)
|
||||
NavigationHelper.navigateChannel(root.context, item.uploaderUrl)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -138,9 +122,7 @@ class SearchAdapter(
|
||||
item.subscribers.formatShort()
|
||||
) + " • " + root.context.getString(R.string.videoCount, item.videos.toString())
|
||||
root.setOnClickListener {
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("channel_id" to item.url)
|
||||
activity.navController.navigate(R.id.channelFragment, bundle)
|
||||
NavigationHelper.navigateChannel(root.context, item.url)
|
||||
}
|
||||
val channelId = item.url?.replace("/channel/", "")!!
|
||||
val token = PreferenceHelper.getToken()
|
||||
@ -224,14 +206,11 @@ class SearchAdapter(
|
||||
searchDescription.text = item.name
|
||||
searchName.text = item.uploaderName
|
||||
if (item.videos?.toInt() != -1) {
|
||||
searchPlaylistNumber.text =
|
||||
searchPlaylistVideos.text =
|
||||
root.context.getString(R.string.videoCount, item.videos.toString())
|
||||
}
|
||||
root.setOnClickListener {
|
||||
// playlist clicked
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("playlist_id" to item.url)
|
||||
activity.navController.navigate(R.id.playlistFragment, bundle)
|
||||
NavigationHelper.navigatePlaylist(root.context, item.url)
|
||||
}
|
||||
root.setOnLongClickListener {
|
||||
val playlistId = item.url!!.replace("/playlist?list=", "")
|
||||
|
@ -1,21 +1,16 @@
|
||||
package com.github.libretube.adapters
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.format.DateUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.MainActivity
|
||||
import com.github.libretube.databinding.TrendingRowBinding
|
||||
import com.github.libretube.dialogs.VideoOptionsDialog
|
||||
import com.github.libretube.fragments.PlayerFragment
|
||||
import com.github.libretube.obj.StreamItem
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
import com.github.libretube.util.formatShort
|
||||
|
||||
class SubscriptionAdapter(
|
||||
@ -58,34 +53,12 @@ class SubscriptionAdapter(
|
||||
thumbnailDuration.setBackgroundColor(R.attr.colorPrimaryDark)
|
||||
}
|
||||
channelImage.setOnClickListener {
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("channel_id" to trending.uploaderUrl)
|
||||
activity.navController.navigate(R.id.channelFragment, bundle)
|
||||
try {
|
||||
val mainMotionLayout =
|
||||
activity.findViewById<MotionLayout>(R.id.mainMotionLayout)
|
||||
if (mainMotionLayout.progress == 0.toFloat()) {
|
||||
mainMotionLayout.transitionToEnd()
|
||||
activity.findViewById<MotionLayout>(R.id.playerMotionLayout)
|
||||
.transitionToEnd()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
NavigationHelper.navigateChannel(root.context, trending.uploaderUrl)
|
||||
}
|
||||
ConnectionHelper.loadImage(trending.thumbnail, thumbnail)
|
||||
ConnectionHelper.loadImage(trending.uploaderAvatar, channelImage)
|
||||
root.setOnClickListener {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("videoId", trending.url!!.replace("/watch?v=", ""))
|
||||
val frag = PlayerFragment()
|
||||
frag.arguments = bundle
|
||||
val activity = root.context as AppCompatActivity
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.remove(PlayerFragment())
|
||||
.commit()
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.container, frag)
|
||||
.commitNow()
|
||||
NavigationHelper.navigateVideo(root.context, trending.url)
|
||||
}
|
||||
root.setOnLongClickListener {
|
||||
val videoId = trending.url!!.replace("/watch?v=", "")
|
||||
|
@ -4,15 +4,14 @@ import android.content.Context
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.MainActivity
|
||||
import com.github.libretube.databinding.ChannelSubscriptionRowBinding
|
||||
import com.github.libretube.obj.Subscribe
|
||||
import com.github.libretube.obj.Subscription
|
||||
import com.github.libretube.preferences.PreferenceHelper
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
import com.github.libretube.util.RetrofitInstance
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@ -42,9 +41,7 @@ class SubscriptionChannelAdapter(private val subscriptions: MutableList<Subscrip
|
||||
subscriptionChannelName.text = subscription.name
|
||||
ConnectionHelper.loadImage(subscription.avatar, subscriptionChannelImage)
|
||||
root.setOnClickListener {
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("channel_id" to subscription.url)
|
||||
activity.navController.navigate(R.id.channelFragment, bundle)
|
||||
NavigationHelper.navigateChannel(root.context, subscription.url)
|
||||
}
|
||||
subscriptionSubscribe.setOnClickListener {
|
||||
if (!isLoading) {
|
||||
|
@ -1,21 +1,16 @@
|
||||
package com.github.libretube.adapters
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.format.DateUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.MainActivity
|
||||
import com.github.libretube.databinding.TrendingRowBinding
|
||||
import com.github.libretube.dialogs.VideoOptionsDialog
|
||||
import com.github.libretube.fragments.PlayerFragment
|
||||
import com.github.libretube.obj.StreamItem
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
import com.github.libretube.util.formatShort
|
||||
|
||||
class TrendingAdapter(
|
||||
@ -49,35 +44,13 @@ class TrendingAdapter(
|
||||
thumbnailDuration.setBackgroundColor(R.attr.colorPrimaryDark)
|
||||
}
|
||||
channelImage.setOnClickListener {
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("channel_id" to trending.uploaderUrl)
|
||||
activity.navController.navigate(R.id.channelFragment, bundle)
|
||||
try {
|
||||
val mainMotionLayout =
|
||||
activity.findViewById<MotionLayout>(R.id.mainMotionLayout)
|
||||
if (mainMotionLayout.progress == 0.toFloat()) {
|
||||
mainMotionLayout.transitionToEnd()
|
||||
activity.findViewById<MotionLayout>(R.id.playerMotionLayout)
|
||||
.transitionToEnd()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
NavigationHelper.navigateChannel(root.context, trending.uploaderUrl)
|
||||
}
|
||||
ConnectionHelper.loadImage(trending.thumbnail, thumbnail)
|
||||
ConnectionHelper.loadImage(trending.uploaderAvatar, channelImage)
|
||||
|
||||
root.setOnClickListener {
|
||||
var bundle = Bundle()
|
||||
bundle.putString("videoId", trending.url!!.replace("/watch?v=", ""))
|
||||
var frag = PlayerFragment()
|
||||
frag.arguments = bundle
|
||||
val activity = root.context as AppCompatActivity
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.remove(PlayerFragment())
|
||||
.commit()
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.container, frag)
|
||||
.commitNow()
|
||||
NavigationHelper.navigateVideo(root.context, trending.url)
|
||||
}
|
||||
root.setOnLongClickListener {
|
||||
val videoId = trending.url!!.replace("/watch?v=", "")
|
||||
|
@ -1,21 +1,15 @@
|
||||
package com.github.libretube.adapters
|
||||
|
||||
import android.os.Bundle
|
||||
import android.text.format.DateUtils
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.MainActivity
|
||||
import com.github.libretube.databinding.WatchHistoryRowBinding
|
||||
import com.github.libretube.dialogs.VideoOptionsDialog
|
||||
import com.github.libretube.fragments.PlayerFragment
|
||||
import com.github.libretube.obj.WatchHistoryItem
|
||||
import com.github.libretube.util.ConnectionHelper
|
||||
import com.github.libretube.util.NavigationHelper
|
||||
|
||||
class WatchHistoryAdapter(
|
||||
private val watchHistory: MutableList<WatchHistoryItem>,
|
||||
@ -47,33 +41,11 @@ class WatchHistoryAdapter(
|
||||
ConnectionHelper.loadImage(video.uploaderAvatar, channelImage)
|
||||
|
||||
channelImage.setOnClickListener {
|
||||
val activity = root.context as MainActivity
|
||||
val bundle = bundleOf("channel_id" to video.uploaderUrl)
|
||||
activity.navController.navigate(R.id.channelFragment, bundle)
|
||||
try {
|
||||
val mainMotionLayout =
|
||||
activity.findViewById<MotionLayout>(R.id.mainMotionLayout)
|
||||
if (mainMotionLayout.progress == 0.toFloat()) {
|
||||
mainMotionLayout.transitionToEnd()
|
||||
activity.findViewById<MotionLayout>(R.id.playerMotionLayout)
|
||||
.transitionToEnd()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
NavigationHelper.navigateChannel(root.context, video.uploaderUrl)
|
||||
}
|
||||
|
||||
root.setOnClickListener {
|
||||
var bundle = Bundle()
|
||||
bundle.putString("videoId", video.videoId)
|
||||
var frag = PlayerFragment()
|
||||
frag.arguments = bundle
|
||||
val activity = root.context as AppCompatActivity
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.remove(PlayerFragment())
|
||||
.commit()
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.container, frag)
|
||||
.commitNow()
|
||||
NavigationHelper.navigateVideo(root.context, video.videoId)
|
||||
}
|
||||
root.setOnLongClickListener {
|
||||
VideoOptionsDialog(video.videoId!!, root.context)
|
||||
|
@ -12,7 +12,6 @@ import com.github.libretube.activities.SettingsActivity
|
||||
import com.github.libretube.dialogs.RequireRestartDialog
|
||||
import com.github.libretube.dialogs.UpdateDialog
|
||||
import com.github.libretube.update.UpdateChecker
|
||||
import com.github.libretube.util.ThemeHelper
|
||||
import com.google.android.material.snackbar.Snackbar
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@ -37,7 +36,8 @@ class MainSettings : PreferenceFragmentCompat() {
|
||||
|
||||
val language = findPreference<ListPreference>("language")
|
||||
language?.setOnPreferenceChangeListener { _, _ ->
|
||||
ThemeHelper.restartMainActivity(requireContext())
|
||||
val restartDialog = RequireRestartDialog()
|
||||
restartDialog.show(childFragmentManager, "RequireRestartDialog")
|
||||
true
|
||||
}
|
||||
|
||||
|
@ -12,15 +12,16 @@ object LocaleHelper {
|
||||
fun updateLanguage(context: Context) {
|
||||
val languageName = PreferenceHelper.getString(PreferenceKeys.LANGUAGE, "sys")
|
||||
if (languageName == "sys") updateLocaleConf(context, Locale.getDefault())
|
||||
else if ("$languageName".length < 3) {
|
||||
val locale = Locale(languageName.toString())
|
||||
updateLocaleConf(context, locale)
|
||||
} else if ("$languageName".length > 3) {
|
||||
else if (languageName?.contains("-") == true) {
|
||||
val languageParts = languageName.split("-")
|
||||
val locale = Locale(
|
||||
languageName?.substring(0, 2).toString(),
|
||||
languageName?.substring(4, 6).toString()
|
||||
languageParts[0],
|
||||
languageParts[1]
|
||||
)
|
||||
updateLocaleConf(context, locale)
|
||||
} else {
|
||||
val locale = Locale(languageName.toString())
|
||||
updateLocaleConf(context, locale)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,55 @@
|
||||
package com.github.libretube.util
|
||||
|
||||
import android.content.Context
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import androidx.core.os.bundleOf
|
||||
import com.github.libretube.R
|
||||
import com.github.libretube.activities.MainActivity
|
||||
import com.github.libretube.fragments.PlayerFragment
|
||||
|
||||
object NavigationHelper {
|
||||
fun navigateChannel(context: Context, channelId: String?) {
|
||||
if (channelId != null) {
|
||||
val activity = context as MainActivity
|
||||
val bundle = bundleOf("channel_id" to channelId)
|
||||
activity.navController.navigate(R.id.channelFragment, bundle)
|
||||
try {
|
||||
val mainMotionLayout =
|
||||
activity.findViewById<MotionLayout>(R.id.mainMotionLayout)
|
||||
if (mainMotionLayout.progress == 0.toFloat()) {
|
||||
mainMotionLayout.transitionToEnd()
|
||||
activity.findViewById<MotionLayout>(R.id.playerMotionLayout)
|
||||
.transitionToEnd()
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun navigateVideo(context: Context, videoId: String?, playlistId: String? = null) {
|
||||
if (videoId != null) {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("videoId", videoId.replace("/watch?v=", ""))
|
||||
if (playlistId != null) bundle.putString("playlistId", playlistId)
|
||||
val frag = PlayerFragment()
|
||||
frag.arguments = bundle
|
||||
val activity = context as AppCompatActivity
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.remove(PlayerFragment())
|
||||
.commit()
|
||||
activity.supportFragmentManager.beginTransaction()
|
||||
.replace(R.id.container, frag)
|
||||
.commitNow()
|
||||
}
|
||||
}
|
||||
|
||||
fun navigatePlaylist(context: Context, playlistId: String?) {
|
||||
if (playlistId != null) {
|
||||
val activity = context as MainActivity
|
||||
val bundle = bundleOf("playlist_id" to playlistId)
|
||||
activity.navController.navigate(R.id.playlistFragment, bundle)
|
||||
}
|
||||
}
|
||||
}
|
@ -462,10 +462,13 @@
|
||||
<item>Arabic</item>
|
||||
<item>Azerbaijani</item>
|
||||
<item>Basque</item>
|
||||
<item>Catalan</item>
|
||||
<item>Chinese (simplified)</item>
|
||||
<item>Chinese (traditional)</item>
|
||||
<item>Czech</item>
|
||||
<item>Danish</item>
|
||||
<item>English</item>
|
||||
<item>Filipino</item>
|
||||
<item>Finnish</item>
|
||||
<item>French</item>
|
||||
<item>German</item>
|
||||
@ -486,10 +489,14 @@
|
||||
<item>Polish</item>
|
||||
<item>Portuguese</item>
|
||||
<item>Portuguese (Brazil)</item>
|
||||
<item>Romanian</item>
|
||||
<item>Russian</item>
|
||||
<item>Slovak</item>
|
||||
<item>Sorani</item>
|
||||
<item>Spanish</item>
|
||||
<item>Thai</item>
|
||||
<item>Turkish</item>
|
||||
<item>Turkmen</item>
|
||||
<item>Ukrainian</item>
|
||||
</string-array>
|
||||
|
||||
@ -498,10 +505,13 @@
|
||||
<item>ar</item>
|
||||
<item>az</item>
|
||||
<item>eu</item>
|
||||
<item>zh</item>
|
||||
<item>ca</item>
|
||||
<item>zh-Hans</item>
|
||||
<item>zh-Hant</item>
|
||||
<item>cs</item>
|
||||
<item>da</item>
|
||||
<item>en</item>
|
||||
<item>fil</item>
|
||||
<item>fi</item>
|
||||
<item>fr</item>
|
||||
<item>de</item>
|
||||
@ -522,10 +532,14 @@
|
||||
<item>pl</item>
|
||||
<item>pt</item>
|
||||
<item>pt-rBR</item>
|
||||
<item>ro</item>
|
||||
<item>ru</item>
|
||||
<item>sk</item>
|
||||
<item>ckb</item>
|
||||
<item>es</item>
|
||||
<item>th</item>
|
||||
<item>tr</item>
|
||||
<item>tk</item>
|
||||
<item>uk</item>
|
||||
</string-array>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user