diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailScreen.kt index 5a634ce57..4a1286967 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/communitydetail/CommunityDetailScreen.kt @@ -847,7 +847,8 @@ class CommunityDetailScreen( is PostModel -> { RawContentDialog( title = content.title, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, url = content.url, text = content.text, onDismiss = { @@ -874,7 +875,8 @@ class CommunityDetailScreen( is CommentModel -> { RawContentDialog( text = content.text, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, onDismiss = { rawContent = null }, diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/createcomment/CreateCommentScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/createcomment/CreateCommentScreen.kt index 36e3d3629..3410a5394 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/createcomment/CreateCommentScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/createcomment/CreateCommentScreen.kt @@ -374,7 +374,8 @@ class CreateCommentScreen( is PostModel -> { RawContentDialog( title = content.title, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, url = content.url, text = content.text, onDismiss = { @@ -386,7 +387,8 @@ class CreateCommentScreen( is CommentModel -> { RawContentDialog( text = content.text, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, onDismiss = { rawContent = null }, diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/modals/RawContentDialog.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/modals/RawContentDialog.kt index 7a02bb292..a9b069f20 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/modals/RawContentDialog.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/modals/RawContentDialog.kt @@ -13,6 +13,7 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.text.selection.SelectionContainer import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Edit import androidx.compose.material.icons.filled.Schedule import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button @@ -37,11 +38,11 @@ import com.github.diegoberaldin.raccoonforlemmy.core.utils.share.getShareHelper import com.github.diegoberaldin.raccoonforlemmy.resources.MR import dev.icerock.moko.resources.compose.stringResource - @OptIn(ExperimentalMaterial3Api::class) @Composable fun RawContentDialog( - date: String? = null, + publishDate: String? = null, + updateDate: String? = null, title: String? = null, url: String? = null, text: String? = null, @@ -169,7 +170,7 @@ fun RawContentDialog( } } - date?.takeIf { it.trim().isNotEmpty() }?.also { + publishDate?.takeIf { it.trim().isNotEmpty() }?.also { item { Row( verticalAlignment = Alignment.CenterVertically, @@ -192,6 +193,29 @@ fun RawContentDialog( } } } + updateDate?.takeIf { it.trim().isNotEmpty() }?.also { + item { + Row( + verticalAlignment = Alignment.CenterVertically, + horizontalArrangement = Arrangement.spacedBy(Spacing.xxs), + ) { + Icon( + modifier = Modifier.size(IconSize.m).padding(4.5.dp), + imageVector = Icons.Default.Edit, + contentDescription = null, + tint = MaterialTheme.colorScheme.onBackground, + ) + Text( + modifier = Modifier.weight(1f), + text = it, + style = MaterialTheme.typography.bodyMedium.copy( + fontFamily = FontFamily.Monospace, + ), + color = MaterialTheme.colorScheme.onBackground, + ) + } + } + } } Button( onClick = { diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/postdetail/PostDetailScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/postdetail/PostDetailScreen.kt index b97437195..09fb0134c 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/postdetail/PostDetailScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/postdetail/PostDetailScreen.kt @@ -1156,7 +1156,8 @@ class PostDetailScreen( is PostModel -> { RawContentDialog( title = content.title, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, url = content.url, text = content.text, onDismiss = { @@ -1183,7 +1184,8 @@ class PostDetailScreen( is CommentModel -> { RawContentDialog( text = content.text, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, onDismiss = { rawContent = null }, diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/reportlist/ReportListScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/reportlist/ReportListScreen.kt index b4619f11b..dafe80eaf 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/reportlist/ReportListScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/reportlist/ReportListScreen.kt @@ -457,7 +457,8 @@ class ReportListScreen( is PostReportModel -> { RawContentDialog( title = content.originalTitle, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, url = content.originalUrl, text = content.originalText, onDismiss = { @@ -468,7 +469,8 @@ class ReportListScreen( is CommentReportModel -> { RawContentDialog( - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, text = content.originalText, onDismiss = { rawContent = null diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/saveditems/SavedItemsScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/saveditems/SavedItemsScreen.kt index a9a787ca7..eec5d88de 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/saveditems/SavedItemsScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/saveditems/SavedItemsScreen.kt @@ -458,8 +458,10 @@ class SavedItemsScreen : Screen { if (rawContent != null) { when (val content = rawContent) { is PostModel -> { - RawContentDialog(title = content.title, - date = content.publishDate, + RawContentDialog( + title = content.title, + publishDate = content.publishDate, + updateDate = content.updateDate, url = content.url, text = content.text, onDismiss = { @@ -468,7 +470,8 @@ class SavedItemsScreen : Screen { onQuote = { quotation -> rawContent = null if (quotation != null) { - val screen = CreateCommentScreen(originalPost = content, + val screen = CreateCommentScreen( + originalPost = content, initialText = buildString { append("> ") append(quotation) @@ -480,20 +483,26 @@ class SavedItemsScreen : Screen { } is CommentModel -> { - RawContentDialog(text = content.text, date = content.publishDate, onDismiss = { - rawContent = null - }, onQuote = { quotation -> - rawContent = null - if (quotation != null) { - val screen = CreateCommentScreen(originalComment = content, - initialText = buildString { - append("> ") - append(quotation) - append("\n\n") - }) - navigationCoordinator.showBottomSheet(screen) + RawContentDialog( + text = content.text, + publishDate = content.publishDate, + updateDate = content.updateDate, + onDismiss = { + rawContent = null + }, + onQuote = { quotation -> + rawContent = null + if (quotation != null) { + val screen = CreateCommentScreen(originalComment = content, + initialText = buildString { + append("> ") + append(quotation) + append("\n\n") + }) + navigationCoordinator.showBottomSheet(screen) + } } - }) + ) } } } diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailScreen.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailScreen.kt index 2f5f00e6c..63492da6d 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailScreen.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/userdetail/UserDetailScreen.kt @@ -836,7 +836,8 @@ class UserDetailScreen( is PostModel -> { RawContentDialog( title = content.title, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, url = content.url, text = content.text, onDismiss = { @@ -863,7 +864,8 @@ class UserDetailScreen( is CommentModel -> { RawContentDialog( text = content.text, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, onDismiss = { rawContent = null }, diff --git a/core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/datetime/DateTime.kt b/core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/datetime/DateTime.kt index df96bc381..90b1a17bf 100644 --- a/core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/datetime/DateTime.kt +++ b/core-utils/src/androidMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/utils/datetime/DateTime.kt @@ -31,12 +31,12 @@ actual object DateTime { val delta = Period.between(date.toLocalDate(), now.toLocalDate()) val years = delta.years val months = delta.months - val days = delta.days val nowSeconds = now.toEpochSecond() val dateSeconds = date.toEpochSecond() val diffSeconds = (nowSeconds - dateSeconds) - val hours = (diffSeconds % 86400) / 3600 - val minutes = (diffSeconds % 3600) / 60 + val days = diffSeconds / 86400 + val hours = ((diffSeconds % 86400) / 3600) % 24 + val minutes = ((diffSeconds % 3600) / 60) % 60 val seconds = diffSeconds % 60 return when { years >= 1 -> buildString { diff --git a/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListScreen.kt b/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListScreen.kt index 7e1e5e216..93d1b820a 100644 --- a/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListScreen.kt +++ b/feature-home/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/home/postlist/PostListScreen.kt @@ -564,7 +564,8 @@ class PostListScreen : Screen { is PostModel -> { RawContentDialog( title = content.title, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, url = content.url, text = content.text, onDismiss = { diff --git a/feature-profile/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/profile/logged/ProfileLoggedScreen.kt b/feature-profile/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/profile/logged/ProfileLoggedScreen.kt index c6f1f7383..42aa2c08c 100644 --- a/feature-profile/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/profile/logged/ProfileLoggedScreen.kt +++ b/feature-profile/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/feature/profile/logged/ProfileLoggedScreen.kt @@ -454,7 +454,8 @@ internal object ProfileLoggedScreen : Tab { is PostModel -> { RawContentDialog( title = content.title, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, url = content.url, text = content.text, onDismiss = { @@ -481,7 +482,8 @@ internal object ProfileLoggedScreen : Tab { is CommentModel -> { RawContentDialog( text = content.text, - date = content.publishDate, + publishDate = content.publishDate, + updateDate = content.updateDate, onDismiss = { rawContent = null },