Add setting to control the max bitrate when pinning

This commit is contained in:
tzugen 2023-05-20 21:28:28 +02:00
parent 2df8d049d0
commit 315271390f
No known key found for this signature in database
GPG Key ID: 61E9C34BC10EC930
5 changed files with 24 additions and 10 deletions

View File

@ -92,8 +92,8 @@ class DownloadTask(
// Attempt partial HTTP GET, appending to the file if it exists. // Attempt partial HTTP GET, appending to the file if it exists.
val (inStream, isPartial) = musicService.getDownloadInputStream( val (inStream, isPartial) = musicService.getDownloadInputStream(
downloadTrack.track, fileLength, downloadTrack.track, fileLength,
Settings.maxBitRate, if (downloadTrack.pinned) Settings.maxBitRatePinning else Settings.maxBitRate,
downloadTrack.pinned downloadTrack.pinned && Settings.pinWithHighestQuality
) )
inputStream = inStream inputStream = inStream

View File

@ -33,18 +33,23 @@ object Settings {
val maxBitRate: Int val maxBitRate: Int
get() { get() {
return if (Util.isNetworkRestricted()) { return if (Util.isNetworkRestricted()) {
maxMobileBitRate maxBitRateMobile
} else { } else {
maxWifiBitRate maxBitRateWifi
} }
} }
private var maxWifiBitRate private var maxBitRateWifi
by StringIntSetting(getKey(R.string.setting_key_max_bitrate_wifi)) by StringIntSetting(getKey(R.string.setting_key_max_bitrate_wifi))
private var maxMobileBitRate private var maxBitRateMobile
by StringIntSetting(getKey(R.string.setting_key_max_bitrate_mobile)) by StringIntSetting(getKey(R.string.setting_key_max_bitrate_mobile))
var maxBitRatePinning
by StringIntSetting(getKey(R.string.setting_key_max_bitrate_pinning))
val pinWithHighestQuality: Boolean
get() = (maxBitRatePinning == 0)
@JvmStatic @JvmStatic
val preloadCount: Int val preloadCount: Int
get() { get() {

View File

@ -12,6 +12,7 @@
<string name="setting_key.show_track_number" translatable="false">showTrackNumber</string> <string name="setting_key.show_track_number" translatable="false">showTrackNumber</string>
<string name="setting_key.max_bitrate_wifi" translatable="false">maxBitrateWifi</string> <string name="setting_key.max_bitrate_wifi" translatable="false">maxBitrateWifi</string>
<string name="setting_key.max_bitrate_mobile" translatable="false">maxBitrateMobile</string> <string name="setting_key.max_bitrate_mobile" translatable="false">maxBitrateMobile</string>
<string name="setting_key.max_bitrate_pinning" translatable="false">maxBitratePinning</string>
<string name="setting_key.cache_size" translatable="false">cacheSize</string> <string name="setting_key.cache_size" translatable="false">cacheSize</string>
<string name="setting_key.custom_cache_location" translatable="false">customCacheLocation</string> <string name="setting_key.custom_cache_location" translatable="false">customCacheLocation</string>
<string name="setting_key.cache_location" translatable="false">cacheLocation</string> <string name="setting_key.cache_location" translatable="false">cacheLocation</string>

View File

@ -233,6 +233,7 @@
<string name="settings.max_bitrate_mobile">Max Bitrate - Mobile</string> <string name="settings.max_bitrate_mobile">Max Bitrate - Mobile</string>
<string name="settings.max_bitrate_unlimited">Unlimited</string> <string name="settings.max_bitrate_unlimited">Unlimited</string>
<string name="settings.max_bitrate_wifi">Max Bitrate - Wi-Fi</string> <string name="settings.max_bitrate_wifi">Max Bitrate - Wi-Fi</string>
<string name="settings.max_bitrate_pinning">Max Bitrate - When pinning a song permanently</string>
<string name="settings.max_songs">Max Songs</string> <string name="settings.max_songs">Max Songs</string>
<string name="settings.media_button_summary">Respond to phone, headset and Bluetooth media buttons</string> <string name="settings.media_button_summary">Respond to phone, headset and Bluetooth media buttons</string>
<string name="settings.media_button_title">Media Buttons</string> <string name="settings.media_button_title">Media Buttons</string>

View File

@ -167,18 +167,25 @@
a:title="@string/settings.network_title" a:title="@string/settings.network_title"
app:iconSpaceReserved="false"> app:iconSpaceReserved="false">
<ListPreference <ListPreference
a:defaultValue="0" a:defaultValue="256"
a:entries="@array/maxBitrateNames"
a:entryValues="@array/maxBitrateValues"
a:key="@string/setting_key.max_bitrate_mobile"
a:title="@string/settings.max_bitrate_mobile"
app:iconSpaceReserved="false"/>
<ListPreference
a:defaultValue="320"
a:entries="@array/maxBitrateNames" a:entries="@array/maxBitrateNames"
a:entryValues="@array/maxBitrateValues" a:entryValues="@array/maxBitrateValues"
a:key="@string/setting_key.max_bitrate_wifi" a:key="@string/setting_key.max_bitrate_wifi"
a:title="@string/settings.max_bitrate_wifi" a:title="@string/settings.max_bitrate_wifi"
app:iconSpaceReserved="false"/> app:iconSpaceReserved="false"/>
<ListPreference <ListPreference
a:defaultValue="0" a:defaultValue="320"
a:entries="@array/maxBitrateNames" a:entries="@array/maxBitrateNames"
a:entryValues="@array/maxBitrateValues" a:entryValues="@array/maxBitrateValues"
a:key="@string/setting_key.max_bitrate_mobile" a:key="@string/setting_key.max_bitrate_pinning"
a:title="@string/settings.max_bitrate_mobile" a:title="@string/settings.max_bitrate_pinning"
app:iconSpaceReserved="false"/> app:iconSpaceReserved="false"/>
<CheckBoxPreference <CheckBoxPreference
a:defaultValue="false" a:defaultValue="false"