From 0bb44f2034ecc897c5be714a34eebef7474aa34b Mon Sep 17 00:00:00 2001 From: Christian Ascheberg Date: Wed, 25 Apr 2018 20:44:18 +0200 Subject: [PATCH] Improve disappearing message time strings Fixes #7501 --- res/values/strings.xml | 3 +++ .../securesms/database/model/MessageRecord.java | 7 ++++++- .../securesms/database/model/ThreadRecord.java | 6 +++++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index c73b9a55f4..a17e947240 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -413,6 +413,8 @@ Called %s Missed call from %s %s is on Signal! + You disabled disappearing messages. + %1$s disabled disappearing messages. You set the disappearing message timer to %1$s. %1$s set the disappearing message timer to %2$s. Your safety number with %s has changed. @@ -571,6 +573,7 @@ Missed call Media message %s is on Signal! + Disappearing messages disabled Disappearing message time set to %s Safety number changed Your safety number with %s has changed. diff --git a/src/org/thoughtcrime/securesms/database/model/MessageRecord.java b/src/org/thoughtcrime/securesms/database/model/MessageRecord.java index ab4a9c0b83..436dbe4cea 100644 --- a/src/org/thoughtcrime/securesms/database/model/MessageRecord.java +++ b/src/org/thoughtcrime/securesms/database/model/MessageRecord.java @@ -105,7 +105,12 @@ public abstract class MessageRecord extends DisplayRecord { } else if (isJoined()) { return new SpannableString(context.getString(R.string.MessageRecord_s_joined_signal, getIndividualRecipient().toShortString())); } else if (isExpirationTimerUpdate()) { - String time = ExpirationUtil.getExpirationDisplayValue(context, (int)(getExpiresIn() / 1000)); + int seconds = (int)(getExpiresIn() / 1000); + if (seconds <= 0) { + return isOutgoing() ? new SpannableString(context.getString(R.string.MessageRecord_you_disabled_disappearing_messages)) + : new SpannableString(context.getString(R.string.MessageRecord_s_disabled_disappearing_messages, getIndividualRecipient().toShortString())); + } + String time = ExpirationUtil.getExpirationDisplayValue(context, seconds); return isOutgoing() ? new SpannableString(context.getString(R.string.MessageRecord_you_set_disappearing_message_time_to_s, time)) : new SpannableString(context.getString(R.string.MessageRecord_s_set_disappearing_message_time_to_s, getIndividualRecipient().toShortString(), time)); } else if (isIdentityUpdate()) { diff --git a/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java b/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java index e0e1c6aa87..2bc29f5137 100644 --- a/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java +++ b/src/org/thoughtcrime/securesms/database/model/ThreadRecord.java @@ -98,7 +98,11 @@ public class ThreadRecord extends DisplayRecord { } else if (SmsDatabase.Types.isJoinedType(type)) { return emphasisAdded(context.getString(R.string.ThreadRecord_s_is_on_signal, getRecipient().toShortString())); } else if (SmsDatabase.Types.isExpirationTimerUpdate(type)) { - String time = ExpirationUtil.getExpirationDisplayValue(context, (int) (getExpiresIn() / 1000)); + int seconds = (int)(getExpiresIn() / 1000); + if (seconds <= 0) { + return emphasisAdded(context.getString(R.string.ThreadRecord_disappearing_messages_disabled)); + } + String time = ExpirationUtil.getExpirationDisplayValue(context, seconds); return emphasisAdded(context.getString(R.string.ThreadRecord_disappearing_message_time_updated_to_s, time)); } else if (SmsDatabase.Types.isIdentityUpdate(type)) { if (getRecipient().isGroupRecipient()) return emphasisAdded(context.getString(R.string.ThreadRecord_safety_number_changed));