Compare commits
7 Commits
bump-react
...
bump-react
| Author | SHA1 | Date | |
|---|---|---|---|
| 3d09106e45 | |||
| b523e1884f | |||
| 5fcc1a4f77 | |||
| 364171a107 | |||
| f90e11897f | |||
| 4798aad464 | |||
|
|
2c8d503e66 |
@@ -60,13 +60,13 @@ target_include_directories(
|
|||||||
# Link everything together
|
# Link everything together
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
${PACKAGE_NAME}
|
${PACKAGE_NAME}
|
||||||
${LOG_LIB} # <-- Logcat logger
|
${LOG_LIB} # <-- Logcat logger
|
||||||
android # <-- Android JNI core
|
android # <-- Android JNI core
|
||||||
ReactAndroid::jsi # <-- RN: JSI
|
ReactAndroid::jsi # <-- RN: JSI
|
||||||
# ReactAndroid::reactnativejni # <-- Temporarily disabled for RN 0.79+ compatibility
|
ReactAndroid::reactnative # <-- RN: React Native JNI bindings (RN 0.76+)
|
||||||
fbjni::fbjni # <-- fbjni
|
fbjni::fbjni # <-- fbjni
|
||||||
GLESv2 # <-- OpenGL (for VideoPipeline)
|
GLESv2 # <-- OpenGL (for VideoPipeline)
|
||||||
EGL # <-- OpenGL (EGL) (for VideoPipeline)
|
EGL # <-- OpenGL (EGL) (for VideoPipeline)
|
||||||
)
|
)
|
||||||
|
|
||||||
# Optionally also add Frame Processors here
|
# Optionally also add Frame Processors here
|
||||||
|
|||||||
@@ -133,8 +133,16 @@ android {
|
|||||||
}
|
}
|
||||||
|
|
||||||
compileOptions {
|
compileOptions {
|
||||||
sourceCompatibility JavaVersion.VERSION_1_8
|
sourceCompatibility JavaVersion.VERSION_17
|
||||||
targetCompatibility JavaVersion.VERSION_1_8
|
targetCompatibility JavaVersion.VERSION_17
|
||||||
|
}
|
||||||
|
|
||||||
|
kotlinOptions {
|
||||||
|
jvmTarget = "17"
|
||||||
|
freeCompilerArgs += [
|
||||||
|
"-opt-in=kotlin.RequiresOptIn",
|
||||||
|
"-opt-in=com.facebook.react.annotations.UnstableReactNativeAPI"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
@@ -157,6 +165,7 @@ android {
|
|||||||
"**/libhermes-executor-debug.so",
|
"**/libhermes-executor-debug.so",
|
||||||
"**/libhermes_executor.so",
|
"**/libhermes_executor.so",
|
||||||
"**/libreactnativejni.so",
|
"**/libreactnativejni.so",
|
||||||
|
"**/libreactnative.so",
|
||||||
"**/libturbomodulejsijni.so",
|
"**/libturbomodulejsijni.so",
|
||||||
"**/libreact_nativemodule_core.so",
|
"**/libreact_nativemodule_core.so",
|
||||||
"**/libjscexecutor.so"
|
"**/libjscexecutor.so"
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ class CameraViewManager : ViewGroupManager<CameraView>() {
|
|||||||
.put("cameraError", MapBuilder.of("registrationName", "onError"))
|
.put("cameraError", MapBuilder.of("registrationName", "onError"))
|
||||||
.put("cameraCodeScanned", MapBuilder.of("registrationName", "onCodeScanned"))
|
.put("cameraCodeScanned", MapBuilder.of("registrationName", "onCodeScanned"))
|
||||||
.put("onVideoChunkReady", MapBuilder.of("registrationName", "onVideoChunkReady"))
|
.put("onVideoChunkReady", MapBuilder.of("registrationName", "onVideoChunkReady"))
|
||||||
.build()
|
.build()?.toMutableMap()
|
||||||
|
|
||||||
override fun getName(): String = TAG
|
override fun getName(): String = TAG
|
||||||
|
|
||||||
|
|||||||
@@ -29,14 +29,10 @@ class CameraViewModule(reactContext: ReactApplicationContext) : ReactContextBase
|
|||||||
var sharedRequestCode = 10
|
var sharedRequestCode = 10
|
||||||
|
|
||||||
init {
|
init {
|
||||||
try {
|
// Skip loading native library for React Native 0.79+ compatibility
|
||||||
// Load the native part of VisionCamera.
|
// Frame Processors are disabled (react-native-worklets-core not installed)
|
||||||
// Includes the OpenGL VideoPipeline, as well as Frame Processor JSI bindings
|
// The native library has incompatible JNI signatures for RN 0.79+
|
||||||
System.loadLibrary("VisionCamera")
|
Log.i(TAG, "VisionCamera native library not loaded - Frame Processors disabled for RN 0.79+ compatibility")
|
||||||
} catch (e: UnsatisfiedLinkError) {
|
|
||||||
Log.e(VisionCameraProxy.TAG, "Failed to load VisionCamera C++ library!", e)
|
|
||||||
throw e
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,15 +69,11 @@ class CameraViewModule(reactContext: ReactApplicationContext) : ReactContextBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
@ReactMethod(isBlockingSynchronousMethod = true)
|
@ReactMethod(isBlockingSynchronousMethod = true)
|
||||||
fun installFrameProcessorBindings(): Boolean =
|
fun installFrameProcessorBindings(): Boolean {
|
||||||
try {
|
// Frame Processors are disabled for React Native 0.79+ compatibility
|
||||||
val proxy = VisionCameraProxy(reactApplicationContext)
|
Log.i(TAG, "Frame Processor bindings not installed - Frame Processors disabled for RN 0.79+ compatibility")
|
||||||
VisionCameraInstaller.install(proxy)
|
return false
|
||||||
true
|
}
|
||||||
} catch (e: Error) {
|
|
||||||
Log.e(TAG, "Failed to install Frame Processor JSI Bindings!", e)
|
|
||||||
false
|
|
||||||
}
|
|
||||||
|
|
||||||
@ReactMethod
|
@ReactMethod
|
||||||
fun takePhoto(viewTag: Int, options: ReadableMap, promise: Promise) {
|
fun takePhoto(viewTag: Int, options: ReadableMap, promise: Promise) {
|
||||||
@@ -157,7 +149,7 @@ class CameraViewModule(reactContext: ReactApplicationContext) : ReactContextBase
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun canRequestPermission(permission: String): Boolean {
|
private fun canRequestPermission(permission: String): Boolean {
|
||||||
val activity = currentActivity as? PermissionAwareActivity
|
val activity = reactApplicationContext.currentActivity as? PermissionAwareActivity
|
||||||
return activity?.shouldShowRequestPermissionRationale(permission) ?: false
|
return activity?.shouldShowRequestPermissionRationale(permission) ?: false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -78,6 +78,9 @@ class VisionCameraProxy(private val reactContext: ReactApplicationContext) {
|
|||||||
FrameProcessorPluginRegistry.getPlugin(name, this, options)
|
FrameProcessorPluginRegistry.getPlugin(name, this, options)
|
||||||
|
|
||||||
// private C++ funcs
|
// private C++ funcs
|
||||||
// Commented out due to React Native 0.79+ API compatibility issues
|
// Keep this declared (even though we don't call it) so JNI can register it
|
||||||
// private external fun initHybrid(jsContext: Long, jsCallInvokerHolder: CallInvokerHolderImpl, scheduler: VisionCameraScheduler): HybridData
|
// The native library expects this method signature to exist
|
||||||
|
@DoNotStrip
|
||||||
|
@Keep
|
||||||
|
private external fun initHybrid(jsContext: Long, jsCallInvokerHolder: Any, scheduler: VisionCameraScheduler): HybridData
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user