diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java index 70d9d1d7e3..8fbde58284 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/ConversationItemFooter.java @@ -317,7 +317,7 @@ public class ConversationItemFooter extends ConstraintLayout { } else if (messageRecord.isRateLimited()) { dateView.setText(R.string.ConversationItem_send_paused); } else if (MessageRecordUtil.isScheduled(messageRecord)) { - dateView.setText(DateUtils.getOnlyTimeString(getContext(), locale, ((MmsMessageRecord) messageRecord).getScheduledDate())); + dateView.setText(DateUtils.getOnlyTimeString(getContext(), ((MmsMessageRecord) messageRecord).getScheduledDate())); } else { long timestamp = messageRecord.getTimestamp(); if (messageRecord.isEditMessage()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/CallPreference.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/CallPreference.kt index c34dc91616..aece9c00fb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/CallPreference.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/CallPreference.kt @@ -11,7 +11,6 @@ import org.thoughtcrime.securesms.util.adapter.mapping.BindingFactory import org.thoughtcrime.securesms.util.adapter.mapping.BindingViewHolder import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel -import java.util.Locale /** * Renders a single call preference row when displaying call info. @@ -82,7 +81,7 @@ object CallPreference { } private fun getCallTime(messageRecord: MessageRecord): String { - return DateUtils.getOnlyTimeString(context, Locale.getDefault(), messageRecord.timestamp) + return DateUtils.getOnlyTimeString(context, messageRecord.timestamp) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationMessage.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationMessage.java index 8d5d35347e..9fcd3ac98d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationMessage.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationMessage.java @@ -161,7 +161,7 @@ public class ConversationMessage { } public static @NonNull FormattedDate getFormattedDate(@NonNull Context context, @NonNull MessageRecord messageRecord) { - return MessageRecordUtil.isScheduled(messageRecord) ? new FormattedDate(false, DateUtils.getOnlyTimeString(context, Locale.getDefault(), ((MmsMessageRecord) messageRecord).getScheduledDate())) + return MessageRecordUtil.isScheduled(messageRecord) ? new FormattedDate(false, DateUtils.getOnlyTimeString(context, ((MmsMessageRecord) messageRecord).getScheduledDate())) : DateUtils.getDatelessRelativeTimeSpanFormattedDate(context, Locale.getDefault(), messageRecord.getTimestamp()); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduleMessageContextMenu.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduleMessageContextMenu.kt index 9828c29de5..53d718dc8b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduleMessageContextMenu.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduleMessageContextMenu.kt @@ -10,7 +10,6 @@ import org.thoughtcrime.securesms.components.menu.SignalContextMenu import org.thoughtcrime.securesms.util.DateUtils import org.thoughtcrime.securesms.util.toLocalDateTime import org.thoughtcrime.securesms.util.toMillis -import java.util.Locale class ScheduleMessageContextMenu { @@ -24,7 +23,7 @@ class ScheduleMessageContextMenu { val scheduledTimes = getNextScheduleTimes(currentTime) val actionItems = scheduledTimes.map { if (it > 0) { - ActionItem(getIconForTime(it), DateUtils.getScheduledMessageDateString(anchor.context, Locale.getDefault(), it)) { + ActionItem(getIconForTime(it), DateUtils.getScheduledMessageDateString(anchor.context, it)) { action(it) } } else { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/DateUtils.kt b/app/src/main/java/org/thoughtcrime/securesms/util/DateUtils.kt index 042915cc9e..6db505a07e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/DateUtils.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/util/DateUtils.kt @@ -26,7 +26,6 @@ import org.thoughtcrime.securesms.conversation.v2.computed.FormattedDate import java.text.DateFormatSymbols import java.text.ParseException import java.text.SimpleDateFormat -import java.util.Calendar import java.util.Date import java.util.Locale import java.util.concurrent.TimeUnit @@ -139,7 +138,7 @@ object DateUtils : android.text.format.DateUtils() { FormattedDate(true, context.resources.getString(R.string.DateUtils_minutes_ago, minutes)) } else -> { - FormattedDate(false, getOnlyTimeString(context, locale, timestamp)) + FormattedDate(false, getOnlyTimeString(context, timestamp)) } } } @@ -152,9 +151,8 @@ object DateUtils : android.text.format.DateUtils() { * For 24 hour locale: 19:23 */ @JvmStatic - fun getOnlyTimeString(context: Context, locale: Locale, timestamp: Long): String { - val format = if (context.is24HourFormat()) "HH:mm" else "hh:mm a" - return timestamp.toDateString(format, locale) + fun getOnlyTimeString(context: Context, timestamp: Long): String { + return timestamp.toLocalTime().formatHours(context) } /** @@ -260,10 +258,11 @@ object DateUtils : android.text.format.DateUtils() { } } - fun getScheduledMessageDateString(context: Context, locale: Locale, timestamp: Long): String { + fun getScheduledMessageDateString(context: Context, timestamp: Long): String { + val localDateTime = timestamp.toLocalDateTime() + val dayModifier: String = if (isToday(timestamp)) { - val calendar = Calendar.getInstance(locale) - if (calendar[Calendar.HOUR_OF_DAY] >= 19) { + if (localDateTime.hour >= 19) { context.getString(R.string.DateUtils_tonight) } else { context.getString(R.string.DateUtils_today) @@ -271,8 +270,7 @@ object DateUtils : android.text.format.DateUtils() { } else { context.getString(R.string.DateUtils_tomorrow) } - val format = if (context.is24HourFormat()) "HH:mm" else "hh:mm a" - val time = timestamp.toDateString(format, locale) + val time = localDateTime.toLocalTime().formatHours(context) return context.getString(R.string.DateUtils_schedule_at, dayModifier, time) }