Compare commits
	
		
			1 Commits
		
	
	
		
			695e317a77
			...
			eyenov/pre
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | c994506abc | 
| @@ -16,7 +16,7 @@ buildscript { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   dependencies { |   dependencies { | ||||||
|     classpath "com.android.tools.build:gradle:8.5.2" |     classpath "com.android.tools.build:gradle:7.4.2" | ||||||
|     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" |     classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" | ||||||
|   } |   } | ||||||
| } | } | ||||||
| @@ -133,8 +133,8 @@ android { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   compileOptions { |   compileOptions { | ||||||
|     sourceCompatibility JavaVersion.VERSION_17 |     sourceCompatibility JavaVersion.VERSION_1_8 | ||||||
|     targetCompatibility JavaVersion.VERSION_17 |     targetCompatibility JavaVersion.VERSION_1_8 | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   externalNativeBuild { |   externalNativeBuild { | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| distributionBase=GRADLE_USER_HOME | distributionBase=GRADLE_USER_HOME | ||||||
| distributionPath=wrapper/dists | distributionPath=wrapper/dists | ||||||
| distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip | ||||||
| zipStoreBase=GRADLE_USER_HOME | zipStoreBase=GRADLE_USER_HOME | ||||||
| zipStorePath=wrapper/dists | zipStorePath=wrapper/dists | ||||||
|   | |||||||
| @@ -1,3 +1,4 @@ | |||||||
| <manifest xmlns:android="http://schemas.android.com/apk/res/android"> | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | ||||||
|  |           package="com.mrousavy.camera"> | ||||||
|  |  | ||||||
| </manifest> | </manifest> | ||||||
|   | |||||||
| @@ -107,47 +107,6 @@ class PreviewView(context: Context, callback: SurfaceHolder.Callback) : | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   private fun getSize(contentSize: Size, containerSize: Size, resizeMode: ResizeMode): Size { |  | ||||||
|     var contentSize = contentSize |  | ||||||
|     // Swap dimensions if orientation is landscape |  | ||||||
|     if (orientation.isLandscape()) { |  | ||||||
|       contentSize = Size(contentSize.height, contentSize.width) |  | ||||||
|     } |  | ||||||
|     val contentAspectRatio = contentSize.width.toDouble() / contentSize.height |  | ||||||
|     val containerAspectRatio = containerSize.width.toDouble() / containerSize.height |  | ||||||
|     if (!(contentAspectRatio > 0 && containerAspectRatio > 0)) { |  | ||||||
|       // One of the aspect ratios is 0 or NaN, maybe the view hasn't been laid out yet. |  | ||||||
|       return contentSize |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     val widthOverHeight = when (resizeMode) { |  | ||||||
|       ResizeMode.COVER -> contentAspectRatio > containerAspectRatio |  | ||||||
|       ResizeMode.CONTAIN -> contentAspectRatio < containerAspectRatio |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     return if (widthOverHeight) { |  | ||||||
|       // Scale by width to cover height |  | ||||||
|       val scaledWidth = containerSize.height * contentAspectRatio |  | ||||||
|       Size(scaledWidth.roundToInt(), containerSize.height) |  | ||||||
|     } else { |  | ||||||
|       // Scale by height to cover width |  | ||||||
|       val scaledHeight = containerSize.width / contentAspectRatio |  | ||||||
|       Size(containerSize.width, scaledHeight.roundToInt()) |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   @SuppressLint("DrawAllocation") |  | ||||||
|   override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { |  | ||||||
|     super.onMeasure(widthMeasureSpec, heightMeasureSpec) |  | ||||||
|  |  | ||||||
|     val measuredViewSize = Size(MeasureSpec.getSize(widthMeasureSpec), MeasureSpec.getSize(heightMeasureSpec)) |  | ||||||
|     val surfaceSize = size.rotatedBy(inputOrientation) |  | ||||||
|     val fittedSize = getSize(surfaceSize, measuredViewSize, resizeMode) |  | ||||||
|  |  | ||||||
|     Log.i(TAG, "PreviewView is $measuredViewSize rendering $surfaceSize orientation ($orientation). Resizing to: $fittedSize ($resizeMode)") |  | ||||||
|     setMeasuredDimension(fittedSize.width, fittedSize.height) |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   companion object { |   companion object { | ||||||
|     private const val TAG = "PreviewView" |     private const val TAG = "PreviewView" | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -7,14 +7,12 @@ import com.facebook.jni.HybridData | |||||||
| import com.facebook.proguard.annotations.DoNotStrip | import com.facebook.proguard.annotations.DoNotStrip | ||||||
| import com.facebook.react.bridge.ReactApplicationContext | import com.facebook.react.bridge.ReactApplicationContext | ||||||
| import com.facebook.react.bridge.UiThreadUtil | import com.facebook.react.bridge.UiThreadUtil | ||||||
| import com.facebook.react.common.annotations.FrameworkAPI |  | ||||||
| import com.facebook.react.turbomodule.core.CallInvokerHolderImpl | import com.facebook.react.turbomodule.core.CallInvokerHolderImpl | ||||||
| import com.facebook.react.uimanager.UIManagerHelper | import com.facebook.react.uimanager.UIManagerHelper | ||||||
| import com.mrousavy.camera.CameraView | import com.mrousavy.camera.CameraView | ||||||
| import com.mrousavy.camera.core.ViewNotFoundError | import com.mrousavy.camera.core.ViewNotFoundError | ||||||
| import java.lang.ref.WeakReference | import java.lang.ref.WeakReference | ||||||
|  |  | ||||||
| @OptIn(FrameworkAPI::class) |  | ||||||
| @Suppress("KotlinJniMissingFunction") // we use fbjni. | @Suppress("KotlinJniMissingFunction") // we use fbjni. | ||||||
| class VisionCameraProxy(private val reactContext: ReactApplicationContext) { | class VisionCameraProxy(private val reactContext: ReactApplicationContext) { | ||||||
|   companion object { |   companion object { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user