diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java b/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java
index 3b61bcd3c6..b5b0aea20c 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java
+++ b/app/src/main/java/org/thoughtcrime/securesms/database/model/MessageRecord.java
@@ -120,7 +120,7 @@ public abstract class MessageRecord extends DisplayRecord {
return new SpannableString(UpdateMessageBuilder.INSTANCE.buildGroupUpdateMessage(context, updateMessageData, getIndividualRecipient().getAddress().serialize(), isOutgoing()));
} else if (isExpirationTimerUpdate()) {
int seconds = (int) (getExpiresIn() / 1000);
- return new SpannableString(UpdateMessageBuilder.INSTANCE.buildExpirationTimerMessage(context, seconds, getIndividualRecipient().getAddress().serialize(), getThreadId(), isOutgoing(), getTimestamp(), expireStarted));
+ return new SpannableString(UpdateMessageBuilder.INSTANCE.buildExpirationTimerMessage(context, seconds, getRecipient(), getIndividualRecipient().getAddress().serialize(), isOutgoing(), getTimestamp(), expireStarted));
} else if (isDataExtractionNotification()) {
if (isScreenshotNotification()) return new SpannableString((UpdateMessageBuilder.INSTANCE.buildDataExtractionMessage(context, DataExtractionNotificationInfoMessage.Kind.SCREENSHOT, getIndividualRecipient().getAddress().serialize())));
else if (isMediaSavedNotification()) return new SpannableString((UpdateMessageBuilder.INSTANCE.buildDataExtractionMessage(context, DataExtractionNotificationInfoMessage.Kind.MEDIA_SAVED, getIndividualRecipient().getAddress().serialize())));
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ab8d322b8f..55ff86510d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1046,7 +1046,7 @@
Navigate Back
Close Dialog
Disappearing Messages
- This setting applies to everyone in this conversation.
+ This setting applies to messages you send in this conversation.
Original version of disappearing messages.
Legacy
Messages disappear after they have been sent.
diff --git a/libsession/src/main/java/org/session/libsession/messaging/utilities/UpdateMessageBuilder.kt b/libsession/src/main/java/org/session/libsession/messaging/utilities/UpdateMessageBuilder.kt
index bc76fff841..82c0a0a1be 100644
--- a/libsession/src/main/java/org/session/libsession/messaging/utilities/UpdateMessageBuilder.kt
+++ b/libsession/src/main/java/org/session/libsession/messaging/utilities/UpdateMessageBuilder.kt
@@ -1,7 +1,6 @@
package org.session.libsession.messaging.utilities
import android.content.Context
-import network.loki.messenger.libsession_util.util.ExpiryMode
import org.session.libsession.R
import org.session.libsession.messaging.MessagingModuleConfiguration
import org.session.libsession.messaging.calls.CallMessageType
@@ -10,10 +9,11 @@ import org.session.libsession.messaging.calls.CallMessageType.CALL_INCOMING
import org.session.libsession.messaging.calls.CallMessageType.CALL_MISSED
import org.session.libsession.messaging.calls.CallMessageType.CALL_OUTGOING
import org.session.libsession.messaging.contacts.Contact
-import org.session.libsession.messaging.messages.ExpirationConfiguration
+import org.session.libsession.messaging.messages.ExpirationConfiguration.Companion.isNewConfigEnabled
import org.session.libsession.messaging.sending_receiving.data_extraction.DataExtractionNotificationInfoMessage
import org.session.libsession.utilities.ExpirationUtil
import org.session.libsession.utilities.getExpirationTypeDisplayValue
+import org.session.libsession.utilities.recipients.Recipient
import org.session.libsession.utilities.truncateIdForDisplay
object UpdateMessageBuilder {
@@ -79,8 +79,8 @@ object UpdateMessageBuilder {
fun buildExpirationTimerMessage(
context: Context,
duration: Long,
+ recipient: Recipient,
senderId: String? = null,
- threadId: Long,
isOutgoing: Boolean = false,
timestamp: Long,
expireStarted: Long
@@ -89,34 +89,30 @@ object UpdateMessageBuilder {
val senderName = if (isOutgoing) context.getString(R.string.MessageRecord_you) else getSenderName(senderId!!)
return if (duration <= 0) {
if (isOutgoing) {
- if (ExpirationConfiguration.isNewConfigEnabled) {
- context.getString(R.string.MessageRecord_you_turned_off_disappearing_messages)
- } else {
- context.getString(R.string.MessageRecord_you_disabled_disappearing_messages)
- }
+ if (!isNewConfigEnabled) context.getString(R.string.MessageRecord_you_disabled_disappearing_messages)
+ else context.getString(if (recipient.is1on1) R.string.MessageRecord_you_turned_off_disappearing_messages_1_on_1 else R.string.MessageRecord_you_turned_off_disappearing_messages)
} else {
- if (ExpirationConfiguration.isNewConfigEnabled) {
- context.getString(R.string.MessageRecord_s_turned_off_disappearing_messages, senderName)
- } else {
- context.getString(R.string.MessageRecord_s_disabled_disappearing_messages, senderName)
- }
+ if (!isNewConfigEnabled) context.getString(R.string.MessageRecord_s_disabled_disappearing_messages, senderName)
+ else context.getString(if (recipient.is1on1) R.string.MessageRecord_s_turned_off_disappearing_messages_1_on_1 else R.string.MessageRecord_s_turned_off_disappearing_messages, senderName)
}
} else {
val time = ExpirationUtil.getExpirationDisplayValue(context, duration.toInt())
- val config = threadId.let { storage.getExpirationConfiguration(it) }
- val state = context.getExpirationTypeDisplayValue(timestamp == expireStarted)
+ val action = context.getExpirationTypeDisplayValue(timestamp == expireStarted)
if (isOutgoing) {
- if (ExpirationConfiguration.isNewConfigEnabled) {
- context.getString(R.string.MessageRecord_you_set_messages_to_disappear_s_after_s, time, state)
- } else {
- context.getString(R.string.MessageRecord_you_set_disappearing_message_time_to_s, time)
- }
+ if (!isNewConfigEnabled) context.getString(R.string.MessageRecord_you_set_disappearing_message_time_to_s, time)
+ else context.getString(
+ if (recipient.is1on1) R.string.MessageRecord_you_set_messages_to_disappear_s_after_s_1_on_1 else R.string.MessageRecord_you_set_messages_to_disappear_s_after_s,
+ time,
+ action
+ )
} else {
- if (ExpirationConfiguration.isNewConfigEnabled) {
- context.getString(R.string.MessageRecord_s_set_messages_to_disappear_s_after_s, senderName, time, state)
- } else {
- context.getString(R.string.MessageRecord_s_set_disappearing_message_time_to_s, senderName, time)
- }
+ if (!isNewConfigEnabled) context.getString(R.string.MessageRecord_s_set_disappearing_message_time_to_s, senderName, time)
+ else context.getString(
+ if (recipient.is1on1) R.string.MessageRecord_s_set_messages_to_disappear_s_after_s_1_on_1 else R.string.MessageRecord_s_set_messages_to_disappear_s_after_s,
+ senderName,
+ time,
+ action
+ )
}
}
}
diff --git a/libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java b/libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java
index ce1118aa5c..720806ef89 100644
--- a/libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java
+++ b/libsession/src/main/java/org/session/libsession/utilities/recipients/Recipient.java
@@ -457,6 +457,7 @@ public class Recipient implements RecipientModifiedListener {
public boolean isContactRecipient() {
return address.isContact();
}
+ public boolean is1on1() { return address.isContact() && !isLocalNumber; }
public boolean isOpenGroupRecipient() {
return address.isOpenGroup();
diff --git a/libsession/src/main/res/values/strings.xml b/libsession/src/main/res/values/strings.xml
index 922a76d113..3d587cfbfc 100644
--- a/libsession/src/main/res/values/strings.xml
+++ b/libsession/src/main/res/values/strings.xml
@@ -16,14 +16,18 @@
Called %s
Missed call from %s
You disabled disappearing messages.
- You have turned off disappearing messages
+ You have turned off disappearing messages.
+ You turned off disappearing messages. Messages you send will no longer disappear.
%1$s disabled disappearing messages.
- %1$s turned off disappearing messages
+ %1$s turned off disappearing messages.
+ %1$s has turned off disappearing messages. Messages they send will no longer disappear.
You set the disappearing message timer to %1$s
You have set messages to disappear %1$s after they have been %2$s
+ You set your messages to disappear %1$s after they have been %2$s.
You have changed messages to disappear %1$s after they have been %2$s
%1$s set the disappearing message timer to %2$s
%1$s has set messages to disappear %2$s after they have been %3$s
+ %1$s has set their messages to disappear %2$s after they have been %3$s.
%1$s has changed messages to disappear %2$s after they have been %3$s
%1$s took a screenshot.
Media saved by %1$s.