diff --git a/app/src/main/java/eu/faircode/email/ImageHelper.java b/app/src/main/java/eu/faircode/email/ImageHelper.java index be185bf392..23f7493d8a 100644 --- a/app/src/main/java/eu/faircode/email/ImageHelper.java +++ b/app/src/main/java/eu/faircode/email/ImageHelper.java @@ -353,10 +353,10 @@ class ImageHelper { Bitmap bm; HttpURLConnection urlConnection = null; try { - String url = a.source; int redirects = 0; + URL url = new URL(a.source); while (true) { - urlConnection = (HttpURLConnection) new URL(url).openConnection(); + urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setDoOutput(false); urlConnection.setInstanceFollowRedirects(true); @@ -366,14 +366,13 @@ class ImageHelper { if (status == HttpURLConnection.HTTP_MOVED_PERM || status == HttpURLConnection.HTTP_MOVED_TEMP) { - redirects++; - if (redirects > MAX_REDIRECTS) + if (++redirects > MAX_REDIRECTS) throw new IOException("Too many redirects"); String location = URLDecoder.decode( urlConnection.getHeaderField("Location"), StandardCharsets.UTF_8.name()); - url = new URL(new URL(url), location).toExternalForm(); + url = new URL(url, location); Log.i("Redirect #" + redirects + " to " + url); urlConnection.disconnect(); @@ -381,7 +380,7 @@ class ImageHelper { } if (status != HttpURLConnection.HTTP_OK) - throw new IOException("http " + status); + throw new IOException("HTTP status=" + status); break; }