X-Git-Url: https://git.ktnx.net/?p=mobile-ledger.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fnet%2Fktnx%2Fmobileledger%2Futils%2FNetworkUtil.java;h=97c09911f60a6aa5547eef8d12512c01f70b777a;hp=821a7125e401dac71bab5c92ad94c865a1483799;hb=HEAD;hpb=6c4fb28b7963a0de22836258aef61a440ff8975e diff --git a/app/src/main/java/net/ktnx/mobileledger/utils/NetworkUtil.java b/app/src/main/java/net/ktnx/mobileledger/utils/NetworkUtil.java index 821a7125..97c09911 100644 --- a/app/src/main/java/net/ktnx/mobileledger/utils/NetworkUtil.java +++ b/app/src/main/java/net/ktnx/mobileledger/utils/NetworkUtil.java @@ -1,5 +1,5 @@ /* - * Copyright © 2019 Damyan Ivanov. + * Copyright © 2020 Damyan Ivanov. * This file is part of MoLe. * MoLe is free software: you can distribute it and/or modify it * under the term of the GNU General Public License as published by @@ -17,35 +17,34 @@ package net.ktnx.mobileledger.utils; -import android.util.Base64; -import android.util.Log; +import androidx.annotation.NonNull; -import net.ktnx.mobileledger.model.MobileLedgerProfile; +import net.ktnx.mobileledger.db.Profile; + +import org.jetbrains.annotations.NotNull; import java.io.IOException; import java.net.HttpURLConnection; import java.net.URL; -import java.nio.charset.StandardCharsets; + +import static net.ktnx.mobileledger.utils.Logger.debug; public final class NetworkUtil { private static final int thirtySeconds = 30000; - public static HttpURLConnection prepareConnection(MobileLedgerProfile profile, String path) - throws IOException { - final String url = profile.getUrl(); - final boolean use_auth = profile.isAuthEnabled(); - if (!url.endsWith("/")) url.concat("/"); - url.concat(path); - Log.d("network", "Connecting to " + url); - HttpURLConnection http = (HttpURLConnection) new URL(url).openConnection(); - if (use_auth) { - final String auth_user = profile.getAuthUserName(); - final String auth_password = profile.getAuthPassword(); - final byte[] bytes = (String.format("%s:%s", auth_user, auth_password)) - .getBytes(StandardCharsets.UTF_8); - final String value = Base64.encodeToString(bytes, Base64.DEFAULT); - http.setRequestProperty("Authorization", "Basic " + value); - } - http.setAllowUserInteraction(false); + @NotNull + public static HttpURLConnection prepareConnection(@NonNull Profile profile, + @NonNull String path) throws IOException { + return prepareConnection(profile.getUrl(), path, profile.useAuthentication()); + } + public static HttpURLConnection prepareConnection(@NonNull String url, @NonNull String path, + boolean authEnabled) throws IOException { + String connectURL = url; + if (!connectURL.endsWith("/")) + connectURL += "/"; + connectURL += path; + debug("network", "Connecting to " + connectURL); + HttpURLConnection http = (HttpURLConnection) new URL(connectURL).openConnection(); + http.setAllowUserInteraction(true); http.setRequestProperty("Accept-Charset", "UTF-8"); http.setInstanceFollowRedirects(false); http.setUseCaches(false);