This commit is contained in:
Vitor Pamplona 2024-03-04 11:03:55 -05:00
commit 43bcee5642
18 changed files with 132 additions and 53 deletions

@ -88,7 +88,7 @@ fun NewMediaView(
val resolver = LocalContext.current.contentResolver
val context = LocalContext.current
val scroolState = rememberScrollState()
val scrollState = rememberScrollState()
LaunchedEffect(uri) {
val mediaType = resolver.getType(uri) ?: ""
@ -173,7 +173,7 @@ fun NewMediaView(
modifier = Modifier.fillMaxWidth().weight(1f),
) {
Column(
modifier = Modifier.fillMaxWidth().verticalScroll(scroolState),
modifier = Modifier.fillMaxWidth().verticalScroll(scrollState),
) {
ImageVideoPost(postViewModel, accountViewModel)
}

@ -56,7 +56,8 @@ import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowForwardIos
import androidx.compose.material.icons.automirrored.filled.ArrowForwardIos
import androidx.compose.material.icons.automirrored.outlined.ArrowForwardIos
import androidx.compose.material.icons.filled.Bolt
import androidx.compose.material.icons.filled.CurrencyBitcoin
import androidx.compose.material.icons.filled.LocationOff
@ -65,7 +66,6 @@ import androidx.compose.material.icons.filled.Sell
import androidx.compose.material.icons.filled.ShowChart
import androidx.compose.material.icons.filled.Visibility
import androidx.compose.material.icons.filled.VisibilityOff
import androidx.compose.material.icons.outlined.ArrowForwardIos
import androidx.compose.material.icons.outlined.Bolt
import androidx.compose.material.icons.rounded.Warning
import androidx.compose.material3.Button
@ -1087,7 +1087,7 @@ fun FowardZapTo(
tint = BitcoinOrange,
)
Icon(
imageVector = Icons.Outlined.ArrowForwardIos,
imageVector = Icons.AutoMirrored.Outlined.ArrowForwardIos,
contentDescription = stringResource(id = R.string.zaps),
modifier =
Modifier
@ -1451,7 +1451,7 @@ private fun ForwardZapTo(
tint = MaterialTheme.colorScheme.onBackground,
)
Icon(
imageVector = Icons.Default.ArrowForwardIos,
imageVector = Icons.AutoMirrored.Filled.ArrowForwardIos,
contentDescription = null,
modifier =
Modifier
@ -1470,7 +1470,7 @@ private fun ForwardZapTo(
tint = BitcoinOrange,
)
Icon(
imageVector = Icons.Outlined.ArrowForwardIos,
imageVector = Icons.AutoMirrored.Outlined.ArrowForwardIos,
contentDescription = null,
modifier =
Modifier
@ -1534,7 +1534,7 @@ private fun MarkAsSensitive(
)
Icon(
imageVector = Icons.Rounded.Warning,
contentDescription = null,
contentDescription = stringResource(R.string.add_content_warning),
modifier =
Modifier
.size(10.dp)
@ -1553,7 +1553,7 @@ private fun MarkAsSensitive(
)
Icon(
imageVector = Icons.Rounded.Warning,
contentDescription = null,
contentDescription = stringResource(id = R.string.remove_content_warning),
modifier =
Modifier
.size(10.dp)

@ -45,8 +45,8 @@ import androidx.compose.material.icons.filled.SyncProblem
import androidx.compose.material.icons.filled.Upload
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.Divider
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
@ -272,9 +272,7 @@ fun ServerConfigHeader() {
}
}
Divider(
thickness = DividerThickness,
)
HorizontalDivider(thickness = DividerThickness)
}
}
@ -459,9 +457,7 @@ fun ServerConfigClickableLine(
}
}
Divider(
thickness = DividerThickness,
)
HorizontalDivider(thickness = DividerThickness)
}
}
@ -839,7 +835,7 @@ private fun FirstLine(
) {
Icon(
imageVector = Icons.Default.Cancel,
null,
contentDescription = stringResource(id = R.string.remove),
modifier = Modifier.padding(start = 10.dp).size(15.dp),
tint = WarningColor,
)
@ -875,7 +871,7 @@ fun EditableServerConfig(
IconButton(onClick = { read = !read }) {
Icon(
imageVector = Icons.Default.Download,
null,
contentDescription = stringResource(id = R.string.read_from_relay),
modifier = Modifier.size(Size35dp).padding(horizontal = 5.dp),
tint =
if (read) {
@ -889,7 +885,7 @@ fun EditableServerConfig(
IconButton(onClick = { write = !write }) {
Icon(
imageVector = Icons.Default.Upload,
null,
contentDescription = stringResource(id = R.string.write_to_relay),
modifier = Modifier.size(Size35dp).padding(horizontal = 5.dp),
tint =
if (write) {

@ -768,7 +768,7 @@ fun BottomContent(
) {
Icon(
painter = painterResource(R.drawable.ic_qrcode),
null,
contentDescription = stringResource(id = R.string.show_npub_as_a_qr_code),
modifier = Modifier.size(24.dp),
tint = MaterialTheme.colorScheme.primary,
)

@ -162,7 +162,7 @@ fun BadgeCompose(
) {
Icon(
imageVector = Icons.Default.MoreVert,
null,
contentDescription = stringResource(id = R.string.more_options),
modifier = Size15Modifier,
tint = MaterialTheme.colorScheme.placeholderText,
)

@ -22,7 +22,10 @@ package com.vitorpamplona.amethyst.ui.note
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.automirrored.filled.OpenInNew
import androidx.compose.material.icons.automirrored.filled.VolumeOff
import androidx.compose.material.icons.automirrored.filled.VolumeUp
import androidx.compose.material.icons.filled.Bolt
import androidx.compose.material.icons.filled.Cancel
import androidx.compose.material.icons.filled.Clear
@ -33,11 +36,8 @@ import androidx.compose.material.icons.filled.ExpandLess
import androidx.compose.material.icons.filled.ExpandMore
import androidx.compose.material.icons.filled.Link
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material.icons.filled.OpenInNew
import androidx.compose.material.icons.filled.PushPin
import androidx.compose.material.icons.filled.Report
import androidx.compose.material.icons.filled.VolumeOff
import androidx.compose.material.icons.filled.VolumeUp
import androidx.compose.material.icons.outlined.BarChart
import androidx.compose.material.icons.outlined.PlayCircle
import androidx.compose.material3.Icon
@ -62,7 +62,7 @@ import com.vitorpamplona.amethyst.ui.theme.subtleButton
fun AmethystIcon(iconSize: Dp) {
Icon(
painter = painterResource(R.drawable.amethyst),
null,
contentDescription = stringResource(id = R.string.app_logo),
modifier = Modifier.size(iconSize),
tint = Color.Unspecified,
)
@ -81,7 +81,7 @@ fun FollowingIcon(iconSize: Dp) {
@Composable
fun ArrowBackIcon() {
Icon(
imageVector = Icons.Default.ArrowBack,
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
contentDescription = stringResource(R.string.back),
tint = MaterialTheme.colorScheme.grayText,
)
@ -104,7 +104,7 @@ fun DownloadForOfflineIcon(
) {
Icon(
imageVector = Icons.Default.DownloadForOffline,
null,
contentDescription = stringResource(id = R.string.accessibility_download_for_offline),
modifier = remember(iconSize) { Modifier.size(iconSize) },
tint = tint,
)
@ -237,7 +237,7 @@ fun OpenInNewIcon(
tint: Color = Color.Unspecified,
) {
Icon(
imageVector = Icons.Default.OpenInNew,
imageVector = Icons.AutoMirrored.Filled.OpenInNew,
stringResource(id = R.string.copy_to_clipboard),
tint = tint,
modifier = modifier,
@ -320,7 +320,7 @@ fun RegularPostIcon() {
fun CancelIcon() {
Icon(
imageVector = Icons.Default.Cancel,
null,
contentDescription = stringResource(id = R.string.cancel),
modifier = Size30Modifier,
tint = MaterialTheme.colorScheme.placeholderText,
)
@ -338,7 +338,7 @@ fun CloseIcon() {
@Composable
fun MutedIcon() {
Icon(
imageVector = Icons.Default.VolumeOff,
imageVector = Icons.AutoMirrored.Filled.VolumeOff,
contentDescription = stringResource(id = R.string.muted_button),
tint = MaterialTheme.colorScheme.onBackground,
modifier = Size30Modifier,
@ -348,7 +348,7 @@ fun MutedIcon() {
@Composable
fun MuteIcon() {
Icon(
imageVector = Icons.Default.VolumeUp,
imageVector = Icons.AutoMirrored.Filled.VolumeUp,
contentDescription = stringResource(id = R.string.mute_button),
tint = MaterialTheme.colorScheme.onBackground,
modifier = Size30Modifier,
@ -375,7 +375,7 @@ fun PlayIcon(
) {
Icon(
imageVector = Icons.Outlined.PlayCircle,
contentDescription = null,
contentDescription = stringResource(id = R.string.accessibility_play_username),
modifier = modifier,
tint = tint,
)
@ -401,7 +401,7 @@ fun LyricsIcon(
) {
Icon(
painter = painterResource(id = R.drawable.lyrics_on),
contentDescription = null,
contentDescription = stringResource(id = R.string.accessibility_lyrics_on),
modifier = modifier,
tint = tint,
)
@ -414,7 +414,7 @@ fun LyricsOffIcon(
) {
Icon(
painter = painterResource(id = R.drawable.lyrics_off),
contentDescription = null,
contentDescription = stringResource(id = R.string.accessibility_lyrics_off),
modifier = modifier,
tint = tint,
)
@ -480,3 +480,29 @@ fun NIP05FailedVerification(modifier: Modifier) {
tint = Color.Red,
)
}
@Composable
fun IncognitoIconOn(
modifier: Modifier,
tint: Color,
) {
Icon(
painter = painterResource(id = R.drawable.incognito),
contentDescription = stringResource(id = R.string.accessibility_turn_off_sealed_message),
modifier = modifier,
tint = tint,
)
}
@Composable
fun IncognitoIconOff(
modifier: Modifier,
tint: Color,
) {
Icon(
painter = painterResource(id = R.drawable.incognito_off),
contentDescription = stringResource(id = R.string.accessibility_turn_on_sealed_message),
modifier = modifier,
tint = tint,
)
}

@ -445,7 +445,7 @@ fun UpdateZapAmountDialog(
) {
Icon(
painter = painterResource(R.drawable.alby),
null,
contentDescription = stringResource(id = R.string.accessibility_navigate_to_alby),
modifier = Modifier.size(24.dp),
tint = Color.Unspecified,
)
@ -454,7 +454,7 @@ fun UpdateZapAmountDialog(
IconButton(onClick = { qrScanning = true }) {
Icon(
painter = painterResource(R.drawable.ic_qrcode),
null,
contentDescription = stringResource(id = R.string.accessibility_scan_qr_code),
modifier = Modifier.size(24.dp),
tint = MaterialTheme.colorScheme.primary,
)

@ -58,7 +58,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.theme.FeedPadding
@Composable
fun RefresheableCardView(
fun RefreshableCardView(
viewModel: CardFeedViewModel,
accountViewModel: AccountViewModel,
nav: (String) -> Unit,

@ -435,7 +435,7 @@ fun NoteMaster(
) {
Icon(
imageVector = Icons.Default.MoreVert,
null,
contentDescription = stringResource(id = R.string.more_options),
modifier = Size15Modifier,
tint = MaterialTheme.colorScheme.placeholderText,
)

@ -269,7 +269,7 @@ fun ChatroomListScreenOnlyList(
) {
Icon(
imageVector = Icons.Default.MoreVert,
contentDescription = null,
contentDescription = stringResource(id = R.string.more_options),
tint = MaterialTheme.colorScheme.placeholderText,
)

@ -68,7 +68,6 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.KeyboardCapitalization
@ -98,6 +97,8 @@ import com.vitorpamplona.amethyst.ui.components.ObserveDisplayNip05Status
import com.vitorpamplona.amethyst.ui.note.ClickableUserPicture
import com.vitorpamplona.amethyst.ui.note.DisplayRoomSubject
import com.vitorpamplona.amethyst.ui.note.DisplayUserSetAsSubject
import com.vitorpamplona.amethyst.ui.note.IncognitoIconOff
import com.vitorpamplona.amethyst.ui.note.IncognitoIconOn
import com.vitorpamplona.amethyst.ui.note.LoadUser
import com.vitorpamplona.amethyst.ui.note.NonClickableUserPictures
import com.vitorpamplona.amethyst.ui.note.QuickActionAlertDialog
@ -441,17 +442,19 @@ fun PrivateMessageEditFieldRow(
},
) {
if (channelScreenModel.nip24) {
Icon(
painter = painterResource(id = R.drawable.incognito),
null,
modifier = Modifier.padding(top = 2.dp).size(18.dp),
IncognitoIconOn(
modifier =
Modifier
.padding(top = 2.dp)
.size(18.dp),
tint = MaterialTheme.colorScheme.primary,
)
} else {
Icon(
painter = painterResource(id = R.drawable.incognito_off),
null,
modifier = Modifier.padding(top = 2.dp).size(18.dp),
IncognitoIconOff(
modifier =
Modifier
.padding(top = 2.dp)
.size(18.dp),
tint = MaterialTheme.colorScheme.placeholderText,
)
}
@ -534,7 +537,7 @@ fun ThinSendButton(
) {
Icon(
imageVector = Icons.Default.Send,
null,
contentDescription = stringResource(id = R.string.accessibility_send),
modifier = Size20Modifier,
)
}

@ -78,7 +78,7 @@ import com.vitorpamplona.amethyst.ui.note.UserReactionsViewModel
import com.vitorpamplona.amethyst.ui.note.showAmount
import com.vitorpamplona.amethyst.ui.note.showCount
import com.vitorpamplona.amethyst.ui.screen.NotificationViewModel
import com.vitorpamplona.amethyst.ui.screen.RefresheableCardView
import com.vitorpamplona.amethyst.ui.screen.RefreshableCardView
import com.vitorpamplona.amethyst.ui.screen.ScrollStateKeys
import com.vitorpamplona.amethyst.ui.screen.SharedPreferencesViewModel
import com.vitorpamplona.amethyst.ui.theme.BitcoinOrange
@ -121,7 +121,7 @@ fun NotificationScreen(
model = userReactionsStatsModel,
)
RefresheableCardView(
RefreshableCardView(
viewModel = notifFeedViewModel,
accountViewModel = accountViewModel,
nav = nav,

@ -57,11 +57,13 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import com.vitorpamplona.amethyst.R
import com.vitorpamplona.amethyst.model.Note
import com.vitorpamplona.amethyst.service.NostrVideoDataSource
import com.vitorpamplona.amethyst.ui.actions.NewPostView
@ -398,7 +400,7 @@ private fun VideoUserOptionAction(
) {
Icon(
imageVector = Icons.Default.MoreVert,
null,
contentDescription = stringResource(id = R.string.more_options),
modifier = remember { Modifier.size(20.dp) },
tint = MaterialTheme.colorScheme.placeholderText,
)

@ -670,6 +670,7 @@
<string name="git_repository">Git repositář: %1$s</string>
<string name="git_web_address">Internet:</string>
<string name="git_clone_address">Klon:</string>
<string name="existed_since">OTS: %1$s</string>
<string name="ots_info_title">Důkaz časového razítka</string>
<string name="ots_info_description">Existuje důkaz, že tento příspěvek byl podepsán někdy před %1$s. Důkaz byl označen v Bitcoin blockchainu v tomto datu a čase.</string>
<string name="edit_post">Upravit příspěvek</string>
@ -677,4 +678,13 @@
<string name="message_to_author">Souhrn změn</string>
<string name="message_to_author_placeholder">Rychlé opravy…</string>
<string name="accept_the_suggestion">Přijmout návrhy</string>
<string name="accessibility_download_for_offline">Stáhnout</string>
<string name="accessibility_lyrics_on">Text písně zapnuto</string>
<string name="accessibility_lyrics_off">Text písně vypnuto</string>
<string name="accessibility_turn_on_sealed_message">Zapečetěná zpráva vypnuta. Klikněte pro zapnutí zapečetěné zprávy</string>
<string name="accessibility_turn_off_sealed_message">Zapečetěná zpráva zapnuta. Klikněte pro vypnutí zapečetěné zprávy</string>
<string name="accessibility_send">Odeslat</string>
<string name="accessibility_play_username">Přehrát uživatelské jméno jako audio</string>
<string name="accessibility_scan_qr_code">Skenovat QR kód</string>
<string name="accessibility_navigate_to_alby">Přejít na poskytovatele peněženky třetí strany Alby</string>
</resources>

@ -675,6 +675,7 @@ anz der Bedingungen ist erforderlich</string>
<string name="git_repository">Git Repository: %1$s</string>
<string name="git_web_address">Internet:</string>
<string name="git_clone_address">Klonen:</string>
<string name="existed_since">OTS: %1$s</string>
<string name="ots_info_title">Zeitstempel Beweis</string>
<string name="ots_info_description">Es gibt einen Beweis, dass dieser Beitrag irgendwann vor %1$s signiert wurde. Der Beweis wurde zu diesem Datum und Uhrzeit in der Bitcoin-Blockchain gestempelt.</string>
<string name="edit_post">Beitrag bearbeiten</string>
@ -682,4 +683,13 @@ anz der Bedingungen ist erforderlich</string>
<string name="message_to_author">Zusammenfassung der Änderungen</string>
<string name="message_to_author_placeholder">Schnelle Korrekturen…</string>
<string name="accept_the_suggestion">Den Vorschlag annehmen</string>
<string name="accessibility_download_for_offline">Herunterladen</string>
<string name="accessibility_lyrics_on">Liedtext an</string>
<string name="accessibility_lyrics_off">Liedtext aus</string>
<string name="accessibility_turn_on_sealed_message">Versiegelte Nachricht aus. Klicken Sie, um die versiegelte Nachricht einzuschalten</string>
<string name="accessibility_turn_off_sealed_message">Versiegelte Nachricht an. Klicken Sie, um die versiegelte Nachricht auszuschalten</string>
<string name="accessibility_send">Senden</string>
<string name="accessibility_play_username">Benutzernamen als Audio abspielen</string>
<string name="accessibility_scan_qr_code">QR-Code scannen</string>
<string name="accessibility_navigate_to_alby">Navigieren Sie zum Drittanbieter-Wallet-Anbieter Alby</string>
</resources>

@ -50,6 +50,7 @@
<string name="boosted">impulsionado</string>
<string name="edited">editado</string>
<string name="edited_number">edição #%1$s</string>
<string name="original">original</string>
<string name="quote">Citar</string>
<string name="fork">Garfo</string>
<string name="propose_an_edit">Propor uma Edição</string>
@ -669,6 +670,7 @@
<string name="git_repository">Repositório Git: %1$s</string>
<string name="git_web_address">Site:</string>
<string name="git_clone_address">Clonar:</string>
<string name="existed_since">OTS: %1$s</string>
<string name="ots_info_title">Prova de Carimbo de data/hora</string>
<string name="ots_info_description">Há prova de que esta postagem foi assinada antes de %1$s. A prova foi carimbada no blockchain do Bitcoin naquela data e hora.</string>
<string name="edit_post">Editar postagem</string>
@ -676,4 +678,13 @@
<string name="message_to_author">Resumo das alterações</string>
<string name="message_to_author_placeholder">Correções rápidas…</string>
<string name="accept_the_suggestion">Aceitar a Sugestão</string>
<string name="accessibility_download_for_offline">Baixar</string>
<string name="accessibility_lyrics_on">Letras ligadas</string>
<string name="accessibility_lyrics_off">Letras desligadas</string>
<string name="accessibility_turn_on_sealed_message">Mensagem selada desligada. Clique para ligar a mensagem selada</string>
<string name="accessibility_turn_off_sealed_message">Mensagem selada ligada. Clique para desligar a mensagem selada</string>
<string name="accessibility_send">Enviar</string>
<string name="accessibility_play_username">Reproduzir nome de usuário como áudio</string>
<string name="accessibility_scan_qr_code">Escanear código QR</string>
<string name="accessibility_navigate_to_alby">Navegar para o provedor de carteira de terceiros Alby</string>
</resources>

@ -50,6 +50,7 @@
<string name="boosted">boostad</string>
<string name="edited">redigerat</string>
<string name="edited_number">redigering #%1$s</string>
<string name="original">original</string>
<string name="quote">Citera</string>
<string name="fork">Förgrening</string>
<string name="propose_an_edit">Föreslå en redigering</string>
@ -668,6 +669,7 @@
<string name="git_repository">Git Repository: %1$s</string>
<string name="git_web_address">Webbplats:</string>
<string name="git_clone_address">Klona:</string>
<string name="existed_since">OTS: %1$s</string>
<string name="ots_info_title">Tidsstämpel Bevis</string>
<string name="ots_info_description">Det finns bevis på att detta inlägg signerades någon gång före %1$s. Beviset stämplades i Bitcoin-blockchainen vid det datumet och den tiden.</string>
<string name="edit_post">Redigera inlägg</string>
@ -675,4 +677,13 @@
<string name="message_to_author">Sammanfattning av ändringar</string>
<string name="message_to_author_placeholder">Snabba fixar…</string>
<string name="accept_the_suggestion">Acceptera förslaget</string>
<string name="accessibility_download_for_offline">Ladda ner</string>
<string name="accessibility_lyrics_on">Undertexter på</string>
<string name="accessibility_lyrics_off">Undertexter av</string>
<string name="accessibility_turn_on_sealed_message">Förseglat meddelande av. Klicka för att slå på förseglat meddelande</string>
<string name="accessibility_turn_off_sealed_message">Förseglat meddelande på. Klicka för att stänga av förseglat meddelande</string>
<string name="accessibility_send">Skicka</string>
<string name="accessibility_play_username">Spela upp användarnamn som ljud</string>
<string name="accessibility_scan_qr_code">Skanna QR-kod</string>
<string name="accessibility_navigate_to_alby">Navigera till tredjeparts plånboksleverantören Alby</string>
</resources>

@ -802,4 +802,14 @@
<string name="message_to_author_placeholder">Quick fixes…</string>
<string name="accept_the_suggestion">Accept the Suggestion</string>
<string name="accessibility_download_for_offline">Download</string>
<string name="accessibility_lyrics_on">Lyrics on</string>
<string name="accessibility_lyrics_off">Lyrics off</string>
<string name="accessibility_turn_on_sealed_message">Sealed message off. Click to turn on sealed message</string>
<string name="accessibility_turn_off_sealed_message">Sealed message on. Click to turn off sealed message</string>
<string name="accessibility_send">Send</string>
<string name="accessibility_play_username">Play username as audio</string>
<string name="accessibility_scan_qr_code">Scan QR code</string>
<string name="accessibility_navigate_to_alby">Navigate to the third-party wallet provider Alby</string>
</resources>