Expiration config tweaks

This commit is contained in:
charles
2022-12-16 15:21:48 +11:00
parent b18cebe03d
commit 9e004cd09a
4 changed files with 14 additions and 5 deletions

View File

@@ -12,6 +12,8 @@ import kotlinx.coroutines.flow.mapLatest
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
import org.session.libsession.messaging.messages.ExpirationConfiguration
import org.session.libsession.messaging.messages.control.ExpirationTimerUpdate
import org.session.libsession.messaging.sending_receiving.MessageSender
import org.session.libsession.utilities.recipients.Recipient
import org.session.libsignal.protos.SignalServiceProtos.Content.ExpirationType
import org.thoughtcrime.securesms.database.Storage
@@ -98,6 +100,11 @@ class ExpirationSettingsViewModel(
val expiryChangeTimestampMs = System.currentTimeMillis()
storage.setExpirationConfiguration(ExpirationConfiguration(threadId, expiresIn, expiryType, expiryChangeTimestampMs))
val message = ExpirationTimerUpdate(expiresIn)
val address = recipient.value?.address ?: return@launch
message.recipient = address.serialize()
message.sentTimestamp = System.currentTimeMillis()
MessageSender.send(message, address)
}
@dagger.assisted.AssistedFactory

View File

@@ -18,6 +18,7 @@ import org.session.libsignal.utilities.Log;
import org.session.libsignal.utilities.guava.Optional;
import org.thoughtcrime.securesms.database.MmsDatabase;
import org.thoughtcrime.securesms.database.SmsDatabase;
import org.thoughtcrime.securesms.database.ThreadDatabase;
import org.thoughtcrime.securesms.database.model.MessageRecord;
import org.thoughtcrime.securesms.dependencies.DatabaseComponent;
import org.thoughtcrime.securesms.mms.MmsException;
@@ -70,10 +71,11 @@ public class ExpiringMessageManager implements SSKEnvironment.MessageExpirationM
@Override
public void setExpirationTimer(@NotNull ExpirationTimerUpdate message, @Nullable Integer expirationType) {
try {
long threadId = message.getThreadID();
ThreadDatabase threadDb = DatabaseComponent.get(context).threadDatabase();
long threadId = threadDb.getOrCreateThreadIdFor(Recipient.from(context, Address.fromSerialized(message.getSender()), false));
if (message.getGroupPublicKey() != null) {
Recipient recipient = Recipient.from(context, Address.fromSerialized(GroupUtil.doubleEncodeGroupID(message.getGroupPublicKey())), false);
threadId = DatabaseComponent.get(context).threadDatabase().getOrCreateThreadIdFor(recipient);
threadId = threadDb.getOrCreateThreadIdFor(recipient);
}
DatabaseComponent.get(context).expirationConfigurationDatabase().setExpirationConfiguration(
new ExpirationConfiguration(threadId, message.getDuration(), expirationType, System.currentTimeMillis())