diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt
index 6691b02ea..b2976ada3 100644
--- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt
+++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AppTopBar.kt
@@ -15,6 +15,8 @@ import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.verticalScroll
import androidx.compose.material.AppBarDefaults
import androidx.compose.material.ContentAlpha
import androidx.compose.material.Divider
@@ -108,6 +110,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.ShowVideoStreaming
import com.vitorpamplona.amethyst.ui.screen.loggedIn.SpinnerSelectionDialog
import com.vitorpamplona.amethyst.ui.theme.BottomTopHeight
import com.vitorpamplona.amethyst.ui.theme.DoubleHorzSpacer
+import com.vitorpamplona.amethyst.ui.theme.HalfVertSpacer
import com.vitorpamplona.amethyst.ui.theme.HeaderPictureModifier
import com.vitorpamplona.amethyst.ui.theme.Size22Modifier
import com.vitorpamplona.amethyst.ui.theme.Size34dp
@@ -231,7 +234,9 @@ private fun CommunityTopBar(
ShortCommunityHeader(baseNote, fontWeight = FontWeight.Medium, accountViewModel, nav)
},
extendableRow = {
- LongCommunityHeader(baseNote = baseNote, accountViewModel = accountViewModel, nav = nav)
+ Column(Modifier.verticalScroll(rememberScrollState())) {
+ LongCommunityHeader(baseNote = baseNote, accountViewModel = accountViewModel, nav = nav)
+ }
},
popBack = navPopBack
)
@@ -698,6 +703,7 @@ fun FlexibleTopBarWithBackButton(
},
actions = {}
)
+ Spacer(modifier = HalfVertSpacer)
Divider(thickness = 0.25.dp)
}
}
diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt
index 6ef5f5c5d..aca280ee8 100644
--- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt
+++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt
@@ -23,9 +23,11 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.CutCornerShape
import androidx.compose.foundation.text.ClickableText
+import androidx.compose.foundation.verticalScroll
import androidx.compose.material.Button
import androidx.compose.material.ButtonDefaults
import androidx.compose.material.Divider
@@ -536,7 +538,14 @@ fun CommunityHeader(
)
if (expanded.value) {
- LongCommunityHeader(baseNote = baseNote, lineModifier = modifier, accountViewModel = accountViewModel, nav = nav)
+ Column(Modifier.verticalScroll(rememberScrollState())) {
+ LongCommunityHeader(
+ baseNote = baseNote,
+ lineModifier = modifier,
+ accountViewModel = accountViewModel,
+ nav = nav
+ )
+ }
}
}
@@ -561,8 +570,25 @@ fun LongCommunityHeader(
Row(
lineModifier
) {
+ val rulesLabel = stringResource(id = R.string.rules)
val summary = remember(noteState) {
- noteEvent.description()?.ifBlank { null }
+ val subject = noteEvent.subject()?.ifEmpty { null }
+ val body = noteEvent.description()?.ifBlank { null }
+ val rules = noteEvent.rules()?.ifBlank { null }
+
+ if (!subject.isNullOrBlank() && body?.split("\n")?.get(0)?.contains(subject) == false) {
+ if (rules == null) {
+ "## $subject\n$body"
+ } else {
+ "## $subject\n$body\n\n## $rulesLabel\n\n$rules"
+ }
+ } else {
+ if (rules == null) {
+ body
+ } else {
+ "$body\n\n$rulesLabel\n$rules"
+ }
+ }
}
Column(
@@ -596,31 +622,6 @@ fun LongCommunityHeader(
}
}
- val rules = remember(noteState) {
- noteEvent.rules()?.ifBlank { null }
- }
-
- rules?.let {
- Row(
- lineModifier
- ) {
- val defaultBackground = MaterialTheme.colors.background
- val background = remember {
- mutableStateOf(defaultBackground)
- }
- val tags = remember(noteEvent) { noteEvent.tags().toImmutableListOfLists() }
-
- TranslatableRichTextViewer(
- content = it,
- canPreview = false,
- tags = tags,
- backgroundColor = background,
- accountViewModel = accountViewModel,
- nav = nav
- )
- }
- }
-
Row(
lineModifier,
verticalAlignment = Alignment.CenterVertically
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 834c4a682..9d1c8d733 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -548,4 +548,5 @@
Copy Note ID to clipboard
Created at
+ Rules