Correct imePadding of the NewPostView

This commit is contained in:
Vitor Pamplona 2023-08-23 17:08:46 -04:00
parent e9b235f748
commit 4d85a2f6fb
19 changed files with 317 additions and 283 deletions

View File

@ -120,7 +120,7 @@ fun JoinUserOrChannelView(searchBarViewModel: SearchBarViewModel, onClose: () ->
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
searchBarViewModel.clear() searchBarViewModel.clear()
NostrSearchEventOrUserDataSource.clear() NostrSearchEventOrUserDataSource.clear()
onClose() onClose()

View File

@ -51,7 +51,7 @@ fun NewChannelView(onClose: () -> Unit, accountViewModel: AccountViewModel, chan
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
postViewModel.clear() postViewModel.clear()
onClose() onClose()
}) })

View File

@ -123,7 +123,7 @@ fun NewMediaView(uri: Uri, onClose: () -> Unit, postViewModel: NewMediaModel, ac
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
postViewModel.cancel() postViewModel.cancel()
onClose() onClose()
}) })

View File

@ -98,6 +98,7 @@ import com.vitorpamplona.amethyst.ui.theme.QuoteBorder
import com.vitorpamplona.amethyst.ui.theme.Size10dp import com.vitorpamplona.amethyst.ui.theme.Size10dp
import com.vitorpamplona.amethyst.ui.theme.Size5dp import com.vitorpamplona.amethyst.ui.theme.Size5dp
import com.vitorpamplona.amethyst.ui.theme.StdHorzSpacer import com.vitorpamplona.amethyst.ui.theme.StdHorzSpacer
import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer
import com.vitorpamplona.amethyst.ui.theme.mediumImportanceLink import com.vitorpamplona.amethyst.ui.theme.mediumImportanceLink
import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.amethyst.ui.theme.placeholderText
import com.vitorpamplona.amethyst.ui.theme.replyModifier import com.vitorpamplona.amethyst.ui.theme.replyModifier
@ -165,11 +166,6 @@ fun NewPostView(
dismissOnClickOutside = false, dismissOnClickOutside = false,
decorFitsSystemWindows = false decorFitsSystemWindows = false
) )
) {
Surface(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
) { ) {
if (showRelaysDialog) { if (showRelaysDialog) {
RelaySelectionDialog( RelaySelectionDialog(
@ -185,26 +181,18 @@ fun NewPostView(
) )
} }
Column( Scaffold(
topBar = {
TopAppBar(
title = {
Row(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.fillMaxHeight() .padding(end = 10.dp),
) {
Column(
modifier = Modifier
.padding(start = 10.dp, end = 10.dp, top = 10.dp)
.imePadding()
.weight(1f)
) {
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { Spacer(modifier = StdHorzSpacer)
postViewModel.cancel()
onClose()
})
Box { Box {
IconButton( IconButton(
@ -231,7 +219,40 @@ fun NewPostView(
isActive = postViewModel.canPost() isActive = postViewModel.canPost()
) )
} }
},
navigationIcon = {
Spacer(modifier = StdHorzSpacer)
CloseButton(onPress = {
postViewModel.cancel()
onClose()
})
},
backgroundColor = MaterialTheme.colors.surface,
elevation = 0.dp
)
}
) { pad ->
Surface(
modifier = Modifier
.padding(
start = Size10dp,
top = pad.calculateTopPadding(),
end = Size10dp,
bottom = pad.calculateBottomPadding()
)
.fillMaxSize()
) {
Column(
modifier = Modifier
.fillMaxWidth()
.fillMaxHeight()
) {
Column(
modifier = Modifier
.padding(top = 10.dp)
.imePadding()
.weight(1f)
) {
Row( Row(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
@ -243,6 +264,7 @@ fun NewPostView(
.verticalScroll(scrollState) .verticalScroll(scrollState)
) { ) {
postViewModel.originalNote?.let { postViewModel.originalNote?.let {
Row(Modifier.heightIn(max = 200.dp)) {
NoteCompose( NoteCompose(
baseNote = it, baseNote = it,
makeItShort = true, makeItShort = true,
@ -252,11 +274,15 @@ fun NewPostView(
accountViewModel = accountViewModel, accountViewModel = accountViewModel,
nav = nav nav = nav
) )
Spacer(modifier = StdVertSpacer)
}
} }
Row() {
Notifying(postViewModel.mentions?.toImmutableList()) { Notifying(postViewModel.mentions?.toImmutableList()) {
postViewModel.removeFromReplyList(it) postViewModel.removeFromReplyList(it)
} }
}
if (enableMessageInterface) { if (enableMessageInterface) {
Row( Row(
@ -480,6 +506,7 @@ fun NewPostView(
} }
} }
} }
}
} }
@Composable @Composable
@ -1159,10 +1186,10 @@ private fun MarkAsSensitive(
} }
@Composable @Composable
fun CloseButton(onCancel: () -> Unit) { fun CloseButton(onPress: () -> Unit) {
Button( Button(
onClick = { onClick = {
onCancel() onPress()
}, },
shape = ButtonBorder, shape = ButtonBorder,
colors = ButtonDefaults colors = ButtonDefaults

View File

@ -129,7 +129,7 @@ fun NewRelayListView(onClose: () -> Unit, accountViewModel: AccountViewModel, re
}, },
navigationIcon = { navigationIcon = {
Spacer(modifier = StdHorzSpacer) Spacer(modifier = StdHorzSpacer)
CloseButton(onCancel = { CloseButton(onPress = {
postViewModel.clear() postViewModel.clear()
onClose() onClose()
}) })

View File

@ -67,7 +67,7 @@ fun NewUserMetadataView(onClose: () -> Unit, account: Account) {
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
postViewModel.clear() postViewModel.clear()
onClose() onClose()
}) })

View File

@ -74,7 +74,7 @@ fun RelayInformationDialog(
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
onClose() onClose()
}) })
} }

View File

@ -110,7 +110,7 @@ fun RelaySelectionDialog(
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton( CloseButton(
onCancel = { onPress = {
onClose() onClose()
} }
) )

View File

@ -663,7 +663,7 @@ fun ZoomableImageDialog(
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = onDismiss) CloseButton(onPress = onDismiss)
val myContent = allImages[pagerState.currentPage] val myContent = allImages[pagerState.currentPage]
if (myContent is ZoomableUrlContent) { if (myContent is ZoomableUrlContent) {

View File

@ -95,7 +95,7 @@ fun AddBountyAmountDialog(bounty: Note, accountViewModel: AccountViewModel, onCl
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
postViewModel.cancel() postViewModel.cancel()
onClose() onClose()
}) })

View File

@ -484,8 +484,8 @@ fun NormalNote(
) )
} }
is BadgeDefinitionEvent -> BadgeDisplay(baseNote = baseNote) is BadgeDefinitionEvent -> BadgeDisplay(baseNote = baseNote)
is FileHeaderEvent -> FileHeaderDisplay(baseNote, isQuotedNote, accountViewModel) is FileHeaderEvent -> FileHeaderDisplay(baseNote, isQuotedNote || isBoostedNote, accountViewModel)
is FileStorageHeaderEvent -> FileStorageHeaderDisplay(baseNote, isQuotedNote, accountViewModel) is FileStorageHeaderEvent -> FileStorageHeaderDisplay(baseNote, isQuotedNote || isBoostedNote, accountViewModel)
else -> else ->
LongPressToQuickAction(baseNote = baseNote, accountViewModel = accountViewModel) { showPopup -> LongPressToQuickAction(baseNote = baseNote, accountViewModel = accountViewModel) { showPopup ->
CheckNewAndRenderNote( CheckNewAndRenderNote(
@ -3199,7 +3199,7 @@ private fun RenderBadge(
} }
@Composable @Composable
fun FileHeaderDisplay(note: Note, isQuotedNote: Boolean, accountViewModel: AccountViewModel) { fun FileHeaderDisplay(note: Note, roundedCorner: Boolean, accountViewModel: AccountViewModel) {
val event = (note.event as? FileHeaderEvent) ?: return val event = (note.event as? FileHeaderEvent) ?: return
val fullUrl = event.url() ?: return val fullUrl = event.url() ?: return
@ -3235,18 +3235,18 @@ fun FileHeaderDisplay(note: Note, isQuotedNote: Boolean, accountViewModel: Accou
} }
SensitivityWarning(note = note, accountViewModel = accountViewModel) { SensitivityWarning(note = note, accountViewModel = accountViewModel) {
ZoomableContentView(content = content, roundedCorner = isQuotedNote, accountViewModel = accountViewModel) ZoomableContentView(content = content, roundedCorner = roundedCorner, accountViewModel = accountViewModel)
} }
} }
@Composable @Composable
fun FileStorageHeaderDisplay(baseNote: Note, isQuotedNote: Boolean, accountViewModel: AccountViewModel) { fun FileStorageHeaderDisplay(baseNote: Note, roundedCorner: Boolean, accountViewModel: AccountViewModel) {
val eventHeader = (baseNote.event as? FileStorageHeaderEvent) ?: return val eventHeader = (baseNote.event as? FileStorageHeaderEvent) ?: return
val dataEventId = eventHeader.dataEventId() ?: return val dataEventId = eventHeader.dataEventId() ?: return
LoadNote(baseNoteHex = dataEventId) { contentNote -> LoadNote(baseNoteHex = dataEventId) { contentNote ->
if (contentNote != null) { if (contentNote != null) {
ObserverAndRenderNIP95(baseNote, contentNote, isQuotedNote, accountViewModel) ObserverAndRenderNIP95(baseNote, contentNote, roundedCorner, accountViewModel)
} }
} }
} }
@ -3255,7 +3255,7 @@ fun FileStorageHeaderDisplay(baseNote: Note, isQuotedNote: Boolean, accountViewM
private fun ObserverAndRenderNIP95( private fun ObserverAndRenderNIP95(
header: Note, header: Note,
content: Note, content: Note,
isQuotedNote: Boolean, roundedCorner: Boolean,
accountViewModel: AccountViewModel accountViewModel: AccountViewModel
) { ) {
val eventHeader = (header.event as? FileStorageHeaderEvent) ?: return val eventHeader = (header.event as? FileStorageHeaderEvent) ?: return
@ -3302,7 +3302,7 @@ private fun ObserverAndRenderNIP95(
Crossfade(targetState = content) { Crossfade(targetState = content) {
if (it != null) { if (it != null) {
SensitivityWarning(note = header, accountViewModel = accountViewModel) { SensitivityWarning(note = header, accountViewModel = accountViewModel) {
ZoomableContentView(content = it, roundedCorner = isQuotedNote, accountViewModel = accountViewModel) ZoomableContentView(content = it, roundedCorner = roundedCorner, accountViewModel = accountViewModel)
} }
} }
} }

View File

@ -155,7 +155,7 @@ fun UpdateReactionTypeDialog(
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
postViewModel.cancel() postViewModel.cancel()
onClose() onClose()
}) })

View File

@ -250,7 +250,7 @@ fun UpdateZapAmountDialog(onClose: () -> Unit, nip47uri: String? = null, account
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
postViewModel.cancel() postViewModel.cancel()
onClose() onClose()
}) })

View File

@ -94,7 +94,7 @@ fun ZapCustomDialog(onClose: () -> Unit, accountViewModel: AccountViewModel, bas
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
postViewModel.cancel() postViewModel.cancel()
onClose() onClose()
}) })

View File

@ -61,7 +61,7 @@ fun ShowQRDialog(user: User, onScan: (String) -> Unit, onClose: () -> Unit) {
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = onClose) CloseButton(onPress = onClose)
} }
Column( Column(

View File

@ -70,7 +70,7 @@ fun AccountBackupDialog(account: Account, onClose: () -> Unit) {
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = onClose) CloseButton(onPress = onClose)
} }
Column( Column(

View File

@ -616,7 +616,7 @@ fun NewSubjectView(onClose: () -> Unit, accountViewModel: AccountViewModel, room
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
onClose() onClose()
}) })

View File

@ -56,7 +56,7 @@ fun ConnectOrbotDialog(onClose: () -> Unit, onPost: () -> Unit, portNumber: Muta
verticalAlignment = Alignment.CenterVertically, verticalAlignment = Alignment.CenterVertically,
modifier = Modifier.fillMaxWidth() modifier = Modifier.fillMaxWidth()
) { ) {
CloseButton(onCancel = { CloseButton(onPress = {
onClose() onClose()
}) })

View File

@ -60,6 +60,7 @@ import com.vitorpamplona.amethyst.ui.note.ReplyReaction
import com.vitorpamplona.amethyst.ui.note.ViewCountReaction import com.vitorpamplona.amethyst.ui.note.ViewCountReaction
import com.vitorpamplona.amethyst.ui.note.WatchForReports import com.vitorpamplona.amethyst.ui.note.WatchForReports
import com.vitorpamplona.amethyst.ui.note.ZapReaction import com.vitorpamplona.amethyst.ui.note.ZapReaction
import com.vitorpamplona.amethyst.ui.note.routeFor
import com.vitorpamplona.amethyst.ui.screen.FeedEmpty import com.vitorpamplona.amethyst.ui.screen.FeedEmpty
import com.vitorpamplona.amethyst.ui.screen.FeedError import com.vitorpamplona.amethyst.ui.screen.FeedError
import com.vitorpamplona.amethyst.ui.screen.FeedState import com.vitorpamplona.amethyst.ui.screen.FeedState
@ -451,8 +452,14 @@ fun ReactionsColumn(baseNote: Note, accountViewModel: AccountViewModel, nav: (St
Spacer(modifier = Modifier.height(8.dp)) Spacer(modifier = Modifier.height(8.dp))
Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(bottom = 75.dp, end = 20.dp)) { Column(horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier.padding(bottom = 75.dp, end = 20.dp)) {
val scope = rememberCoroutineScope()
ReplyReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, iconSize = 40.dp) { ReplyReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, iconSize = 40.dp) {
wantsToReplyTo = baseNote scope.launch {
routeFor(
baseNote,
accountViewModel.userProfile()
)?.let { nav(it) }
}
} }
BoostReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, iconSize = 40.dp) { BoostReaction(baseNote, grayTint = MaterialTheme.colors.onBackground, accountViewModel, iconSize = 40.dp) {
wantsToQuote = baseNote wantsToQuote = baseNote