refactor: use getRelativeTimeSpanString for message TS

Signed-off-by: Infi <wingit@geist.ga>
This commit is contained in:
Infi 2023-08-31 15:00:30 +05:00
parent 6232b435e5
commit c2888a70d3
1 changed files with 9 additions and 20 deletions

View File

@ -2,11 +2,10 @@ package chat.revolt.components.chat
import android.content.Intent import android.content.Intent
import android.icu.text.DateFormat import android.icu.text.DateFormat
import android.icu.text.RelativeDateTimeFormatter
import android.net.Uri import android.net.Uri
import android.os.Build
import android.text.SpannableStringBuilder import android.text.SpannableStringBuilder
import android.text.TextUtils import android.text.TextUtils
import android.text.format.DateUtils
import android.widget.Toast import android.widget.Toast
import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts import androidx.activity.result.contract.ActivityResultContracts
@ -123,29 +122,19 @@ fun viewAttachmentInBrowser(ctx: android.content.Context, attachment: AutumnReso
fun formatLongAsTime( fun formatLongAsTime(
time: Long, time: Long
context: android.content.Context,
): String { ): String {
val date = java.util.Date(time) val date = java.util.Date(time)
val withinLastWeek = System.currentTimeMillis() - time < 604800000 val withinLastWeek = System.currentTimeMillis() - time < 604800000
return if (withinLastWeek) { return if (withinLastWeek) {
val howManyDays = (System.currentTimeMillis() - time) / 86400000 val relativeDate = DateUtils.getRelativeTimeSpanString(
time,
val relativeDate = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { System.currentTimeMillis(),
RelativeDateTimeFormatter.getInstance() DateUtils.DAY_IN_MILLIS,
.format( DateUtils.FORMAT_ABBREV_ALL
-howManyDays.toDouble(), )
RelativeDateTimeFormatter.RelativeDateTimeUnit.DAY
)
} else {
when (howManyDays.toInt()) {
0 -> context.getString(R.string.today)
1 -> context.getString(R.string.yesterday)
else -> context.getString(R.string.x_days_ago, howManyDays)
}
}
val relativeTime = DateFormat.getTimeInstance(DateFormat.SHORT).format(date) val relativeTime = DateFormat.getTimeInstance(DateFormat.SHORT).format(date)
"$relativeDate $relativeTime" "$relativeDate $relativeTime"
@ -271,7 +260,7 @@ fun Message(
Spacer(modifier = Modifier.width(5.dp)) Spacer(modifier = Modifier.width(5.dp))
Text( Text(
text = formatLongAsTime(ULID.asTimestamp(message.id!!), context), text = formatLongAsTime(ULID.asTimestamp(message.id!!)),
fontSize = 12.sp, fontSize = 12.sp,
color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.5f), color = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.5f),
maxLines = 1, maxLines = 1,