diff --git a/app/src/main/java/com/github/libretube/LibreTubeApp.kt b/app/src/main/java/com/github/libretube/LibreTubeApp.kt index 48e06da95..282d1f6c1 100644 --- a/app/src/main/java/com/github/libretube/LibreTubeApp.kt +++ b/app/src/main/java/com/github/libretube/LibreTubeApp.kt @@ -12,12 +12,12 @@ import com.github.libretube.constants.BACKGROUND_CHANNEL_ID import com.github.libretube.constants.DOWNLOAD_CHANNEL_ID import com.github.libretube.constants.PUSH_CHANNEL_ID import com.github.libretube.db.DatabaseHolder -import com.github.libretube.util.ExceptionHandler import com.github.libretube.helpers.ImageHelper import com.github.libretube.helpers.NotificationHelper import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.helpers.ProxyHelper import com.github.libretube.helpers.ShortcutHelper +import com.github.libretube.util.ExceptionHandler class LibreTubeApp : Application() { override fun onCreate() { diff --git a/app/src/main/java/com/github/libretube/api/PlaylistsHelper.kt b/app/src/main/java/com/github/libretube/api/PlaylistsHelper.kt index f96a05282..1f01927fd 100644 --- a/app/src/main/java/com/github/libretube/api/PlaylistsHelper.kt +++ b/app/src/main/java/com/github/libretube/api/PlaylistsHelper.kt @@ -16,9 +16,9 @@ import com.github.libretube.extensions.toID import com.github.libretube.extensions.toLocalPlaylistItem import com.github.libretube.extensions.toStreamItem import com.github.libretube.extensions.toastFromMainThread -import com.github.libretube.obj.ImportPlaylist import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.helpers.ProxyHelper +import com.github.libretube.obj.ImportPlaylist import java.io.IOException import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async diff --git a/app/src/main/java/com/github/libretube/services/BackgroundMode.kt b/app/src/main/java/com/github/libretube/services/BackgroundMode.kt index fd6fa630b..01541746a 100644 --- a/app/src/main/java/com/github/libretube/services/BackgroundMode.kt +++ b/app/src/main/java/com/github/libretube/services/BackgroundMode.kt @@ -29,9 +29,9 @@ import com.github.libretube.extensions.awaitQuery import com.github.libretube.extensions.query import com.github.libretube.extensions.toID import com.github.libretube.extensions.toStreamItem -import com.github.libretube.util.NowPlayingNotification import com.github.libretube.helpers.PlayerHelper import com.github.libretube.helpers.PlayerHelper.loadPlaybackParams +import com.github.libretube.util.NowPlayingNotification import com.github.libretube.util.PlayingQueue import com.google.android.exoplayer2.ExoPlayer import com.google.android.exoplayer2.MediaItem diff --git a/app/src/main/java/com/github/libretube/services/DownloadService.kt b/app/src/main/java/com/github/libretube/services/DownloadService.kt index 2fd5d8f07..8f04bf6a6 100644 --- a/app/src/main/java/com/github/libretube/services/DownloadService.kt +++ b/app/src/main/java/com/github/libretube/services/DownloadService.kt @@ -25,14 +25,14 @@ import com.github.libretube.extensions.getContentLength import com.github.libretube.extensions.query import com.github.libretube.extensions.toDownloadItems import com.github.libretube.extensions.toastFromMainThread +import com.github.libretube.helpers.DownloadHelper +import com.github.libretube.helpers.DownloadHelper.getNotificationId +import com.github.libretube.helpers.ImageHelper import com.github.libretube.obj.DownloadStatus import com.github.libretube.receivers.NotificationReceiver import com.github.libretube.receivers.NotificationReceiver.Companion.ACTION_DOWNLOAD_PAUSE import com.github.libretube.receivers.NotificationReceiver.Companion.ACTION_DOWNLOAD_RESUME import com.github.libretube.ui.activities.MainActivity -import com.github.libretube.helpers.DownloadHelper -import com.github.libretube.helpers.DownloadHelper.getNotificationId -import com.github.libretube.helpers.ImageHelper import java.io.File import java.net.HttpURLConnection import java.net.SocketTimeoutException 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 364742269..5c13ab6ca 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 @@ -27,6 +27,12 @@ import com.github.libretube.constants.IntentData import com.github.libretube.constants.PreferenceKeys import com.github.libretube.databinding.ActivityMainBinding import com.github.libretube.extensions.toID +import com.github.libretube.helpers.NavBarHelper +import com.github.libretube.helpers.NavigationHelper +import com.github.libretube.helpers.NetworkHelper +import com.github.libretube.helpers.PreferenceHelper +import com.github.libretube.helpers.ThemeHelper +import com.github.libretube.helpers.WindowHelper import com.github.libretube.services.ClosingService import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.dialogs.ErrorDialog @@ -36,12 +42,6 @@ import com.github.libretube.ui.models.PlayerViewModel import com.github.libretube.ui.models.SearchViewModel import com.github.libretube.ui.models.SubscriptionsViewModel import com.github.libretube.ui.tools.SleepTimer -import com.github.libretube.helpers.NavBarHelper -import com.github.libretube.helpers.NavigationHelper -import com.github.libretube.helpers.NetworkHelper -import com.github.libretube.helpers.PreferenceHelper -import com.github.libretube.helpers.ThemeHelper -import com.github.libretube.helpers.WindowHelper import com.google.android.material.elevation.SurfaceColors class MainActivity : BaseActivity() { 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 06339f0fd..5b3ce4be1 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 @@ -6,10 +6,10 @@ import androidx.activity.addCallback import androidx.fragment.app.commit import com.github.libretube.R import com.github.libretube.databinding.ActivityNointernetBinding -import com.github.libretube.ui.base.BaseActivity -import com.github.libretube.ui.fragments.DownloadsFragment import com.github.libretube.helpers.NavigationHelper import com.github.libretube.helpers.NetworkHelper +import com.github.libretube.ui.base.BaseActivity +import com.github.libretube.ui.fragments.DownloadsFragment import com.google.android.material.snackbar.Snackbar class NoInternetActivity : BaseActivity() { 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 2d192ce6d..04367ea19 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 @@ -16,12 +16,12 @@ import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.enums.FileType import com.github.libretube.extensions.awaitQuery import com.github.libretube.extensions.updateParameters -import com.github.libretube.ui.base.BaseActivity -import com.github.libretube.ui.extensions.setAspectRatio -import com.github.libretube.ui.models.PlayerViewModel import com.github.libretube.helpers.PlayerHelper import com.github.libretube.helpers.PlayerHelper.loadPlaybackParams import com.github.libretube.helpers.WindowHelper +import com.github.libretube.ui.base.BaseActivity +import com.github.libretube.ui.extensions.setAspectRatio +import com.github.libretube.ui.models.PlayerViewModel import com.google.android.exoplayer2.C 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 bae5a0ca8..a6d42a91f 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.constants.IntentData import com.github.libretube.extensions.TAG -import com.github.libretube.ui.base.BaseActivity import com.github.libretube.helpers.NavigationHelper +import com.github.libretube.ui.base.BaseActivity import com.github.libretube.util.TextUtils class RouterActivity : BaseActivity() { 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 a7b628c85..3dc32e5a2 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 @@ -7,9 +7,9 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.github.libretube.api.obj.ChapterSegment import com.github.libretube.databinding.ChapterColumnBinding -import com.github.libretube.ui.viewholders.ChaptersViewHolder import com.github.libretube.helpers.ImageHelper import com.github.libretube.helpers.ThemeHelper +import com.github.libretube.ui.viewholders.ChaptersViewHolder import com.google.android.exoplayer2.ExoPlayer class ChaptersAdapter( 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 bb8ba390f..575bb82a0 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 @@ -19,13 +19,13 @@ import com.github.libretube.api.obj.Comment import com.github.libretube.constants.IntentData import com.github.libretube.databinding.CommentsRowBinding import com.github.libretube.extensions.formatShort -import com.github.libretube.ui.fragments.CommentsRepliesFragment -import com.github.libretube.ui.viewholders.CommentsViewHolder import com.github.libretube.helpers.ClipboardHelper import com.github.libretube.helpers.ImageHelper import com.github.libretube.helpers.NavigationHelper -import com.github.libretube.util.TextUtils import com.github.libretube.helpers.ThemeHelper +import com.github.libretube.ui.fragments.CommentsRepliesFragment +import com.github.libretube.ui.viewholders.CommentsViewHolder +import com.github.libretube.util.TextUtils class CommentsAdapter( private val fragment: Fragment?, 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 72b1cd834..df46893c3 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 @@ -14,9 +14,9 @@ import com.github.libretube.db.DatabaseHolder import com.github.libretube.db.obj.DownloadWithItems import com.github.libretube.extensions.formatAsFileSize import com.github.libretube.extensions.query +import com.github.libretube.helpers.ImageHelper import com.github.libretube.ui.activities.OfflinePlayerActivity import com.github.libretube.ui.viewholders.DownloadsViewHolder -import com.github.libretube.helpers.ImageHelper import com.google.android.material.dialog.MaterialAlertDialogBuilder import java.io.File diff --git a/app/src/main/java/com/github/libretube/ui/adapters/IconsSheetAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/IconsSheetAdapter.kt index 3d14cc083..00daa1f59 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/IconsSheetAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/IconsSheetAdapter.kt @@ -8,9 +8,9 @@ import androidx.recyclerview.widget.RecyclerView import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys import com.github.libretube.databinding.AppIconItemBinding -import com.github.libretube.ui.viewholders.IconsSheetViewHolder import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.helpers.ThemeHelper +import com.github.libretube.ui.viewholders.IconsSheetViewHolder class IconsSheetAdapter : RecyclerView.Adapter() { override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): IconsSheetViewHolder { 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 da2242be9..f4ecf65f7 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,11 +5,11 @@ 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.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.sheets.ChannelOptionsBottomSheet import com.github.libretube.ui.viewholders.LegacySubscriptionViewHolder -import com.github.libretube.helpers.ImageHelper -import com.github.libretube.helpers.NavigationHelper class LegacySubscriptionAdapter( private val subscriptions: List diff --git a/app/src/main/java/com/github/libretube/ui/adapters/PlayingQueueAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/PlayingQueueAdapter.kt index 2a2bb18b3..dec3d6921 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/PlayingQueueAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/PlayingQueueAdapter.kt @@ -8,10 +8,10 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import com.github.libretube.databinding.QueueRowBinding import com.github.libretube.extensions.toID -import com.github.libretube.ui.viewholders.PlayingQueueViewHolder import com.github.libretube.helpers.ImageHelper -import com.github.libretube.util.PlayingQueue import com.github.libretube.helpers.ThemeHelper +import com.github.libretube.ui.viewholders.PlayingQueueViewHolder +import com.github.libretube.util.PlayingQueue class PlayingQueueAdapter : RecyclerView.Adapter() { 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 0285534a4..93d331783 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 @@ -13,13 +13,13 @@ import com.github.libretube.databinding.VideoRowBinding import com.github.libretube.enums.PlaylistType import com.github.libretube.extensions.TAG import com.github.libretube.extensions.toID +import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.extensions.setFormattedDuration import com.github.libretube.ui.extensions.setWatchProgressLength import com.github.libretube.ui.sheets.VideoOptionsBottomSheet import com.github.libretube.ui.viewholders.PlaylistViewHolder -import com.github.libretube.helpers.ImageHelper -import com.github.libretube.helpers.NavigationHelper import java.io.IOException import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistBookmarkAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistBookmarkAdapter.kt index a7fcef33c..d96cf9703 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/PlaylistBookmarkAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/PlaylistBookmarkAdapter.kt @@ -12,10 +12,10 @@ import com.github.libretube.db.DatabaseHolder import com.github.libretube.db.obj.PlaylistBookmark import com.github.libretube.enums.PlaylistType import com.github.libretube.extensions.query -import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet -import com.github.libretube.ui.viewholders.PlaylistBookmarkViewHolder import com.github.libretube.helpers.ImageHelper import com.github.libretube.helpers.NavigationHelper +import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet +import com.github.libretube.ui.viewholders.PlaylistBookmarkViewHolder class PlaylistBookmarkAdapter( private val bookmarks: List, 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 a3cf346cd..2a650a922 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 @@ -7,12 +7,12 @@ import com.github.libretube.R import com.github.libretube.api.obj.Playlists import com.github.libretube.databinding.PlaylistsRowBinding import com.github.libretube.enums.PlaylistType +import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.dialogs.DeletePlaylistDialog import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet import com.github.libretube.ui.viewholders.PlaylistsViewHolder -import com.github.libretube.helpers.ImageHelper -import com.github.libretube.helpers.NavigationHelper class PlaylistsAdapter( private val playlists: MutableList, 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 eefc2683e..03c983b24 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 @@ -13,6 +13,8 @@ import com.github.libretube.databinding.VideoRowBinding import com.github.libretube.enums.PlaylistType import com.github.libretube.extensions.formatShort import com.github.libretube.extensions.toID +import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.extensions.setFormattedDuration import com.github.libretube.ui.extensions.setWatchProgressLength @@ -21,8 +23,6 @@ import com.github.libretube.ui.sheets.ChannelOptionsBottomSheet import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet import com.github.libretube.ui.sheets.VideoOptionsBottomSheet import com.github.libretube.ui.viewholders.SearchViewHolder -import com.github.libretube.helpers.ImageHelper -import com.github.libretube.helpers.NavigationHelper import com.github.libretube.util.TextUtils class SearchAdapter( 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 104e7cab7..e5ec8d60d 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 @@ -6,12 +6,12 @@ import androidx.recyclerview.widget.RecyclerView import com.github.libretube.api.obj.Subscription import com.github.libretube.databinding.ChannelSubscriptionRowBinding import com.github.libretube.extensions.toID +import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.extensions.setupSubscriptionButton import com.github.libretube.ui.sheets.ChannelOptionsBottomSheet import com.github.libretube.ui.viewholders.SubscriptionChannelViewHolder -import com.github.libretube.helpers.ImageHelper -import com.github.libretube.helpers.NavigationHelper class SubscriptionChannelAdapter( private val subscriptions: MutableList diff --git a/app/src/main/java/com/github/libretube/ui/adapters/VideosAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/VideosAdapter.kt index ddbdbd791..cf2139337 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/VideosAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/VideosAdapter.kt @@ -20,14 +20,14 @@ import com.github.libretube.databinding.VideoRowBinding import com.github.libretube.extensions.dpToPx import com.github.libretube.extensions.formatShort import com.github.libretube.extensions.toID +import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper +import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.extensions.setFormattedDuration import com.github.libretube.ui.extensions.setWatchProgressLength import com.github.libretube.ui.sheets.VideoOptionsBottomSheet import com.github.libretube.ui.viewholders.VideosViewHolder -import com.github.libretube.helpers.ImageHelper -import com.github.libretube.helpers.NavigationHelper -import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.util.TextUtils class VideosAdapter( diff --git a/app/src/main/java/com/github/libretube/ui/adapters/WatchHistoryAdapter.kt b/app/src/main/java/com/github/libretube/ui/adapters/WatchHistoryAdapter.kt index 7378b42fe..bed0f0b77 100644 --- a/app/src/main/java/com/github/libretube/ui/adapters/WatchHistoryAdapter.kt +++ b/app/src/main/java/com/github/libretube/ui/adapters/WatchHistoryAdapter.kt @@ -8,13 +8,13 @@ import com.github.libretube.databinding.VideoRowBinding import com.github.libretube.db.DatabaseHolder import com.github.libretube.db.obj.WatchHistoryItem import com.github.libretube.extensions.query +import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.extensions.setFormattedDuration import com.github.libretube.ui.extensions.setWatchProgressLength import com.github.libretube.ui.sheets.VideoOptionsBottomSheet import com.github.libretube.ui.viewholders.WatchHistoryViewHolder -import com.github.libretube.helpers.ImageHelper -import com.github.libretube.helpers.NavigationHelper class WatchHistoryAdapter( private val watchHistory: MutableList diff --git a/app/src/main/java/com/github/libretube/ui/base/BasePreferenceFragment.kt b/app/src/main/java/com/github/libretube/ui/base/BasePreferenceFragment.kt index 1c58428b1..8fcc90d42 100644 --- a/app/src/main/java/com/github/libretube/ui/base/BasePreferenceFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/base/BasePreferenceFragment.kt @@ -7,8 +7,8 @@ import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat import com.github.libretube.R import com.github.libretube.databinding.DialogTextPreferenceBinding -import com.github.libretube.ui.activities.SettingsActivity import com.github.libretube.helpers.PreferenceHelper +import com.github.libretube.ui.activities.SettingsActivity import com.google.android.material.dialog.MaterialAlertDialogBuilder /** diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/BackupDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/BackupDialog.kt index 858550188..34c50f58e 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/BackupDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/BackupDialog.kt @@ -7,9 +7,9 @@ import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope import com.github.libretube.R import com.github.libretube.db.DatabaseHolder.Companion.Database +import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.obj.BackupFile import com.github.libretube.obj.PreferenceItem -import com.github.libretube.helpers.PreferenceHelper import com.google.android.material.dialog.MaterialAlertDialogBuilder import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/NavBarOptionsDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/NavBarOptionsDialog.kt index 30bcb73e5..181394b3a 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/NavBarOptionsDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/NavBarOptionsDialog.kt @@ -8,8 +8,8 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.github.libretube.R import com.github.libretube.databinding.DialogNavbarOptionsBinding -import com.github.libretube.ui.adapters.NavBarOptionsAdapter import com.github.libretube.helpers.NavBarHelper +import com.github.libretube.ui.adapters.NavBarOptionsAdapter import com.google.android.material.dialog.MaterialAlertDialogBuilder class NavBarOptionsDialog : DialogFragment() { diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/ShareDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/ShareDialog.kt index 700e3ef8f..08550f499 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/ShareDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/ShareDialog.kt @@ -13,8 +13,8 @@ import com.github.libretube.databinding.DialogShareBinding import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.enums.ShareObjectType import com.github.libretube.extensions.awaitQuery -import com.github.libretube.obj.ShareData import com.github.libretube.helpers.PreferenceHelper +import com.github.libretube.obj.ShareData import com.google.android.material.dialog.MaterialAlertDialogBuilder class ShareDialog( diff --git a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt index 93a6a39b9..0a737e5dd 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/AudioPlayerFragment.kt @@ -1,5 +1,6 @@ package com.github.libretube.ui.fragments +import android.annotation.SuppressLint import android.content.ComponentName import android.content.Context import android.content.Intent @@ -17,22 +18,28 @@ import com.github.libretube.R import com.github.libretube.api.obj.StreamItem import com.github.libretube.databinding.FragmentAudioPlayerBinding import com.github.libretube.enums.ShareObjectType +import com.github.libretube.extensions.normalize import com.github.libretube.extensions.toID +import com.github.libretube.helpers.AudioHelper +import com.github.libretube.helpers.BackgroundHelper +import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper import com.github.libretube.obj.ShareData import com.github.libretube.services.BackgroundMode import com.github.libretube.ui.activities.MainActivity import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.dialogs.ShareDialog +import com.github.libretube.ui.interfaces.AudioPlayerOptions +import com.github.libretube.ui.listeners.AudioPlayerThumbnailListener import com.github.libretube.ui.sheets.PlaybackOptionsSheet import com.github.libretube.ui.sheets.PlayingQueueSheet import com.github.libretube.ui.sheets.VideoOptionsBottomSheet -import com.github.libretube.helpers.BackgroundHelper -import com.github.libretube.helpers.ImageHelper -import com.github.libretube.helpers.NavigationHelper import com.github.libretube.util.PlayingQueue -class AudioPlayerFragment : BaseFragment() { +class AudioPlayerFragment : BaseFragment(), AudioPlayerOptions { private lateinit var binding: FragmentAudioPlayerBinding + private lateinit var audioHelper: AudioHelper + private val onTrackChangeListener: (StreamItem) -> Unit = { updateStreamInfo() } @@ -64,6 +71,7 @@ class AudioPlayerFragment : BaseFragment() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + audioHelper = AudioHelper(requireContext()) Intent(activity, BackgroundMode::class.java).also { intent -> activity?.bindService(intent, connection, Context.BIND_AUTO_CREATE) } @@ -78,6 +86,7 @@ class AudioPlayerFragment : BaseFragment() { return binding.root } + @SuppressLint("ClickableViewAccessibility") override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -129,13 +138,8 @@ class AudioPlayerFragment : BaseFragment() { ).show(childFragmentManager, null) } - binding.thumbnail.setOnClickListener { - val current = PlayingQueue.getCurrent() - current?.let { - VideoOptionsBottomSheet(it.url!!.toID(), it.title!!) - .show(childFragmentManager) - } - } + val listener = AudioPlayerThumbnailListener(requireContext(), this) + binding.thumbnail.setOnTouchListener(listener) // Listen for track changes due to autoplay or the notification PlayingQueue.addOnTrackChangedListener(onTrackChangeListener) @@ -146,6 +150,11 @@ class AudioPlayerFragment : BaseFragment() { // load the stream info into the UI updateStreamInfo() + + // update the currently shown volume + binding.volumeProgressBar.let { bar -> + bar.progress = audioHelper.getVolumeWithScale(bar.max) + } } /** @@ -232,4 +241,48 @@ class AudioPlayerFragment : BaseFragment() { super.onDestroy() } + + override fun onSingleTap() { + if (isPaused) playerService?.play() else playerService?.pause() + } + + override fun onLongTap() { + val current = PlayingQueue.getCurrent() + VideoOptionsBottomSheet(current?.url?.toID() ?: return, current.title ?: return) + .show(childFragmentManager) + } + + override fun onSwipe(distanceY: Float) { + binding.volumeControls.visibility = View.VISIBLE + updateVolume(distanceY) + } + + override fun onSwipeEnd() { + binding.volumeControls.visibility = View.GONE + } + + private fun updateVolume(distance: Float) { + val bar = binding.volumeProgressBar + binding.volumeControls.apply { + if (visibility == View.GONE) { + visibility = View.VISIBLE + // Volume could be changed using other mediums, sync progress + // bar with new value. + bar.progress = audioHelper.getVolumeWithScale(bar.max) + } + } + + if (bar.progress == 0) { + binding.volumeImageView.setImageResource( + when { + distance > 0 -> R.drawable.ic_volume_up + else -> R.drawable.ic_volume_off + } + ) + } + bar.incrementProgressBy(distance.toInt() / 3) + audioHelper.setVolumeWithScale(bar.progress, bar.max) + + binding.volumeTextView.text = "${bar.progress.normalize(0, bar.max, 0, 100)}" + } } diff --git a/app/src/main/java/com/github/libretube/ui/fragments/ChannelFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/ChannelFragment.kt index 11ac52e83..af260aa24 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/ChannelFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/ChannelFragment.kt @@ -19,6 +19,7 @@ import com.github.libretube.enums.ShareObjectType import com.github.libretube.extensions.TAG import com.github.libretube.extensions.formatShort import com.github.libretube.extensions.toID +import com.github.libretube.helpers.ImageHelper import com.github.libretube.obj.ChannelTabs import com.github.libretube.obj.ShareData import com.github.libretube.ui.adapters.SearchAdapter @@ -26,7 +27,6 @@ import com.github.libretube.ui.adapters.VideosAdapter import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.dialogs.ShareDialog import com.github.libretube.ui.extensions.setupSubscriptionButton -import com.github.libretube.helpers.ImageHelper import java.io.IOException import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/com/github/libretube/ui/fragments/DownloadsFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/DownloadsFragment.kt index b5bf1a17f..b23146823 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/DownloadsFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/DownloadsFragment.kt @@ -19,13 +19,13 @@ import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.db.obj.DownloadWithItems import com.github.libretube.extensions.awaitQuery import com.github.libretube.extensions.formatAsFileSize +import com.github.libretube.helpers.DownloadHelper import com.github.libretube.obj.DownloadStatus import com.github.libretube.receivers.DownloadReceiver import com.github.libretube.services.DownloadService import com.github.libretube.ui.adapters.DownloadsAdapter import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.viewholders.DownloadsViewHolder -import com.github.libretube.helpers.DownloadHelper import java.io.File import kotlinx.coroutines.Job import kotlinx.coroutines.flow.collectLatest diff --git a/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt index 68d2b369c..360a6cd7a 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/HomeFragment.kt @@ -18,11 +18,11 @@ import com.github.libretube.databinding.FragmentHomeBinding import com.github.libretube.db.DatabaseHolder import com.github.libretube.extensions.awaitQuery import com.github.libretube.extensions.toastFromMainThread +import com.github.libretube.helpers.LocaleHelper import com.github.libretube.ui.adapters.PlaylistBookmarkAdapter import com.github.libretube.ui.adapters.PlaylistsAdapter import com.github.libretube.ui.adapters.VideosAdapter import com.github.libretube.ui.base.BaseFragment -import com.github.libretube.helpers.LocaleHelper import kotlinx.coroutines.CancellationException import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt index 99ccb43ad..d868af09e 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/LibraryFragment.kt @@ -21,13 +21,13 @@ import com.github.libretube.db.DatabaseHolder import com.github.libretube.extensions.TAG import com.github.libretube.extensions.awaitQuery import com.github.libretube.extensions.dpToPx +import com.github.libretube.helpers.NavBarHelper +import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.ui.adapters.PlaylistBookmarkAdapter import com.github.libretube.ui.adapters.PlaylistsAdapter import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.dialogs.CreatePlaylistDialog import com.github.libretube.ui.models.PlayerViewModel -import com.github.libretube.helpers.NavBarHelper -import com.github.libretube.helpers.PreferenceHelper class LibraryFragment : BaseFragment() { diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt index 9985a0c67..33514024a 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlayerFragment.kt @@ -67,6 +67,13 @@ import com.github.libretube.extensions.query import com.github.libretube.extensions.toID import com.github.libretube.extensions.toStreamItem import com.github.libretube.extensions.updateParameters +import com.github.libretube.helpers.BackgroundHelper +import com.github.libretube.helpers.DashHelper +import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper +import com.github.libretube.helpers.PlayerHelper +import com.github.libretube.helpers.PlayerHelper.loadPlaybackParams +import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.obj.ShareData import com.github.libretube.obj.VideoResolution import com.github.libretube.services.BackgroundMode @@ -81,24 +88,17 @@ import com.github.libretube.ui.dialogs.ShareDialog import com.github.libretube.ui.extensions.setAspectRatio import com.github.libretube.ui.extensions.setupSubscriptionButton import com.github.libretube.ui.interfaces.OnlinePlayerOptions +import com.github.libretube.ui.listeners.SeekbarPreviewListener import com.github.libretube.ui.models.CommentsViewModel import com.github.libretube.ui.models.PlayerViewModel import com.github.libretube.ui.sheets.BaseBottomSheet import com.github.libretube.ui.sheets.CommentsSheet import com.github.libretube.ui.sheets.PlayingQueueSheet -import com.github.libretube.helpers.BackgroundHelper -import com.github.libretube.helpers.DashHelper import com.github.libretube.util.DataSaverMode import com.github.libretube.util.HtmlParser -import com.github.libretube.helpers.ImageHelper import com.github.libretube.util.LinkHandler -import com.github.libretube.helpers.NavigationHelper import com.github.libretube.util.NowPlayingNotification -import com.github.libretube.helpers.PlayerHelper -import com.github.libretube.helpers.PlayerHelper.loadPlaybackParams import com.github.libretube.util.PlayingQueue -import com.github.libretube.helpers.PreferenceHelper -import com.github.libretube.ui.listeners.SeekbarPreviewListener import com.github.libretube.util.TextUtils import com.google.android.exoplayer2.C import com.google.android.exoplayer2.ExoPlayer diff --git a/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt index 3d775b0a9..980f525fd 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/PlaylistFragment.kt @@ -26,13 +26,13 @@ import com.github.libretube.extensions.dpToPx import com.github.libretube.extensions.query import com.github.libretube.extensions.toID import com.github.libretube.extensions.toPlaylistBookmark +import com.github.libretube.helpers.ImageHelper +import com.github.libretube.helpers.NavigationHelper import com.github.libretube.ui.adapters.PlaylistAdapter import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.extensions.serializable import com.github.libretube.ui.models.PlayerViewModel import com.github.libretube.ui.sheets.PlaylistOptionsBottomSheet -import com.github.libretube.helpers.ImageHelper -import com.github.libretube.helpers.NavigationHelper import com.github.libretube.util.PlayingQueue import com.github.libretube.util.TextUtils diff --git a/app/src/main/java/com/github/libretube/ui/fragments/SearchResultFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/SearchResultFragment.kt index 51d7fc5e5..e44b0dae6 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/SearchResultFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/SearchResultFragment.kt @@ -16,9 +16,9 @@ import com.github.libretube.db.DatabaseHelper import com.github.libretube.db.obj.SearchHistoryItem import com.github.libretube.extensions.TAG import com.github.libretube.extensions.hideKeyboard +import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.ui.adapters.SearchAdapter import com.github.libretube.ui.base.BaseFragment -import com.github.libretube.helpers.PreferenceHelper import java.io.IOException import retrofit2.HttpException diff --git a/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt index 1cb41c30f..526ec633e 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/SubscriptionsFragment.kt @@ -13,13 +13,13 @@ import com.github.libretube.R import com.github.libretube.api.obj.StreamItem import com.github.libretube.constants.PreferenceKeys import com.github.libretube.databinding.FragmentSubscriptionsBinding +import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.ui.adapters.LegacySubscriptionAdapter import com.github.libretube.ui.adapters.SubscriptionChannelAdapter import com.github.libretube.ui.adapters.VideosAdapter import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.models.SubscriptionsViewModel import com.github.libretube.ui.sheets.BaseBottomSheet -import com.github.libretube.helpers.PreferenceHelper class SubscriptionsFragment : BaseFragment() { private lateinit var binding: FragmentSubscriptionsBinding diff --git a/app/src/main/java/com/github/libretube/ui/fragments/TrendsFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/TrendsFragment.kt index ead15d77e..ec2187af8 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/TrendsFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/TrendsFragment.kt @@ -12,10 +12,10 @@ import com.github.libretube.R import com.github.libretube.api.RetrofitInstance import com.github.libretube.databinding.FragmentTrendsBinding import com.github.libretube.extensions.TAG +import com.github.libretube.helpers.LocaleHelper import com.github.libretube.ui.activities.SettingsActivity import com.github.libretube.ui.adapters.VideosAdapter import com.github.libretube.ui.base.BaseFragment -import com.github.libretube.helpers.LocaleHelper import com.google.android.material.snackbar.Snackbar import java.io.IOException import retrofit2.HttpException diff --git a/app/src/main/java/com/github/libretube/ui/fragments/WatchHistoryFragment.kt b/app/src/main/java/com/github/libretube/ui/fragments/WatchHistoryFragment.kt index 563829078..f39eca543 100644 --- a/app/src/main/java/com/github/libretube/ui/fragments/WatchHistoryFragment.kt +++ b/app/src/main/java/com/github/libretube/ui/fragments/WatchHistoryFragment.kt @@ -19,12 +19,12 @@ import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.extensions.awaitQuery import com.github.libretube.extensions.dpToPx import com.github.libretube.extensions.query +import com.github.libretube.helpers.NavigationHelper +import com.github.libretube.helpers.ProxyHelper import com.github.libretube.ui.adapters.WatchHistoryAdapter import com.github.libretube.ui.base.BaseFragment import com.github.libretube.ui.models.PlayerViewModel -import com.github.libretube.helpers.NavigationHelper import com.github.libretube.util.PlayingQueue -import com.github.libretube.helpers.ProxyHelper import com.google.android.material.dialog.MaterialAlertDialogBuilder class WatchHistoryFragment : BaseFragment() { diff --git a/app/src/main/java/com/github/libretube/ui/interfaces/AudioPlayerOptions.kt b/app/src/main/java/com/github/libretube/ui/interfaces/AudioPlayerOptions.kt new file mode 100644 index 000000000..91a0198fb --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/interfaces/AudioPlayerOptions.kt @@ -0,0 +1,12 @@ +package com.github.libretube.ui.interfaces + +interface AudioPlayerOptions { + + fun onSingleTap() + + fun onLongTap() + + fun onSwipe(distanceY: Float) + + fun onSwipeEnd() +} diff --git a/app/src/main/java/com/github/libretube/ui/listeners/AudioPlayerThumbnailListener.kt b/app/src/main/java/com/github/libretube/ui/listeners/AudioPlayerThumbnailListener.kt new file mode 100644 index 000000000..05e747704 --- /dev/null +++ b/app/src/main/java/com/github/libretube/ui/listeners/AudioPlayerThumbnailListener.kt @@ -0,0 +1,81 @@ +package com.github.libretube.ui.listeners + +import android.annotation.SuppressLint +import android.content.Context +import android.os.Handler +import android.os.Looper +import android.view.GestureDetector +import android.view.MotionEvent +import android.view.View +import android.view.ViewConfiguration +import androidx.core.os.postDelayed +import com.github.libretube.ui.interfaces.AudioPlayerOptions +import kotlin.math.abs + +class AudioPlayerThumbnailListener(context: Context, private val listener: AudioPlayerOptions) : + View.OnTouchListener { + + private val handler = Handler(Looper.getMainLooper()) + private val gestureDetector = GestureDetector(context, GestureListener(), handler) + private var isMoving = false + + @SuppressLint("ClickableViewAccessibility") + override fun onTouch(v: View, event: MotionEvent): Boolean { + if (event.action == MotionEvent.ACTION_UP && isMoving) { + isMoving = false + listener.onSwipeEnd() + return false + } + + runCatching { + gestureDetector.onTouchEvent(event) + } + + return true + } + + private inner class GestureListener : GestureDetector.SimpleOnGestureListener() { + + override fun onDown(e: MotionEvent): Boolean { + if (isMoving) return false + + handler.postDelayed(ACTION_INTERVAL, SINGLE_PRESS_TOKEN) { + if (!isMoving) listener.onSingleTap() + } + + return true + } + + override fun onScroll( + e1: MotionEvent, + e2: MotionEvent, + distanceX: Float, + distanceY: Float + ): Boolean { + val insideThreshHold = abs(e2.y - e1.y) <= MOVEMENT_THRESHOLD + + // If the movement is inside threshold or scroll is horizontal then return false + if (!isMoving && (insideThreshHold || abs(distanceX) > abs(distanceY))) { + return false + } + + isMoving = true + + listener.onSwipe(distanceY) + return true + } + + override fun onLongPress(e: MotionEvent) { + // remove to single press action from the queue + handler.removeCallbacksAndMessages(SINGLE_PRESS_TOKEN) + + listener.onLongTap() + } + } + + companion object { + private const val MOVEMENT_THRESHOLD = 10 + private val ACTION_INTERVAL = ViewConfiguration.getLongPressTimeout().toLong() + private const val SINGLE_PRESS_TOKEN = "singlePress" + } +} diff --git a/app/src/main/java/com/github/libretube/ui/listeners/PlayerGestureController.kt b/app/src/main/java/com/github/libretube/ui/listeners/PlayerGestureController.kt index 60f900ee4..f59d8aa3b 100644 --- a/app/src/main/java/com/github/libretube/ui/listeners/PlayerGestureController.kt +++ b/app/src/main/java/com/github/libretube/ui/listeners/PlayerGestureController.kt @@ -12,10 +12,10 @@ import android.view.ScaleGestureDetector import android.view.View import androidx.activity.viewModels import androidx.core.os.postDelayed +import com.github.libretube.helpers.PlayerHelper import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.interfaces.PlayerGestureOptions import com.github.libretube.ui.models.PlayerViewModel -import com.github.libretube.helpers.PlayerHelper import kotlin.math.abs class PlayerGestureController(activity: BaseActivity, private val listener: PlayerGestureOptions) : diff --git a/app/src/main/java/com/github/libretube/ui/listeners/SeekbarPreviewListener.kt b/app/src/main/java/com/github/libretube/ui/listeners/SeekbarPreviewListener.kt index a21a28b00..5740a9aa9 100644 --- a/app/src/main/java/com/github/libretube/ui/listeners/SeekbarPreviewListener.kt +++ b/app/src/main/java/com/github/libretube/ui/listeners/SeekbarPreviewListener.kt @@ -9,8 +9,8 @@ import androidx.core.math.MathUtils import androidx.core.view.updateLayoutParams import coil.request.ImageRequest import com.github.libretube.api.obj.PreviewFrames -import com.github.libretube.obj.PreviewFrame import com.github.libretube.helpers.ImageHelper +import com.github.libretube.obj.PreviewFrame import com.google.android.exoplayer2.ui.TimeBar class SeekbarPreviewListener( diff --git a/app/src/main/java/com/github/libretube/ui/preferences/AdvancedSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/AdvancedSettings.kt index 44729128d..61b3d3965 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/AdvancedSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/AdvancedSettings.kt @@ -6,9 +6,9 @@ import androidx.preference.ListPreference import androidx.preference.Preference import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys -import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.helpers.ImageHelper import com.github.libretube.helpers.PreferenceHelper +import com.github.libretube.ui.base.BasePreferenceFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder class AdvancedSettings : BasePreferenceFragment() { 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 d2913a214..ecea86cc6 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 @@ -7,12 +7,12 @@ import androidx.preference.Preference import androidx.preference.SwitchPreferenceCompat import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys +import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.ui.adapters.IconsSheetAdapter 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.sheets.IconsBottomSheet -import com.github.libretube.helpers.PreferenceHelper class AppearanceSettings : BasePreferenceFragment() { override val titleResourceId: Int = R.string.appearance diff --git a/app/src/main/java/com/github/libretube/ui/preferences/BackupRestoreSettings.kt b/app/src/main/java/com/github/libretube/ui/preferences/BackupRestoreSettings.kt index e478f69b9..63020dc01 100644 --- a/app/src/main/java/com/github/libretube/ui/preferences/BackupRestoreSettings.kt +++ b/app/src/main/java/com/github/libretube/ui/preferences/BackupRestoreSettings.kt @@ -7,11 +7,11 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts.CreateDocument import androidx.preference.Preference import com.github.libretube.R +import com.github.libretube.helpers.BackupHelper +import com.github.libretube.helpers.ImportHelper import com.github.libretube.obj.BackupFile import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.ui.dialogs.BackupDialog -import com.github.libretube.helpers.BackupHelper -import com.github.libretube.helpers.ImportHelper import java.time.LocalDateTime import java.time.format.DateTimeFormatter 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 e3d4daf42..a698caef4 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 @@ -7,10 +7,10 @@ import androidx.preference.Preference import androidx.preference.SwitchPreferenceCompat import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys -import com.github.libretube.ui.base.BasePreferenceFragment -import com.github.libretube.ui.dialogs.RequireRestartDialog import com.github.libretube.helpers.LocaleHelper import com.github.libretube.helpers.PreferenceHelper +import com.github.libretube.ui.base.BasePreferenceFragment +import com.github.libretube.ui.dialogs.RequireRestartDialog class GeneralSettings : BasePreferenceFragment() { override val titleResourceId: Int = R.string.general 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 d17ddab51..662e7034b 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 @@ -15,12 +15,12 @@ import com.github.libretube.constants.PreferenceKeys import com.github.libretube.db.DatabaseHolder.Companion.Database import com.github.libretube.extensions.awaitQuery import com.github.libretube.extensions.toastFromMainThread +import com.github.libretube.helpers.PreferenceHelper 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.helpers.PreferenceHelper class InstanceSettings : BasePreferenceFragment() { override val titleResourceId: Int = R.string.instance 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 ea534f637..3e23d33a4 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 @@ -6,9 +6,9 @@ import androidx.preference.SwitchPreferenceCompat import androidx.work.ExistingPeriodicWorkPolicy import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys +import com.github.libretube.helpers.NotificationHelper import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.ui.views.TimePickerPreference -import com.github.libretube.helpers.NotificationHelper class NotificationSettings : BasePreferenceFragment() { override val titleResourceId: Int = R.string.notifications 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 8b4735898..0587ca184 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 @@ -12,9 +12,9 @@ import androidx.preference.Preference import androidx.preference.SwitchPreferenceCompat import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys -import com.github.libretube.ui.base.BasePreferenceFragment import com.github.libretube.helpers.LocaleHelper import com.github.libretube.helpers.PreferenceHelper +import com.github.libretube.ui.base.BasePreferenceFragment class PlayerSettings : BasePreferenceFragment() { override val titleResourceId: Int = R.string.player diff --git a/app/src/main/java/com/github/libretube/ui/sheets/ChannelOptionsBottomSheet.kt b/app/src/main/java/com/github/libretube/ui/sheets/ChannelOptionsBottomSheet.kt index e78ff3f05..eaf86e581 100644 --- a/app/src/main/java/com/github/libretube/ui/sheets/ChannelOptionsBottomSheet.kt +++ b/app/src/main/java/com/github/libretube/ui/sheets/ChannelOptionsBottomSheet.kt @@ -7,10 +7,10 @@ import com.github.libretube.api.RetrofitInstance import com.github.libretube.enums.ShareObjectType import com.github.libretube.extensions.TAG import com.github.libretube.extensions.toID -import com.github.libretube.obj.ShareData -import com.github.libretube.ui.dialogs.ShareDialog import com.github.libretube.helpers.BackgroundHelper import com.github.libretube.helpers.NavigationHelper +import com.github.libretube.obj.ShareData +import com.github.libretube.ui.dialogs.ShareDialog import kotlinx.coroutines.runBlocking /** diff --git a/app/src/main/java/com/github/libretube/ui/sheets/PlaylistOptionsBottomSheet.kt b/app/src/main/java/com/github/libretube/ui/sheets/PlaylistOptionsBottomSheet.kt index caac4343c..cf7400f56 100644 --- a/app/src/main/java/com/github/libretube/ui/sheets/PlaylistOptionsBottomSheet.kt +++ b/app/src/main/java/com/github/libretube/ui/sheets/PlaylistOptionsBottomSheet.kt @@ -12,11 +12,11 @@ import com.github.libretube.extensions.query import com.github.libretube.extensions.toID import com.github.libretube.extensions.toPlaylistBookmark import com.github.libretube.extensions.toastFromMainThread +import com.github.libretube.helpers.BackgroundHelper import com.github.libretube.obj.ShareData import com.github.libretube.ui.dialogs.DeletePlaylistDialog import com.github.libretube.ui.dialogs.RenamePlaylistDialog import com.github.libretube.ui.dialogs.ShareDialog -import com.github.libretube.helpers.BackgroundHelper import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch diff --git a/app/src/main/java/com/github/libretube/ui/sheets/VideoOptionsBottomSheet.kt b/app/src/main/java/com/github/libretube/ui/sheets/VideoOptionsBottomSheet.kt index 2aeb75168..a6243de9c 100644 --- a/app/src/main/java/com/github/libretube/ui/sheets/VideoOptionsBottomSheet.kt +++ b/app/src/main/java/com/github/libretube/ui/sheets/VideoOptionsBottomSheet.kt @@ -5,11 +5,11 @@ import com.github.libretube.R import com.github.libretube.api.RetrofitInstance import com.github.libretube.enums.ShareObjectType import com.github.libretube.extensions.toStreamItem +import com.github.libretube.helpers.BackgroundHelper import com.github.libretube.obj.ShareData import com.github.libretube.ui.dialogs.AddToPlaylistDialog import com.github.libretube.ui.dialogs.DownloadDialog import com.github.libretube.ui.dialogs.ShareDialog -import com.github.libretube.helpers.BackgroundHelper import com.github.libretube.util.PlayingQueue import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers diff --git a/app/src/main/java/com/github/libretube/ui/tools/SleepTimer.kt b/app/src/main/java/com/github/libretube/ui/tools/SleepTimer.kt index 5d1401287..45b59a9ac 100644 --- a/app/src/main/java/com/github/libretube/ui/tools/SleepTimer.kt +++ b/app/src/main/java/com/github/libretube/ui/tools/SleepTimer.kt @@ -7,8 +7,8 @@ import android.os.Process import androidx.core.os.postDelayed import com.github.libretube.R import com.github.libretube.constants.PreferenceKeys -import com.github.libretube.ui.activities.MainActivity import com.github.libretube.helpers.PreferenceHelper +import com.github.libretube.ui.activities.MainActivity import com.google.android.material.snackbar.Snackbar object SleepTimer { diff --git a/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt b/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt index 93a349e51..9bf8c0509 100644 --- a/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt +++ b/app/src/main/java/com/github/libretube/ui/views/CustomExoPlayerView.kt @@ -23,19 +23,19 @@ import com.github.libretube.databinding.ExoStyledPlayerControlViewBinding import com.github.libretube.databinding.PlayerGestureControlsViewBinding import com.github.libretube.extensions.dpToPx import com.github.libretube.extensions.normalize +import com.github.libretube.helpers.AudioHelper +import com.github.libretube.helpers.BrightnessHelper +import com.github.libretube.helpers.PlayerHelper import com.github.libretube.obj.BottomSheetItem import com.github.libretube.ui.activities.MainActivity import com.github.libretube.ui.base.BaseActivity import com.github.libretube.ui.interfaces.OnlinePlayerOptions import com.github.libretube.ui.interfaces.PlayerGestureOptions import com.github.libretube.ui.interfaces.PlayerOptions +import com.github.libretube.ui.listeners.PlayerGestureController import com.github.libretube.ui.models.PlayerViewModel import com.github.libretube.ui.sheets.BaseBottomSheet import com.github.libretube.ui.sheets.PlaybackOptionsSheet -import com.github.libretube.helpers.AudioHelper -import com.github.libretube.helpers.BrightnessHelper -import com.github.libretube.ui.listeners.PlayerGestureController -import com.github.libretube.helpers.PlayerHelper import com.github.libretube.util.PlayingQueue import com.google.android.exoplayer2.ExoPlayer import com.google.android.exoplayer2.Player diff --git a/app/src/main/java/com/github/libretube/workers/NotificationWorker.kt b/app/src/main/java/com/github/libretube/workers/NotificationWorker.kt index b910e5552..31d91bb03 100644 --- a/app/src/main/java/com/github/libretube/workers/NotificationWorker.kt +++ b/app/src/main/java/com/github/libretube/workers/NotificationWorker.kt @@ -19,9 +19,9 @@ import com.github.libretube.constants.PUSH_CHANNEL_ID import com.github.libretube.constants.PreferenceKeys import com.github.libretube.extensions.TAG import com.github.libretube.extensions.toID +import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.ui.activities.MainActivity import com.github.libretube.ui.views.TimePickerPreference -import com.github.libretube.helpers.PreferenceHelper import java.time.LocalTime import kotlinx.coroutines.runBlocking diff --git a/app/src/main/res/layout/fragment_audio_player.xml b/app/src/main/res/layout/fragment_audio_player.xml index 40c1b5a1a..a574140c7 100644 --- a/app/src/main/res/layout/fragment_audio_player.xml +++ b/app/src/main/res/layout/fragment_audio_player.xml @@ -23,6 +23,41 @@ app:shapeAppearanceOverlay="@style/ShapeAppearance.Material3.Corner.Small" tools:src="@tools:sample/backgrounds/scenic" /> + + + + + + + + + +