diff --git a/WordPress/src/main/java/org/wordpress/android/networking/GlideRequestFactory.kt b/WordPress/src/main/java/org/wordpress/android/networking/GlideRequestFactory.kt index 15e5db1dda99..48816ed50cba 100644 --- a/WordPress/src/main/java/org/wordpress/android/networking/GlideRequestFactory.kt +++ b/WordPress/src/main/java/org/wordpress/android/networking/GlideRequestFactory.kt @@ -1,5 +1,6 @@ package org.wordpress.android.networking +import com.android.volley.DefaultRetryPolicy import com.android.volley.Request import com.android.volley.Request.Priority import com.bumptech.glide.integration.volley.VolleyRequestFactory @@ -12,6 +13,9 @@ import java.io.InputStream import javax.inject.Inject import javax.inject.Singleton +// Timeout in milliseconds for loading complex images at server side (private, heavy...) +private const val TIMEOUT = 15_000 + /** * RequestFactory which adds authorization headers to all Glide requests and makes sure requests to WPcom endpoints * use https. @@ -27,7 +31,18 @@ class GlideRequestFactory @Inject constructor( headers: Map ): Request? { val httpsUrl: String = convertWPcomUrlToHttps(url) - return VolleyStreamFetcher.GlideRequest(httpsUrl, callback, priority, addAuthHeaders(url, headers)) + return VolleyStreamFetcher.GlideRequest( + httpsUrl, + callback, + priority, + addAuthHeaders(url, headers) + ).apply { + retryPolicy = DefaultRetryPolicy( + TIMEOUT, + DefaultRetryPolicy.DEFAULT_MAX_RETRIES, + DefaultRetryPolicy.DEFAULT_BACKOFF_MULT + ) + } } private fun convertWPcomUrlToHttps(url: String): String { diff --git a/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderPhotoView.java b/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderPhotoView.java index 8bf58a596d74..486829b0a646 100644 --- a/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderPhotoView.java +++ b/WordPress/src/main/java/org/wordpress/android/ui/reader/views/ReaderPhotoView.java @@ -107,7 +107,6 @@ private void loadImage() { } showProgress(); - mImageManager .loadWithResultListener(mImageView, ImageType.IMAGE, mHiResImageUrl, ScaleType.CENTER, mLoResImageUrl, new RequestListener() {