diff --git a/.github/workflows/android-build.yml b/.github/workflows/android-build.yml new file mode 100644 index 00000000..bf5112d2 --- /dev/null +++ b/.github/workflows/android-build.yml @@ -0,0 +1,54 @@ +name: Build Android Paper Example + +on: + pull_request: + branches: + - master + +# Only run on the latest workflow run +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-android: + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + + - name: Set up Node.js + uses: actions/setup-node@v3 + with: + node-version: 18 + + - name: Enable corepack + run: corepack enable + + - name: Install Dependencies + run: yarn install --immutable + + - name: Install JDK + uses: actions/setup-java@v3 + with: + distribution: "zulu" + java-version: "11" + + - name: Finalize Android SDK + run: | + /bin/bash -c "yes | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --licenses > /dev/null" + + - name: Cache Gradle + uses: actions/cache@v3 + with: + path: | + ~/.gradle/wrapper + ~/.gradle/caches + key: ${{ runner.os }}-gradle-${{ hashFiles('**/gradle-wrapper.properties') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Build Paper Android Example + run: | + yarn paper:build:android diff --git a/apps/fabric/package.json b/apps/fabric/package.json index 593e1bca..87000575 100644 --- a/apps/fabric/package.json +++ b/apps/fabric/package.json @@ -4,6 +4,7 @@ "private": true, "scripts": { "android": "react-native run-android --active-arch-only", + "build:android": "cd android && ./gradlew assembleDebug --no-daemon --console=plain -PreactNativeArchitectures=arm64-v8a", "ios": "bundle install && RCT_NEW_ARCH_ENABLED=1 pod install --project-directory=ios && react-native run-ios", "start": "react-native start", "upgrade": "react-native upgrade" diff --git a/apps/paper/package.json b/apps/paper/package.json index 3bf8d417..b9e060cb 100644 --- a/apps/paper/package.json +++ b/apps/paper/package.json @@ -5,6 +5,7 @@ "scripts": { "reset": "watchman watch-del-all; rm -rf /tmp/metro-bundler-cache-*; rm -rf ./android/build; rm -rf ./android/.gradle; rm -rf ./android/app/build; rm -rf ~/Library/Developer/Xcode/DerivedData; rm -rf /tmp/haste-map-react-native-packager-*; rm -rf ./ios/build; jest --clearCache; cd ios; pod install --repo-update; cd ..; npx jetify; cd android; ./gradlew clean; cd ..;", "android": "react-native run-android", + "build:android": "cd android && ./gradlew assembleDebug --no-daemon --console=plain -PreactNativeArchitectures=arm64-v8a", "ios": "bundle install && pod install --project-directory=ios && react-native run-ios", "start": "react-native start", "test": "jest", diff --git a/package.json b/package.json index 69a4860e..32a9b48a 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,11 @@ }, "scripts": { "setup": "yarn workspace lottie-react-native build", - "fabric:android": "yarn workspace fabric-example android", + "fabric:start:android": "yarn workspace fabric-example android", + "fabric:build:android": "yarn workspace fabric-example build:android", "fabric:ios": "yarn workspace fabric-example ios", - "paper:android": "yarn workspace paper-example android", + "paper:start:android": "yarn workspace paper-example android", + "paper:build:android": "yarn workspace paper-example build:android", "paper:ios": "yarn workspace paper-example ios", "lint:swift": "yarn workspace lottie-react-native lint:swift", "docs:clean": "rimraf _book", diff --git a/packages/core/android/src/main/java/com/airbnb/android/react/lottie/LottieAnimationViewPropertyManager.kt b/packages/core/android/src/main/java/com/airbnb/android/react/lottie/LottieAnimationViewPropertyManager.kt index a5ea8ec6..654e64c9 100644 --- a/packages/core/android/src/main/java/com/airbnb/android/react/lottie/LottieAnimationViewPropertyManager.kt +++ b/packages/core/android/src/main/java/com/airbnb/android/react/lottie/LottieAnimationViewPropertyManager.kt @@ -1,6 +1,7 @@ package com.airbnb.android.react.lottie import android.graphics.ColorFilter +import android.net.Uri import android.util.Log import android.widget.ImageView import com.airbnb.lottie.LottieAnimationView