diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostScreen.kt
index 325d4b3e1..029fdc454 100644
--- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostScreen.kt
+++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/ShortNotePostScreen.kt
@@ -25,6 +25,7 @@ import android.net.Uri
import android.os.Parcelable
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.horizontalScroll
+import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
@@ -38,20 +39,24 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface
import androidx.compose.material3.Switch
+import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Alignment.Companion.CenterVertically
import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.input.TextFieldValue
+import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.core.util.Consumer
import androidx.lifecycle.viewmodel.compose.viewModel
@@ -96,6 +101,7 @@ import com.vitorpamplona.amethyst.ui.painterRes
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.settings.SettingsRow
import com.vitorpamplona.amethyst.ui.stringRes
+import com.vitorpamplona.amethyst.ui.theme.DividerThickness
import com.vitorpamplona.amethyst.ui.theme.Size10dp
import com.vitorpamplona.amethyst.ui.theme.Size20Modifier
import com.vitorpamplona.amethyst.ui.theme.Size35dp
@@ -377,9 +383,30 @@ private fun NewPostScreenBody(
onRemove = { postViewModel.removeVoiceMessage() },
)
- // Voice preset selector (only show when not uploading and voice is pending)
+ // Voice anonymization section (only show when not uploading and voice is pending)
if (postViewModel.voiceRecording != null) {
+ Spacer(modifier = Modifier.height(16.dp))
+ HorizontalDivider(thickness = DividerThickness)
Spacer(modifier = Modifier.height(12.dp))
+
+ Column(
+ verticalArrangement = Arrangement.spacedBy(Size5dp),
+ ) {
+ Text(
+ text = stringRes(R.string.voice_anonymize_title),
+ maxLines = 1,
+ overflow = TextOverflow.Ellipsis,
+ )
+ Text(
+ text = stringRes(R.string.voice_anonymize_description),
+ style = MaterialTheme.typography.bodySmall,
+ color = Color.Gray,
+ maxLines = 3,
+ overflow = TextOverflow.Ellipsis,
+ )
+ }
+
+ Spacer(modifier = Modifier.height(8.dp))
VoicePresetSelector(
selectedPreset = postViewModel.selectedPreset,
isProcessing = postViewModel.isProcessingPreset,
diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/VoiceReplyScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/VoiceReplyScreen.kt
index 3794060bc..a6d7b888a 100644
--- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/VoiceReplyScreen.kt
+++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/home/VoiceReplyScreen.kt
@@ -37,6 +37,7 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Mic
import androidx.compose.material.icons.filled.Stop
import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
@@ -47,6 +48,8 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp
import androidx.lifecycle.viewmodel.compose.viewModel
import com.vitorpamplona.amethyst.R
@@ -61,7 +64,9 @@ import com.vitorpamplona.amethyst.ui.navigation.topbars.PostingTopBar
import com.vitorpamplona.amethyst.ui.note.NoteCompose
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.stringRes
+import com.vitorpamplona.amethyst.ui.theme.DividerThickness
import com.vitorpamplona.amethyst.ui.theme.Size10dp
+import com.vitorpamplona.amethyst.ui.theme.Size5dp
import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer
import com.vitorpamplona.amethyst.ui.theme.replyModifier
@@ -168,8 +173,29 @@ private fun VoiceReplyScreenBody(
)
}
- // Voice preset selector (only show when not uploading)
+ // Voice anonymization section
+ Spacer(modifier = Modifier.height(16.dp))
+ HorizontalDivider(thickness = DividerThickness)
Spacer(modifier = Modifier.height(12.dp))
+
+ Column(
+ verticalArrangement = Arrangement.spacedBy(Size5dp),
+ ) {
+ Text(
+ text = stringRes(R.string.voice_anonymize_title),
+ maxLines = 1,
+ overflow = TextOverflow.Ellipsis,
+ )
+ Text(
+ text = stringRes(R.string.voice_anonymize_description),
+ style = MaterialTheme.typography.bodySmall,
+ color = Color.Gray,
+ maxLines = 3,
+ overflow = TextOverflow.Ellipsis,
+ )
+ }
+
+ Spacer(modifier = Modifier.height(8.dp))
VoicePresetSelector(
selectedPreset = viewModel.selectedPreset,
isProcessing = viewModel.isProcessingPreset,
diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml
index ebec66ae8..a78c01f31 100644
--- a/amethyst/src/main/res/values/strings.xml
+++ b/amethyst/src/main/res/values/strings.xml
@@ -188,6 +188,8 @@
Deep
High
Neutral
+ Anonymize
+ Alters your voice pitch. Note: basic pitch changes can potentially be reversed by determined listeners.
User does not have a lightning address set up to receive sats
"reply here.. "
Copies the Note ID to the clipboard for sharing in Nostr