From 3b806d175768b70e6bffafbe8087354c1840c028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Fazekas?= Date: Tue, 9 Dec 2025 08:36:04 +0100 Subject: [PATCH 1/4] fix: regenerate nitrogen files for nitro-modules 0.31.10 PR #40 was merged with nitrogen files generated by nitro-modules@0.31.8. PR #64 upgraded to nitro-modules@0.31.10 but was developed before PR #40 merged, so it didn't regenerate ViewModelImageProperty. The new nitro-modules version requires JNICallable.hpp include. --- .../generated/android/c++/JHybridViewModelImagePropertySpec.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp b/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp index 2dc9871a..4cb7fcfd 100644 --- a/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp +++ b/nitrogen/generated/android/c++/JHybridViewModelImagePropertySpec.cpp @@ -16,6 +16,7 @@ namespace margelo::nitro::rive { class HybridRiveImageSpec; } #include "JHybridRiveImageSpec.hpp" #include #include "JFunc_void.hpp" +#include namespace margelo::nitro::rive { From 44d02638aeb63e90e17f2c138e3751b737d90b81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Fazekas?= Date: Tue, 9 Dec 2025 08:50:55 +0100 Subject: [PATCH 2/4] fix(android): fix HybridViewModelImageProperty addListener type mismatch The listeners property is MutableList<(Unit) -> Unit> but onChanged is () -> Unit. Wrap in lambda to match the expected signature, same pattern as TriggerProperty. --- .../java/com/margelo/nitro/rive/HybridViewModelImageProperty.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelImageProperty.kt b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelImageProperty.kt index 708ef977..e54f7de3 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridViewModelImageProperty.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridViewModelImageProperty.kt @@ -15,7 +15,7 @@ class HybridViewModelImageProperty(private val viewModelImage: ViewModelImagePro } override fun addListener(onChanged: () -> Unit) { - listeners.add(onChanged) + listeners.add { _ -> onChanged() } ensureValueListenerJob(viewModelImage.valueFlow.map { }) } } From 2366eddf196394c33e28edfa27fdd74f13b064db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Fazekas?= Date: Tue, 9 Dec 2025 09:33:35 +0100 Subject: [PATCH 3/4] fix(android): fix updateAsset call signature after PR #63 refactor PR #63 changed updateAsset from 3 args to 2 args (removed context) in ReferencedAssetLoader but missed updating the call site in HybridRiveFile. --- android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt b/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt index a4343bda..b01c9ae9 100644 --- a/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt +++ b/android/src/main/java/com/margelo/nitro/rive/HybridRiveFile.kt @@ -69,13 +69,12 @@ class HybridRiveFile : HybridRiveFileSpec() { val assetsData = referencedAssets.data ?: return val cache = referencedAssetCache ?: return val loader = assetLoader ?: return - val context = NitroModules.applicationContext ?: return val loadJobs = mutableListOf>() for ((key, assetData) in assetsData) { val asset = cache[key] ?: continue - loadJobs.add(loader.updateAsset(assetData, asset, context)) + loadJobs.add(loader.updateAsset(assetData, asset)) } if (loadJobs.isNotEmpty()) { From 6d730036ff981cc61408a6ae86f8904bd15885ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikl=C3=B3s=20Fazekas?= Date: Tue, 9 Dec 2025 09:49:10 +0100 Subject: [PATCH 4/4] fix(ci): force turbo rebuild on stale cache fallback match --- .github/workflows/ci.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 350f8d7a..d64fa61e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -103,6 +103,7 @@ jobs: uses: ./.github/actions/setup - name: Cache turborepo for Android + id: turbo-cache-android uses: actions/cache@v4 with: path: ${{ env.TURBO_CACHE_DIR }} @@ -144,6 +145,7 @@ jobs: - name: Build example for Android env: JAVA_OPTS: "-XX:MaxHeapSize=6g" + TURBO_FORCE: ${{ steps.turbo-cache-android.outputs.cache-hit != 'true' }} run: | yarn turbo run build:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" @@ -160,6 +162,7 @@ jobs: uses: ./.github/actions/setup - name: Cache turborepo for iOS + id: turbo-cache-ios uses: actions/cache@v4 with: path: ${{ env.TURBO_CACHE_DIR }} @@ -208,5 +211,7 @@ jobs: key: ${{ steps.cocoapods-cache.outputs.cache-key }} - name: Build example for iOS + env: + TURBO_FORCE: ${{ steps.turbo-cache-ios.outputs.cache-hit != 'true' }} run: | yarn turbo run build:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}"