From 9179e18b06182294ef8d5d2dfa2a62d50dc86a88 Mon Sep 17 00:00:00 2001 From: davotoula Date: Fri, 29 Aug 2025 14:06:39 +0100 Subject: [PATCH] Added "record and post video" button to media tab --- .../screen/loggedIn/video/NewImageButton.kt | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/NewImageButton.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/NewImageButton.kt index c5bb56067..5c1d10c64 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/NewImageButton.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/video/NewImageButton.kt @@ -33,6 +33,7 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.AddPhotoAlternate import androidx.compose.material.icons.filled.CameraAlt +import androidx.compose.material.icons.filled.Videocam import androidx.compose.material.icons.outlined.Close import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.Icon @@ -53,6 +54,7 @@ import com.vitorpamplona.amethyst.ui.actions.NewMediaView import com.vitorpamplona.amethyst.ui.actions.uploads.GallerySelect import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia import com.vitorpamplona.amethyst.ui.actions.uploads.TakePicture +import com.vitorpamplona.amethyst.ui.actions.uploads.TakeVideo import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.painterRes import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel @@ -78,6 +80,8 @@ fun NewImageButton( var wantsToPostFromCamera by remember { mutableStateOf(false) } + var wantsToPostFromVideo by remember { mutableStateOf(false) } + var pickedURIs by remember { mutableStateOf>(persistentListOf()) } val scope = rememberCoroutineScope() @@ -97,6 +101,13 @@ fun NewImageButton( } } + if (wantsToPostFromVideo) { + TakeVideo { uri -> + wantsToPostFromVideo = false + pickedURIs = uri + } + } + if (wantsToPostFromGallery) { GallerySelect( onImageUri = { uri -> @@ -134,7 +145,26 @@ fun NewImageButton( ) { Icon( imageVector = Icons.Default.CameraAlt, - contentDescription = stringRes(id = R.string.upload_image), + contentDescription = stringRes(id = R.string.take_a_picture), + modifier = Modifier.size(26.dp), + tint = Color.White, + ) + } + + Spacer(modifier = Modifier.height(20.dp)) + + FloatingActionButton( + onClick = { + wantsToPostFromVideo = true + isOpen = false + }, + modifier = Size55Modifier, + shape = CircleShape, + containerColor = MaterialTheme.colorScheme.primary, + ) { + Icon( + imageVector = Icons.Default.Videocam, + contentDescription = stringRes(id = R.string.record_a_video), modifier = Modifier.size(26.dp), tint = Color.White, )