From cbe7b4a87d8aeec37b44a8ba88dddd6841b340be Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 19 Jul 2022 21:31:56 +0200 Subject: [PATCH 1/3] cleanup --- .../libretube/adapters/ChannelAdapter.kt | 17 +----- .../libretube/adapters/CommentsAdapter.kt | 18 +----- .../libretube/adapters/PlaylistAdapter.kt | 18 +----- .../libretube/adapters/PlaylistsAdapter.kt | 8 +-- .../libretube/adapters/RepliesAdapter.kt | 19 +------ .../libretube/adapters/SearchAdapter.kt | 31 ++--------- .../libretube/adapters/SubscriptionAdapter.kt | 33 +---------- .../adapters/SubscriptionChannelAdapter.kt | 7 +-- .../libretube/adapters/TrendingAdapter.kt | 33 +---------- .../libretube/adapters/WatchHistoryAdapter.kt | 34 +----------- .../github/libretube/util/NavigationHelper.kt | 55 +++++++++++++++++++ 11 files changed, 81 insertions(+), 192 deletions(-) create mode 100644 app/src/main/java/com/github/libretube/util/NavigationHelper.kt diff --git a/app/src/main/java/com/github/libretube/adapters/ChannelAdapter.kt b/app/src/main/java/com/github/libretube/adapters/ChannelAdapter.kt index 8dd9d6ac7..43918a359 100644 --- a/app/src/main/java/com/github/libretube/adapters/ChannelAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/ChannelAdapter.kt @@ -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=", "") diff --git a/app/src/main/java/com/github/libretube/adapters/CommentsAdapter.kt b/app/src/main/java/com/github/libretube/adapters/CommentsAdapter.kt index e8f1a0e7b..688f33514 100644 --- a/app/src/main/java/com/github/libretube/adapters/CommentsAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/CommentsAdapter.kt @@ -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(R.id.mainMotionLayout) - if (mainMotionLayout.progress == 0.toFloat()) { - mainMotionLayout.transitionToEnd() - activity.findViewById(R.id.playerMotionLayout) - .transitionToEnd() - } - } catch (e: Exception) { - } + NavigationHelper.navigateChannel(root.context, comment.commentorUrl) } repliesRecView.layoutManager = LinearLayoutManager(root.context) val repliesAdapter = RepliesAdapter(CommentsPage().comments) diff --git a/app/src/main/java/com/github/libretube/adapters/PlaylistAdapter.kt b/app/src/main/java/com/github/libretube/adapters/PlaylistAdapter.kt index 3a60d69e7..e28b6267c 100644 --- a/app/src/main/java/com/github/libretube/adapters/PlaylistAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/PlaylistAdapter.kt @@ -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=", "") diff --git a/app/src/main/java/com/github/libretube/adapters/PlaylistsAdapter.kt b/app/src/main/java/com/github/libretube/adapters/PlaylistsAdapter.kt index 045e36d1b..e405f51e9 100644 --- a/app/src/main/java/com/github/libretube/adapters/PlaylistsAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/PlaylistsAdapter.kt @@ -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) } } } diff --git a/app/src/main/java/com/github/libretube/adapters/RepliesAdapter.kt b/app/src/main/java/com/github/libretube/adapters/RepliesAdapter.kt index db0136540..b76fc5b87 100644 --- a/app/src/main/java/com/github/libretube/adapters/RepliesAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/RepliesAdapter.kt @@ -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(R.id.mainMotionLayout) - if (mainMotionLayout.progress == 0.toFloat()) { - mainMotionLayout.transitionToEnd() - activity.findViewById(R.id.playerMotionLayout) - .transitionToEnd() - } - } catch (e: Exception) { - } + NavigationHelper.navigateVideo(root.context, reply.commentorUrl) } } } diff --git a/app/src/main/java/com/github/libretube/adapters/SearchAdapter.kt b/app/src/main/java/com/github/libretube/adapters/SearchAdapter.kt index 5ffa165f5..f973d06ff 100644 --- a/app/src/main/java/com/github/libretube/adapters/SearchAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/SearchAdapter.kt @@ -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() @@ -228,10 +210,7 @@ class SearchAdapter( 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=", "") diff --git a/app/src/main/java/com/github/libretube/adapters/SubscriptionAdapter.kt b/app/src/main/java/com/github/libretube/adapters/SubscriptionAdapter.kt index 0319190bd..1f36f925a 100644 --- a/app/src/main/java/com/github/libretube/adapters/SubscriptionAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/SubscriptionAdapter.kt @@ -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(R.id.mainMotionLayout) - if (mainMotionLayout.progress == 0.toFloat()) { - mainMotionLayout.transitionToEnd() - activity.findViewById(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=", "") diff --git a/app/src/main/java/com/github/libretube/adapters/SubscriptionChannelAdapter.kt b/app/src/main/java/com/github/libretube/adapters/SubscriptionChannelAdapter.kt index c9df3d96e..3e61d8550 100644 --- a/app/src/main/java/com/github/libretube/adapters/SubscriptionChannelAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/SubscriptionChannelAdapter.kt @@ -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(R.id.mainMotionLayout) - if (mainMotionLayout.progress == 0.toFloat()) { - mainMotionLayout.transitionToEnd() - activity.findViewById(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.navigateChannel(root.context, trending.url) } root.setOnLongClickListener { val videoId = trending.url!!.replace("/watch?v=", "") diff --git a/app/src/main/java/com/github/libretube/adapters/WatchHistoryAdapter.kt b/app/src/main/java/com/github/libretube/adapters/WatchHistoryAdapter.kt index 310416287..ec4e3d4a0 100644 --- a/app/src/main/java/com/github/libretube/adapters/WatchHistoryAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/WatchHistoryAdapter.kt @@ -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, @@ -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(R.id.mainMotionLayout) - if (mainMotionLayout.progress == 0.toFloat()) { - mainMotionLayout.transitionToEnd() - activity.findViewById(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) diff --git a/app/src/main/java/com/github/libretube/util/NavigationHelper.kt b/app/src/main/java/com/github/libretube/util/NavigationHelper.kt new file mode 100644 index 000000000..41c4315f5 --- /dev/null +++ b/app/src/main/java/com/github/libretube/util/NavigationHelper.kt @@ -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(R.id.mainMotionLayout) + if (mainMotionLayout.progress == 0.toFloat()) { + mainMotionLayout.transitionToEnd() + activity.findViewById(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) + } + } +} From 721bca316a5124b31655e8d3f3346a6b75914cee Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 19 Jul 2022 21:37:52 +0200 Subject: [PATCH 2/3] cleanup --- .../main/java/com/github/libretube/adapters/SearchAdapter.kt | 2 +- .../main/java/com/github/libretube/adapters/TrendingAdapter.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/github/libretube/adapters/SearchAdapter.kt b/app/src/main/java/com/github/libretube/adapters/SearchAdapter.kt index f973d06ff..d9164eb05 100644 --- a/app/src/main/java/com/github/libretube/adapters/SearchAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/SearchAdapter.kt @@ -206,7 +206,7 @@ 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 { diff --git a/app/src/main/java/com/github/libretube/adapters/TrendingAdapter.kt b/app/src/main/java/com/github/libretube/adapters/TrendingAdapter.kt index ecacb8ecc..e30335ac4 100644 --- a/app/src/main/java/com/github/libretube/adapters/TrendingAdapter.kt +++ b/app/src/main/java/com/github/libretube/adapters/TrendingAdapter.kt @@ -50,7 +50,7 @@ class TrendingAdapter( ConnectionHelper.loadImage(trending.uploaderAvatar, channelImage) root.setOnClickListener { - NavigationHelper.navigateChannel(root.context, trending.url) + NavigationHelper.navigateVideo(root.context, trending.url) } root.setOnLongClickListener { val videoId = trending.url!!.replace("/watch?v=", "") From 28d95c3bc65fe57fb26c993c76356b0b42593823 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Tue, 19 Jul 2022 21:56:17 +0200 Subject: [PATCH 3/3] add new languages --- .../github/libretube/preferences/MainSettings.kt | 4 ++-- .../com/github/libretube/util/LocaleHelper.kt | 13 +++++++------ app/src/main/res/values/array.xml | 16 +++++++++++++++- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/github/libretube/preferences/MainSettings.kt b/app/src/main/java/com/github/libretube/preferences/MainSettings.kt index 66d7503d1..65c89abda 100644 --- a/app/src/main/java/com/github/libretube/preferences/MainSettings.kt +++ b/app/src/main/java/com/github/libretube/preferences/MainSettings.kt @@ -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("language") language?.setOnPreferenceChangeListener { _, _ -> - ThemeHelper.restartMainActivity(requireContext()) + val restartDialog = RequireRestartDialog() + restartDialog.show(childFragmentManager, "RequireRestartDialog") true } diff --git a/app/src/main/java/com/github/libretube/util/LocaleHelper.kt b/app/src/main/java/com/github/libretube/util/LocaleHelper.kt index a5ce2e973..a638c37b0 100644 --- a/app/src/main/java/com/github/libretube/util/LocaleHelper.kt +++ b/app/src/main/java/com/github/libretube/util/LocaleHelper.kt @@ -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) } } diff --git a/app/src/main/res/values/array.xml b/app/src/main/res/values/array.xml index 71fab768f..a3346533f 100644 --- a/app/src/main/res/values/array.xml +++ b/app/src/main/res/values/array.xml @@ -462,10 +462,13 @@ Arabic Azerbaijani Basque + Catalan Chinese (simplified) + Chinese (traditional) Czech Danish English + Filipino Finnish French German @@ -486,10 +489,14 @@ Polish Portuguese Portuguese (Brazil) + Romanian Russian + Slovak Sorani Spanish + Thai Turkish + Turkmen Ukrainian @@ -498,10 +505,13 @@ ar az eu - zh + ca + zh-Hans + zh-Hant cs da en + fil fi fr de @@ -522,10 +532,14 @@ pl pt pt-rBR + ro ru + sk ckb es + th tr + tk uk