Skip to content

Commit

Permalink
fix(MM-62375): OOM on gif (#8573) (#8586)
Browse files Browse the repository at this point in the history
* fix(MM-62375): OOM on gif
* add APNG4Android into github action script to download
* change to mattermost/APNG4Android

(cherry picked from commit 985fa69)

Co-authored-by: Rahim Rahman <rahim.rahman@mattermost.com>
  • Loading branch information
mattermost-build and rahimrahman authored Feb 12, 2025
1 parent 747982a commit 6d80244
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 8 deletions.
11 changes: 11 additions & 0 deletions .github/actions/prepare-node-deps/action.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,14 @@ runs:
cp "$COMPASS_ICONS" "assets/fonts/"
cp "$COMPASS_ICONS" "android/app/src/main/assets/fonts"
echo "::endgroup::"
- name: ci/clone-APNG4Android
shell: bash
env:
APNG4Android: "node_modules/APNG4Android"
run: |
echo "::group::clone-APNG4Android"
if [ ! -d "$APNG4Android" ]; then
git clone -b "fix/MM-62375-OOM-on-gif-with-build-updates" --single-branch --depth 1 https://github.com/mattermost/APNG4Android.git "$APNG4Android";
fi
echo "::endgroup::"
4 changes: 4 additions & 0 deletions android/settings.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ include ':reactnativenotifications'
project(':reactnativenotifications').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-notifications/lib/android/app')
include ':watermelondb-jsi'
project(':watermelondb-jsi').projectDir = new File(rootProject.projectDir, '../node_modules/@nozbe/watermelondb/native/android-jsi')
include ':frameanimation'
project(':frameanimation').projectDir = new File('../node_modules/APNG4Android/frameanimation')
include ':gif'
project(':gif').projectDir = new File('../node_modules/APNG4Android/gif')
includeBuild('../node_modules/@react-native/gradle-plugin')
apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle")
useExpoModules()
4 changes: 2 additions & 2 deletions ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ PODS:
- ExpoModulesCore
- ExpoFileSystem (18.0.6):
- ExpoModulesCore
- ExpoImage (2.0.3):
- ExpoImage (2.0.4):
- ExpoModulesCore
- SDWebImage (~> 5.19.1)
- SDWebImageSVGCoder (~> 1.7.0)
Expand Down Expand Up @@ -2466,7 +2466,7 @@ SPEC CHECKSUMS:
ExpoCrypto: 483fc758365923f89ddaab4327c21cae9534841d
ExpoDevice: 449822f2c45660c1ce83283dd51c67fe5404996c
ExpoFileSystem: a38e1bb58d77f41717293a7b73ebd4014d8cb8dd
ExpoImage: 2c1f4adee95d033894c53346c721361736583728
ExpoImage: 18ec1a3e5cd96ee6162d988be3085e18113e143f
ExpoLinearGradient: 18148bd38f98fa0229c1f9df23393b32ab6d2d32
ExpoModulesCore: c9cb309323aee3c048099bb40ad0226e3fcf0c56
ExpoStoreReview: f38ed71ee04dfc02dde63a05f925f001cebba5d8
Expand Down
9 changes: 4 additions & 5 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
"expo-application": "6.0.1",
"expo-crypto": "14.0.1",
"expo-device": "7.0.1",
"expo-image": "2.0.3",
"expo-image": "2.0.4",
"expo-linear-gradient": "14.0.1",
"expo-store-review": "8.0.0",
"expo-video-thumbnails": "9.0.2",
Expand Down
18 changes: 18 additions & 0 deletions patches/expo-image+2.0.3.patch → patches/expo-image+2.0.4.patch
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
diff --git a/node_modules/expo-image/android/build.gradle b/node_modules/expo-image/android/build.gradle
index a85fb5e..ac568c1 100644
--- a/node_modules/expo-image/android/build.gradle
+++ b/node_modules/expo-image/android/build.gradle
@@ -44,7 +44,12 @@ dependencies {
kapt "com.github.bumptech.glide:compiler:${GLIDE_VERSION}"
api 'com.caverock:androidsvg-aar:1.4'

- implementation "com.github.penfeizhou.android.animation:glide-plugin:3.0.2"
+ implementation project(':frameanimation')
+ implementation project(':gif')
+ implementation("com.github.penfeizhou.android.animation:glide-plugin:3.0.2") {
+ exclude group: 'com.github.penfeizhou.android.animation', module: 'frameanimation'
+ exclude group: 'com.github.penfeizhou.android.animation', module: 'gif'
+ }
implementation "com.github.bumptech.glide:avif-integration:${GLIDE_VERSION}"

api 'com.github.bumptech.glide:okhttp3-integration:4.11.0'
diff --git a/node_modules/expo-image/android/src/main/java/expo/modules/image/okhttp/ExpoImageOkHttpClientGlideModule.kt b/node_modules/expo-image/android/src/main/java/expo/modules/image/okhttp/ExpoImageOkHttpClientGlideModule.kt
index 071907c..edf10c1 100644
--- a/node_modules/expo-image/android/src/main/java/expo/modules/image/okhttp/ExpoImageOkHttpClientGlideModule.kt
Expand Down
5 changes: 5 additions & 0 deletions scripts/postinstall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,8 @@ else
mkdir -p "android/app/src/main/res/raw/"
cp $SOUNDS/* "android/app/src/main/res/raw/"
fi

APNG4Android="node_modules/APNG4Android"
if [ ! -z "$APNG4Android" ]; then
git clone -b "fix/MM-62375-OOM-on-gif-with-build-updates" --single-branch --depth 1 https://github.com/mattermost/APNG4Android.git "$APNG4Android";
fi

0 comments on commit 6d80244

Please sign in to comment.