From 4d4d8f98e9824f31eae2ce00af2b2b618243d87f Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sun, 15 Jan 2017 12:39:59 +0100 Subject: play gif files in fullscreen view --- build.gradle | 3 +- .../ui/ShowFullscreenMessageActivity.java | 40 ++++++++++++++-------- 2 files changed, 27 insertions(+), 16 deletions(-) diff --git a/build.gradle b/build.gradle index 863c70814..a973c6dc1 100644 --- a/build.gradle +++ b/build.gradle @@ -62,6 +62,7 @@ dependencies { compile 'pub.devrel:easypermissions:0.1.9' compile 'com.wefika:flowlayout:0.4.1' compile 'com.googlecode.ez-vcard:ez-vcard:0.10.0' + compile 'pl.droidsonroids.gif:android-gif-drawable:1.2.3' } ext { @@ -81,7 +82,7 @@ android { versionCode 182 //versionName "1.15.4" - versionName "1.15.5 beta (2017-01-09)" + versionName "1.15.5 beta (2017-01-15)" archivesBaseName += "-$versionName" applicationId "de.pixart.messenger" diff --git a/src/main/java/de/pixart/messenger/ui/ShowFullscreenMessageActivity.java b/src/main/java/de/pixart/messenger/ui/ShowFullscreenMessageActivity.java index 5f1fdc3c7..1c7d41232 100644 --- a/src/main/java/de/pixart/messenger/ui/ShowFullscreenMessageActivity.java +++ b/src/main/java/de/pixart/messenger/ui/ShowFullscreenMessageActivity.java @@ -33,6 +33,7 @@ import de.pixart.messenger.R; import de.pixart.messenger.persistance.FileBackend; import de.pixart.messenger.services.XmppConnectionService; import de.pixart.messenger.utils.ExifHelper; +import pl.droidsonroids.gif.GifDrawable; import uk.co.senab.photoview.PhotoView; import uk.co.senab.photoview.PhotoViewAttacher; @@ -142,6 +143,7 @@ public class ShowFullscreenMessageActivity extends Activity { width = options.outWidth; rotation = getRotation(Uri.parse("file://" + file.getAbsolutePath())); Log.d(Config.LOGTAG, "Image height: " + height + ", width: " + width + ", rotation: " + rotation); + mImage.setVisibility(View.VISIBLE); if (width > height) { if (rotation == 0 || rotation == 180) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) { @@ -171,21 +173,29 @@ public class ShowFullscreenMessageActivity extends Activity { } } } - final PhotoViewAttacher mAttacher = new PhotoViewAttacher(mImage); - mImage.setVisibility(View.VISIBLE); - try { - Glide.with(this) - .load(file) - .asBitmap() - .into(new BitmapImageViewTarget(mImage) { - @Override - public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { - super.onResourceReady(resource, glideAnimation); - mAttacher.update(); - } - }); - } catch (Exception e) { - e.printStackTrace(); + if (getMimeType(file.toString()) != null && getMimeType(file.toString()).endsWith("/gif")) { + try { + GifDrawable gifDrawable = new GifDrawable(file); + mImage.setImageDrawable(gifDrawable); + } catch (IOException e) { + e.printStackTrace(); + } + } else { + final PhotoViewAttacher mAttacher = new PhotoViewAttacher(mImage); + try { + Glide.with(this) + .load(file) + .asBitmap() + .into(new BitmapImageViewTarget(mImage) { + @Override + public void onResourceReady(Bitmap resource, GlideAnimation glideAnimation) { + super.onResourceReady(resource, glideAnimation); + mAttacher.update(); + } + }); + } catch (Exception e) { + e.printStackTrace(); + } } } -- cgit v1.2.3