mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-21 12:48:26 +00:00
fix sending expiration update message
This commit is contained in:
parent
aa7071ad80
commit
e0ff5a7e7a
@ -157,6 +157,7 @@ import org.thoughtcrime.securesms.mms.GlideRequests;
|
|||||||
import org.thoughtcrime.securesms.mms.ImageSlide;
|
import org.thoughtcrime.securesms.mms.ImageSlide;
|
||||||
import org.thoughtcrime.securesms.mms.MediaConstraints;
|
import org.thoughtcrime.securesms.mms.MediaConstraints;
|
||||||
import org.thoughtcrime.securesms.mms.MmsException;
|
import org.thoughtcrime.securesms.mms.MmsException;
|
||||||
|
import org.thoughtcrime.securesms.mms.OutgoingExpirationUpdateMessage;
|
||||||
import org.thoughtcrime.securesms.mms.OutgoingMediaMessage;
|
import org.thoughtcrime.securesms.mms.OutgoingMediaMessage;
|
||||||
import org.thoughtcrime.securesms.mms.OutgoingSecureMediaMessage;
|
import org.thoughtcrime.securesms.mms.OutgoingSecureMediaMessage;
|
||||||
import org.thoughtcrime.securesms.mms.QuoteId;
|
import org.thoughtcrime.securesms.mms.QuoteId;
|
||||||
@ -804,10 +805,15 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
@Override
|
@Override
|
||||||
protected Void doInBackground(Void... params) {
|
protected Void doInBackground(Void... params) {
|
||||||
DatabaseFactory.getRecipientDatabase(ConversationActivity.this).setExpireMessages(recipient, expirationTime);
|
DatabaseFactory.getRecipientDatabase(ConversationActivity.this).setExpireMessages(recipient, expirationTime);
|
||||||
ExpirationTimerUpdate message = new ExpirationTimerUpdate();
|
ExpirationTimerUpdate message = new ExpirationTimerUpdate(expirationTime);
|
||||||
message.setDuration(expirationTime * 1000);
|
message.setSentTimestamp(System.currentTimeMillis());
|
||||||
MessageSender.send(message, recipient.getAddress());
|
OutgoingExpirationUpdateMessage outgoingMessage = OutgoingExpirationUpdateMessage.from(message, recipient);
|
||||||
|
try {
|
||||||
|
message.setId(DatabaseFactory.getMmsDatabase(ConversationActivity.this).insertMessageOutbox(outgoingMessage, getAllocatedThreadId(ConversationActivity.this), false, null));
|
||||||
|
MessageSender.send(message, recipient.getAddress());
|
||||||
|
} catch (MmsException e) {
|
||||||
|
Log.w(TAG, e);
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -836,17 +842,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleConversationSettings() {
|
|
||||||
/*
|
|
||||||
Intent intent = new Intent(ConversationActivity.this, RecipientPreferenceActivity.class);
|
|
||||||
intent.putExtra(RecipientPreferenceActivity.ADDRESS_EXTRA, recipient.getAddress());
|
|
||||||
intent.putExtra(RecipientPreferenceActivity.CAN_HAVE_SAFETY_NUMBER_EXTRA,
|
|
||||||
isSecureText && !isSelfConversation());
|
|
||||||
|
|
||||||
startActivitySceneTransition(intent, titleView.findViewById(R.id.contact_photo_image), "avatar");
|
|
||||||
*/
|
|
||||||
}
|
|
||||||
|
|
||||||
private void handleUnmuteNotifications() {
|
private void handleUnmuteNotifications() {
|
||||||
recipient.setMuted(0);
|
recipient.setMuted(0);
|
||||||
|
|
||||||
@ -1798,12 +1793,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
long allocatedThreadId;
|
long allocatedThreadId = getAllocatedThreadId(context);
|
||||||
if (threadId == -1) {
|
|
||||||
allocatedThreadId = DatabaseFactory.getThreadDatabase(context).getOrCreateThreadIdFor(recipient);
|
|
||||||
} else {
|
|
||||||
allocatedThreadId = threadId;
|
|
||||||
}
|
|
||||||
message.setId(DatabaseFactory.getMmsDatabase(context).insertMessageOutbox(outgoingMessage, allocatedThreadId, false, ()->fragment.releaseOutgoingMessage(id)));
|
message.setId(DatabaseFactory.getMmsDatabase(context).insertMessageOutbox(outgoingMessage, allocatedThreadId, false, ()->fragment.releaseOutgoingMessage(id)));
|
||||||
MessageSender.send(message, recipient.getAddress(), attachments, quote, linkPreview.orNull());
|
MessageSender.send(message, recipient.getAddress(), attachments, quote, linkPreview.orNull());
|
||||||
sendComplete(allocatedThreadId);
|
sendComplete(allocatedThreadId);
|
||||||
@ -1835,12 +1825,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
DatabaseFactory.getRecipientDatabase(context).setProfileSharing(recipient, true);
|
DatabaseFactory.getRecipientDatabase(context).setProfileSharing(recipient, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
long allocatedThreadId;
|
long allocatedThreadId = getAllocatedThreadId(context);
|
||||||
if (threadId == -1) {
|
|
||||||
allocatedThreadId = DatabaseFactory.getThreadDatabase(context).getOrCreateThreadIdFor(recipient);
|
|
||||||
} else {
|
|
||||||
allocatedThreadId = threadId;
|
|
||||||
}
|
|
||||||
message.setId(DatabaseFactory.getSmsDatabase(context).insertMessageOutbox(allocatedThreadId, outgoingTextMessage, false, message.getSentTimestamp(), ()->fragment.releaseOutgoingMessage(id)));
|
message.setId(DatabaseFactory.getSmsDatabase(context).insertMessageOutbox(allocatedThreadId, outgoingTextMessage, false, message.getSentTimestamp(), ()->fragment.releaseOutgoingMessage(id)));
|
||||||
MessageSender.send(message, recipient.getAddress());
|
MessageSender.send(message, recipient.getAddress());
|
||||||
|
|
||||||
@ -2315,6 +2300,16 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
}
|
}
|
||||||
|
|
||||||
// region Loki
|
// region Loki
|
||||||
|
private long getAllocatedThreadId(Context context) {
|
||||||
|
long allocatedThreadId;
|
||||||
|
if (threadId == -1) {
|
||||||
|
allocatedThreadId = DatabaseFactory.getThreadDatabase(context).getOrCreateThreadIdFor(recipient);
|
||||||
|
} else {
|
||||||
|
allocatedThreadId = threadId;
|
||||||
|
}
|
||||||
|
return allocatedThreadId;
|
||||||
|
}
|
||||||
|
|
||||||
private void updateTitleTextView(Recipient recipient) {
|
private void updateTitleTextView(Recipient recipient) {
|
||||||
String userPublicKey = TextSecurePreferences.getLocalNumber(this);
|
String userPublicKey = TextSecurePreferences.getLocalNumber(this);
|
||||||
if (recipient == null) {
|
if (recipient == null) {
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package org.thoughtcrime.securesms.mms;
|
package org.thoughtcrime.securesms.mms;
|
||||||
|
|
||||||
|
import org.session.libsession.messaging.messages.control.ExpirationTimerUpdate;
|
||||||
import org.session.libsession.messaging.sending_receiving.attachments.Attachment;
|
import org.session.libsession.messaging.sending_receiving.attachments.Attachment;
|
||||||
import org.session.libsession.messaging.threads.DistributionTypes;
|
import org.session.libsession.messaging.threads.DistributionTypes;
|
||||||
import org.session.libsession.messaging.threads.recipients.Recipient;
|
import org.session.libsession.messaging.threads.recipients.Recipient;
|
||||||
@ -15,6 +16,11 @@ public class OutgoingExpirationUpdateMessage extends OutgoingSecureMediaMessage
|
|||||||
Collections.emptyList());
|
Collections.emptyList());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static OutgoingExpirationUpdateMessage from(ExpirationTimerUpdate message,
|
||||||
|
Recipient recipient) {
|
||||||
|
return new OutgoingExpirationUpdateMessage(recipient, message.getSentTimestamp(), message.getDuration() * 1000);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isExpirationUpdate() {
|
public boolean isExpirationUpdate() {
|
||||||
return true;
|
return true;
|
||||||
|
@ -17,7 +17,6 @@ import org.session.libsession.messaging.threads.recipients.Recipient;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
public class OutgoingMediaMessage {
|
public class OutgoingMediaMessage {
|
||||||
|
|
||||||
@ -122,7 +121,7 @@ public class OutgoingMediaMessage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSecure() {
|
public boolean isSecure() {
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isGroup() {
|
public boolean isGroup() {
|
||||||
|
@ -114,7 +114,7 @@ public class ExpiringMessageManager implements SSKEnvironment.MessageExpirationM
|
|||||||
} else {
|
} else {
|
||||||
smsDatabase.markExpireStarted(messageRecord.getId());
|
smsDatabase.markExpireStarted(messageRecord.getId());
|
||||||
}
|
}
|
||||||
scheduleDeletion(messageRecord.getId(), mms, recipient.getExpireMessages());
|
scheduleDeletion(messageRecord.getId(), mms, recipient.getExpireMessages() * 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -259,7 +259,9 @@ object MessageSender {
|
|||||||
storage.markAsSent(message.sentTimestamp!!, message.sender!!)
|
storage.markAsSent(message.sentTimestamp!!, message.sender!!)
|
||||||
storage.markUnidentified(message.sentTimestamp!!, message.sender!!)
|
storage.markUnidentified(message.sentTimestamp!!, message.sender!!)
|
||||||
// Start the disappearing messages timer if needed
|
// Start the disappearing messages timer if needed
|
||||||
SSKEnvironment.shared.messageExpirationManager.startAnyExpiration(message.sentTimestamp!!, message.sender!!)
|
if (message is VisibleMessage) {
|
||||||
|
SSKEnvironment.shared.messageExpirationManager.startAnyExpiration(message.sentTimestamp!!, message.sender!!)
|
||||||
|
}
|
||||||
// Sync the message if:
|
// Sync the message if:
|
||||||
// • it's a visible message
|
// • it's a visible message
|
||||||
// • the destination was a contact
|
// • the destination was a contact
|
||||||
|
Loading…
x
Reference in New Issue
Block a user