Merge pull request 'Fix Preview View Aspect Ratio Orientation Issues in android' (#8) from ivan/fix-android-preview-view-aspect-ratio-orientation-issues into main
Reviewed-on: #8
This commit is contained in:
		| @@ -1,6 +1,7 @@ | |||||||
| package com.mrousavy.camera.core | package com.mrousavy.camera.core | ||||||
|  |  | ||||||
| import android.annotation.SuppressLint | import android.annotation.SuppressLint | ||||||
|  | import android.content.res.Configuration | ||||||
| import android.content.Context | import android.content.Context | ||||||
| import android.graphics.Point | import android.graphics.Point | ||||||
| import android.util.Log | import android.util.Log | ||||||
| @@ -97,22 +98,14 @@ class PreviewView(context: Context, callback: SurfaceHolder.Callback) : | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   override fun requestLayout() { |  | ||||||
|     super.requestLayout() |  | ||||||
|     // Manually trigger measure & layout, as RN on Android skips those. |  | ||||||
|     // See this issue: https://github.com/facebook/react-native/issues/17968#issuecomment-721958427 |  | ||||||
|     post { |  | ||||||
|       measure(MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY), MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)) |  | ||||||
|       layout(left, top, right, bottom) |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
|  |  | ||||||
|   private fun getSize(contentSize: Size, containerSize: Size, resizeMode: ResizeMode): Size { |   private fun getSize(contentSize: Size, containerSize: Size, resizeMode: ResizeMode): Size { | ||||||
|     var contentSize = contentSize |     var contentSize = contentSize | ||||||
|     // Swap dimensions if orientation is landscape |     var androidOrientation = context.getResources().getConfiguration().orientation; | ||||||
|     if (orientation.isLandscape()) { |  | ||||||
|  |     if (androidOrientation == Configuration.ORIENTATION_LANDSCAPE) { | ||||||
|       contentSize = Size(contentSize.height, contentSize.width) |       contentSize = Size(contentSize.height, contentSize.width) | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     val contentAspectRatio = contentSize.width.toDouble() / contentSize.height |     val contentAspectRatio = contentSize.width.toDouble() / contentSize.height | ||||||
|     val containerAspectRatio = containerSize.width.toDouble() / containerSize.height |     val containerAspectRatio = containerSize.width.toDouble() / containerSize.height | ||||||
|     if (!(contentAspectRatio > 0 && containerAspectRatio > 0)) { |     if (!(contentAspectRatio > 0 && containerAspectRatio > 0)) { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user