@@ -10,6 +10,11 @@ import android.os.Environment
1010import android.os.SystemClock
1111import android.provider.MediaStore
1212import 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
1318import co.stonephone.stonecamera.MyApplication
1419import co.stonephone.stonecamera.StoneCameraViewModel
1520import 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