mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-24 13:08:46 +00:00
Fix timezone weirdness with scheduled messages.
This commit is contained in:
@@ -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()) {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user