diff --git a/art/play_gif.svg b/art/play_gif.svg new file mode 100644 index 0000000000000000000000000000000000000000..47f5cc24d17d6e32cdcd97c78558b8ae382f1d8c --- /dev/null +++ b/art/play_gif.svg @@ -0,0 +1,68 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/art/render.rb b/art/render.rb index 93c0499691053430d4db07fad51d8b3595f8d824..01ab3903d14dd982767acf65cf12568de1427ede 100755 --- a/art/render.rb +++ b/art/render.rb @@ -13,7 +13,8 @@ resolutions = { images = { 'ic_launcher.svg' => ['ic_launcher', 48], 'main_logo.svg' => ['main_logo', 200], - 'play_video.svg' => ['play_video', 96], + 'play_video.svg' => ['play_video', 128], + 'play_gif.svg' => ['play_gif', 128], 'conversations_mono.svg' => ['ic_notification', 24], 'ic_received_indicator.svg' => ['ic_received_indicator', 12], 'ic_send_text_offline.svg' => ['ic_send_text_offline', 36], diff --git a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java index 642df7698b4c7f34639473a19f364187961f3ddd..1cc70d5a84d79108c61a7ca3cd328f11a9c71308 100644 --- a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java @@ -9,6 +9,8 @@ import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; +import android.graphics.Paint; +import android.graphics.Rect; import android.graphics.RectF; import android.media.MediaMetadataRetriever; import android.net.Uri; @@ -412,7 +414,8 @@ public class FileBackend { return thumbnail; } DownloadableFile file = getFile(message); - if (file.getMimeType().startsWith("video/")) { + final String mime = file.getMimeType(); + if (mime.startsWith("video/")) { thumbnail = getVideoPreview(file, size); } else { Bitmap fullsize = getFullsizeImagePreview(file, size); @@ -421,6 +424,12 @@ public class FileBackend { } thumbnail = resize(fullsize, size); thumbnail = rotate(thumbnail, getRotation(file)); + if (mime.equals("image/gif")) { + Bitmap withGifOverlay = thumbnail.copy(Bitmap.Config.ARGB_8888,true); + drawOverlay(withGifOverlay,R.drawable.play_gif,1.0f); + thumbnail.recycle(); + thumbnail = withGifOverlay; + } } this.mXmppConnectionService.getBitmapCache().put(uuid, thumbnail); } @@ -439,6 +448,21 @@ public class FileBackend { } } + private void drawOverlay(Bitmap bitmap, int resource, float factor) { + Bitmap overlay = BitmapFactory.decodeResource(mXmppConnectionService.getResources(), resource); + Canvas canvas = new Canvas(bitmap); + Paint paint = new Paint(); + paint.setAntiAlias(true); + paint.setFilterBitmap(true); + paint.setDither(true); + float targetSize = Math.min(canvas.getWidth(),canvas.getHeight()) * factor; + Log.d(Config.LOGTAG,"target size overlay: "+targetSize+" overlay bitmap size was "+overlay.getHeight()); + float left = (canvas.getWidth() - targetSize) / 2.0f; + float top = (canvas.getHeight() - targetSize) / 2.0f; + RectF dst = new RectF(left,top,left+targetSize-1,top+targetSize-1); + canvas.drawBitmap(overlay,null,dst,paint); + } + private Bitmap getVideoPreview(File file, int size) { MediaMetadataRetriever metadataRetriever = new MediaMetadataRetriever(); Bitmap frame; @@ -451,11 +475,7 @@ public class FileBackend { frame = Bitmap.createBitmap(size,size, Bitmap.Config.ARGB_8888); frame.eraseColor(0xff000000); } - Canvas canvas = new Canvas(frame); - Bitmap play = BitmapFactory.decodeResource(mXmppConnectionService.getResources(), R.drawable.play_video); - float x = (frame.getWidth() - play.getWidth()) / 2.0f; - float y = (frame.getHeight() - play.getHeight()) / 2.0f; - canvas.drawBitmap(play,x,y,null); + drawOverlay(frame,R.drawable.play_video,0.75f); return frame; } diff --git a/src/main/res/drawable-hdpi/message_bubble_received.9.png b/src/main/res/drawable-hdpi/message_bubble_received.9.png index 9d59123e860ca9ead2acecd0987eacea0131f3b8..cc1502521ddfb1a7aecb7653988afbff30a0ce29 100644 Binary files a/src/main/res/drawable-hdpi/message_bubble_received.9.png and b/src/main/res/drawable-hdpi/message_bubble_received.9.png differ diff --git a/src/main/res/drawable-hdpi/message_bubble_received_dark.9.png b/src/main/res/drawable-hdpi/message_bubble_received_dark.9.png index 5fd16bda9c412900baa32b626ef828b5718b50ac..30a136aec2882b91a4417158d28f42ec549997f0 100644 Binary files a/src/main/res/drawable-hdpi/message_bubble_received_dark.9.png and b/src/main/res/drawable-hdpi/message_bubble_received_dark.9.png differ diff --git a/src/main/res/drawable-hdpi/message_bubble_received_grey.9.png b/src/main/res/drawable-hdpi/message_bubble_received_grey.9.png index f1eb95acb90821ca9abbc33ef2659915cf1b62c2..e6fcdc2345bab0e6e40501478e1f677019be36dc 100644 Binary files a/src/main/res/drawable-hdpi/message_bubble_received_grey.9.png and b/src/main/res/drawable-hdpi/message_bubble_received_grey.9.png differ diff --git a/src/main/res/drawable-hdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-hdpi/message_bubble_received_warning.9.png index 118b532a26aed49a29a8be1bad8a1834771323d5..25d22f74b2bd03e79e83e1e6f4bb8358becc4fc8 100644 Binary files a/src/main/res/drawable-hdpi/message_bubble_received_warning.9.png and b/src/main/res/drawable-hdpi/message_bubble_received_warning.9.png differ diff --git a/src/main/res/drawable-hdpi/message_bubble_received_white.9.png b/src/main/res/drawable-hdpi/message_bubble_received_white.9.png index 314436c3ac946422171a175f0f7cc3107a6e9fbd..3c88c1fcfce59596c2b22b53a12cb243922899d3 100644 Binary files a/src/main/res/drawable-hdpi/message_bubble_received_white.9.png and b/src/main/res/drawable-hdpi/message_bubble_received_white.9.png differ diff --git a/src/main/res/drawable-hdpi/message_bubble_sent.9.png b/src/main/res/drawable-hdpi/message_bubble_sent.9.png index 3570a9ef5d785c2dc7cad351d918fb88e0a3fbe7..db5b1b526999442b4daaccf1b4d74c16a00095eb 100644 Binary files a/src/main/res/drawable-hdpi/message_bubble_sent.9.png and b/src/main/res/drawable-hdpi/message_bubble_sent.9.png differ diff --git a/src/main/res/drawable-hdpi/message_bubble_sent_grey.9.png b/src/main/res/drawable-hdpi/message_bubble_sent_grey.9.png index 9e7319d26c11aa3d8215978c52957ef9226bd188..413ce0e4ddc7586aa8009f47ae4c0b5922d23d05 100644 Binary files a/src/main/res/drawable-hdpi/message_bubble_sent_grey.9.png and b/src/main/res/drawable-hdpi/message_bubble_sent_grey.9.png differ diff --git a/src/main/res/drawable-hdpi/play_gif.png b/src/main/res/drawable-hdpi/play_gif.png new file mode 100644 index 0000000000000000000000000000000000000000..e66db1874c7c6c3510678849334b7cbea84c3483 Binary files /dev/null and b/src/main/res/drawable-hdpi/play_gif.png differ diff --git a/src/main/res/drawable-hdpi/play_video.png b/src/main/res/drawable-hdpi/play_video.png index 70831fe4bb97cb62254b6a46d974a326d8adc416..d4e6d6147148f26dd9749111fa94a7bf8aae1b02 100644 Binary files a/src/main/res/drawable-hdpi/play_video.png and b/src/main/res/drawable-hdpi/play_video.png differ diff --git a/src/main/res/drawable-mdpi/message_bubble_received.9.png b/src/main/res/drawable-mdpi/message_bubble_received.9.png index bff27feeabd20215d04ffe60f2ed470bac5073dd..2c59d445f3f7415a817804e8e8c4a36e22696273 100644 Binary files a/src/main/res/drawable-mdpi/message_bubble_received.9.png and b/src/main/res/drawable-mdpi/message_bubble_received.9.png differ diff --git a/src/main/res/drawable-mdpi/message_bubble_received_dark.9.png b/src/main/res/drawable-mdpi/message_bubble_received_dark.9.png index a964773e5bed77473e5454e7543b184e5c3e2a8e..b72240c28dbaedf5ed6b5d4f1cd74a3640caf515 100644 Binary files a/src/main/res/drawable-mdpi/message_bubble_received_dark.9.png and b/src/main/res/drawable-mdpi/message_bubble_received_dark.9.png differ diff --git a/src/main/res/drawable-mdpi/message_bubble_received_grey.9.png b/src/main/res/drawable-mdpi/message_bubble_received_grey.9.png index a5424c5db11e0b9d26560a6348f11f48e95f722b..053ef314192ab8cf8d42c3cdf4b75fba540165fd 100644 Binary files a/src/main/res/drawable-mdpi/message_bubble_received_grey.9.png and b/src/main/res/drawable-mdpi/message_bubble_received_grey.9.png differ diff --git a/src/main/res/drawable-mdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-mdpi/message_bubble_received_warning.9.png index cf57722adedd5b54c6d40b07b3ec1523288f52a5..3fe8bfd697207ca986f1581ed17589e3292a77cd 100644 Binary files a/src/main/res/drawable-mdpi/message_bubble_received_warning.9.png and b/src/main/res/drawable-mdpi/message_bubble_received_warning.9.png differ diff --git a/src/main/res/drawable-mdpi/message_bubble_received_white.9.png b/src/main/res/drawable-mdpi/message_bubble_received_white.9.png index 444d98528b001a4ca84f2c9aa9a5ac0e0a55b459..617f56a684651510c38ca8b04999afc2d8e083c6 100644 Binary files a/src/main/res/drawable-mdpi/message_bubble_received_white.9.png and b/src/main/res/drawable-mdpi/message_bubble_received_white.9.png differ diff --git a/src/main/res/drawable-mdpi/message_bubble_sent.9.png b/src/main/res/drawable-mdpi/message_bubble_sent.9.png index fafa156a9c75297cb99374c937e643f935508f1b..4b0027ac70e5c0657ec3ff317055a39b569cd51d 100644 Binary files a/src/main/res/drawable-mdpi/message_bubble_sent.9.png and b/src/main/res/drawable-mdpi/message_bubble_sent.9.png differ diff --git a/src/main/res/drawable-mdpi/message_bubble_sent_grey.9.png b/src/main/res/drawable-mdpi/message_bubble_sent_grey.9.png index 1275668c27d80dd9a38497b6faa88d27625285b5..6d38c6d6f25a5c03033120f3cc68e0c45a964c92 100644 Binary files a/src/main/res/drawable-mdpi/message_bubble_sent_grey.9.png and b/src/main/res/drawable-mdpi/message_bubble_sent_grey.9.png differ diff --git a/src/main/res/drawable-mdpi/play_gif.png b/src/main/res/drawable-mdpi/play_gif.png new file mode 100644 index 0000000000000000000000000000000000000000..bf8a223968c3a1e29396aa1c3d296fd889b85308 Binary files /dev/null and b/src/main/res/drawable-mdpi/play_gif.png differ diff --git a/src/main/res/drawable-mdpi/play_video.png b/src/main/res/drawable-mdpi/play_video.png index 96ab3988a0c043cb0871ced3cc27b96f26848a39..22e8d8041c777588e00406e87c14baf89414c70c 100644 Binary files a/src/main/res/drawable-mdpi/play_video.png and b/src/main/res/drawable-mdpi/play_video.png differ diff --git a/src/main/res/drawable-xhdpi/message_bubble_received.9.png b/src/main/res/drawable-xhdpi/message_bubble_received.9.png index 3796e964df9c6ef38e717ea90a04b8035869c3bd..37c6981f1b161cb8f0184352e21b148e7bad7065 100644 Binary files a/src/main/res/drawable-xhdpi/message_bubble_received.9.png and b/src/main/res/drawable-xhdpi/message_bubble_received.9.png differ diff --git a/src/main/res/drawable-xhdpi/message_bubble_received_dark.9.png b/src/main/res/drawable-xhdpi/message_bubble_received_dark.9.png index 800ea806b590a607338a45eb9f22a39ee6fddf3d..47b758c52d8d379d5c31d97fe89ae815fa8ac862 100644 Binary files a/src/main/res/drawable-xhdpi/message_bubble_received_dark.9.png and b/src/main/res/drawable-xhdpi/message_bubble_received_dark.9.png differ diff --git a/src/main/res/drawable-xhdpi/message_bubble_received_grey.9.png b/src/main/res/drawable-xhdpi/message_bubble_received_grey.9.png index 5fce3e04311cfa9b9f9274e6df7acc57f8b21a14..58d0936be8b7b635c24ae79a9b65f7091dfb40c9 100644 Binary files a/src/main/res/drawable-xhdpi/message_bubble_received_grey.9.png and b/src/main/res/drawable-xhdpi/message_bubble_received_grey.9.png differ diff --git a/src/main/res/drawable-xhdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-xhdpi/message_bubble_received_warning.9.png index 12ecb806d905c9df4a4c63c3b6c742d69eb97275..79eadb49153bd388fd98ed42fd571af6f50de9e8 100644 Binary files a/src/main/res/drawable-xhdpi/message_bubble_received_warning.9.png and b/src/main/res/drawable-xhdpi/message_bubble_received_warning.9.png differ diff --git a/src/main/res/drawable-xhdpi/message_bubble_received_white.9.png b/src/main/res/drawable-xhdpi/message_bubble_received_white.9.png index 016e1485f5b306741fe24cb235951f8e756875c6..e80eab1eb7aad03372d7fa46f4714abcbfefa5bd 100644 Binary files a/src/main/res/drawable-xhdpi/message_bubble_received_white.9.png and b/src/main/res/drawable-xhdpi/message_bubble_received_white.9.png differ diff --git a/src/main/res/drawable-xhdpi/message_bubble_sent.9.png b/src/main/res/drawable-xhdpi/message_bubble_sent.9.png index f15dbf534977055dcb16ffefac37b67ebc4c9884..7783f2d8699a51bfa2e29050f35ab6f888d39e62 100644 Binary files a/src/main/res/drawable-xhdpi/message_bubble_sent.9.png and b/src/main/res/drawable-xhdpi/message_bubble_sent.9.png differ diff --git a/src/main/res/drawable-xhdpi/message_bubble_sent_grey.9.png b/src/main/res/drawable-xhdpi/message_bubble_sent_grey.9.png index c233a4ae4f2ea2dd0c327be4270fe4c4197ef674..849314285f8c32f0f8df1dddeedad32372a8b400 100644 Binary files a/src/main/res/drawable-xhdpi/message_bubble_sent_grey.9.png and b/src/main/res/drawable-xhdpi/message_bubble_sent_grey.9.png differ diff --git a/src/main/res/drawable-xhdpi/play_gif.png b/src/main/res/drawable-xhdpi/play_gif.png new file mode 100644 index 0000000000000000000000000000000000000000..e8cd99aa728c6dd45150e08d9c32d3b988c31aef Binary files /dev/null and b/src/main/res/drawable-xhdpi/play_gif.png differ diff --git a/src/main/res/drawable-xhdpi/play_video.png b/src/main/res/drawable-xhdpi/play_video.png index d4e6d6147148f26dd9749111fa94a7bf8aae1b02..0cc5deebca637fe70386f6cc17f69185f6fa2349 100644 Binary files a/src/main/res/drawable-xhdpi/play_video.png and b/src/main/res/drawable-xhdpi/play_video.png differ diff --git a/src/main/res/drawable-xxhdpi/message_bubble_received.9.png b/src/main/res/drawable-xxhdpi/message_bubble_received.9.png index 7b9fbb59db31c624bb0effc05f74e9496fc62fb6..5dbb8316b62cbd9e324d422f074565d3766f30a2 100644 Binary files a/src/main/res/drawable-xxhdpi/message_bubble_received.9.png and b/src/main/res/drawable-xxhdpi/message_bubble_received.9.png differ diff --git a/src/main/res/drawable-xxhdpi/message_bubble_received_dark.9.png b/src/main/res/drawable-xxhdpi/message_bubble_received_dark.9.png index 043c84c6ee97bdecae249b6265be221fbfaaa6a6..44bac465cc640e1d1a1b5e7f53c56bdf71c52082 100644 Binary files a/src/main/res/drawable-xxhdpi/message_bubble_received_dark.9.png and b/src/main/res/drawable-xxhdpi/message_bubble_received_dark.9.png differ diff --git a/src/main/res/drawable-xxhdpi/message_bubble_received_grey.9.png b/src/main/res/drawable-xxhdpi/message_bubble_received_grey.9.png index d9e425778df7f786c6ec0d11498b87cef404c3b8..e91576c084833e643223e864a71bce4eff61a784 100644 Binary files a/src/main/res/drawable-xxhdpi/message_bubble_received_grey.9.png and b/src/main/res/drawable-xxhdpi/message_bubble_received_grey.9.png differ diff --git a/src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.png index 652b5986bf5837a78fa59c99e67ec7dcf1561c0a..1388eac91ef66a8d15535490661e3e39f9329da3 100644 Binary files a/src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.png and b/src/main/res/drawable-xxhdpi/message_bubble_received_warning.9.png differ diff --git a/src/main/res/drawable-xxhdpi/message_bubble_received_white.9.png b/src/main/res/drawable-xxhdpi/message_bubble_received_white.9.png index e6f13f9020f1b8206db7ba6fb5f0acbfbb5adeb3..6f931a747274d243c1ed32740dfb8a089602a191 100644 Binary files a/src/main/res/drawable-xxhdpi/message_bubble_received_white.9.png and b/src/main/res/drawable-xxhdpi/message_bubble_received_white.9.png differ diff --git a/src/main/res/drawable-xxhdpi/message_bubble_sent.9.png b/src/main/res/drawable-xxhdpi/message_bubble_sent.9.png index 03ef731a1c2bff9ecdad967f8e37cd2e744d36f0..1ba9680ed6ecb7cef25ef82760b6f5018e602b73 100644 Binary files a/src/main/res/drawable-xxhdpi/message_bubble_sent.9.png and b/src/main/res/drawable-xxhdpi/message_bubble_sent.9.png differ diff --git a/src/main/res/drawable-xxhdpi/message_bubble_sent_grey.9.png b/src/main/res/drawable-xxhdpi/message_bubble_sent_grey.9.png index 131919052b811ca3b97492ac28c1273961e08f07..f8e1f21e16b12253091fa478dbd6cc308944918a 100644 Binary files a/src/main/res/drawable-xxhdpi/message_bubble_sent_grey.9.png and b/src/main/res/drawable-xxhdpi/message_bubble_sent_grey.9.png differ diff --git a/src/main/res/drawable-xxhdpi/play_gif.png b/src/main/res/drawable-xxhdpi/play_gif.png new file mode 100644 index 0000000000000000000000000000000000000000..4380dd0ab8e346d6035d1b63f5af5c68f2265701 Binary files /dev/null and b/src/main/res/drawable-xxhdpi/play_gif.png differ diff --git a/src/main/res/drawable-xxhdpi/play_video.png b/src/main/res/drawable-xxhdpi/play_video.png index 562a1b623b7b301f33f7ce84f6e003e8aa5502ed..16f4d2a1898880f6eb519bc0bbf0dbac63bb0431 100644 Binary files a/src/main/res/drawable-xxhdpi/play_video.png and b/src/main/res/drawable-xxhdpi/play_video.png differ diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_received.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_received.9.png index 2a62f2582f8a8c81d4fe290ef6f84badf5273c6c..7dab83ee8cd54bba0c9d2603962224d75668a7db 100644 Binary files a/src/main/res/drawable-xxxhdpi/message_bubble_received.9.png and b/src/main/res/drawable-xxxhdpi/message_bubble_received.9.png differ diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_received_dark.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_received_dark.9.png index 10e742ff8cfd44d2d24dab0a6b858c8cf7785292..e09ae72ea17aab03ffa8e485f51075c938ec5c21 100644 Binary files a/src/main/res/drawable-xxxhdpi/message_bubble_received_dark.9.png and b/src/main/res/drawable-xxxhdpi/message_bubble_received_dark.9.png differ diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_received_grey.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_received_grey.9.png index 467d974b0a42a7e60ef731b6e7c71d5837accf16..a2359bf6f6d8c85ba9f199fe3bd495cc37254e9f 100644 Binary files a/src/main/res/drawable-xxxhdpi/message_bubble_received_grey.9.png and b/src/main/res/drawable-xxxhdpi/message_bubble_received_grey.9.png differ diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.png index 74a12c19c9faf72be7e5a93c53de8318836b5d67..b8ba8ce4c8e693bf29a66981f477a9ab4a20bfd5 100644 Binary files a/src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.png and b/src/main/res/drawable-xxxhdpi/message_bubble_received_warning.9.png differ diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.png index 3d7292091e150737587559c7ab768a14a7f12a92..4382b320f45c0b0185fff5171126962767734b73 100644 Binary files a/src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.png and b/src/main/res/drawable-xxxhdpi/message_bubble_received_white.9.png differ diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_sent.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_sent.9.png index 698580f7103a9611c8e46ca03dddfe2b82921a76..597f879f4e89658080bdf9d9cd21323939e3a4f9 100644 Binary files a/src/main/res/drawable-xxxhdpi/message_bubble_sent.9.png and b/src/main/res/drawable-xxxhdpi/message_bubble_sent.9.png differ diff --git a/src/main/res/drawable-xxxhdpi/message_bubble_sent_grey.9.png b/src/main/res/drawable-xxxhdpi/message_bubble_sent_grey.9.png index 3e2c9fe7ec5e4b8aeb4bf01e6651eb3bcf216cca..7454a931d76fb58d669dc8523fce513e3d4e3b52 100644 Binary files a/src/main/res/drawable-xxxhdpi/message_bubble_sent_grey.9.png and b/src/main/res/drawable-xxxhdpi/message_bubble_sent_grey.9.png differ diff --git a/src/main/res/drawable-xxxhdpi/play_gif.png b/src/main/res/drawable-xxxhdpi/play_gif.png new file mode 100644 index 0000000000000000000000000000000000000000..e60e1806c9cadeb0dbdb95beef1d30553b4841a5 Binary files /dev/null and b/src/main/res/drawable-xxxhdpi/play_gif.png differ diff --git a/src/main/res/drawable-xxxhdpi/play_video.png b/src/main/res/drawable-xxxhdpi/play_video.png index 16f4d2a1898880f6eb519bc0bbf0dbac63bb0431..76b72bed669b215dee960241d03bdd15553f1a59 100644 Binary files a/src/main/res/drawable-xxxhdpi/play_video.png and b/src/main/res/drawable-xxxhdpi/play_video.png differ