Startup mode default/last-session; GPS watermark default OFF; shutter OFF truly silent
- Settings STARTUP MODE chips (AsyncStorage startup_mode): default = clean camera + PROVIA neutral 4:3, last = restore full session look. - initSession: resolve sim-* recipe ids via FILM_SIMS (fix clobber of session ratio/adjustments to 4:3 canonical); restore via setSelectedRecipe not applyRecipe so user tweaks (frame/geotag/ratio) survive restore. - applyDefaultStartup turns GPS watermark OFF (user-requested default). - Shutter: OFF must not play click on must-play-policy devices. VisionCamera v5.2.3 HybridPhotoOutput.kt plays MediaActionSound itself gated by (enableShutterSound ?: true) || mustPlayShutterSound — on Xiaomi mustPlay=true so OFF still clicked. Both capture paths now gate on enableShutterSound != false. node_modules patch not trackable -> artifacts/patches/vision-camera-shutter-silent.patch. Verified on Xiaomi 12S Ultra: log SND user=false -> play=false; cold-start DEFAULT shows GPS WATERMARK OFF.
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
diff --git a/node_modules/react-native-vision-camera/android/src/main/java/com/margelo/nitro/camera/hybrids/outputs/HybridPhotoOutput.kt b/node_modules/react-native-vision-camera/android/src/main/java/com/margelo/nitro/camera/hybrids/outputs/HybridPhotoOutput.kt
|
||||
index f3bdfe3..883fa50 100644
|
||||
--- a/node_modules/react-native-vision-camera/android/src/main/java/com/margelo/nitro/camera/hybrids/outputs/HybridPhotoOutput.kt
|
||||
+++ b/node_modules/react-native-vision-camera/android/src/main/java/com/margelo/nitro/camera/hybrids/outputs/HybridPhotoOutput.kt
|
||||
@@ -2,7 +2,6 @@ package com.margelo.nitro.camera.hybrids.outputs
|
||||
|
||||
import android.media.MediaActionSound
|
||||
import android.util.Log
|
||||
-import androidx.camera.core.CameraInfo
|
||||
import androidx.camera.core.CameraSelector
|
||||
import androidx.camera.core.ImageCapture
|
||||
import androidx.camera.core.resolutionselector.ResolutionSelector
|
||||
@@ -161,7 +160,11 @@ class HybridPhotoOutput(
|
||||
|
||||
// 1. Get settings
|
||||
val isMirrored = shouldMirror()
|
||||
- val enableShutterSound = (settings.enableShutterSound ?: true) || CameraInfo.mustPlayShutterSound()
|
||||
+ // The click is played by THIS app via MediaActionSound below —
|
||||
+ // CameraInfo.mustPlayShutterSound() only reports device/region policy, it
|
||||
+ // does not make the OS play anything. Honor the user toggle: OFF stays
|
||||
+ // silent even on devices CameraX flags as must-play.
|
||||
+ val enableShutterSound = settings.enableShutterSound != false
|
||||
imageCapture.flashMode = settings.flashMode?.toFlashMode() ?: ImageCapture.FLASH_MODE_OFF
|
||||
val location =
|
||||
if (settings.location != null) {
|
||||
@@ -170,7 +173,6 @@ class HybridPhotoOutput(
|
||||
} else {
|
||||
null
|
||||
}
|
||||
-
|
||||
// 2. Perform Capture
|
||||
var didFireOnDidCapturePhoto = false
|
||||
val image =
|
||||
@@ -228,8 +230,7 @@ class HybridPhotoOutput(
|
||||
|
||||
// 1. Get settings
|
||||
val isMirrored = shouldMirror()
|
||||
- val enableShutterSound =
|
||||
- (settings.enableShutterSound ?: true) || CameraInfo.mustPlayShutterSound()
|
||||
+ val enableShutterSound = settings.enableShutterSound != false
|
||||
imageCapture.flashMode = settings.flashMode?.toFlashMode() ?: ImageCapture.FLASH_MODE_OFF
|
||||
val location =
|
||||
if (settings.location != null) {
|
||||
Reference in New Issue
Block a user