Merge pull request #1343 from Bnyro/master

code cleanup
This commit is contained in:
Bnyro 2022-09-22 18:01:36 +02:00 committed by GitHub
commit dc9470ac50
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 112 additions and 143 deletions

View File

@ -1,6 +1,5 @@
package com.github.libretube.api
import com.github.libretube.api.obj.Instances
import com.github.libretube.constants.GITHUB_API_URL
import com.github.libretube.constants.PIPED_INSTANCES_URL
import com.github.libretube.obj.update.UpdateInfo

View File

@ -1,21 +1,5 @@
package com.github.libretube.api
import com.github.libretube.api.obj.Channel
import com.github.libretube.api.obj.CommentsPage
import com.github.libretube.api.obj.DeleteUserRequest
import com.github.libretube.api.obj.Login
import com.github.libretube.api.obj.Message
import com.github.libretube.api.obj.Playlist
import com.github.libretube.api.obj.PlaylistId
import com.github.libretube.api.obj.Playlists
import com.github.libretube.api.obj.SearchResult
import com.github.libretube.api.obj.Segments
import com.github.libretube.api.obj.StreamItem
import com.github.libretube.api.obj.Streams
import com.github.libretube.api.obj.Subscribe
import com.github.libretube.api.obj.Subscribed
import com.github.libretube.api.obj.Subscription
import com.github.libretube.api.obj.Token
import retrofit2.http.Body
import retrofit2.http.GET
import retrofit2.http.Header

View File

@ -1,11 +1,11 @@
package com.github.libretube.api
import android.util.Log
import com.github.libretube.api.obj.Subscribe
import com.github.libretube.db.DatabaseHolder.Companion.Database
import com.github.libretube.db.obj.LocalSubscription
import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.await
import com.github.libretube.extensions.awaitQuery
import com.github.libretube.extensions.query
import com.github.libretube.util.PreferenceHelper
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@ -26,11 +26,11 @@ object SubscriptionHelper {
}
}
} else {
Thread {
query {
Database.localSubscriptionDao().insertAll(
LocalSubscription(channelId)
)
}.start()
}
}
}
@ -47,11 +47,11 @@ object SubscriptionHelper {
}
}
} else {
Thread {
query {
Database.localSubscriptionDao().delete(
LocalSubscription(channelId)
)
}.start()
}
}
}
@ -68,11 +68,9 @@ object SubscriptionHelper {
}
return isSubscribed.subscribed
} else {
var isSubscribed = false
Thread {
isSubscribed = Database.localSubscriptionDao().includes(channelId)
}.await()
return isSubscribed
return awaitQuery {
Database.localSubscriptionDao().includes(channelId)
}
}
}
@ -93,20 +91,18 @@ object SubscriptionHelper {
newChannels.forEach {
newLocalSubscriptions += LocalSubscription(channelId = it)
}
Thread {
query {
Database.localSubscriptionDao().insertAll(
*newChannels.map { LocalSubscription(it) }.toTypedArray()
)
}.start()
}
}
}
fun getLocalSubscriptions(): List<LocalSubscription> {
var localSubscriptions = listOf<LocalSubscription>()
Thread {
localSubscriptions = Database.localSubscriptionDao().getAll()
}.await()
return localSubscriptions
return awaitQuery {
Database.localSubscriptionDao().getAll()
}
}
fun getFormattedLocalSubscriptions(): String {

View File

@ -6,11 +6,12 @@ import com.github.libretube.db.DatabaseHolder.Companion.Database
import com.github.libretube.db.obj.SearchHistoryItem
import com.github.libretube.db.obj.WatchHistoryItem
import com.github.libretube.db.obj.WatchPosition
import com.github.libretube.extensions.query
import com.github.libretube.extensions.toID
import com.github.libretube.util.PreferenceHelper
object DatabaseHelper {
fun addToWatchHistory(videoId: String, streams: com.github.libretube.api.obj.Streams) {
fun addToWatchHistory(videoId: String, streams: Streams) {
val watchHistoryItem = WatchHistoryItem(
videoId,
streams.title,
@ -21,11 +22,11 @@ object DatabaseHelper {
streams.thumbnailUrl,
streams.duration
)
Thread {
query {
Database.watchHistoryDao().insertAll(watchHistoryItem)
val maxHistorySize =
PreferenceHelper.getString(PreferenceKeys.WATCH_HISTORY_SIZE, "unlimited")
if (maxHistorySize == "unlimited") return@Thread
if (maxHistorySize == "unlimited") return@query
// delete the first watch history entry if the limit is reached
val watchHistory = Database.watchHistoryDao().getAll()
@ -33,15 +34,15 @@ object DatabaseHelper {
Database.watchHistoryDao()
.delete(watchHistory.first())
}
}.start()
}
}
fun removeFromWatchHistory(index: Int) {
Thread {
query {
Database.watchHistoryDao().delete(
Database.watchHistoryDao().getAll()[index]
)
}.start()
}
}
fun saveWatchPosition(videoId: String, position: Long) {
@ -49,21 +50,21 @@ object DatabaseHelper {
videoId,
position
)
Thread {
query {
Database.watchPositionDao().insertAll(watchPosition)
}.start()
}
}
fun removeWatchPosition(videoId: String) {
Thread {
query {
Database.watchPositionDao().findById(videoId)?.let {
Database.watchPositionDao().delete(it)
}
}.start()
}
}
fun addToSearchHistory(searchHistoryItem: SearchHistoryItem) {
Thread {
query {
Database.searchHistoryDao().insertAll(searchHistoryItem)
val maxHistorySize = 20
@ -73,6 +74,6 @@ object DatabaseHelper {
Database.searchHistoryDao()
.delete(searchHistory.first())
}
}.start()
}
}
}

View File

@ -1,8 +0,0 @@
package com.github.libretube.extensions
fun Thread.await() {
this.apply {
start()
join()
}
}

View File

@ -0,0 +1,13 @@
package com.github.libretube.extensions
fun <T> awaitQuery(
query: () -> T
): T {
var x: T? = null
val thread = Thread {
x = query.invoke()
}
thread.start()
thread.join()
return x!!
}

View File

@ -1,5 +1,11 @@
package com.github.libretube.extensions
fun query(block: () -> Unit) {
Thread(block).start()
Thread {
try {
block.invoke()
} catch (e: Exception) {
e.printStackTrace()
}
}.start()
}

View File

@ -10,15 +10,14 @@ import com.github.libretube.db.DatabaseHolder.Companion.Database
*/
fun View?.setWatchProgressLength(videoId: String, duration: Long) {
val view = this!!
var progress: Long? = null
Thread {
try {
progress = Database.watchPositionDao().findById(videoId)?.position
} catch (e: Exception) {
progress = null
val progress = try {
awaitQuery {
Database.watchPositionDao().findById(videoId)?.position
}
}.await()
} catch (e: Exception) {
return
}
view.getViewTreeObserver()
.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
@ -29,7 +28,7 @@ fun View?.setWatchProgressLength(videoId: String, duration: Long) {
return
}
val fullWidth = (parent as LinearLayout).width
val newWidth = (fullWidth * (progress!! / (duration))) / 1000
val newWidth = (fullWidth * (progress / duration)) / 1000
val lp = view.layoutParams
lp.width = newWidth.toInt()
view.layoutParams = lp

View File

@ -5,8 +5,6 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.SubscriptionHelper
import com.github.libretube.api.obj.StreamItem
import com.github.libretube.api.obj.Subscription
import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.toID
import com.github.libretube.util.PreferenceHelper

View File

@ -14,9 +14,6 @@ import android.widget.Toast
import com.fasterxml.jackson.databind.ObjectMapper
import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.Segment
import com.github.libretube.api.obj.Segments
import com.github.libretube.api.obj.Streams
import com.github.libretube.constants.BACKGROUND_CHANNEL_ID
import com.github.libretube.constants.IntentData
import com.github.libretube.constants.PLAYER_NOTIFICATION_ID

View File

@ -6,7 +6,6 @@ import android.util.Log
import android.widget.Toast
import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.PlaylistId
import com.github.libretube.databinding.DialogTextPreferenceBinding
import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.toID

View File

@ -5,7 +5,6 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.fragment.app.FragmentManager
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.api.obj.StreamItem
import com.github.libretube.databinding.VideoRowBinding
import com.github.libretube.extensions.formatShort
import com.github.libretube.extensions.setWatchProgressLength

View File

@ -4,7 +4,6 @@ import android.graphics.Color
import android.view.LayoutInflater
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.util.ImageHelper
import com.github.libretube.util.ThemeHelper

View File

@ -9,7 +9,6 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.Comment
import com.github.libretube.api.obj.CommentsPage
import com.github.libretube.databinding.CommentsRowBinding
import com.github.libretube.extensions.TAG

View File

@ -3,7 +3,6 @@ package com.github.libretube.ui.adapters
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.api.obj.Subscription
import com.github.libretube.databinding.LegacySubscriptionChannelBinding
import com.github.libretube.extensions.toID
import com.github.libretube.util.ImageHelper

View File

@ -8,8 +8,6 @@ import android.view.ViewGroup
import androidx.fragment.app.FragmentManager
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.PlaylistId
import com.github.libretube.api.obj.StreamItem
import com.github.libretube.databinding.PlaylistRowBinding
import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.setFormattedDuration

View File

@ -8,8 +8,6 @@ import androidx.fragment.app.FragmentManager
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.PlaylistId
import com.github.libretube.api.obj.Playlists
import com.github.libretube.databinding.PlaylistsRowBinding
import com.github.libretube.extensions.TAG
import com.github.libretube.sheets.PlaylistOptionsBottomSheet

View File

@ -4,7 +4,6 @@ import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.api.obj.Comment
import com.github.libretube.databinding.RepliesRowBinding
import com.github.libretube.extensions.formatShort
import com.github.libretube.util.ImageHelper

View File

@ -7,7 +7,6 @@ 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
@ -110,7 +109,10 @@ class SearchAdapter(
}
}
private fun bindChannel(item: com.github.libretube.api.obj.SearchItem, binding: ChannelRowBinding) {
private fun bindChannel(
item: com.github.libretube.api.obj.SearchItem,
binding: ChannelRowBinding
) {
binding.apply {
ImageHelper.loadImage(item.thumbnail, searchChannelImage)
searchChannelName.text = item.name
@ -157,7 +159,10 @@ class SearchAdapter(
}
}
private fun bindPlaylist(item: com.github.libretube.api.obj.SearchItem, binding: PlaylistSearchRowBinding) {
private fun bindPlaylist(
item: com.github.libretube.api.obj.SearchItem,
binding: PlaylistSearchRowBinding
) {
binding.apply {
ImageHelper.loadImage(item.thumbnail, searchThumbnail)
if (item.videos?.toInt() != -1) searchPlaylistNumber.text = item.videos.toString()

View File

@ -7,6 +7,7 @@ import androidx.recyclerview.widget.RecyclerView
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
class SearchHistoryAdapter(
private var historyList: List<String>,
@ -32,11 +33,11 @@ class SearchHistoryAdapter(
deleteHistory.setOnClickListener {
val itemIndex = historyList.indexOf(historyQuery)
historyList -= historyQuery
Thread {
query {
Database.searchHistoryDao().delete(
SearchHistoryItem(query = historyQuery)
)
}.start()
}
notifyItemRemoved(itemIndex)
}

View File

@ -5,7 +5,6 @@ import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.R
import com.github.libretube.api.SubscriptionHelper
import com.github.libretube.api.obj.Subscription
import com.github.libretube.databinding.ChannelSubscriptionRowBinding
import com.github.libretube.extensions.toID
import com.github.libretube.util.ImageHelper

View File

@ -5,7 +5,6 @@ import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.fragment.app.FragmentManager
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.api.obj.StreamItem
import com.github.libretube.databinding.TrendingRowBinding
import com.github.libretube.extensions.formatShort
import com.github.libretube.extensions.setFormattedDuration

View File

@ -11,7 +11,6 @@ import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope
import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.PlaylistId
import com.github.libretube.constants.IntentData
import com.github.libretube.databinding.DialogAddtoplaylistBinding
import com.github.libretube.extensions.TAG

View File

@ -7,7 +7,6 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.github.libretube.R
import com.github.libretube.databinding.DialogBackupBinding
import com.github.libretube.db.DatabaseHolder.Companion.Database
import com.github.libretube.extensions.await
import com.github.libretube.obj.BackupFile
import com.github.libretube.ui.adapters.BackupOptionsAdapter
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@ -17,7 +16,7 @@ class BackupDialog(
) : DialogFragment() {
private lateinit var binding: DialogBackupBinding
val backupFile = BackupFile()
private val backupFile = BackupFile()
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val backupOptions = listOf(
@ -42,7 +41,7 @@ class BackupDialog(
.setView(binding.root)
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.backup) { _, _ ->
Thread {
val thread = Thread {
if (selected[0]) {
backupFile.watchHistory =
Database.watchHistoryDao().getAll()
@ -63,7 +62,9 @@ class BackupDialog(
backupFile.customInstances =
Database.customInstanceDao().getAll()
}
}.await()
}
thread.start()
thread.join()
createBackupFile(backupFile)
}

View File

@ -8,7 +8,6 @@ import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.Playlists
import com.github.libretube.databinding.DialogCreatePlaylistBinding
import com.github.libretube.extensions.TAG
import com.github.libretube.ui.fragments.LibraryFragment

View File

@ -8,6 +8,7 @@ import com.github.libretube.R
import com.github.libretube.databinding.DialogCustomInstanceBinding
import com.github.libretube.db.DatabaseHolder.Companion.Database
import com.github.libretube.db.obj.CustomInstance
import com.github.libretube.extensions.query
import com.github.libretube.util.ThemeHelper
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import java.net.URL
@ -39,9 +40,9 @@ class CustomInstanceDialog : DialogFragment() {
URL(customInstance.apiUrl).toURI()
URL(customInstance.frontendUrl).toURI()
Thread {
query {
Database.customInstanceDao().insertAll(customInstance)
}.start()
}
activity?.recreate()
dismiss()

View File

@ -8,7 +8,6 @@ import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.DeleteUserRequest
import com.github.libretube.databinding.DialogDeleteAccountBinding
import com.github.libretube.extensions.TAG
import com.github.libretube.util.PreferenceHelper

View File

@ -12,7 +12,6 @@ import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.Streams
import com.github.libretube.databinding.DialogDownloadBinding
import com.github.libretube.extensions.TAG
import com.github.libretube.services.DownloadService

View File

@ -8,7 +8,6 @@ import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope
import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.Login
import com.github.libretube.databinding.DialogLoginBinding
import com.github.libretube.extensions.TAG
import com.github.libretube.util.PreferenceHelper

View File

@ -10,8 +10,7 @@ import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.constants.YOUTUBE_FRONTEND_URL
import com.github.libretube.databinding.DialogShareBinding
import com.github.libretube.db.DatabaseHolder.Companion.Database
import com.github.libretube.db.obj.CustomInstance
import com.github.libretube.extensions.await
import com.github.libretube.extensions.awaitQuery
import com.github.libretube.util.PreferenceHelper
import com.google.android.material.dialog.MaterialAlertDialogBuilder
@ -80,10 +79,9 @@ class ShareDialog(
)
// get the api urls of the other custom instances
var customInstances = listOf<CustomInstance>()
Thread {
customInstances = Database.customInstanceDao().getAll()
}.await()
val customInstances = awaitQuery {
Database.customInstanceDao().getAll()
}
// return the custom instance frontend url if available
customInstances.forEach { instance ->

View File

@ -48,7 +48,7 @@ import com.github.libretube.db.DatabaseHelper
import com.github.libretube.db.DatabaseHolder.Companion.Database
import com.github.libretube.extensions.BaseFragment
import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.await
import com.github.libretube.extensions.awaitQuery
import com.github.libretube.extensions.formatShort
import com.github.libretube.extensions.hideKeyboard
import com.github.libretube.extensions.query
@ -861,17 +861,19 @@ class PlayerFragment : BaseFragment() {
return
}
// browse the watch positions
var position: Long? = null
Thread {
try {
position = Database.watchPositionDao().findById(videoId!!)?.position
// position is almost the end of the video => don't seek, start from beginning
if (position!! > streams.duration!! * 1000 * 0.9) position = null
} catch (e: Exception) {
e.printStackTrace()
val position = try {
awaitQuery {
Database.watchPositionDao().findById(videoId!!)?.position
}
}.await()
if (position != null) exoPlayer.seekTo(position!!)
} catch (e: Exception) {
return
}
// position is almost the end of the video => don't seek, start from beginning
if (position != null && position < streams.duration!! * 1000 * 0.9) {
exoPlayer.seekTo(
position
)
}
}
// used for autoplay and skipping to next video

View File

@ -15,7 +15,7 @@ import com.github.libretube.databinding.FragmentSearchBinding
import com.github.libretube.db.DatabaseHolder.Companion.Database
import com.github.libretube.extensions.BaseFragment
import com.github.libretube.extensions.TAG
import com.github.libretube.extensions.await
import com.github.libretube.extensions.awaitQuery
import com.github.libretube.models.SearchViewModel
import com.github.libretube.ui.activities.MainActivity
import com.github.libretube.ui.adapters.SearchHistoryAdapter
@ -95,11 +95,9 @@ class SearchFragment : BaseFragment() {
}
private fun showHistory() {
var historyList = listOf<String>()
Thread {
val history = Database.searchHistoryDao().getAll()
historyList = history.map { it.query }
}.await()
val historyList = awaitQuery {
Database.searchHistoryDao().getAll().map { it.query }
}
if (historyList.isNotEmpty()) {
binding.suggestionsRecycler.adapter =
SearchHistoryAdapter(

View File

@ -9,9 +9,8 @@ import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.github.libretube.databinding.FragmentWatchHistoryBinding
import com.github.libretube.db.DatabaseHolder.Companion.Database
import com.github.libretube.db.obj.WatchHistoryItem
import com.github.libretube.extensions.BaseFragment
import com.github.libretube.extensions.await
import com.github.libretube.extensions.awaitQuery
import com.github.libretube.ui.adapters.WatchHistoryAdapter
class WatchHistoryFragment : BaseFragment() {
@ -29,11 +28,9 @@ class WatchHistoryFragment : BaseFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
var watchHistory = listOf<WatchHistoryItem>()
Thread {
watchHistory = Database.watchHistoryDao().getAll()
}.await()
val watchHistory = awaitQuery {
Database.watchHistoryDao().getAll()
}
if (watchHistory.isEmpty()) return

View File

@ -5,6 +5,7 @@ import androidx.preference.Preference
import com.github.libretube.R
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.google.android.material.dialog.MaterialAlertDialogBuilder
@ -52,9 +53,7 @@ class HistorySettings : MaterialPreferenceFragment() {
.setNegativeButton(R.string.cancel, null)
.setPositiveButton(R.string.okay) { _, _ ->
// clear the selected preference preferences
Thread {
action()
}.start()
query(action)
}
.show()
}

View File

@ -15,8 +15,7 @@ import com.github.libretube.R
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.db.DatabaseHolder.Companion.Database
import com.github.libretube.db.obj.CustomInstance
import com.github.libretube.extensions.await
import com.github.libretube.extensions.awaitQuery
import com.github.libretube.ui.activities.SettingsActivity
import com.github.libretube.ui.dialogs.CustomInstanceDialog
import com.github.libretube.ui.dialogs.DeleteAccountDialog
@ -110,9 +109,9 @@ class InstanceSettings : MaterialPreferenceFragment() {
val clearCustomInstances = findPreference<Preference>(PreferenceKeys.CLEAR_CUSTOM_INSTANCES)
clearCustomInstances?.setOnPreferenceClickListener {
Thread {
awaitQuery {
Database.customInstanceDao().deleteAll()
}.await()
}
activity?.recreate()
true
}
@ -156,10 +155,9 @@ class InstanceSettings : MaterialPreferenceFragment() {
private fun initCustomInstances(instancePref: ListPreference) {
lifecycleScope.launchWhenCreated {
var customInstances = listOf<CustomInstance>()
Thread {
customInstances = Database.customInstanceDao().getAll()
}.await()
val customInstances = awaitQuery {
Database.customInstanceDao().getAll()
}
val instanceNames = arrayListOf<String>()
val instanceValues = arrayListOf<String>()

View File

@ -1,7 +1,6 @@
package com.github.libretube.util
import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.obj.StreamItem
import com.github.libretube.extensions.toID
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

View File

@ -2,13 +2,15 @@ package com.github.libretube.util
import android.content.Context
import android.view.accessibility.CaptioningManager
import com.github.libretube.api.obj.PipedStream
import com.github.libretube.constants.PreferenceKeys
import com.google.android.exoplayer2.ui.CaptionStyleCompat
object PlayerHelper {
// get the audio source following the users preferences
fun getAudioSource(context: Context, audios: List<com.github.libretube.api.obj.PipedStream>): String {
fun getAudioSource(
context: Context,
audios: List<com.github.libretube.api.obj.PipedStream>
): String {
val audioFormat = PreferenceHelper.getString(PreferenceKeys.PLAYER_AUDIO_FORMAT, "all")
val audioQuality = if (
NetworkHelper.isNetworkMobile(context)

View File

@ -2,9 +2,9 @@
xmlns:tools="http://schemas.android.com/tools"
android:width="24dp"
android:height="24dp"
android:tint="?attr/colorControlNormal"
android:viewportWidth="24"
android:viewportHeight="24"
android:tint="?attr/colorControlNormal">
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M9,20Q8.175,20 7.588,19.413Q7,18.825 7,18Q7,17.175 7.588,16.587Q8.175,16 9,16Q9.825,16 10.413,16.587Q11,17.175 11,18Q11,18.825 10.413,19.413Q9.825,20 9,20ZM15,20Q14.175,20 13.588,19.413Q13,18.825 13,18Q13,17.175 13.588,16.587Q14.175,16 15,16Q15.825,16 16.413,16.587Q17,17.175 17,18Q17,18.825 16.413,19.413Q15.825,20 15,20ZM9,14Q8.175,14 7.588,13.412Q7,12.825 7,12Q7,11.175 7.588,10.587Q8.175,10 9,10Q9.825,10 10.413,10.587Q11,11.175 11,12Q11,12.825 10.413,13.412Q9.825,14 9,14ZM15,14Q14.175,14 13.588,13.412Q13,12.825 13,12Q13,11.175 13.588,10.587Q14.175,10 15,10Q15.825,10 16.413,10.587Q17,11.175 17,12Q17,12.825 16.413,13.412Q15.825,14 15,14ZM9,8Q8.175,8 7.588,7.412Q7,6.825 7,6Q7,5.175 7.588,4.588Q8.175,4 9,4Q9.825,4 10.413,4.588Q11,5.175 11,6Q11,6.825 10.413,7.412Q9.825,8 9,8ZM15,8Q14.175,8 13.588,7.412Q13,6.825 13,6Q13,5.175 13.588,4.588Q14.175,4 15,4Q15.825,4 16.413,4.588Q17,5.175 17,6Q17,6.825 16.413,7.412Q15.825,8 15,8Z"