mirror of
https://github.com/oxen-io/session-android.git
synced 2025-04-28 09:40:47 +00:00
Refactor & temporarily disable problematic code
This commit is contained in:
parent
40200fe5e1
commit
5cb98d8fc3
@ -40,7 +40,7 @@ public class CleanPreKeysJob extends BaseJob implements InjectableType {
|
|||||||
public CleanPreKeysJob() {
|
public CleanPreKeysJob() {
|
||||||
this(new Job.Parameters.Builder()
|
this(new Job.Parameters.Builder()
|
||||||
.setQueue("CleanPreKeysJob")
|
.setQueue("CleanPreKeysJob")
|
||||||
.setMaxAttempts(5)
|
.setMaxAttempts(3)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,11 +3,6 @@ package org.thoughtcrime.securesms.jobs;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.jobmanager.Data;
|
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
|
||||||
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
|
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
|
||||||
import android.webkit.MimeTypeMap;
|
import android.webkit.MimeTypeMap;
|
||||||
|
|
||||||
import com.android.mms.dom.smil.parser.SmilXmlSerializer;
|
import com.android.mms.dom.smil.parser.SmilXmlSerializer;
|
||||||
@ -30,6 +25,10 @@ import org.thoughtcrime.securesms.database.DatabaseFactory;
|
|||||||
import org.thoughtcrime.securesms.database.MmsDatabase;
|
import org.thoughtcrime.securesms.database.MmsDatabase;
|
||||||
import org.thoughtcrime.securesms.database.NoSuchMessageException;
|
import org.thoughtcrime.securesms.database.NoSuchMessageException;
|
||||||
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
|
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
|
||||||
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.mms.CompatMmsConnection;
|
import org.thoughtcrime.securesms.mms.CompatMmsConnection;
|
||||||
import org.thoughtcrime.securesms.mms.MediaConstraints;
|
import org.thoughtcrime.securesms.mms.MediaConstraints;
|
||||||
import org.thoughtcrime.securesms.mms.MmsException;
|
import org.thoughtcrime.securesms.mms.MmsException;
|
||||||
@ -64,7 +63,7 @@ public class MmsSendJob extends SendJob {
|
|||||||
this(new Job.Parameters.Builder()
|
this(new Job.Parameters.Builder()
|
||||||
.setQueue("mms-operation")
|
.setQueue("mms-operation")
|
||||||
.addConstraint(NetworkConstraint.KEY)
|
.addConstraint(NetworkConstraint.KEY)
|
||||||
.setMaxAttempts(15)
|
.setMaxAttempts(25)
|
||||||
.build(),
|
.build(),
|
||||||
messageId);
|
messageId);
|
||||||
}
|
}
|
||||||
|
@ -943,13 +943,13 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
|
|||||||
} else {
|
} else {
|
||||||
notifyTypingStoppedFromIncomingMessage(masterRecipient, content.getSender(), content.getSenderDevice());
|
notifyTypingStoppedFromIncomingMessage(masterRecipient, content.getSender(), content.getSenderDevice());
|
||||||
|
|
||||||
Address sender = masterRecipient.getAddress();
|
Address masterAddress = masterRecipient.getAddress();
|
||||||
|
|
||||||
if (message.isGroupMessage()) {
|
if (message.isGroupMessage()) {
|
||||||
sender = getMessageMasterDestination(content.getSender()).getAddress();
|
masterAddress = getMessageMasterDestination(content.getSender()).getAddress();
|
||||||
}
|
}
|
||||||
|
|
||||||
IncomingTextMessage tm = new IncomingTextMessage(sender,
|
IncomingTextMessage tm = new IncomingTextMessage(masterAddress,
|
||||||
content.getSenderDevice(),
|
content.getSenderDevice(),
|
||||||
message.getTimestamp(), body,
|
message.getTimestamp(), body,
|
||||||
message.getGroupInfo(),
|
message.getGroupInfo(),
|
||||||
@ -1180,16 +1180,17 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
|
|||||||
@NonNull SignalServiceReceiptMessage message)
|
@NonNull SignalServiceReceiptMessage message)
|
||||||
{
|
{
|
||||||
// Redirect message to master device conversation
|
// Redirect message to master device conversation
|
||||||
Address sender = Address.fromSerialized(content.getSender());
|
Address masterAddress = Address.fromSerialized(content.getSender());
|
||||||
if (sender.isPhone()) {
|
|
||||||
Recipient masterDevice = getMessageMasterDestination(content.getSender());
|
if (masterAddress.isPhone()) {
|
||||||
sender = masterDevice.getAddress();
|
Recipient masterRecipient = getMessageMasterDestination(content.getSender());
|
||||||
|
masterAddress = masterRecipient.getAddress();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (long timestamp : message.getTimestamps()) {
|
for (long timestamp : message.getTimestamps()) {
|
||||||
Log.i(TAG, String.format("Received encrypted delivery receipt: (XXXXX, %d)", timestamp));
|
Log.i(TAG, String.format("Received encrypted delivery receipt: (XXXXX, %d)", timestamp));
|
||||||
DatabaseFactory.getMmsSmsDatabase(context)
|
DatabaseFactory.getMmsSmsDatabase(context)
|
||||||
.incrementDeliveryReceiptCount(new SyncMessageId(sender, timestamp), System.currentTimeMillis());
|
.incrementDeliveryReceiptCount(new SyncMessageId(masterAddress, timestamp), System.currentTimeMillis());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1200,17 +1201,18 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
|
|||||||
if (TextSecurePreferences.isReadReceiptsEnabled(context)) {
|
if (TextSecurePreferences.isReadReceiptsEnabled(context)) {
|
||||||
|
|
||||||
// Redirect message to master device conversation
|
// Redirect message to master device conversation
|
||||||
Address sender = Address.fromSerialized(content.getSender());
|
Address masterAddress = Address.fromSerialized(content.getSender());
|
||||||
if (sender.isPhone()) {
|
|
||||||
Recipient masterDevice = getMessageMasterDestination(content.getSender());
|
if (masterAddress.isPhone()) {
|
||||||
sender = masterDevice.getAddress();
|
Recipient masterRecipient = getMessageMasterDestination(content.getSender());
|
||||||
|
masterAddress = masterRecipient.getAddress();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (long timestamp : message.getTimestamps()) {
|
for (long timestamp : message.getTimestamps()) {
|
||||||
Log.i(TAG, String.format("Received encrypted read receipt: (XXXXX, %d)", timestamp));
|
Log.i(TAG, String.format("Received encrypted read receipt: (XXXXX, %d)", timestamp));
|
||||||
|
|
||||||
DatabaseFactory.getMmsSmsDatabase(context)
|
DatabaseFactory.getMmsSmsDatabase(context)
|
||||||
.incrementReadReceiptCount(new SyncMessageId(sender, timestamp), content.getTimestamp());
|
.incrementReadReceiptCount(new SyncMessageId(masterAddress, timestamp), content.getTimestamp());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1368,9 +1370,9 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Optional<InsertResult> insertPlaceholder(@NonNull String sender, int senderDevice, long timestamp) {
|
private Optional<InsertResult> insertPlaceholder(@NonNull String sender, int senderDevice, long timestamp) {
|
||||||
Recipient masterDevice = getMessageMasterDestination(sender);
|
Recipient masterRecipient = getMessageMasterDestination(sender);
|
||||||
SmsDatabase database = DatabaseFactory.getSmsDatabase(context);
|
SmsDatabase database = DatabaseFactory.getSmsDatabase(context);
|
||||||
IncomingTextMessage textMessage = new IncomingTextMessage(masterDevice.getAddress(),
|
IncomingTextMessage textMessage = new IncomingTextMessage(masterRecipient.getAddress(),
|
||||||
senderDevice, timestamp, "",
|
senderDevice, timestamp, "",
|
||||||
Optional.absent(), 0, false);
|
Optional.absent(), 0, false);
|
||||||
|
|
||||||
@ -1448,6 +1450,10 @@ public class PushDecryptJob extends BaseJob implements InjectableType {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SessionMetaProtocol.shouldIgnoreMessage(content)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
Recipient sender = Recipient.from(context, Address.fromSerialized(content.getSender()), false);
|
Recipient sender = Recipient.from(context, Address.fromSerialized(content.getSender()), false);
|
||||||
|
|
||||||
if (content.getDeviceLink().isPresent()) {
|
if (content.getDeviceLink().isPresent()) {
|
||||||
|
@ -9,8 +9,6 @@ import android.text.TextUtils;
|
|||||||
import com.annimon.stream.Stream;
|
import com.annimon.stream.Stream;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
import org.signal.libsignal.metadata.certificate.InvalidCertificateException;
|
|
||||||
import org.signal.libsignal.metadata.certificate.SenderCertificate;
|
|
||||||
import org.thoughtcrime.securesms.ApplicationContext;
|
import org.thoughtcrime.securesms.ApplicationContext;
|
||||||
import org.thoughtcrime.securesms.TextSecureExpiredException;
|
import org.thoughtcrime.securesms.TextSecureExpiredException;
|
||||||
import org.thoughtcrime.securesms.attachments.Attachment;
|
import org.thoughtcrime.securesms.attachments.Attachment;
|
||||||
@ -68,7 +66,7 @@ public abstract class PushSendJob extends SendJob {
|
|||||||
.setQueue(destination.serialize())
|
.setQueue(destination.serialize())
|
||||||
.addConstraint(NetworkConstraint.KEY)
|
.addConstraint(NetworkConstraint.KEY)
|
||||||
.setLifespan(TimeUnit.DAYS.toMillis(1))
|
.setLifespan(TimeUnit.DAYS.toMillis(1))
|
||||||
.setMaxAttempts(3)
|
.setMaxAttempts(1)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ public class RefreshPreKeysJob extends BaseJob implements InjectableType {
|
|||||||
this(new Job.Parameters.Builder()
|
this(new Job.Parameters.Builder()
|
||||||
.setQueue("RefreshPreKeysJob")
|
.setQueue("RefreshPreKeysJob")
|
||||||
.addConstraint(NetworkConstraint.KEY)
|
.addConstraint(NetworkConstraint.KEY)
|
||||||
.setMaxAttempts(5)
|
.setMaxAttempts(3)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ public class RetrieveProfileAvatarJob extends BaseJob implements InjectableType
|
|||||||
.setQueue("RetrieveProfileAvatarJob" + recipient.getAddress().serialize())
|
.setQueue("RetrieveProfileAvatarJob" + recipient.getAddress().serialize())
|
||||||
.addConstraint(NetworkConstraint.KEY)
|
.addConstraint(NetworkConstraint.KEY)
|
||||||
.setLifespan(TimeUnit.HOURS.toMillis(1))
|
.setLifespan(TimeUnit.HOURS.toMillis(1))
|
||||||
.setMaxAttempts(2)
|
.setMaxAttempts(3)
|
||||||
.build(),
|
.build(),
|
||||||
recipient,
|
recipient,
|
||||||
profileAvatar);
|
profileAvatar);
|
||||||
|
@ -30,7 +30,7 @@ public class RotateSignedPreKeyJob extends BaseJob implements InjectableType {
|
|||||||
public RotateSignedPreKeyJob() {
|
public RotateSignedPreKeyJob() {
|
||||||
this(new Job.Parameters.Builder()
|
this(new Job.Parameters.Builder()
|
||||||
.addConstraint(NetworkConstraint.KEY)
|
.addConstraint(NetworkConstraint.KEY)
|
||||||
.setMaxAttempts(5)
|
.setMaxAttempts(3)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,7 +3,6 @@ package org.thoughtcrime.securesms.jobs;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
import network.loki.messenger.BuildConfig;
|
|
||||||
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Data;
|
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
@ -15,6 +14,8 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
|||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.UnknownHostException;
|
import java.net.UnknownHostException;
|
||||||
|
|
||||||
|
import network.loki.messenger.BuildConfig;
|
||||||
|
|
||||||
public class ServiceOutageDetectionJob extends BaseJob {
|
public class ServiceOutageDetectionJob extends BaseJob {
|
||||||
|
|
||||||
public static final String KEY = "ServiceOutageDetectionJob";
|
public static final String KEY = "ServiceOutageDetectionJob";
|
||||||
@ -29,7 +30,7 @@ public class ServiceOutageDetectionJob extends BaseJob {
|
|||||||
this(new Job.Parameters.Builder()
|
this(new Job.Parameters.Builder()
|
||||||
.setQueue("ServiceOutageDetectionJob")
|
.setQueue("ServiceOutageDetectionJob")
|
||||||
.addConstraint(NetworkConstraint.KEY)
|
.addConstraint(NetworkConstraint.KEY)
|
||||||
.setMaxAttempts(5)
|
.setMaxAttempts(3)
|
||||||
.setMaxInstances(1)
|
.setMaxInstances(1)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ public class SmsSendJob extends SendJob {
|
|||||||
public static final String KEY = "SmsSendJob";
|
public static final String KEY = "SmsSendJob";
|
||||||
|
|
||||||
private static final String TAG = SmsSendJob.class.getSimpleName();
|
private static final String TAG = SmsSendJob.class.getSimpleName();
|
||||||
private static final int MAX_ATTEMPTS = 15;
|
private static final int MAX_ATTEMPTS = 25;
|
||||||
private static final String KEY_MESSAGE_ID = "message_id";
|
private static final String KEY_MESSAGE_ID = "message_id";
|
||||||
private static final String KEY_RUN_ATTEMPT = "run_attempt";
|
private static final String KEY_RUN_ATTEMPT = "run_attempt";
|
||||||
|
|
||||||
|
@ -11,14 +11,12 @@ import android.net.Uri;
|
|||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.jobmanager.Data;
|
import org.thoughtcrime.securesms.jobmanager.Data;
|
||||||
import org.thoughtcrime.securesms.jobmanager.Job;
|
import org.thoughtcrime.securesms.jobmanager.Job;
|
||||||
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
|
import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
|
||||||
|
|
||||||
import network.loki.messenger.BuildConfig;
|
|
||||||
import org.thoughtcrime.securesms.service.UpdateApkReadyListener;
|
import org.thoughtcrime.securesms.service.UpdateApkReadyListener;
|
||||||
import org.thoughtcrime.securesms.util.FileUtils;
|
import org.thoughtcrime.securesms.util.FileUtils;
|
||||||
import org.thoughtcrime.securesms.util.Hex;
|
import org.thoughtcrime.securesms.util.Hex;
|
||||||
@ -29,6 +27,7 @@ import java.io.FileInputStream;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
|
|
||||||
|
import network.loki.messenger.BuildConfig;
|
||||||
import okhttp3.OkHttpClient;
|
import okhttp3.OkHttpClient;
|
||||||
import okhttp3.Request;
|
import okhttp3.Request;
|
||||||
import okhttp3.Response;
|
import okhttp3.Response;
|
||||||
@ -43,7 +42,7 @@ public class UpdateApkJob extends BaseJob {
|
|||||||
this(new Job.Parameters.Builder()
|
this(new Job.Parameters.Builder()
|
||||||
.setQueue("UpdateApkJob")
|
.setQueue("UpdateApkJob")
|
||||||
.addConstraint(NetworkConstraint.KEY)
|
.addConstraint(NetworkConstraint.KEY)
|
||||||
.setMaxAttempts(2)
|
.setMaxAttempts(3)
|
||||||
.build());
|
.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,7 +165,7 @@ class LokiPublicChatPoller(private val context: Context, private val group: Loki
|
|||||||
}
|
}
|
||||||
val senderHexEncodedPublicKey = masterHexEncodedPublicKey ?: message.hexEncodedPublicKey
|
val senderHexEncodedPublicKey = masterHexEncodedPublicKey ?: message.hexEncodedPublicKey
|
||||||
val serviceDataMessage = getDataMessage(message)
|
val serviceDataMessage = getDataMessage(message)
|
||||||
val serviceContent = SignalServiceContent(serviceDataMessage, senderHexEncodedPublicKey, SignalServiceAddress.DEFAULT_DEVICE_ID, message.timestamp, false, false)
|
val serviceContent = SignalServiceContent(serviceDataMessage, senderHexEncodedPublicKey, SignalServiceAddress.DEFAULT_DEVICE_ID, message.timestamp, false, false, false, false, false)
|
||||||
if (serviceDataMessage.quote.isPresent || (serviceDataMessage.attachments.isPresent && serviceDataMessage.attachments.get().size > 0) || serviceDataMessage.previews.isPresent) {
|
if (serviceDataMessage.quote.isPresent || (serviceDataMessage.attachments.isPresent && serviceDataMessage.attachments.get().size > 0) || serviceDataMessage.previews.isPresent) {
|
||||||
PushDecryptJob(context).handleMediaMessage(serviceContent, serviceDataMessage, Optional.absent(), Optional.of(message.serverID))
|
PushDecryptJob(context).handleMediaMessage(serviceContent, serviceDataMessage, Optional.absent(), Optional.of(message.serverID))
|
||||||
} else {
|
} else {
|
||||||
|
@ -28,10 +28,10 @@ object FriendRequestProtocol {
|
|||||||
val allUserDevices = MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey)
|
val allUserDevices = MultiDeviceProtocol.shared.getAllLinkedDevices(userPublicKey)
|
||||||
// Accept all outstanding friend requests associated with this user and try to establish sessions with the
|
// Accept all outstanding friend requests associated with this user and try to establish sessions with the
|
||||||
// subset of their devices that haven't sent a friend request.
|
// subset of their devices that haven't sent a friend request.
|
||||||
val linkedDevices = MultiDeviceProtocol.shared.getAllLinkedDevices(recipient.address.serialize())
|
val allContactDevices = MultiDeviceProtocol.shared.getAllLinkedDevices(recipient.address.serialize())
|
||||||
val threadDB = DatabaseFactory.getThreadDatabase(context)
|
val threadDB = DatabaseFactory.getThreadDatabase(context)
|
||||||
val lokiThreadDB = DatabaseFactory.getLokiThreadDatabase(context)
|
val lokiThreadDB = DatabaseFactory.getLokiThreadDatabase(context)
|
||||||
for (device in linkedDevices) {
|
for (device in allContactDevices) {
|
||||||
val deviceAsRecipient = recipient(context, device)
|
val deviceAsRecipient = recipient(context, device)
|
||||||
val deviceThreadID = threadDB.getThreadIdFor(deviceAsRecipient)
|
val deviceThreadID = threadDB.getThreadIdFor(deviceAsRecipient)
|
||||||
val deviceFRStatus = lokiThreadDB.getFriendRequestStatus(deviceThreadID)
|
val deviceFRStatus = lokiThreadDB.getFriendRequestStatus(deviceThreadID)
|
||||||
|
@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.loki.protocol
|
|||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import network.loki.messenger.BuildConfig
|
||||||
import nl.komponents.kovenant.Promise
|
import nl.komponents.kovenant.Promise
|
||||||
import org.thoughtcrime.securesms.ApplicationContext
|
import org.thoughtcrime.securesms.ApplicationContext
|
||||||
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil
|
import org.thoughtcrime.securesms.crypto.IdentityKeyUtil
|
||||||
@ -54,6 +55,7 @@ object MultiDeviceProtocol {
|
|||||||
outgoingMediaMessage.body.isNotBlank() || outgoingMediaMessage.attachments.isNotEmpty()
|
outgoingMediaMessage.body.isNotBlank() || outgoingMediaMessage.attachments.isNotEmpty()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (isFRMessage && !hasVisibleContent && BuildConfig.DEBUG) { throw IllegalStateException() }
|
||||||
val shouldSendAutoGeneratedFR = !isContactFriend && !isFRMessage
|
val shouldSendAutoGeneratedFR = !isContactFriend && !isFRMessage
|
||||||
&& !SessionMetaProtocol.shared.isNoteToSelf(recipient.address.serialize()) && !recipient.address.isGroup // Group threads work through session requests
|
&& !SessionMetaProtocol.shared.isNoteToSelf(recipient.address.serialize()) && !recipient.address.isGroup // Group threads work through session requests
|
||||||
&& hasVisibleContent
|
&& hasVisibleContent
|
||||||
|
@ -12,6 +12,14 @@ import org.whispersystems.signalservice.loki.protocol.todo.LokiThreadFriendReque
|
|||||||
|
|
||||||
object SessionMetaProtocol {
|
object SessionMetaProtocol {
|
||||||
|
|
||||||
|
private val timestamps = mutableSetOf<Long>()
|
||||||
|
|
||||||
|
@JvmStatic
|
||||||
|
fun shouldIgnoreMessage(content: SignalServiceContent): Boolean {
|
||||||
|
val timestamp = content.timestamp
|
||||||
|
return timestamps.contains(timestamp)
|
||||||
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun handleProfileUpdateIfNeeded(context: Context, content: SignalServiceContent) {
|
fun handleProfileUpdateIfNeeded(context: Context, content: SignalServiceContent) {
|
||||||
val rawDisplayName = content.senderDisplayName.orNull() ?: return
|
val rawDisplayName = content.senderDisplayName.orNull() ?: return
|
||||||
|
@ -66,7 +66,7 @@ class LokiRSSFeedPoller(private val context: Context, private val feed: LokiRSSF
|
|||||||
val id = feed.id.toByteArray()
|
val id = feed.id.toByteArray()
|
||||||
val x1 = SignalServiceGroup(SignalServiceGroup.Type.UPDATE, id, SignalServiceGroup.GroupType.RSS_FEED, null, null, null, null)
|
val x1 = SignalServiceGroup(SignalServiceGroup.Type.UPDATE, id, SignalServiceGroup.GroupType.RSS_FEED, null, null, null, null)
|
||||||
val x2 = SignalServiceDataMessage(timestamp, x1, null, body)
|
val x2 = SignalServiceDataMessage(timestamp, x1, null, body)
|
||||||
val x3 = SignalServiceContent(x2, "Loki", SignalServiceAddress.DEFAULT_DEVICE_ID, timestamp, false, false)
|
val x3 = SignalServiceContent(x2, "Loki", SignalServiceAddress.DEFAULT_DEVICE_ID, timestamp, false, false, false, false, false)
|
||||||
PushDecryptJob(context).handleTextMessage(x3, x2, Optional.absent(), Optional.absent())
|
PushDecryptJob(context).handleTextMessage(x3, x2, Optional.absent(), Optional.absent())
|
||||||
}
|
}
|
||||||
}.fail { exception ->
|
}.fail { exception ->
|
||||||
|
Loading…
x
Reference in New Issue
Block a user