diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt
index 15691056..5ddc51bb 100644
--- a/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/activities/MainActivity.kt
@@ -11,6 +11,7 @@ import android.os.Bundle
import android.provider.MediaStore
import android.view.*
import android.widget.LinearLayout
+import androidx.constraintlayout.widget.ConstraintSet
import androidx.core.content.ContextCompat
import androidx.core.view.*
import androidx.transition.*
@@ -318,7 +319,9 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
initInPhotoMode = isInPhotoMode,
)
- mFocusCircleView = FocusCircleView(this)
+ mFocusCircleView = FocusCircleView(this).apply {
+ id = View.generateViewId()
+ }
view_holder.addView(mFocusCircleView)
setupPreviewImage(true)
@@ -752,6 +755,19 @@ class MainActivity : SimpleActivity(), PhotoProcessor.MediaSavedListener, Camera
button.iconTint = ColorStateList(states, iconColors)
}
+ override fun adjustPreviewView(requiresCentering: Boolean) {
+ val constraintSet = ConstraintSet()
+ constraintSet.clone(view_holder)
+ if (requiresCentering) {
+ constraintSet.connect(preview_view.id, ConstraintSet.TOP, top_options.id, ConstraintSet.BOTTOM)
+ constraintSet.connect(preview_view.id, ConstraintSet.BOTTOM, camera_mode_tab.id, ConstraintSet.TOP)
+ } else {
+ constraintSet.connect(preview_view.id, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP)
+ constraintSet.connect(preview_view.id, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM)
+ }
+ constraintSet.applyTo(view_holder)
+ }
+
override fun mediaSaved(path: String) {
rescanPaths(arrayListOf(path)) {
setupPreviewImage(true)
diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt
index 3025b7fb..a620e1c2 100644
--- a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreview.kt
@@ -162,6 +162,8 @@ class CameraXPreview(
MySize(selectedQuality.width, selectedQuality.height)
}
+ listener.adjustPreviewView(resolution.requiresCentering())
+
val isFullSize = resolution.isFullScreen
previewView.scaleType = if (isFullSize) ScaleType.FILL_CENTER else ScaleType.FIT_CENTER
val rotation = previewView.display.rotation
diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreviewListener.kt b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreviewListener.kt
index 5c9f1866..d8756c5a 100644
--- a/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreviewListener.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/implementations/CameraXPreviewListener.kt
@@ -29,6 +29,6 @@ interface CameraXPreviewListener {
isFrontCamera: Boolean,
onSelect: (index: Int, changed: Boolean) -> Unit,
)
-
fun showFlashOptions(photoCapture: Boolean)
+ fun adjustPreviewView(requiresCentering: Boolean)
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/camera/models/MySize.kt b/app/src/main/kotlin/com/simplemobiletools/camera/models/MySize.kt
index 4201aa8d..265bcab7 100644
--- a/app/src/main/kotlin/com/simplemobiletools/camera/models/MySize.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/camera/models/MySize.kt
@@ -17,6 +17,10 @@ data class MySize(val width: Int, val height: Int, val isFullScreen: Boolean = f
val megaPixels: String = String.format("%.1f", (width * height.toFloat()) / ONE_MEGA_PIXEL)
+ fun requiresCentering(): Boolean {
+ return !isFullScreen && (isFourToThree() || isThreeToTwo() || isSquare())
+ }
+
fun isSixteenToNine() = ratio == 16 / 9f
private fun isFiveToThree() = ratio == 5 / 3f
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 91e32770..31b74910 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -11,7 +11,9 @@
+ android:layout_height="0dp"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />