diff --git a/app/src/main/java/com/github/libretube/ui/activities/AboutActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/AboutActivity.kt index 3ec3a12b7..ebd4e9198 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/AboutActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/AboutActivity.kt @@ -16,8 +16,8 @@ import com.github.libretube.constants.PIPED_GITHUB_URL import com.github.libretube.constants.WEBLATE_URL import com.github.libretube.constants.WEBSITE_URL import com.github.libretube.databinding.ActivityAboutBinding -import com.github.libretube.extensions.BaseActivity import com.github.libretube.extensions.getStyledSnackBar +import com.github.libretube.ui.base.BaseActivity import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.snackbar.Snackbar diff --git a/app/src/main/java/com/github/libretube/ui/activities/CommunityActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/CommunityActivity.kt index f6d89650c..52a9d3d85 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/CommunityActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/CommunityActivity.kt @@ -9,7 +9,7 @@ import com.github.libretube.constants.REDDIT_URL import com.github.libretube.constants.TELEGRAM_URL import com.github.libretube.constants.TWITTER_URL import com.github.libretube.databinding.ActivityCommunityBinding -import com.github.libretube.extensions.BaseActivity +import com.github.libretube.ui.base.BaseActivity class CommunityActivity : BaseActivity() { private lateinit var binding: ActivityCommunityBinding diff --git a/app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt index 694316171..99a7f3af2 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/MainActivity.kt @@ -25,12 +25,12 @@ import com.github.libretube.R import com.github.libretube.constants.IntentData import com.github.libretube.constants.PreferenceKeys import com.github.libretube.databinding.ActivityMainBinding -import com.github.libretube.extensions.BaseActivity import com.github.libretube.extensions.toID import com.github.libretube.models.PlayerViewModel import com.github.libretube.models.SearchViewModel import com.github.libretube.models.SubscriptionsViewModel import com.github.libretube.services.ClosingService +import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.dialogs.ErrorDialog import com.github.libretube.ui.fragments.PlayerFragment import com.github.libretube.util.NavBarHelper diff --git a/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt index c76a0b1f9..95233f2b6 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/NoInternetActivity.kt @@ -5,8 +5,8 @@ import android.os.Bundle import androidx.activity.OnBackPressedCallback import com.github.libretube.R import com.github.libretube.databinding.ActivityNointernetBinding -import com.github.libretube.extensions.BaseActivity import com.github.libretube.extensions.getStyledSnackBar +import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.fragments.DownloadsFragment import com.github.libretube.util.NetworkHelper import com.github.libretube.util.ThemeHelper diff --git a/app/src/main/java/com/github/libretube/ui/activities/OfflinePlayerActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/OfflinePlayerActivity.kt index ab148e5f9..fb4205e73 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/OfflinePlayerActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/OfflinePlayerActivity.kt @@ -12,7 +12,7 @@ import androidx.core.view.WindowInsetsControllerCompat import com.github.libretube.constants.IntentData import com.github.libretube.databinding.ActivityOfflinePlayerBinding import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding -import com.github.libretube.extensions.BaseActivity +import com.github.libretube.ui.base.BaseActivity import com.github.libretube.util.DownloadHelper import com.google.android.exoplayer2.ExoPlayer import com.google.android.exoplayer2.MediaItem diff --git a/app/src/main/java/com/github/libretube/ui/activities/RouterActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/RouterActivity.kt index 8d0319a75..46ff87634 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/RouterActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/RouterActivity.kt @@ -7,8 +7,8 @@ import android.os.Bundle import android.util.Log import com.github.libretube.R import com.github.libretube.constants.IntentData -import com.github.libretube.extensions.BaseActivity import com.github.libretube.extensions.TAG +import com.github.libretube.ui.base.BaseActivity import com.github.libretube.util.ThemeHelper class RouterActivity : BaseActivity() { diff --git a/app/src/main/java/com/github/libretube/ui/activities/SettingsActivity.kt b/app/src/main/java/com/github/libretube/ui/activities/SettingsActivity.kt index 690bdac09..e957f72af 100644 --- a/app/src/main/java/com/github/libretube/ui/activities/SettingsActivity.kt +++ b/app/src/main/java/com/github/libretube/ui/activities/SettingsActivity.kt @@ -4,7 +4,7 @@ import android.os.Bundle import androidx.activity.OnBackPressedCallback import com.github.libretube.R import com.github.libretube.databinding.ActivitySettingsBinding -import com.github.libretube.extensions.BaseActivity +import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.preferences.MainSettings class SettingsActivity : BaseActivity() { diff --git a/app/src/main/java/com/github/libretube/ui/adapters/BottomSheetAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/BottomSheetAdapter.kt index 656ea1ac9..e694e8f5a 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/BottomSheetAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/BottomSheetAdapter.kt @@ -6,6 +6,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.github.libretube.databinding.BottomSheetItemBinding import com.github.libretube.obj.BottomSheetItem +import com.github.libretube.ui.viewholders.BottomSheetViewHolder class BottomSheetAdapter( private val items: List, @@ -42,7 +43,3 @@ class BottomSheetAdapter( return items.size } } - -class BottomSheetViewHolder( - val binding: BottomSheetItemBinding -) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt index f8c9b7905..1aedd8049 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/ChannelAdapter.kt @@ -1,5 +1,6 @@ package com.github.libretube.ui.adapters +import android.annotation.SuppressLint import android.text.format.DateUtils import android.view.LayoutInflater import android.view.ViewGroup @@ -10,6 +11,7 @@ import com.github.libretube.extensions.formatShort import com.github.libretube.extensions.setWatchProgressLength import com.github.libretube.extensions.toID import com.github.libretube.sheets.VideoOptionsBottomSheet +import com.github.libretube.ui.viewholders.ChannelViewHolder import com.github.libretube.util.ImageHelper import com.github.libretube.util.NavigationHelper @@ -35,6 +37,7 @@ class ChannelAdapter( return ChannelViewHolder(binding) } + @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: ChannelViewHolder, position: Int) { val trending = videoFeed[position] holder.binding.apply { @@ -58,5 +61,3 @@ class ChannelAdapter( } } } - -class ChannelViewHolder(val binding: VideoRowBinding) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/ChaptersAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/ChaptersAdapter.kt index baf9e555f..b0c65a972 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/ChaptersAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/ChaptersAdapter.kt @@ -5,6 +5,7 @@ import android.view.LayoutInflater import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.github.libretube.databinding.ChapterColumnBinding +import com.github.libretube.ui.viewholders.ChaptersViewHolder import com.github.libretube.util.ImageHelper import com.github.libretube.util.ThemeHelper import com.google.android.exoplayer2.ExoPlayer @@ -54,5 +55,3 @@ class ChaptersAdapter( return chapters.size } } - -class ChaptersViewHolder(val binding: ChapterColumnBinding) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/CommentsAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/CommentsAdapter.kt index 3f9b3bef6..042ad28b1 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/CommentsAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/CommentsAdapter.kt @@ -13,6 +13,7 @@ import com.github.libretube.api.obj.CommentsPage import com.github.libretube.databinding.CommentsRowBinding import com.github.libretube.extensions.TAG import com.github.libretube.extensions.formatShort +import com.github.libretube.ui.viewholders.CommentsViewHolder import com.github.libretube.util.ImageHelper import com.github.libretube.util.NavigationHelper import kotlinx.coroutines.CoroutineScope @@ -106,5 +107,3 @@ class CommentsAdapter( } } } - -class CommentsViewHolder(val binding: CommentsRowBinding) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/DownloadsAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/DownloadsAdapter.kt index e0b0fa10b..1634561ac 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/DownloadsAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/DownloadsAdapter.kt @@ -10,6 +10,7 @@ import com.github.libretube.constants.IntentData import com.github.libretube.databinding.DownloadedMediaRowBinding import com.github.libretube.obj.DownloadedFile import com.github.libretube.ui.activities.OfflinePlayerActivity +import com.github.libretube.ui.viewholders.DownloadsViewHolder import com.google.android.material.dialog.MaterialAlertDialogBuilder import java.io.File @@ -74,7 +75,3 @@ class DownloadsAdapter( return files.size } } - -class DownloadsViewHolder( - val binding: DownloadedMediaRowBinding -) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/LegacySubscriptionAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/LegacySubscriptionAdapter.kt index 8b10d9053..b0639128d 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/LegacySubscriptionAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/LegacySubscriptionAdapter.kt @@ -5,6 +5,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.github.libretube.databinding.LegacySubscriptionChannelBinding import com.github.libretube.extensions.toID +import com.github.libretube.ui.viewholders.LegacySubscriptionViewHolder import com.github.libretube.util.ImageHelper import com.github.libretube.util.NavigationHelper @@ -42,7 +43,3 @@ class LegacySubscriptionAdapter( return subscriptions.size } } - -class LegacySubscriptionViewHolder( - val binding: LegacySubscriptionChannelBinding -) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/NavBarOptionsAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/NavBarOptionsAdapter.kt index 0877e420b..41fbad960 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/NavBarOptionsAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/NavBarOptionsAdapter.kt @@ -7,6 +7,7 @@ import androidx.recyclerview.widget.RecyclerView import com.github.libretube.R import com.github.libretube.databinding.NavOptionsItemBinding import com.github.libretube.obj.NavBarItem +import com.github.libretube.ui.viewholders.NavBarOptionsViewHolder class NavBarOptionsAdapter( val items: MutableList @@ -49,7 +50,3 @@ class NavBarOptionsAdapter( return items.filter { it.isEnabled }.size } } - -class NavBarOptionsViewHolder( - val binding: NavOptionsItemBinding -) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt index 514db53dd..06e88f4b6 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistAdapter.kt @@ -14,6 +14,7 @@ import com.github.libretube.extensions.setFormattedDuration import com.github.libretube.extensions.setWatchProgressLength import com.github.libretube.extensions.toID import com.github.libretube.sheets.VideoOptionsBottomSheet +import com.github.libretube.ui.viewholders.PlaylistViewHolder import com.github.libretube.util.ImageHelper import com.github.libretube.util.NavigationHelper import com.github.libretube.util.PreferenceHelper @@ -97,5 +98,3 @@ class PlaylistAdapter( } } } - -class PlaylistViewHolder(val binding: PlaylistRowBinding) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistsAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistsAdapter.kt index a11ce1d87..504bc2c0e 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistsAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistsAdapter.kt @@ -11,6 +11,7 @@ import com.github.libretube.api.RetrofitInstance import com.github.libretube.databinding.PlaylistsRowBinding import com.github.libretube.extensions.TAG import com.github.libretube.sheets.PlaylistOptionsBottomSheet +import com.github.libretube.ui.viewholders.PlaylistsViewHolder import com.github.libretube.util.ImageHelper import com.github.libretube.util.NavigationHelper import com.github.libretube.util.PreferenceHelper @@ -111,5 +112,3 @@ class PlaylistsAdapter( } } } - -class PlaylistsViewHolder(val binding: PlaylistsRowBinding) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/RepliesAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/RepliesAdapter.kt index 8488cfe38..175fac4ed 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/RepliesAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/RepliesAdapter.kt @@ -1,11 +1,13 @@ package com.github.libretube.ui.adapters +import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.github.libretube.databinding.RepliesRowBinding import com.github.libretube.extensions.formatShort +import com.github.libretube.ui.viewholders.RepliesViewHolder import com.github.libretube.util.ImageHelper import com.github.libretube.util.NavigationHelper @@ -31,6 +33,7 @@ class RepliesAdapter( return RepliesViewHolder(binding) } + @SuppressLint("SetTextI18n") override fun onBindViewHolder(holder: RepliesViewHolder, position: Int) { holder.binding.apply { val reply = replies[position] @@ -61,5 +64,3 @@ class RepliesAdapter( return replies.size } } - -class RepliesViewHolder(val binding: RepliesRowBinding) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/SearchAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/SearchAdapter.kt index 9e7dcc43c..255afe162 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/SearchAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/SearchAdapter.kt @@ -1,5 +1,6 @@ package com.github.libretube.ui.adapters +import android.annotation.SuppressLint import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -7,6 +8,7 @@ import androidx.fragment.app.FragmentManager import androidx.recyclerview.widget.RecyclerView import com.github.libretube.R import com.github.libretube.api.SubscriptionHelper +import com.github.libretube.api.obj.SearchItem import com.github.libretube.databinding.ChannelRowBinding import com.github.libretube.databinding.PlaylistSearchRowBinding import com.github.libretube.databinding.VideoRowBinding @@ -16,6 +18,7 @@ import com.github.libretube.extensions.setWatchProgressLength import com.github.libretube.extensions.toID import com.github.libretube.sheets.PlaylistOptionsBottomSheet import com.github.libretube.sheets.VideoOptionsBottomSheet +import com.github.libretube.ui.viewholders.SearchViewHolder import com.github.libretube.util.ImageHelper import com.github.libretube.util.NavigationHelper import kotlinx.coroutines.CoroutineScope @@ -23,12 +26,12 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch class SearchAdapter( - private val searchItems: MutableList, + private val searchItems: MutableList, private val childFragmentManager: FragmentManager ) : RecyclerView.Adapter() { - fun updateItems(newItems: List) { + fun updateItems(newItems: List) { val searchItemsSize = searchItems.size searchItems.addAll(newItems) notifyItemRangeInserted(searchItemsSize, newItems.size) @@ -78,7 +81,7 @@ class SearchAdapter( } } - private fun bindWatch(item: com.github.libretube.api.obj.SearchItem, binding: VideoRowBinding) { + private fun bindWatch(item: SearchItem, binding: VideoRowBinding) { binding.apply { ImageHelper.loadImage(item.thumbnail, thumbnail) thumbnailDuration.setFormattedDuration(item.duration!!) @@ -109,8 +112,9 @@ class SearchAdapter( } } + @SuppressLint("SetTextI18n") private fun bindChannel( - item: com.github.libretube.api.obj.SearchItem, + item: SearchItem, binding: ChannelRowBinding ) { binding.apply { @@ -160,7 +164,7 @@ class SearchAdapter( } private fun bindPlaylist( - item: com.github.libretube.api.obj.SearchItem, + item: SearchItem, binding: PlaylistSearchRowBinding ) { binding.apply { @@ -184,21 +188,3 @@ class SearchAdapter( } } } - -class SearchViewHolder : RecyclerView.ViewHolder { - var videoRowBinding: VideoRowBinding? = null - var channelRowBinding: ChannelRowBinding? = null - var playlistRowBinding: PlaylistSearchRowBinding? = null - - constructor(binding: VideoRowBinding) : super(binding.root) { - videoRowBinding = binding - } - - constructor(binding: ChannelRowBinding) : super(binding.root) { - channelRowBinding = binding - } - - constructor(binding: PlaylistSearchRowBinding) : super(binding.root) { - playlistRowBinding = binding - } -} diff --git a/app/src/main/java/com/github/libretube/ui/adapters/SearchHistoryAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/SearchHistoryAdapter.kt index d050c624d..e6fff4d31 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/SearchHistoryAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/SearchHistoryAdapter.kt @@ -8,6 +8,7 @@ import com.github.libretube.databinding.SearchhistoryRowBinding import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.db.obj.SearchHistoryItem import com.github.libretube.extensions.query +import com.github.libretube.ui.viewholders.SearchHistoryViewHolder class SearchHistoryAdapter( private var historyList: List, @@ -47,6 +48,3 @@ class SearchHistoryAdapter( } } } - -class SearchHistoryViewHolder(val binding: SearchhistoryRowBinding) : - RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/SearchSuggestionsAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/SearchSuggestionsAdapter.kt index c3fdca2ee..1abc3d2b3 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/SearchSuggestionsAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/SearchSuggestionsAdapter.kt @@ -5,6 +5,7 @@ import android.view.ViewGroup import androidx.appcompat.widget.SearchView import androidx.recyclerview.widget.RecyclerView import com.github.libretube.databinding.SearchsuggestionRowBinding +import com.github.libretube.ui.viewholders.SearchSuggestionsViewHolder class SearchSuggestionsAdapter( private var suggestionsList: List, @@ -32,6 +33,3 @@ class SearchSuggestionsAdapter( } } } - -class SearchSuggestionsViewHolder(val binding: SearchsuggestionRowBinding) : - RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/adapters/SubscriptionChannelAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/SubscriptionChannelAdapter.kt index 2d25c107c..ca792802d 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/SubscriptionChannelAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/SubscriptionChannelAdapter.kt @@ -7,6 +7,7 @@ import com.github.libretube.R import com.github.libretube.api.SubscriptionHelper import com.github.libretube.databinding.ChannelSubscriptionRowBinding import com.github.libretube.extensions.toID +import com.github.libretube.ui.viewholders.SubscriptionChannelViewHolder import com.github.libretube.util.ImageHelper import com.github.libretube.util.NavigationHelper @@ -50,6 +51,3 @@ class SubscriptionChannelAdapter(private val subscriptions: MutableList diff --git a/app/src/main/java/com/github/libretube/ui/preferences/AppearanceSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/AppearanceSettings.kt index 16219cc42..7be32162a 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/AppearanceSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/AppearanceSettings.kt @@ -11,13 +11,13 @@ import androidx.preference.SwitchPreferenceCompat import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys import com.github.libretube.ui.activities.SettingsActivity +import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.ui.dialogs.RequireRestartDialog -import com.github.libretube.ui.views.MaterialPreferenceFragment import com.github.libretube.util.PreferenceHelper import com.github.libretube.util.ThemeHelper import com.google.android.material.color.DynamicColors -class AppearanceSettings : MaterialPreferenceFragment() { +class AppearanceSettings : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.appearance_settings, rootKey) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/AudioVideoSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/AudioVideoSettings.kt index 3c92ca802..7c9d34b9c 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/AudioVideoSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/AudioVideoSettings.kt @@ -3,9 +3,9 @@ package com.github.libretube.ui.preferences import android.os.Bundle import com.github.libretube.R import com.github.libretube.ui.activities.SettingsActivity -import com.github.libretube.ui.views.MaterialPreferenceFragment +import com.github.libretube.ui.base.BasePreferenceFragment -class AudioVideoSettings : MaterialPreferenceFragment() { +class AudioVideoSettings : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.audio_video_settings, rootKey) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/GeneralSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/GeneralSettings.kt index 75ddf94ce..4b2f8e0e1 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/GeneralSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/GeneralSettings.kt @@ -8,12 +8,12 @@ import androidx.preference.SwitchPreferenceCompat import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys import com.github.libretube.ui.activities.SettingsActivity +import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.ui.dialogs.NavBarOptionsDialog import com.github.libretube.ui.dialogs.RequireRestartDialog -import com.github.libretube.ui.views.MaterialPreferenceFragment import com.github.libretube.util.PreferenceHelper -class GeneralSettings : MaterialPreferenceFragment() { +class GeneralSettings : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.general_settings, rootKey) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/HistorySettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/HistorySettings.kt index 76cf62482..af4be7d11 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/HistorySettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/HistorySettings.kt @@ -7,10 +7,10 @@ import com.github.libretube.constants.PreferenceKeys import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.extensions.query import com.github.libretube.ui.activities.SettingsActivity -import com.github.libretube.ui.views.MaterialPreferenceFragment +import com.github.libretube.ui.base.BasePreferenceFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder -class HistorySettings : MaterialPreferenceFragment() { +class HistorySettings : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.history_settings, rootKey) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/InstanceSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/InstanceSettings.kt index 967708d20..7696e8fe1 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/InstanceSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/InstanceSettings.kt @@ -17,15 +17,15 @@ import com.github.libretube.constants.PreferenceKeys import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.extensions.awaitQuery import com.github.libretube.ui.activities.SettingsActivity +import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.ui.dialogs.CustomInstanceDialog import com.github.libretube.ui.dialogs.DeleteAccountDialog import com.github.libretube.ui.dialogs.LoginDialog import com.github.libretube.ui.dialogs.LogoutDialog -import com.github.libretube.ui.views.MaterialPreferenceFragment import com.github.libretube.util.ImportHelper import com.github.libretube.util.PreferenceHelper -class InstanceSettings : MaterialPreferenceFragment() { +class InstanceSettings : BasePreferenceFragment() { /** * result listeners for importing and exporting subscriptions diff --git a/app/src/main/java/com/github/libretube/ui/preferences/MainSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/MainSettings.kt index 34502f460..141fc5999 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/MainSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/MainSettings.kt @@ -8,14 +8,14 @@ import com.github.libretube.R import com.github.libretube.api.RetrofitInstance import com.github.libretube.extensions.getStyledSnackBar import com.github.libretube.ui.activities.SettingsActivity +import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.ui.dialogs.UpdateDialog -import com.github.libretube.ui.views.MaterialPreferenceFragment import com.github.libretube.util.NetworkHelper import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch -class MainSettings : MaterialPreferenceFragment() { +class MainSettings : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.settings, rootKey) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/NotificationSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/NotificationSettings.kt index 8e87f58de..80b87bb87 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/NotificationSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/NotificationSettings.kt @@ -7,10 +7,10 @@ import androidx.work.ExistingPeriodicWorkPolicy import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys import com.github.libretube.ui.activities.SettingsActivity -import com.github.libretube.ui.views.MaterialPreferenceFragment +import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.util.NotificationHelper -class NotificationSettings : MaterialPreferenceFragment() { +class NotificationSettings : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.notification_settings, rootKey) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt index cba39cd54..6816c50cc 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/PlayerSettings.kt @@ -7,11 +7,11 @@ import androidx.preference.SwitchPreferenceCompat import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys import com.github.libretube.ui.activities.SettingsActivity -import com.github.libretube.ui.views.MaterialPreferenceFragment +import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.util.PreferenceHelper import java.util.* -class PlayerSettings : MaterialPreferenceFragment() { +class PlayerSettings : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.player_settings, rootKey) diff --git a/app/src/main/java/com/github/libretube/ui/preferences/SponsorBlockSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/SponsorBlockSettings.kt index eccd7a290..3732140fb 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/SponsorBlockSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/SponsorBlockSettings.kt @@ -3,9 +3,9 @@ package com.github.libretube.ui.preferences import android.os.Bundle import com.github.libretube.R import com.github.libretube.ui.activities.SettingsActivity -import com.github.libretube.ui.views.MaterialPreferenceFragment +import com.github.libretube.ui.base.BasePreferenceFragment -class SponsorBlockSettings : MaterialPreferenceFragment() { +class SponsorBlockSettings : BasePreferenceFragment() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.sponsorblock_settings, rootKey) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/BottomSheetViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/BottomSheetViewHolder.kt new file mode 100644 index 000000000..52c59aee0 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/BottomSheetViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.BottomSheetItemBinding + +class BottomSheetViewHolder( + val binding: BottomSheetItemBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/ChannelViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/ChannelViewHolder.kt new file mode 100644 index 000000000..12f274d46 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/ChannelViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.VideoRowBinding + +class ChannelViewHolder( + val binding: VideoRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/ChaptersViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/ChaptersViewHolder.kt new file mode 100644 index 000000000..94f1c8e6a --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/ChaptersViewHolder.kt @@ -0,0 +1,6 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.ChapterColumnBinding + +class ChaptersViewHolder(val binding: ChapterColumnBinding) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/CommentsViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/CommentsViewHolder.kt new file mode 100644 index 000000000..a5a8fb86d --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/CommentsViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.CommentsRowBinding + +class CommentsViewHolder( + val binding: CommentsRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/DownloadsViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/DownloadsViewHolder.kt new file mode 100644 index 000000000..3cc59109d --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/DownloadsViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.DownloadedMediaRowBinding + +class DownloadsViewHolder( + val binding: DownloadedMediaRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/LegacySubscriptionViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/LegacySubscriptionViewHolder.kt new file mode 100644 index 000000000..4b6bae4a5 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/LegacySubscriptionViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.LegacySubscriptionChannelBinding + +class LegacySubscriptionViewHolder( + val binding: LegacySubscriptionChannelBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/NavBarOptionsViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/NavBarOptionsViewHolder.kt new file mode 100644 index 000000000..1faf97f39 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/NavBarOptionsViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.NavOptionsItemBinding + +class NavBarOptionsViewHolder( + val binding: NavOptionsItemBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/PlaylistViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/PlaylistViewHolder.kt new file mode 100644 index 000000000..4d7f50a00 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/PlaylistViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.PlaylistRowBinding + +class PlaylistViewHolder( + val binding: PlaylistRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/PlaylistsViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/PlaylistsViewHolder.kt new file mode 100644 index 000000000..be55b21c7 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/PlaylistsViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.PlaylistsRowBinding + +class PlaylistsViewHolder( + val binding: PlaylistsRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/RepliesViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/RepliesViewHolder.kt new file mode 100644 index 000000000..627a7acb8 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/RepliesViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.RepliesRowBinding + +class RepliesViewHolder( + val binding: RepliesRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/SearchHistoryViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/SearchHistoryViewHolder.kt new file mode 100644 index 000000000..26f84494d --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/SearchHistoryViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.SearchhistoryRowBinding + +class SearchHistoryViewHolder( + val binding: SearchhistoryRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/SearchSuggestionsViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/SearchSuggestionsViewHolder.kt new file mode 100644 index 000000000..771975100 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/SearchSuggestionsViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.SearchsuggestionRowBinding + +class SearchSuggestionsViewHolder( + val binding: SearchsuggestionRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/SearchViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/SearchViewHolder.kt new file mode 100644 index 000000000..760f5aa52 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/SearchViewHolder.kt @@ -0,0 +1,24 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.ChannelRowBinding +import com.github.libretube.databinding.PlaylistSearchRowBinding +import com.github.libretube.databinding.VideoRowBinding + +class SearchViewHolder : RecyclerView.ViewHolder { + var videoRowBinding: VideoRowBinding? = null + var channelRowBinding: ChannelRowBinding? = null + var playlistRowBinding: PlaylistSearchRowBinding? = null + + constructor(binding: VideoRowBinding) : super(binding.root) { + videoRowBinding = binding + } + + constructor(binding: ChannelRowBinding) : super(binding.root) { + channelRowBinding = binding + } + + constructor(binding: PlaylistSearchRowBinding) : super(binding.root) { + playlistRowBinding = binding + } +} diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/SubscriptionChannelViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/SubscriptionChannelViewHolder.kt new file mode 100644 index 000000000..4cbb61aee --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/SubscriptionChannelViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.ChannelSubscriptionRowBinding + +class SubscriptionChannelViewHolder( + val binding: ChannelSubscriptionRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/SubscriptionViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/SubscriptionViewHolder.kt new file mode 100644 index 000000000..0e2d369a4 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/SubscriptionViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.TrendingRowBinding + +class SubscriptionViewHolder( + val binding: TrendingRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/ui/viewholders/WatchHistoryViewHolder.kt b/app/src/main/java/com/github/libretube/ui/viewholders/WatchHistoryViewHolder.kt new file mode 100644 index 000000000..d73390195 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/viewholders/WatchHistoryViewHolder.kt @@ -0,0 +1,8 @@ +package com.github.libretube.ui.viewholders + +import androidx.recyclerview.widget.RecyclerView +import com.github.libretube.databinding.WatchHistoryRowBinding + +class WatchHistoryViewHolder( + val binding: WatchHistoryRowBinding +) : RecyclerView.ViewHolder(binding.root) diff --git a/app/src/main/java/com/github/libretube/extensions/SliderPreference.kt b/app/src/main/java/com/github/libretube/ui/views/SliderPreference.kt similarity index 94% rename from app/src/main/java/com/github/libretube/extensions/SliderPreference.kt rename to app/src/main/java/com/github/libretube/ui/views/SliderPreference.kt index 324a1f9de..bf932ec51 100644 --- a/app/src/main/java/com/github/libretube/extensions/SliderPreference.kt +++ b/app/src/main/java/com/github/libretube/ui/views/SliderPreference.kt @@ -1,4 +1,4 @@ -package com.github.libretube.extensions +package com.github.libretube.ui.views import android.content.Context import android.util.AttributeSet @@ -8,6 +8,7 @@ import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.PreferenceRanges import com.github.libretube.databinding.DialogSliderBinding +import com.github.libretube.extensions.setSliderRangeAndValue import com.github.libretube.util.PreferenceHelper import com.google.android.material.dialog.MaterialAlertDialogBuilder diff --git a/app/src/main/res/xml/audio_video_settings.xml b/app/src/main/res/xml/audio_video_settings.xml index 75e58ab7c..28de14c7d 100644 --- a/app/src/main/res/xml/audio_video_settings.xml +++ b/app/src/main/res/xml/audio_video_settings.xml @@ -70,7 +70,7 @@ - -