diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/InternetHelperSingleton.kt b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/InternetHelperSingleton.kt index 9e08a7b08a..a90551d71a 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/InternetHelperSingleton.kt +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/InternetHelperSingleton.kt @@ -86,10 +86,10 @@ object InternetHelperSingleton { } @Throws(RemoteException::class, InterruptedException::class) - fun send(webRequest: Uri): WebResourceResponse? { + fun send(webRequest: Uri, allowInsecure: Boolean): WebResourceResponse? { val latch = CountDownLatch(1) var result: WebResourceResponse? = null - val request = HttpGetRequest(webRequest.toString(), HttpHeaders()) + val request = HttpGetRequest(webRequest.toString(), allowInsecure, HttpHeaders()) LOG.debug("Forwarding GET request to {} to internet helper app", webRequest) try { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/InternetUtils.kt b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/InternetUtils.kt index 45b76d51b6..7dfba203a7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/InternetUtils.kt +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/InternetUtils.kt @@ -52,12 +52,12 @@ class InternetUtils { requestHeaders: Map = emptyMap(), body: String? = null, bodyContentType: String = "text/plain", - insecure: Boolean = false + allowInsecure: Boolean = false ): String? { val response: WebResourceResponse? = if (GBApplication.hasDirectInternetAccess()) { - directRequest(uri, method, requestHeaders, body, bodyContentType, insecure) + directRequest(uri, method, requestHeaders, body, bodyContentType, allowInsecure) } else { - InternetHelperSingleton.send(uri) + InternetHelperSingleton.send(uri, allowInsecure) } if (response == null) return null @@ -71,7 +71,7 @@ class InternetUtils { requestHeaders: Map = emptyMap(), body: String? = null, bodyContentType: String = "text/plain", - insecure: Boolean = false + allowInsecure: Boolean = false ): JSONObject? { val text = doStringRequest( uri, @@ -79,7 +79,7 @@ class InternetUtils { requestHeaders, body, bodyContentType, - insecure + allowInsecure ) try { return JSONObject(text) @@ -101,10 +101,10 @@ class InternetUtils { requestHeaders = emptyMap(), body = null, bodyContentType = "application/octet-stream", - insecure = false + allowInsecure = false ) } else { - InternetHelperSingleton.send(uri) + InternetHelperSingleton.send(uri, false) } response?.data?.use { input -> @@ -129,10 +129,10 @@ class InternetUtils { requestHeaders: Map, body: String?, bodyContentType: String, - insecure: Boolean + allowInsecure: Boolean ): WebResourceResponse { - val client = if (insecure) createInsecureClient() else defaultClient + val client = if (allowInsecure) createInsecureClient() else defaultClient val builder = Request.Builder().url(uri.toString()) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/webview/GBWebClient.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/webview/GBWebClient.java index ca7c531f21..6e99885dc7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/webview/GBWebClient.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/webview/GBWebClient.java @@ -134,7 +134,7 @@ public class GBWebClient extends WebViewClient { if (!forceLocal && !directInternetAccess && InternetHelperSingleton.INSTANCE.ensureInternetHelperBound()) { LOG.debug("WEBVIEW forwarding request to the internet helper"); try { - WebResourceResponse wrr = InternetHelperSingleton.INSTANCE.send(requestedUri); + WebResourceResponse wrr = InternetHelperSingleton.INSTANCE.send(requestedUri, false); if (wrr != null && wrr.getStatusCode() < 400) return wrr; else diff --git a/app/src/main/java/nodomain/freeyourgadget/internethelper/aidl/http/HttpGetRequest.java b/app/src/main/java/nodomain/freeyourgadget/internethelper/aidl/http/HttpGetRequest.java index ffe954629a..c4e96656f7 100644 --- a/app/src/main/java/nodomain/freeyourgadget/internethelper/aidl/http/HttpGetRequest.java +++ b/app/src/main/java/nodomain/freeyourgadget/internethelper/aidl/http/HttpGetRequest.java @@ -7,19 +7,22 @@ import androidx.annotation.NonNull; public class HttpGetRequest implements Parcelable { private final String url; + private final boolean allowInsecure; private final HttpHeaders headers; protected HttpGetRequest(final Parcel in) { url = in.readString(); + allowInsecure = in.readByte() != 0; // readBoolean() requires API level 29 headers = in.readParcelable(HttpGetRequest.class.getClassLoader()); } - public HttpGetRequest(String url, HttpHeaders headers) { + public HttpGetRequest(String url, boolean allowInsecure, HttpHeaders headers) { this.url = url; + this.allowInsecure = allowInsecure; this.headers = headers; } - public static final Creator CREATOR = new Creator() { + public static final Creator CREATOR = new Creator<>() { @Override public HttpGetRequest createFromParcel(final Parcel in) { return new HttpGetRequest(in); @@ -39,6 +42,7 @@ public class HttpGetRequest implements Parcelable { @Override public void writeToParcel(@NonNull final Parcel dest, final int flags) { dest.writeString(url); + dest.writeByte((byte) (allowInsecure ? 1 : 0)); // writeBoolean() requires API level 29 dest.writeParcelable(headers, 0); } @@ -46,6 +50,10 @@ public class HttpGetRequest implements Parcelable { return url; } + public boolean getAllowInsecure() { + return allowInsecure; + } + public HttpHeaders getHeaders() { return headers; }