mirror of
https://gitea.mayex.net/mayekkuzu/Audinaut.git
synced 2025-02-10 04:12:21 +03:00
Build URL with okhttp3.HttpUrl
This commit is contained in:
parent
50676b6079
commit
aa4cfb82ad
@ -65,6 +65,8 @@ import net.nullsum.audinaut.domain.RepeatMode;
|
|||||||
import net.nullsum.audinaut.receiver.MediaButtonIntentReceiver;
|
import net.nullsum.audinaut.receiver.MediaButtonIntentReceiver;
|
||||||
import net.nullsum.audinaut.service.DownloadService;
|
import net.nullsum.audinaut.service.DownloadService;
|
||||||
|
|
||||||
|
import okhttp3.HttpUrl;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.Closeable;
|
import java.io.Closeable;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -322,35 +324,34 @@ public final class Util {
|
|||||||
public static String getRestUrl(Context context, String method, SharedPreferences prefs, int instance) {
|
public static String getRestUrl(Context context, String method, SharedPreferences prefs, int instance) {
|
||||||
return getRestUrl(context, method, prefs, instance, true);
|
return getRestUrl(context, method, prefs, instance, true);
|
||||||
}
|
}
|
||||||
public static String getRestUrl(Context context, String method, SharedPreferences prefs, int instance, boolean allowAltAddress) {
|
|
||||||
StringBuilder builder = new StringBuilder();
|
|
||||||
|
|
||||||
String serverUrl = prefs.getString(Constants.PREFERENCES_KEY_SERVER_URL + instance, null);
|
public static String getRestUrl(Context context, String method, SharedPreferences prefs, int instance, boolean allowAltAddress) {
|
||||||
if(allowAltAddress && Util.isWifiConnected(context)) {
|
String serverUrl = prefs.getString(Constants.PREFERENCES_KEY_SERVER_URL + instance, null);
|
||||||
String SSID = prefs.getString(Constants.PREFERENCES_KEY_SERVER_LOCAL_NETWORK_SSID + instance, "");
|
|
||||||
if(!SSID.isEmpty()) {
|
|
||||||
String currentSSID = Util.getSSID(context);
|
|
||||||
|
|
||||||
String[] ssidParts = SSID.split(",");
|
HttpUrl.Builder builder;
|
||||||
if ("".equals(SSID) || SSID.equals(currentSSID) || Arrays.asList(ssidParts).contains(currentSSID)) {
|
builder = HttpUrl.parse(serverUrl).newBuilder();
|
||||||
String internalUrl = prefs.getString(Constants.PREFERENCES_KEY_SERVER_INTERNAL_URL + instance, null);
|
|
||||||
if (internalUrl != null && !"".equals(internalUrl) && !"http://".equals(internalUrl)) {
|
|
||||||
serverUrl = internalUrl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String username = prefs.getString(Constants.PREFERENCES_KEY_USERNAME + instance, null);
|
if(allowAltAddress && Util.isWifiConnected(context)) {
|
||||||
String password = prefs.getString(Constants.PREFERENCES_KEY_PASSWORD + instance, null);
|
String SSID = prefs.getString(Constants.PREFERENCES_KEY_SERVER_LOCAL_NETWORK_SSID + instance, "");
|
||||||
|
if(!SSID.isEmpty()) {
|
||||||
|
String currentSSID = Util.getSSID(context);
|
||||||
|
|
||||||
|
String[] ssidParts = SSID.split(",");
|
||||||
|
if ("".equals(SSID) || SSID.equals(currentSSID) || Arrays.asList(ssidParts).contains(currentSSID)) {
|
||||||
|
String internalUrl = prefs.getString(Constants.PREFERENCES_KEY_SERVER_INTERNAL_URL + instance, null);
|
||||||
|
if (internalUrl != null && !"".equals(internalUrl) && !"http://".equals(internalUrl)) {
|
||||||
|
serverUrl = internalUrl;
|
||||||
|
builder = HttpUrl.parse(serverUrl).newBuilder();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String username = prefs.getString(Constants.PREFERENCES_KEY_USERNAME + instance, null);
|
||||||
|
String password = prefs.getString(Constants.PREFERENCES_KEY_PASSWORD + instance, null);
|
||||||
|
|
||||||
|
builder.addPathSegment("rest/" + method + ".view");
|
||||||
|
|
||||||
builder.append(serverUrl);
|
|
||||||
if (builder.charAt(builder.length() - 1) != '/') {
|
|
||||||
builder.append("/");
|
|
||||||
}
|
|
||||||
builder.append("rest/");
|
|
||||||
builder.append(method).append(".view");
|
|
||||||
builder.append("?u=").append(username);
|
|
||||||
int hash = (username + password).hashCode();
|
int hash = (username + password).hashCode();
|
||||||
Pair<String, String> values = tokens.get(hash);
|
Pair<String, String> values = tokens.get(hash);
|
||||||
if(values == null) {
|
if(values == null) {
|
||||||
@ -360,14 +361,15 @@ public final class Util {
|
|||||||
tokens.put(hash, values);
|
tokens.put(hash, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.append("&s=").append(values.getFirst());
|
builder.addQueryParameter("u", username);
|
||||||
builder.append("&t=").append(values.getSecond());
|
builder.addQueryParameter("s", values.getFirst());
|
||||||
|
builder.addQueryParameter("t", values.getSecond());
|
||||||
|
builder.addQueryParameter("v", Constants.REST_PROTOCOL_VERSION_SUBSONIC);
|
||||||
|
builder.addQueryParameter("c", Constants.REST_CLIENT_ID);
|
||||||
|
|
||||||
builder.append("&v=").append(Constants.REST_PROTOCOL_VERSION_SUBSONIC);
|
return builder.build().toString();
|
||||||
builder.append("&c=").append(Constants.REST_CLIENT_ID);
|
}
|
||||||
|
|
||||||
return builder.toString();
|
|
||||||
}
|
|
||||||
public static int getRestUrlHash(Context context) {
|
public static int getRestUrlHash(Context context) {
|
||||||
return getRestUrlHash(context, Util.getMostRecentActiveServer(context));
|
return getRestUrlHash(context, Util.getMostRecentActiveServer(context));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user