From 2dc52b26b6a9b0084a31c4a8904292bf65f708fb Mon Sep 17 00:00:00 2001 From: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com> Date: Wed, 3 Jan 2024 17:48:58 -0300 Subject: [PATCH] fix: download gif files (#5445) * fix: download gif files * add test for gif extension * fix the gif animations at android devices * remove the space Co-authored-by: atulsingh98 --- android/app/build.gradle | 1 + app/lib/methods/handleMediaDownload.test.ts | 11 +++++++++++ app/lib/methods/handleMediaDownload.ts | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/android/app/build.gradle b/android/app/build.gradle index 8f7e6a60a..8c05656f4 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -380,6 +380,7 @@ dependencies { androidTestImplementation('com.wix:detox:+') implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'com.facebook.soloader:soloader:0.10.4' + implementation 'com.facebook.fresco:animated-gif:2.5.0' } if (isNewArchitectureEnabled()) { diff --git a/app/lib/methods/handleMediaDownload.test.ts b/app/lib/methods/handleMediaDownload.test.ts index 0606e7630..877b02763 100644 --- a/app/lib/methods/handleMediaDownload.test.ts +++ b/app/lib/methods/handleMediaDownload.test.ts @@ -55,4 +55,15 @@ describe('Test the getFilename', () => { const filename = getFilename({ type: 'image', mimeType: image_type, title, url: image_url }); expect(filename).toBe('help-image-url.png'); }); + + it('returns the filename with the gif extension from a gif sent by tenor/giphy', () => { + const { image_type, image_url, title } = { + title: undefined, + image_url: 'https://media4.giphy.com/media/bGtO3RlAPHkeQ/giphy.gif', + image_type: undefined + }; + + const filename = getFilename({ type: 'image', mimeType: image_type, title, url: image_url }); + expect(filename).toBe('giphy.gif'); + }); }); diff --git a/app/lib/methods/handleMediaDownload.ts b/app/lib/methods/handleMediaDownload.ts index 75e8bbc54..1861951f1 100644 --- a/app/lib/methods/handleMediaDownload.ts +++ b/app/lib/methods/handleMediaDownload.ts @@ -68,6 +68,10 @@ export const getFilename = ({ }; const getExtension = (type: MediaTypes, mimeType?: string, url?: string) => { + // support url with gif extension and mimetype undefined, ex.: using the app tenor and giphy. + if (url?.split('.').pop() === 'gif') { + return 'gif'; + } if (!mimeType) { return defaultType[type]; }