@@ -22,6 +22,10 @@ import org.thoughtcrime.securesms.notifications.NotificationIds
2222import org.thoughtcrime.securesms.recipients.Recipient
2323import org.thoughtcrime.securesms.util.BitmapUtil
2424import java.util.concurrent.ExecutionException
25+ import java.util.concurrent.TimeUnit
26+ import java.util.concurrent.TimeoutException
27+
28+ private const val IMAGE_LOAD_TIMEOUT_SECONDS = 2L
2529
2630fun Drawable?.toLargeBitmap (context : Context ): Bitmap ? {
2731 if (this == null ) {
@@ -48,11 +52,13 @@ fun Recipient.getContactDrawable(context: Context): Drawable? {
4852 context.resources.getDimensionPixelSize(android.R .dimen.notification_large_icon_width),
4953 context.resources.getDimensionPixelSize(android.R .dimen.notification_large_icon_height)
5054 )
51- .get()
55+ .get(IMAGE_LOAD_TIMEOUT_SECONDS , TimeUnit . SECONDS )
5256 } catch (e: InterruptedException ) {
5357 FallbackAvatarDrawable (context, fallbackAvatar).circleCrop()
5458 } catch (e: ExecutionException ) {
5559 FallbackAvatarDrawable (context, fallbackAvatar).circleCrop()
60+ } catch (e: TimeoutException ) {
61+ FallbackAvatarDrawable (context, fallbackAvatar).circleCrop()
5662 }
5763 } else {
5864 FallbackAvatarDrawable (context, fallbackAvatar).circleCrop()
@@ -66,11 +72,13 @@ fun Uri.toBitmap(context: Context, dimension: Int): Bitmap {
6672 .load(DecryptableUri (this ))
6773 .diskCacheStrategy(DiskCacheStrategy .NONE )
6874 .submit(dimension, dimension)
69- .get()
75+ .get(2 , TimeUnit . SECONDS )
7076 } catch (e: InterruptedException ) {
7177 Bitmap .createBitmap(dimension, dimension, Bitmap .Config .RGB_565 )
7278 } catch (e: ExecutionException ) {
7379 Bitmap .createBitmap(dimension, dimension, Bitmap .Config .RGB_565 )
80+ } catch (e: TimeoutException ) {
81+ Bitmap .createBitmap(dimension, dimension, Bitmap .Config .RGB_565 )
7482 }
7583}
7684
0 commit comments