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