[android] scale thumbnails to minimum size, don't upscale to maximum size

This commit is contained in:
Torsten Grote
2018-11-23 11:25:18 -02:00
parent 152ac3df43
commit 798bb6d4f7
2 changed files with 11 additions and 4 deletions

View File

@@ -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);
}

View File

@@ -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<InputStream> {
@Override
public void loadData(Priority priority,
DataCallback<? super InputStream> callback) {
MessageId id = requireNonNull(attachment).getMessageId();
MessageId id = attachment.getMessageId();
dbExecutor.execute(() -> {
if (cancel) return;
try {