mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-28 16:00:31 +05:30
feat: allow user to set custom preloading amount
This commit is contained in:
parent
b7261b018b
commit
ae01341bfa
@ -53,6 +53,7 @@ import kotlinx.coroutines.runBlocking
|
||||
import java.util.Locale
|
||||
import java.util.concurrent.Executors
|
||||
import kotlin.math.absoluteValue
|
||||
import kotlin.math.max
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
object PlayerHelper {
|
||||
@ -543,7 +544,7 @@ object PlayerHelper {
|
||||
.setBackBuffer(1000 * 60 * 3, true)
|
||||
.setBufferDurationsMs(
|
||||
MINIMUM_BUFFER_DURATION,
|
||||
bufferingGoal,
|
||||
max(bufferingGoal, MINIMUM_BUFFER_DURATION),
|
||||
DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS,
|
||||
DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS
|
||||
)
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.github.libretube.ui.base
|
||||
|
||||
import android.text.InputType
|
||||
import android.widget.Toast
|
||||
import androidx.preference.EditTextPreference
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.MultiSelectListPreference
|
||||
@ -8,6 +10,7 @@ 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.ui.preferences.EditNumberPreference
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
|
||||
/**
|
||||
@ -76,11 +79,21 @@ abstract class BasePreferenceFragment : PreferenceFragmentCompat() {
|
||||
is EditTextPreference -> {
|
||||
val binding = DialogTextPreferenceBinding.inflate(layoutInflater)
|
||||
binding.input.setText(preference.text)
|
||||
|
||||
if (preference is EditNumberPreference) {
|
||||
binding.input.inputType = InputType.TYPE_NUMBER_FLAG_SIGNED
|
||||
}
|
||||
|
||||
MaterialAlertDialogBuilder(requireContext())
|
||||
.setTitle(preference.title)
|
||||
.setView(binding.root)
|
||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
val newValue = binding.input.text.toString()
|
||||
if (preference is EditNumberPreference && newValue.any { !it.isDigit() }) {
|
||||
Toast.makeText(context, R.string.invalid_input, Toast.LENGTH_LONG).show()
|
||||
return@setPositiveButton
|
||||
}
|
||||
|
||||
if (preference.callChangeListener(newValue)) {
|
||||
preference.text = newValue
|
||||
}
|
||||
|
@ -0,0 +1,12 @@
|
||||
package com.github.libretube.ui.preferences
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.preference.EditTextPreference
|
||||
import com.github.libretube.ui.base.BasePreferenceFragment
|
||||
|
||||
/**
|
||||
* [EditTextPreference] that only allows numeric input.
|
||||
* The actual functionality is done in [BasePreferenceFragment].
|
||||
*/
|
||||
class EditNumberPreference(context: Context, attributeSet: AttributeSet?): EditTextPreference(context, attributeSet)
|
@ -200,21 +200,6 @@
|
||||
<item>6</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="bufferingGoal">
|
||||
<item>50s</item>
|
||||
<item>100s</item>
|
||||
<item>200s</item>
|
||||
<item>300s</item>
|
||||
<item>450s</item>
|
||||
</string-array>
|
||||
<string-array name="bufferingGoalValues">
|
||||
<item>50</item>
|
||||
<item>100</item>
|
||||
<item>200</item>
|
||||
<item>300</item>
|
||||
<item>450</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="playerVideoFormat">
|
||||
<item>WEBM</item>
|
||||
<item>MPEG_4</item>
|
||||
|
@ -203,11 +203,9 @@
|
||||
|
||||
<PreferenceCategory app:title="@string/misc">
|
||||
|
||||
<ListPreference
|
||||
<com.github.libretube.ui.preferences.EditNumberPreference
|
||||
android:icon="@drawable/ic_time"
|
||||
app:defaultValue="50"
|
||||
app:entries="@array/bufferingGoal"
|
||||
app:entryValues="@array/bufferingGoalValues"
|
||||
app:key="buffering_goal"
|
||||
app:summary="@string/buffering_goal_summary"
|
||||
app:title="@string/buffering_goal" />
|
||||
|
Loading…
x
Reference in New Issue
Block a user