Skip to content

Commit 50f0324

Browse files
author
izaak
committed
Add portrait mode setting
1 parent 011f2d2 commit 50f0324

File tree

1 file changed

+36
-2
lines changed
  • app/src/main/java/co/stonephone/stonecamera/plugins

1 file changed

+36
-2
lines changed

app/src/main/java/co/stonephone/stonecamera/plugins/Portrait.kt

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ import android.os.Environment
1010
import android.os.SystemClock
1111
import android.provider.MediaStore
1212
import androidx.camera.core.ImageCapture
13+
import androidx.compose.material.icons.Icons
14+
import androidx.compose.material.icons.filled.PersonOff
15+
import androidx.compose.material.icons.filled.Portrait
16+
import androidx.compose.material3.Icon
17+
import androidx.compose.ui.graphics.Color
1318
import co.stonephone.stonecamera.MyApplication
1419
import co.stonephone.stonecamera.StoneCameraViewModel
1520
import co.stonephone.stonecamera.utils.ImageSegmenterHelper
@@ -209,7 +214,6 @@ class PortraitModePlugin : IPlugin, ImageSegmenterHelper.SegmenterListener {
209214
return img
210215
}
211216

212-
213217
fun applyBlurBasedOnMask(context: Context, imageUri: Uri, categoryMask: ByteBuffer): Bitmap? {
214218
// Step 1: Load the image from URI
215219
val capturedImage = loadBitmapFromUri(context, imageUri) ?: return null
@@ -281,7 +285,37 @@ class PortraitModePlugin : IPlugin, ImageSegmenterHelper.SegmenterListener {
281285
}
282286
}
283287

284-
override val settings: List<PluginSetting> = emptyList() // No settings for portrait yet
288+
override val settings: List<PluginSetting> = listOf(
289+
PluginSetting.EnumSetting(
290+
key = "portraitMode",
291+
defaultValue = "OFF",
292+
options = listOf("OFF", "ON"),
293+
render = { isEnabled ->
294+
Icon(
295+
imageVector = when (isEnabled) {
296+
"OFF" -> Icons.Default.PersonOff
297+
"ON" -> Icons.Default.Portrait
298+
else -> {
299+
Icons.Default.PersonOff
300+
}
301+
},
302+
contentDescription = when (isEnabled) {
303+
"OFF" -> "Portrait Mode Off"
304+
"ON" -> "Portrait Mode On"
305+
else -> {
306+
"Portrait Mode Off"
307+
}
308+
},
309+
tint = Color.White
310+
)
311+
312+
},
313+
onChange = { viewModel, value ->
314+
viewModel.recreateUseCases()
315+
},
316+
renderLocation = SettingLocation.TOP
317+
)
318+
)
285319

286320
override fun onError(error: String, errorCode: Int) {
287321
TODO("Not yet implemented")

0 commit comments

Comments
 (0)