mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-11 18:29:05 +01:00
Add WebP library for API 16.
This commit is contained in:
@@ -121,6 +121,7 @@ dependencies {
|
|||||||
exclude group: 'com.android.support'
|
exclude group: 'com.android.support'
|
||||||
exclude module: 'disklrucache' // when there's no disk cache, we can't accidentally use it
|
exclude module: 'disklrucache' // when there's no disk cache, we can't accidentally use it
|
||||||
}
|
}
|
||||||
|
implementation "com.github.zjupure:webpdecoder:2.0.$glideVersion"
|
||||||
|
|
||||||
annotationProcessor 'com.google.dagger:dagger-compiler:2.24'
|
annotationProcessor 'com.google.dagger:dagger-compiler:2.24'
|
||||||
annotationProcessor "com.github.bumptech.glide:compiler:$glideVersion"
|
annotationProcessor "com.github.bumptech.glide:compiler:$glideVersion"
|
||||||
|
|||||||
@@ -3,6 +3,8 @@ package org.briarproject.briar.android.attachment.media;
|
|||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.webkit.MimeTypeMap;
|
import android.webkit.MimeTypeMap;
|
||||||
|
|
||||||
|
import com.bumptech.glide.integration.webp.WebpBitmapFactory;
|
||||||
|
|
||||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
@@ -25,6 +27,10 @@ class ImageHelperImpl implements ImageHelper {
|
|||||||
BitmapFactory.Options options = new BitmapFactory.Options();
|
BitmapFactory.Options options = new BitmapFactory.Options();
|
||||||
options.inJustDecodeBounds = true;
|
options.inJustDecodeBounds = true;
|
||||||
BitmapFactory.decodeStream(is, null, options);
|
BitmapFactory.decodeStream(is, null, options);
|
||||||
|
if (options.outWidth < 1 || options.outHeight < 1) {
|
||||||
|
// BitmapFactory doesn't fully support WebP on API < 17
|
||||||
|
WebpBitmapFactory.decodeStream(is, null, options);
|
||||||
|
}
|
||||||
String mimeType = options.outMimeType;
|
String mimeType = options.outMimeType;
|
||||||
if (mimeType == null) mimeType = "";
|
if (mimeType == null) mimeType = "";
|
||||||
return new DecodeResult(options.outWidth, options.outHeight,
|
return new DecodeResult(options.outWidth, options.outHeight,
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import android.graphics.Bitmap;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
|
import com.bumptech.glide.integration.webp.decoder.WebpDrawable;
|
||||||
|
import com.bumptech.glide.integration.webp.decoder.WebpDrawableTransformation;
|
||||||
import com.bumptech.glide.load.Transformation;
|
import com.bumptech.glide.load.Transformation;
|
||||||
|
|
||||||
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
import org.briarproject.bramble.api.nullsafety.NotNullByDefault;
|
||||||
@@ -80,7 +82,9 @@ class ImageViewHolder extends ViewHolder {
|
|||||||
.load(a.getHeader())
|
.load(a.getHeader())
|
||||||
.diskCacheStrategy(NONE)
|
.diskCacheStrategy(NONE)
|
||||||
.error(ERROR_RES)
|
.error(ERROR_RES)
|
||||||
.transform(transformation)
|
.optionalTransform(transformation)
|
||||||
|
.optionalTransform(WebpDrawable.class,
|
||||||
|
new WebpDrawableTransformation(transformation))
|
||||||
.transition(withCrossFade())
|
.transition(withCrossFade())
|
||||||
.into(imageView)
|
.into(imageView)
|
||||||
.waitForLayout();
|
.waitForLayout();
|
||||||
|
|||||||
Reference in New Issue
Block a user