mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 01:40:07 +01:00
Add support for blocked chat events.
This commit is contained in:
committed by
Greyson Parrelli
parent
8101fcbd8d
commit
f61109391a
@@ -24,10 +24,10 @@ import org.thoughtcrime.securesms.jobs.MultiDeviceBlockedUpdateJob;
|
||||
import org.thoughtcrime.securesms.jobs.RefreshOwnProfileJob;
|
||||
import org.thoughtcrime.securesms.jobs.RotateProfileKeyJob;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.mms.MmsException;
|
||||
import org.thoughtcrime.securesms.mms.OutgoingMessage;
|
||||
import org.thoughtcrime.securesms.sms.MessageSender;
|
||||
import org.thoughtcrime.securesms.storage.StorageSyncHelper;
|
||||
import org.thoughtcrime.securesms.util.ExpirationTimerUtil;
|
||||
import org.whispersystems.signalservice.api.push.ServiceId;
|
||||
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
||||
import org.whispersystems.signalservice.api.push.exceptions.NotFoundException;
|
||||
@@ -36,6 +36,7 @@ import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
public class RecipientUtil {
|
||||
|
||||
@@ -172,6 +173,7 @@ public class RecipientUtil {
|
||||
}
|
||||
|
||||
SignalDatabase.recipients().setBlocked(recipient.getId(), true);
|
||||
insertBlockedUpdate(recipient, SignalDatabase.threads().getOrCreateThreadIdFor(recipient));
|
||||
|
||||
if (recipient.isSystemContact() || recipient.isProfileSharing() || isProfileSharedViaGroup(recipient)) {
|
||||
SignalDatabase.recipients().setProfileSharing(recipient.getId(), false);
|
||||
@@ -194,10 +196,37 @@ public class RecipientUtil {
|
||||
|
||||
SignalDatabase.recipients().setBlocked(recipient.getId(), false);
|
||||
SignalDatabase.recipients().setProfileSharing(recipient.getId(), true);
|
||||
insertUnblockedUpdate(recipient, SignalDatabase.threads().getOrCreateThreadIdFor(recipient));
|
||||
AppDependencies.getJobManager().add(new MultiDeviceBlockedUpdateJob());
|
||||
StorageSyncHelper.scheduleSyncForDataChange();
|
||||
}
|
||||
|
||||
private static void insertBlockedUpdate(@NonNull Recipient recipient, long threadId) {
|
||||
try {
|
||||
SignalDatabase.messages().insertMessageOutbox(
|
||||
OutgoingMessage.blockedMessage(recipient, System.currentTimeMillis(), TimeUnit.SECONDS.toMillis(recipient.getExpiresInSeconds())),
|
||||
threadId,
|
||||
false,
|
||||
null
|
||||
);
|
||||
} catch (MmsException e) {
|
||||
Log.w(TAG, "Unable to insert blocked message", e);
|
||||
}
|
||||
}
|
||||
|
||||
private static void insertUnblockedUpdate(@NonNull Recipient recipient, long threadId) {
|
||||
try {
|
||||
SignalDatabase.messages().insertMessageOutbox(
|
||||
OutgoingMessage.unblockedMessage(recipient, System.currentTimeMillis(), TimeUnit.SECONDS.toMillis(recipient.getExpiresInSeconds())),
|
||||
threadId,
|
||||
false,
|
||||
null
|
||||
);
|
||||
} catch (MmsException e) {
|
||||
Log.w(TAG, "Unable to insert unblocked message", e);
|
||||
}
|
||||
}
|
||||
|
||||
@WorkerThread
|
||||
public static Recipient.HiddenState getRecipientHiddenState(long threadId) {
|
||||
if (threadId < 0) {
|
||||
|
||||
Reference in New Issue
Block a user