Skip to content

Commit c9b78d2

Browse files
committed
Revert "feat: add previewScaleType to control camera preview scaling"
This reverts commit 2304d81.
1 parent 738bd14 commit c9b78d2

5 files changed

Lines changed: 9 additions & 68 deletions

File tree

library/src/androidMain/kotlin/io/github/ismoy/imagepickerkmp/presentation/ui/components/CameraCapturePreview.kt

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ import io.github.ismoy.imagepickerkmp.domain.config.ImagePickerUiConstants.DELAY
3737
import io.github.ismoy.imagepickerkmp.domain.models.CapturePhotoPreference
3838
import io.github.ismoy.imagepickerkmp.domain.models.CompressionLevel
3939
import io.github.ismoy.imagepickerkmp.domain.models.PhotoResult
40-
import io.github.ismoy.imagepickerkmp.domain.models.PreviewScaleType
4140
import io.github.ismoy.imagepickerkmp.presentation.ui.extensions.activity
4241
import io.github.ismoy.imagepickerkmp.presentation.ui.utils.playShutterSound
4342
import io.github.ismoy.imagepickerkmp.presentation.ui.utils.rememberCameraManager
@@ -107,8 +106,8 @@ fun CameraCapturePreview(
107106
AndroidView(
108107
factory = { context ->
109108
PreviewView(context).apply {
110-
scaleType = previewConfig.previewScaleType.toPreviewViewScaleType()
111-
109+
scaleType = PreviewView.ScaleType.FILL_CENTER
110+
112111
implementationMode = if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) {
113112
PreviewView.ImplementationMode.COMPATIBLE
114113
} else {
@@ -184,12 +183,3 @@ fun CameraCapturePreview(
184183
FlashOverlay(visible = stateHolder?.showFlashOverlay ?: false)
185184
}
186185
}
187-
188-
private fun PreviewScaleType.toPreviewViewScaleType(): PreviewView.ScaleType = when (this) {
189-
PreviewScaleType.FILL_CENTER -> PreviewView.ScaleType.FILL_CENTER
190-
PreviewScaleType.FILL_START -> PreviewView.ScaleType.FILL_START
191-
PreviewScaleType.FILL_END -> PreviewView.ScaleType.FILL_END
192-
PreviewScaleType.FIT_CENTER -> PreviewView.ScaleType.FIT_CENTER
193-
PreviewScaleType.FIT_START -> PreviewView.ScaleType.FIT_START
194-
PreviewScaleType.FIT_END -> PreviewView.ScaleType.FIT_END
195-
}

library/src/androidMain/kotlin/io/github/ismoy/imagepickerkmp/presentation/ui/screens/CameraCaptureView.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,7 @@ private fun CameraAndPreview(
173173
previewConfig = CameraPreviewConfig(
174174
captureButtonSize = cameraCaptureConfig.captureButtonSize,
175175
uiConfig = cameraCaptureConfig.uiConfig,
176-
cameraCallbacks = cameraCaptureConfig.cameraCallbacks,
177-
previewScaleType = cameraCaptureConfig.previewScaleType,
176+
cameraCallbacks = cameraCaptureConfig.cameraCallbacks
178177
),
179178
compressionLevel = cameraCaptureConfig.compressionLevel,
180179
includeExif = cameraCaptureConfig.includeExif,

library/src/commonMain/kotlin/io/github/ismoy/imagepickerkmp/domain/config/ImagePickerConfig.kt

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import io.github.ismoy.imagepickerkmp.domain.models.CapturePhotoPreference
99
import io.github.ismoy.imagepickerkmp.domain.models.CompressionLevel
1010
import io.github.ismoy.imagepickerkmp.domain.models.MimeType
1111
import io.github.ismoy.imagepickerkmp.domain.models.PhotoResult
12-
import io.github.ismoy.imagepickerkmp.domain.models.PreviewScaleType
1312

1413
/**
1514
* Configuration for the visual styling of camera UI elements.
@@ -162,11 +161,6 @@ data class CropConfig(
162161
* post-capture confirmation screen. See [PermissionAndConfirmationConfig].
163162
* @property cropConfig Configuration for the interactive crop UI shown after capture.
164163
* See [CropConfig].
165-
* @property previewScaleType How the camera preview is scaled inside its viewport.
166-
* Defaults to [PreviewScaleType.FILL_CENTER] (preserves prior behavior — fills the
167-
* viewport, cropping the camera feed to fit). Use [PreviewScaleType.FIT_CENTER] to
168-
* letterbox the preview so the viewfinder framing matches the captured image.
169-
* Currently applied on Android only.
170164
*/
171165
@Suppress("EndOfSentenceFormat")
172166
data class CameraCaptureConfig(
@@ -178,8 +172,7 @@ data class CameraCaptureConfig(
178172
val uiConfig: UiConfig = UiConfig(),
179173
val cameraCallbacks: CameraCallbacks = CameraCallbacks(),
180174
val permissionAndConfirmationConfig: PermissionAndConfirmationConfig = PermissionAndConfirmationConfig(),
181-
val cropConfig: CropConfig = CropConfig(),
182-
val previewScaleType: PreviewScaleType = PreviewScaleType.FILL_CENTER,
175+
val cropConfig: CropConfig = CropConfig()
183176
)
184177

185178
/**
@@ -278,8 +271,7 @@ data class ImagePickerConfig(
278271
data class CameraPreviewConfig(
279272
val captureButtonSize: Dp = 72.dp,
280273
val uiConfig: UiConfig = UiConfig(),
281-
val cameraCallbacks: CameraCallbacks = CameraCallbacks(),
282-
val previewScaleType: PreviewScaleType = PreviewScaleType.FILL_CENTER,
274+
val cameraCallbacks: CameraCallbacks = CameraCallbacks()
283275
)
284276

285277
/**

library/src/commonMain/kotlin/io/github/ismoy/imagepickerkmp/domain/models/PreviewScaleType.kt

Lines changed: 0 additions & 28 deletions
This file was deleted.

library/src/commonTest/kotlin/io/github/ismoy/imagepickerkmp/domain/config/ImagePickerConfigTest.kt

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package io.github.ismoy.imagepickerkmp.domain.config
33
import io.github.ismoy.imagepickerkmp.domain.models.CapturePhotoPreference
44
import io.github.ismoy.imagepickerkmp.domain.models.MimeType
55
import io.github.ismoy.imagepickerkmp.domain.models.PhotoResult
6-
import io.github.ismoy.imagepickerkmp.domain.models.PreviewScaleType
76
import kotlin.test.Test
87
import kotlin.test.assertEquals
98
import kotlin.test.assertFalse
@@ -38,20 +37,17 @@ class ImagePickerConfigTest {
3837
@Test
3938
fun `CameraCaptureConfig should have default values`() {
4039
val config = CameraCaptureConfig()
41-
40+
4241
assertEquals(CapturePhotoPreference.BALANCED, config.preference)
43-
assertEquals(PreviewScaleType.FILL_CENTER, config.previewScaleType)
4442
}
4543

4644
@Test
4745
fun `CameraCaptureConfig should allow custom values`() {
4846
val config = CameraCaptureConfig(
49-
preference = CapturePhotoPreference.FAST,
50-
previewScaleType = PreviewScaleType.FIT_CENTER,
47+
preference = CapturePhotoPreference.FAST
5148
)
52-
49+
5350
assertEquals(CapturePhotoPreference.FAST, config.preference)
54-
assertEquals(PreviewScaleType.FIT_CENTER, config.previewScaleType)
5551
}
5652

5753
@Test
@@ -90,18 +86,10 @@ class ImagePickerConfigTest {
9086
@Test
9187
fun `CameraPreviewConfig should have default values`() {
9288
val config = CameraPreviewConfig()
93-
89+
9490
assertFalse(config.captureButtonSize.value == 0f)
9591
assertEquals(null, config.uiConfig.buttonColor)
9692
assertEquals(null, config.cameraCallbacks.onCameraReady)
97-
assertEquals(PreviewScaleType.FILL_CENTER, config.previewScaleType)
98-
}
99-
100-
@Test
101-
fun `CameraPreviewConfig should allow custom previewScaleType`() {
102-
val config = CameraPreviewConfig(previewScaleType = PreviewScaleType.FIT_CENTER)
103-
104-
assertEquals(PreviewScaleType.FIT_CENTER, config.previewScaleType)
10593
}
10694

10795
@Test

0 commit comments

Comments
 (0)