diff --git a/app/src/main/java/com/cappielloantonio/tempo/service/BaseMediaService.kt b/app/src/main/java/com/cappielloantonio/tempo/service/BaseMediaService.kt index 653507ee..e442428b 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/service/BaseMediaService.kt +++ b/app/src/main/java/com/cappielloantonio/tempo/service/BaseMediaService.kt @@ -41,6 +41,7 @@ import java.util.concurrent.Executors import java.util.concurrent.ScheduledExecutorService import java.util.concurrent.ScheduledFuture import java.util.concurrent.TimeUnit +import java.util.logging.Logger private const val TAG = "BaseMediaService" @@ -467,10 +468,11 @@ open class BaseMediaService : MediaLibraryService() { } private fun initializeLoadControl(): DefaultLoadControl { + val miliseconds: Int = TimeUnit.SECONDS.toMillis(Preferences.getBufferingStrategy().toLong()).toInt() return DefaultLoadControl.Builder() .setBufferDurationsMs( - (DefaultLoadControl.DEFAULT_MIN_BUFFER_MS * Preferences.getBufferingStrategy()).toInt(), - (DefaultLoadControl.DEFAULT_MAX_BUFFER_MS * Preferences.getBufferingStrategy()).toInt(), + miliseconds, + miliseconds, DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS, DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS ) diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java index 2981fa7c..55416b19 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/SettingsFragment.java @@ -25,6 +25,7 @@ import androidx.appcompat.app.AppCompatDelegate; import androidx.core.os.LocaleListCompat; import androidx.lifecycle.ViewModelProvider; +import androidx.media3.common.util.Log; import androidx.media3.common.util.UnstableApi; import androidx.navigation.NavController; import androidx.navigation.NavOptions; @@ -34,6 +35,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.PreferenceManager; import androidx.preference.SwitchPreference; import com.cappielloantonio.tempo.BuildConfig; @@ -109,6 +111,42 @@ public void onCreate(@Nullable Bundle savedInstanceState) { } } }); + + ListPreference bufferingPref = findPreference("buffering_strategy"); + + Context ctx = requireContext(); + String selectedValue = PreferenceManager + .getDefaultSharedPreferences(ctx) + .getString("buffering_strategy", "1"); + + String[] titles = ctx.getResources().getStringArray(R.array.buffering_strategy_titles); + String[] values = ctx.getResources().getStringArray(R.array.buffering_strategy_values); + + String title; + switch (selectedValue) { + case "5": + title = titles[0]; + break; + case "30": + title = titles[1]; + break; + case "60": + title = titles[2]; + break; + case "180": + title = titles[3]; + break; + case "300": + title = titles[4]; + break; + default: + title = titles[2]; + Log.e(TAG, "This is not working"); + break; + } + + String newSummary = ctx.getString(R.string.settings_buffering_strategy_summary, title); + bufferingPref.setSummary(newSummary); } @Override diff --git a/app/src/main/java/com/cappielloantonio/tempo/util/Preferences.kt b/app/src/main/java/com/cappielloantonio/tempo/util/Preferences.kt index 099a471d..07ca5797 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/util/Preferences.kt +++ b/app/src/main/java/com/cappielloantonio/tempo/util/Preferences.kt @@ -605,7 +605,7 @@ object Preferences { @JvmStatic fun getBufferingStrategy(): Double { - return App.getInstance().preferences.getString(BUFFERING_STRATEGY, "1")!!.toDouble() + return App.getInstance().preferences.getString(BUFFERING_STRATEGY, "60")!!.toDouble() } @JvmStatic diff --git a/app/src/main/res/values-ca/arrays.xml b/app/src/main/res/values-ca/arrays.xml index cb91ef15..4020f172 100644 --- a/app/src/main/res/values-ca/arrays.xml +++ b/app/src/main/res/values-ca/arrays.xml @@ -229,16 +229,18 @@ - Mínima - Moderada - Agressiva - Extrema + 5 segons + 30 segons + 1 minuts + 3 minuts + 5 minuts - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values-es-rES/arrays.xml b/app/src/main/res/values-es-rES/arrays.xml index 937e6000..df18e066 100644 --- a/app/src/main/res/values-es-rES/arrays.xml +++ b/app/src/main/res/values-es-rES/arrays.xml @@ -228,16 +228,18 @@ - Mínimo - Moderado - Agresivo - Extremo + 5 segundos + 30 segundos + 1 minuto + 3 minutos + 5 minutos - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values-fr/arrays.xml b/app/src/main/res/values-fr/arrays.xml index 3d488f65..4a8e7214 100644 --- a/app/src/main/res/values-fr/arrays.xml +++ b/app/src/main/res/values-fr/arrays.xml @@ -228,16 +228,18 @@ - Minimum - Modérée - Agressive - Extrême + 5 secondes + 30 secondes + 1 minutes + 3 minutes + 5 minutes - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values-it/arrays.xml b/app/src/main/res/values-it/arrays.xml index 2a63156f..2027fcb2 100644 --- a/app/src/main/res/values-it/arrays.xml +++ b/app/src/main/res/values-it/arrays.xml @@ -228,18 +228,20 @@ - Minimo - Moderato - Aggressivo - Estremo + 5 secondi + 30 secondi + 1 minuto + 3 minuti + 5 minuti - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 - + Minimo 0 stelle Minimo 1 stella diff --git a/app/src/main/res/values-ko/arrays.xml b/app/src/main/res/values-ko/arrays.xml index 2ae1c2cf..c952a877 100644 --- a/app/src/main/res/values-ko/arrays.xml +++ b/app/src/main/res/values-ko/arrays.xml @@ -213,16 +213,18 @@ - 최소한 - 보통 - 적극적 - 최대한 + 5초 + 30초 + 1분 + 3분 + 5분 - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values-pl/arrays.xml b/app/src/main/res/values-pl/arrays.xml index 2765cbd3..e0f02819 100644 --- a/app/src/main/res/values-pl/arrays.xml +++ b/app/src/main/res/values-pl/arrays.xml @@ -228,16 +228,18 @@ - Minimalna - Średnia - Agresywna - Ekstremalna + 5 sekund + 30 sekund + 1 minuta + 3 minuty + 5 minut - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values-pt/arrays.xml b/app/src/main/res/values-pt/arrays.xml index ad32906c..37fb0e02 100644 --- a/app/src/main/res/values-pt/arrays.xml +++ b/app/src/main/res/values-pt/arrays.xml @@ -213,16 +213,18 @@ - Mínimo - Moderado - Agressivo - Extremo + 5 segundos + 30 segundos + 1 minuto + 3 minutos + 5 minutos - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values-ro/arrays.xml b/app/src/main/res/values-ro/arrays.xml index 69d24ab3..ada04d84 100644 --- a/app/src/main/res/values-ro/arrays.xml +++ b/app/src/main/res/values-ro/arrays.xml @@ -229,16 +229,18 @@ - Minim - Moderat - Agresiv - Extrem + 5 secunde + 30 de secunde + 1 minut + 3 minute + 5 minute - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values-ru/arrays.xml b/app/src/main/res/values-ru/arrays.xml index 0c2e6ace..06f7512d 100644 --- a/app/src/main/res/values-ru/arrays.xml +++ b/app/src/main/res/values-ru/arrays.xml @@ -228,16 +228,18 @@ - Минимум - Умеренный - Агрессивный - Экстремальный + 5 секунд + 30 секунд + 1 минута + 3 минуты + 5 минут - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values-tr/arrays.xml b/app/src/main/res/values-tr/arrays.xml index db3d1427..9a5a3f61 100644 --- a/app/src/main/res/values-tr/arrays.xml +++ b/app/src/main/res/values-tr/arrays.xml @@ -228,16 +228,18 @@ - Minimum - Moderate - Agrasif - Aşırı + 5 saniye + 30 saniye + 1 dakika + 3 dakika + 5 dakika - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values-zh/arrays.xml b/app/src/main/res/values-zh/arrays.xml index a3b53543..6fd61a72 100644 --- a/app/src/main/res/values-zh/arrays.xml +++ b/app/src/main/res/values-zh/arrays.xml @@ -228,16 +228,18 @@ - 最小 - 适中 - 积极 - 极端 + 5秒 + 30秒 + 1分钟 + 3分钟 + 5分钟 - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 300 diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index b9c6587b..80e1f3ae 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -228,16 +228,18 @@ - Minimum - Moderate - Aggressive - Extreme + 5 seconds + 30 seconds + 1 minute + 3 minutes + 5 minutes - .1 - 1 - 4 - 8 + 5 + 30 + 60 + 180 + 600 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 2cb61a4c..7acc59b0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -350,8 +350,8 @@ If enabled, Tempus will not force stream the track with the transcode settings below. Prioritize server transcode settings Priority on transcoding of track given to server - Buffering strategy - For the change to take effect you must manually restart the app. + Song preload buffer + Current selected value: %1$s\nFor the change to take effect you must manually restart the app. Choose a folder for downloaded music files Clear download folder Allows music to keep playing after a playlist has ended, playing similar songs diff --git a/app/src/main/res/xml/global_preferences.xml b/app/src/main/res/xml/global_preferences.xml index 02a47086..dc73077c 100644 --- a/app/src/main/res/xml/global_preferences.xml +++ b/app/src/main/res/xml/global_preferences.xml @@ -239,7 +239,7 @@ android:key="sync_starred_artists_for_offline_use" />