From 798bb6d4f7dc645032423b93c4a3261d519f5624 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 23 Nov 2018 11:25:18 -0200 Subject: [PATCH] [android] scale thumbnails to minimum size, don't upscale to maximum size --- .../android/conversation/AttachmentController.java | 12 ++++++++++-- .../android/conversation/glide/BriarDataFetcher.java | 3 +-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/AttachmentController.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/AttachmentController.java index 7c4339c3e..a5d6ca146 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/AttachmentController.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/AttachmentController.java @@ -175,10 +175,18 @@ class AttachmentController { float widthPercentage = maxWidth / (float) width; float heightPercentage = maxHeight / (float) height; float scaleFactor = Math.min(widthPercentage, heightPercentage); + if (scaleFactor > 1) scaleFactor = 1f; int thumbnailWidth = (int) (width * scaleFactor); int thumbnailHeight = (int) (height * scaleFactor); - if (thumbnailWidth < minWidth) thumbnailWidth = minWidth; - if (thumbnailHeight < minHeight) thumbnailHeight = minHeight; + if (thumbnailWidth < minWidth || thumbnailHeight < minHeight) { + widthPercentage = minWidth / (float) width; + heightPercentage = minHeight / (float) height; + scaleFactor = Math.max(widthPercentage, heightPercentage); + thumbnailWidth = (int) (width * scaleFactor); + thumbnailHeight = (int) (height * scaleFactor); + if (thumbnailWidth > maxWidth) thumbnailWidth = maxWidth; + if (thumbnailHeight > maxHeight) thumbnailHeight = maxHeight; + } return new Size(thumbnailWidth, thumbnailHeight); } diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcher.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcher.java index 252e8df57..51d51434d 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcher.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/glide/BriarDataFetcher.java @@ -21,7 +21,6 @@ import java.util.logging.Logger; import javax.inject.Inject; import static com.bumptech.glide.load.DataSource.LOCAL; -import static java.util.Objects.requireNonNull; import static java.util.logging.Level.WARNING; import static java.util.logging.Logger.getLogger; import static org.briarproject.bramble.util.LogUtils.logException; @@ -52,7 +51,7 @@ class BriarDataFetcher implements DataFetcher { @Override public void loadData(Priority priority, DataCallback callback) { - MessageId id = requireNonNull(attachment).getMessageId(); + MessageId id = attachment.getMessageId(); dbExecutor.execute(() -> { if (cancel) return; try {