kopia lustrzana https://github.com/ryukoposting/Signal-Android
Fix bug with sending after safety number changes.
rodzic
de1fbcf696
commit
8af7c5043a
|
@ -44,6 +44,7 @@ import org.thoughtcrime.securesms.video.exo.GiphyMp4Cache;
|
||||||
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat;
|
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat;
|
||||||
import org.whispersystems.signalservice.api.KeyBackupService;
|
import org.whispersystems.signalservice.api.KeyBackupService;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
|
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
|
||||||
|
import org.whispersystems.signalservice.api.SignalServiceDataStore;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceMessageReceiver;
|
import org.whispersystems.signalservice.api.SignalServiceMessageReceiver;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceMessageSender;
|
import org.whispersystems.signalservice.api.SignalServiceMessageSender;
|
||||||
import org.whispersystems.signalservice.api.SignalWebSocket;
|
import org.whispersystems.signalservice.api.SignalWebSocket;
|
||||||
|
@ -199,7 +200,7 @@ public class ApplicationDependencies {
|
||||||
|
|
||||||
synchronized (LOCK) {
|
synchronized (LOCK) {
|
||||||
if (messageSender == null) {
|
if (messageSender == null) {
|
||||||
messageSender = provider.provideSignalServiceMessageSender(getSignalWebSocket());
|
messageSender = provider.provideSignalServiceMessageSender(getSignalWebSocket(), getProtocolStore());
|
||||||
}
|
}
|
||||||
return messageSender;
|
return messageSender;
|
||||||
}
|
}
|
||||||
|
@ -600,7 +601,7 @@ public class ApplicationDependencies {
|
||||||
public interface Provider {
|
public interface Provider {
|
||||||
@NonNull GroupsV2Operations provideGroupsV2Operations();
|
@NonNull GroupsV2Operations provideGroupsV2Operations();
|
||||||
@NonNull SignalServiceAccountManager provideSignalServiceAccountManager();
|
@NonNull SignalServiceAccountManager provideSignalServiceAccountManager();
|
||||||
@NonNull SignalServiceMessageSender provideSignalServiceMessageSender(@NonNull SignalWebSocket signalWebSocket);
|
@NonNull SignalServiceMessageSender provideSignalServiceMessageSender(@NonNull SignalWebSocket signalWebSocket, @NonNull SignalServiceDataStore protocolStore);
|
||||||
@NonNull SignalServiceMessageReceiver provideSignalServiceMessageReceiver();
|
@NonNull SignalServiceMessageReceiver provideSignalServiceMessageReceiver();
|
||||||
@NonNull SignalServiceNetworkAccess provideSignalServiceNetworkAccess();
|
@NonNull SignalServiceNetworkAccess provideSignalServiceNetworkAccess();
|
||||||
@NonNull IncomingMessageProcessor provideIncomingMessageProcessor();
|
@NonNull IncomingMessageProcessor provideIncomingMessageProcessor();
|
||||||
|
|
|
@ -68,6 +68,7 @@ import org.thoughtcrime.securesms.video.exo.GiphyMp4Cache;
|
||||||
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat;
|
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat;
|
||||||
import org.whispersystems.libsignal.util.guava.Optional;
|
import org.whispersystems.libsignal.util.guava.Optional;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
|
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
|
||||||
|
import org.whispersystems.signalservice.api.SignalServiceDataStore;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceMessageReceiver;
|
import org.whispersystems.signalservice.api.SignalServiceMessageReceiver;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceMessageSender;
|
import org.whispersystems.signalservice.api.SignalServiceMessageSender;
|
||||||
import org.whispersystems.signalservice.api.SignalWebSocket;
|
import org.whispersystems.signalservice.api.SignalWebSocket;
|
||||||
|
@ -113,10 +114,10 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NonNull SignalServiceMessageSender provideSignalServiceMessageSender(@NonNull SignalWebSocket signalWebSocket) {
|
public @NonNull SignalServiceMessageSender provideSignalServiceMessageSender(@NonNull SignalWebSocket signalWebSocket, @NonNull SignalServiceDataStore protocolStore) {
|
||||||
return new SignalServiceMessageSender(provideSignalServiceNetworkAccess().getConfiguration(),
|
return new SignalServiceMessageSender(provideSignalServiceNetworkAccess().getConfiguration(),
|
||||||
new DynamicCredentialsProvider(),
|
new DynamicCredentialsProvider(),
|
||||||
provideProtocolStore(),
|
protocolStore,
|
||||||
ReentrantSessionLock.INSTANCE,
|
ReentrantSessionLock.INSTANCE,
|
||||||
BuildConfig.SIGNAL_AGENT,
|
BuildConfig.SIGNAL_AGENT,
|
||||||
signalWebSocket,
|
signalWebSocket,
|
||||||
|
|
|
@ -6,11 +6,7 @@ import org.signal.core.util.concurrent.DeadlockDetector;
|
||||||
import org.signal.zkgroup.receipts.ClientZkReceiptOperations;
|
import org.signal.zkgroup.receipts.ClientZkReceiptOperations;
|
||||||
import org.thoughtcrime.securesms.components.TypingStatusRepository;
|
import org.thoughtcrime.securesms.components.TypingStatusRepository;
|
||||||
import org.thoughtcrime.securesms.components.TypingStatusSender;
|
import org.thoughtcrime.securesms.components.TypingStatusSender;
|
||||||
import org.thoughtcrime.securesms.crypto.storage.SignalSenderKeyStore;
|
|
||||||
import org.thoughtcrime.securesms.crypto.storage.SignalServiceDataStoreImpl;
|
import org.thoughtcrime.securesms.crypto.storage.SignalServiceDataStoreImpl;
|
||||||
import org.thoughtcrime.securesms.crypto.storage.TextSecureIdentityKeyStore;
|
|
||||||
import org.thoughtcrime.securesms.crypto.storage.TextSecurePreKeyStore;
|
|
||||||
import org.thoughtcrime.securesms.crypto.storage.TextSecureSessionStore;
|
|
||||||
import org.thoughtcrime.securesms.database.DatabaseObserver;
|
import org.thoughtcrime.securesms.database.DatabaseObserver;
|
||||||
import org.thoughtcrime.securesms.database.PendingRetryReceiptCache;
|
import org.thoughtcrime.securesms.database.PendingRetryReceiptCache;
|
||||||
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
import org.thoughtcrime.securesms.jobmanager.JobManager;
|
||||||
|
@ -35,6 +31,7 @@ import org.thoughtcrime.securesms.video.exo.GiphyMp4Cache;
|
||||||
import org.thoughtcrime.securesms.video.exo.SimpleExoPlayerPool;
|
import org.thoughtcrime.securesms.video.exo.SimpleExoPlayerPool;
|
||||||
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat;
|
import org.thoughtcrime.securesms.webrtc.audio.AudioManagerCompat;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
|
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
|
||||||
|
import org.whispersystems.signalservice.api.SignalServiceDataStore;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceMessageReceiver;
|
import org.whispersystems.signalservice.api.SignalServiceMessageReceiver;
|
||||||
import org.whispersystems.signalservice.api.SignalServiceMessageSender;
|
import org.whispersystems.signalservice.api.SignalServiceMessageSender;
|
||||||
import org.whispersystems.signalservice.api.SignalWebSocket;
|
import org.whispersystems.signalservice.api.SignalWebSocket;
|
||||||
|
@ -55,7 +52,7 @@ public class MockApplicationDependencyProvider implements ApplicationDependencie
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public @NonNull SignalServiceMessageSender provideSignalServiceMessageSender(@NonNull SignalWebSocket signalWebSocket) {
|
public @NonNull SignalServiceMessageSender provideSignalServiceMessageSender(@NonNull SignalWebSocket signalWebSocket, @NonNull SignalServiceDataStore protocolStore) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1977,7 +1977,7 @@ public class SignalServiceMessageSender {
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int deviceId : deviceIds) {
|
for (int deviceId : deviceIds) {
|
||||||
if (store.containsSession(new SignalProtocolAddress(recipient.getIdentifier(), deviceId))) {
|
if (deviceId == SignalServiceAddress.DEFAULT_DEVICE_ID || store.containsSession(new SignalProtocolAddress(recipient.getIdentifier(), deviceId))) {
|
||||||
messages.add(getEncryptedMessage(socket, recipient, unidentifiedAccess, deviceId, plaintext));
|
messages.add(getEncryptedMessage(socket, recipient, unidentifiedAccess, deviceId, plaintext));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue