mirror of
https://github.com/oxen-io/session-android.git
synced 2025-08-15 08:57:39 +00:00
Expiration config tweaks
This commit is contained in:
@@ -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
|
||||
|
@@ -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())
|
||||
|
Reference in New Issue
Block a user