mirror of
https://github.com/austinried/subtracks.git
synced 2026-11-10 15:11:58 +01:00
drop the legacy stream-quality fallback
No need to migrate the old max_bitrate/stream_format keys.
This commit is contained in:
@@ -4,7 +4,6 @@ import android.content.Context
|
||||
import androidx.datastore.core.DataStore
|
||||
import androidx.datastore.preferences.core.Preferences
|
||||
import androidx.datastore.preferences.core.edit
|
||||
import androidx.datastore.preferences.core.intPreferencesKey
|
||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||
import androidx.datastore.preferences.preferencesDataStore
|
||||
import com.subtracks.data.net.NetworkMode
|
||||
@@ -58,9 +57,7 @@ class UserPreferences(
|
||||
|
||||
fun streamQuality(mode: NetworkMode): Flow<StreamQuality> =
|
||||
store.data.map { prefs ->
|
||||
prefs[streamQualityKey(mode)]?.let(::decodeStreamQuality)
|
||||
?: legacyStreamQuality(prefs)
|
||||
?: defaultStreamQuality(mode)
|
||||
prefs[streamQualityKey(mode)]?.let(::decodeStreamQuality) ?: defaultStreamQuality(mode)
|
||||
}
|
||||
|
||||
suspend fun setStreamQuality(
|
||||
@@ -86,16 +83,6 @@ class UserPreferences(
|
||||
)
|
||||
}
|
||||
|
||||
private fun legacyStreamQuality(prefs: Preferences): StreamQuality? {
|
||||
val bitrate = prefs[LEGACY_BITRATE]
|
||||
val format = prefs[LEGACY_FORMAT]
|
||||
if (bitrate == null && format == null) return null
|
||||
return StreamQuality(
|
||||
maxBitrate = bitrate ?: 0,
|
||||
format = format?.takeIf { it.isNotEmpty() },
|
||||
)
|
||||
}
|
||||
|
||||
private fun defaultStreamQuality(mode: NetworkMode): StreamQuality =
|
||||
when (mode) {
|
||||
NetworkMode.Wifi -> StreamQuality()
|
||||
@@ -114,11 +101,6 @@ class UserPreferences(
|
||||
starred = StarredFilter.entries.getOrElse(parts[2].toIntOrNull() ?: 0) { StarredFilter.Any },
|
||||
)
|
||||
}
|
||||
|
||||
private companion object {
|
||||
val LEGACY_BITRATE = intPreferencesKey("max_bitrate")
|
||||
val LEGACY_FORMAT = stringPreferencesKey("stream_format")
|
||||
}
|
||||
}
|
||||
|
||||
fun createUserPreferences(context: Context): UserPreferences = UserPreferences(context.preferences)
|
||||
|
||||
@@ -1,9 +1,6 @@
|
||||
package com.subtracks.data.prefs
|
||||
|
||||
import androidx.datastore.preferences.core.PreferenceDataStoreFactory
|
||||
import androidx.datastore.preferences.core.edit
|
||||
import androidx.datastore.preferences.core.intPreferencesKey
|
||||
import androidx.datastore.preferences.core.stringPreferencesKey
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
import com.subtracks.data.net.NetworkMode
|
||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||
@@ -58,28 +55,6 @@ class UserPreferencesTest {
|
||||
assertEquals(StreamQuality(320, null), prefs.streamQuality(NetworkMode.Wifi).first())
|
||||
assertEquals(StreamQuality(96, "opus"), prefs.streamQuality(NetworkMode.Mobile).first())
|
||||
|
||||
file.delete()
|
||||
}
|
||||
|
||||
@Test
|
||||
fun streamQualityFallsBackToTheLegacySingleValue() =
|
||||
runTest {
|
||||
val file = File.createTempFile("user-prefs", ".preferences_pb").apply { delete() }
|
||||
val store = PreferenceDataStoreFactory.create(scope = backgroundScope) { file }
|
||||
store.edit { prefs ->
|
||||
prefs[intPreferencesKey("max_bitrate")] = 192
|
||||
prefs[stringPreferencesKey("stream_format")] = "mp3"
|
||||
}
|
||||
val prefs = UserPreferences(store)
|
||||
|
||||
assertEquals(StreamQuality(192, "mp3"), prefs.streamQuality(NetworkMode.Wifi).first())
|
||||
assertEquals(StreamQuality(192, "mp3"), prefs.streamQuality(NetworkMode.Mobile).first())
|
||||
|
||||
prefs.setStreamQuality(NetworkMode.Mobile, StreamQuality(64, null))
|
||||
|
||||
assertEquals(StreamQuality(192, "mp3"), prefs.streamQuality(NetworkMode.Wifi).first())
|
||||
assertEquals(StreamQuality(64, null), prefs.streamQuality(NetworkMode.Mobile).first())
|
||||
|
||||
file.delete()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user