mirror of
https://github.com/antebudimir/tempus.git
synced 2026-01-01 18:03:33 +00:00
Check network connection type before choosing the default bitrate and transcoding format
This commit is contained in:
parent
695f406bd6
commit
4a6ea47457
5 changed files with 61 additions and 21 deletions
|
|
@ -2,7 +2,6 @@ package com.cappielloantonio.play.util;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.net.ConnectivityManager;
|
import android.net.ConnectivityManager;
|
||||||
import android.net.NetworkInfo;
|
|
||||||
import android.text.Html;
|
import android.text.Html;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
|
@ -22,9 +21,11 @@ public class MusicUtil {
|
||||||
private static final String TAG = "MusicUtil";
|
private static final String TAG = "MusicUtil";
|
||||||
|
|
||||||
public static String getSongStreamUri(Context context, Song song) {
|
public static String getSongStreamUri(Context context, Song song) {
|
||||||
|
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
|
|
||||||
Map<String, String> params = App.getSubsonicClientInstance(App.getInstance(), false).getParams();
|
Map<String, String> params = App.getSubsonicClientInstance(App.getInstance(), false).getParams();
|
||||||
|
|
||||||
return App.getSubsonicClientInstance(App.getInstance(), false).getUrl() +
|
String uri = App.getSubsonicClientInstance(App.getInstance(), false).getUrl() +
|
||||||
"stream" +
|
"stream" +
|
||||||
"?u=" + params.get("u") +
|
"?u=" + params.get("u") +
|
||||||
"&s=" + params.get("s") +
|
"&s=" + params.get("s") +
|
||||||
|
|
@ -32,8 +33,12 @@ public class MusicUtil {
|
||||||
"&v=" + params.get("v") +
|
"&v=" + params.get("v") +
|
||||||
"&c=" + params.get("c") +
|
"&c=" + params.get("c") +
|
||||||
"&id=" + song.getId() +
|
"&id=" + song.getId() +
|
||||||
"&maxBitRate=" + getBitratePreference(context) +
|
"&maxBitRate=" + getBitratePreference(context, connectivityManager.getActiveNetworkInfo().getType()) +
|
||||||
"&format=" + getFormatPreference(context);
|
"&format=" + getTranscodingFormatPreference(context, connectivityManager.getActiveNetworkInfo().getType());
|
||||||
|
|
||||||
|
Log.d(TAG, "getSongStreamUri(): " + uri);
|
||||||
|
|
||||||
|
return uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static MediaItem getSongDownloadItem(Song song) {
|
public static MediaItem getSongDownloadItem(Song song) {
|
||||||
|
|
@ -131,10 +136,8 @@ public class MusicUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getBitratePreference(Context context) {
|
private static String getBitratePreference(Context context, int connectionType) {
|
||||||
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
switch (connectionType) {
|
||||||
|
|
||||||
switch (connectivityManager.getActiveNetworkInfo().getType()) {
|
|
||||||
case ConnectivityManager.TYPE_WIFI:
|
case ConnectivityManager.TYPE_WIFI:
|
||||||
return PreferenceUtil.getInstance(context).getMaxBitrateWifi();
|
return PreferenceUtil.getInstance(context).getMaxBitrateWifi();
|
||||||
case ConnectivityManager.TYPE_MOBILE:
|
case ConnectivityManager.TYPE_MOBILE:
|
||||||
|
|
@ -144,7 +147,14 @@ public class MusicUtil {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String getFormatPreference(Context context) {
|
private static String getTranscodingFormatPreference(Context context, int connectionType) {
|
||||||
return PreferenceUtil.getInstance(context).getAudioTranscodeFormat();
|
switch (connectionType) {
|
||||||
|
case ConnectivityManager.TYPE_WIFI:
|
||||||
|
return PreferenceUtil.getInstance(context).getAudioTranscodeFormatWifi();
|
||||||
|
case ConnectivityManager.TYPE_MOBILE:
|
||||||
|
return PreferenceUtil.getInstance(context).getAudioTranscodeFormatMobile();
|
||||||
|
default:
|
||||||
|
return PreferenceUtil.getInstance(context).getAudioTranscodeFormatWifi();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,8 @@ public class PreferenceUtil {
|
||||||
public static final String MEDIA_CACHE_SIZE = "media_cache_size";
|
public static final String MEDIA_CACHE_SIZE = "media_cache_size";
|
||||||
public static final String MAX_BITRATE_WIFI = "max_bitrate_wifi";
|
public static final String MAX_BITRATE_WIFI = "max_bitrate_wifi";
|
||||||
public static final String MAX_BITRATE_MOBILE = "max_bitrate_mobile";
|
public static final String MAX_BITRATE_MOBILE = "max_bitrate_mobile";
|
||||||
public static final String AUDIO_TRANSCODE_FORMAT = "audio_transcode_format";
|
public static final String AUDIO_TRANSCODE_FORMAT_WIFI = "audio_transcode_format_wifi";
|
||||||
|
public static final String AUDIO_TRANSCODE_FORMAT_MOBILE = "audio_transcode_format_mobile";
|
||||||
public static final String WIFI_ONLY = "wifi_only";
|
public static final String WIFI_ONLY = "wifi_only";
|
||||||
|
|
||||||
private static PreferenceUtil sInstance;
|
private static PreferenceUtil sInstance;
|
||||||
|
|
@ -145,8 +146,12 @@ public class PreferenceUtil {
|
||||||
return mPreferences.getString(MAX_BITRATE_MOBILE, "0");
|
return mPreferences.getString(MAX_BITRATE_MOBILE, "0");
|
||||||
}
|
}
|
||||||
|
|
||||||
public final String getAudioTranscodeFormat() {
|
public final String getAudioTranscodeFormatWifi() {
|
||||||
return mPreferences.getString(AUDIO_TRANSCODE_FORMAT, "raw");
|
return mPreferences.getString(AUDIO_TRANSCODE_FORMAT_WIFI, "raw");
|
||||||
|
}
|
||||||
|
|
||||||
|
public final String getAudioTranscodeFormatMobile() {
|
||||||
|
return mPreferences.getString(AUDIO_TRANSCODE_FORMAT_MOBILE, "raw");
|
||||||
}
|
}
|
||||||
|
|
||||||
public final boolean isWifiOnly() {
|
public final boolean isWifiOnly() {
|
||||||
|
|
|
||||||
|
|
@ -109,14 +109,29 @@
|
||||||
<item>320</item>
|
<item>320</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string-array name="audio_transcode_format_list_titles">
|
<string-array name="audio_transcode_format_wifi_list_titles">
|
||||||
<item>Original</item>
|
<item>Original</item>
|
||||||
<item>Opus</item>
|
<item>Opus</item>
|
||||||
<item>AAC</item>
|
<item>AAC</item>
|
||||||
<item>Mp3</item>
|
<item>Mp3</item>
|
||||||
<item>Flac</item>
|
<item>Flac</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
<string-array name="audio_transcode_format_list_values">
|
<string-array name="audio_transcode_format_wifi_list_values">
|
||||||
|
<item>raw</item>
|
||||||
|
<item>opus</item>
|
||||||
|
<item>aac</item>
|
||||||
|
<item>mp3</item>
|
||||||
|
<item>flac</item>
|
||||||
|
</string-array>
|
||||||
|
|
||||||
|
<string-array name="audio_transcode_format_mobile_list_titles">
|
||||||
|
<item>Original</item>
|
||||||
|
<item>Opus</item>
|
||||||
|
<item>AAC</item>
|
||||||
|
<item>Mp3</item>
|
||||||
|
<item>Flac</item>
|
||||||
|
</string-array>
|
||||||
|
<string-array name="audio_transcode_format_mobile_list_values">
|
||||||
<item>raw</item>
|
<item>raw</item>
|
||||||
<item>opus</item>
|
<item>opus</item>
|
||||||
<item>aac</item>
|
<item>aac</item>
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,8 @@
|
||||||
<string name="server_signup_dialog_title">Add server</string>
|
<string name="server_signup_dialog_title">Add server</string>
|
||||||
<string name="settings_about_summary">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</string>
|
<string name="settings_about_summary">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</string>
|
||||||
<string name="settings_about_title">About</string>
|
<string name="settings_about_title">About</string>
|
||||||
<string name="settings_audio_transcode_format">Transcode format</string>
|
<string name="settings_audio_transcode_format_mobile">Transcode format in Mobile</string>
|
||||||
|
<string name="settings_audio_transcode_format_wifi">Transcode format in WiFi</string>
|
||||||
<string name="settings_covers_cache">Covers cache</string>
|
<string name="settings_covers_cache">Covers cache</string>
|
||||||
<string name="settings_github_link">https://github.com/CappielloAntonio/play-for-subsonic</string>
|
<string name="settings_github_link">https://github.com/CappielloAntonio/play-for-subsonic</string>
|
||||||
<string name="settings_github_summary">Follow the development</string>
|
<string name="settings_github_summary">Follow the development</string>
|
||||||
|
|
|
||||||
|
|
@ -57,11 +57,20 @@
|
||||||
|
|
||||||
<ListPreference
|
<ListPreference
|
||||||
app:defaultValue="raw"
|
app:defaultValue="raw"
|
||||||
app:dialogTitle="@string/settings_audio_transcode_format"
|
app:dialogTitle="@string/settings_audio_transcode_format_wifi"
|
||||||
app:entries="@array/audio_transcode_format_list_titles"
|
app:entries="@array/audio_transcode_format_wifi_list_titles"
|
||||||
app:entryValues="@array/audio_transcode_format_list_values"
|
app:entryValues="@array/audio_transcode_format_wifi_list_values"
|
||||||
app:key="audio_transcode_format"
|
app:key="audio_transcode_format_wifi"
|
||||||
app:title="@string/settings_audio_transcode_format"
|
app:title="@string/settings_audio_transcode_format_wifi"
|
||||||
|
app:useSimpleSummaryProvider="true" />
|
||||||
|
|
||||||
|
<ListPreference
|
||||||
|
app:defaultValue="raw"
|
||||||
|
app:dialogTitle="@string/settings_audio_transcode_format_mobile"
|
||||||
|
app:entries="@array/audio_transcode_format_mobile_list_titles"
|
||||||
|
app:entryValues="@array/audio_transcode_format_mobile_list_values"
|
||||||
|
app:key="audio_transcode_format_mobile"
|
||||||
|
app:title="@string/settings_audio_transcode_format_mobile"
|
||||||
app:useSimpleSummaryProvider="true" />
|
app:useSimpleSummaryProvider="true" />
|
||||||
|
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue