mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-25 19:29:54 +01:00
GroupId class.
This commit is contained in:
committed by
Greyson Parrelli
parent
a73a73e42c
commit
a860315587
@@ -19,7 +19,6 @@ import org.thoughtcrime.securesms.database.GroupDatabase.GroupRecord;
|
||||
import org.thoughtcrime.securesms.database.RecipientDatabase;
|
||||
import org.thoughtcrime.securesms.database.RecipientDatabase.RecipientSettings;
|
||||
import org.thoughtcrime.securesms.logging.Log;
|
||||
import org.thoughtcrime.securesms.util.GroupUtil;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
@@ -198,7 +197,7 @@ public final class LiveRecipient {
|
||||
List<Recipient> members = Stream.of(groupRecord.get().getMembers()).filterNot(RecipientId::isUnknown).map(this::fetchRecipientFromDisk).toList();
|
||||
Optional<Long> avatarId = Optional.absent();
|
||||
|
||||
if (settings.getGroupId() != null && !GroupUtil.isMmsGroup(settings.getGroupId()) && title == null) {
|
||||
if (settings.getGroupId() != null && !settings.getGroupId().isMmsGroup() && title == null) {
|
||||
title = unnamedGroupName;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState;
|
||||
import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode;
|
||||
import org.thoughtcrime.securesms.database.RecipientDatabase.VibrateState;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.groups.GroupId;
|
||||
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
||||
import org.thoughtcrime.securesms.logging.Log;
|
||||
import org.thoughtcrime.securesms.notifications.NotificationChannels;
|
||||
@@ -35,7 +36,6 @@ import org.thoughtcrime.securesms.phonenumbers.NumberUtil;
|
||||
import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter;
|
||||
import org.thoughtcrime.securesms.profiles.ProfileName;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.util.GroupUtil;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.libsignal.util.guava.Preconditions;
|
||||
@@ -64,7 +64,7 @@ public class Recipient {
|
||||
private final String username;
|
||||
private final String e164;
|
||||
private final String email;
|
||||
private final String groupId;
|
||||
private final GroupId groupId;
|
||||
private final List<Recipient> participants;
|
||||
private final Optional<Long> groupAvatarId;
|
||||
private final boolean localNumber;
|
||||
@@ -236,11 +236,7 @@ public class Recipient {
|
||||
* identifier is a groupId.
|
||||
*/
|
||||
@WorkerThread
|
||||
public static @NonNull Recipient externalGroup(@NonNull Context context, @NonNull String groupId) {
|
||||
if (!GroupUtil.isEncodedGroup(groupId)) {
|
||||
throw new IllegalArgumentException("Invalid groupId!");
|
||||
}
|
||||
|
||||
public static @NonNull Recipient externalGroup(@NonNull Context context, @NonNull GroupId groupId) {
|
||||
return Recipient.resolved(DatabaseFactory.getRecipientDatabase(context).getOrInsertFromGroupId(groupId));
|
||||
}
|
||||
|
||||
@@ -274,8 +270,8 @@ public class Recipient {
|
||||
throw new UuidRecipientError();
|
||||
}
|
||||
}
|
||||
} else if (GroupUtil.isEncodedGroup(identifier)) {
|
||||
id = db.getOrInsertFromGroupId(identifier);
|
||||
} else if (GroupId.isEncodedGroup(identifier)) {
|
||||
id = db.getOrInsertFromGroupId(GroupId.parse(identifier));
|
||||
} else if (NumberUtil.isValidEmail(identifier)) {
|
||||
id = db.getOrInsertFromEmail(identifier);
|
||||
} else {
|
||||
@@ -385,7 +381,7 @@ public class Recipient {
|
||||
}
|
||||
|
||||
public @Nullable String getName(@NonNull Context context) {
|
||||
if (this.name == null && groupId != null && GroupUtil.isMmsGroup(groupId)) {
|
||||
if (this.name == null && groupId != null && groupId.isMmsGroup()) {
|
||||
List<String> names = new LinkedList<>();
|
||||
|
||||
for (Recipient recipient : participants) {
|
||||
@@ -443,7 +439,7 @@ public class Recipient {
|
||||
return Optional.fromNullable(email);
|
||||
}
|
||||
|
||||
public @NonNull Optional<String> getGroupId() {
|
||||
public @NonNull Optional<GroupId> getGroupId() {
|
||||
return Optional.fromNullable(groupId);
|
||||
}
|
||||
|
||||
@@ -495,8 +491,8 @@ public class Recipient {
|
||||
return getUuid().isPresent();
|
||||
}
|
||||
|
||||
public @NonNull String requireGroupId() {
|
||||
String resolved = resolving ? resolve().groupId : groupId;
|
||||
public @NonNull GroupId requireGroupId() {
|
||||
GroupId resolved = resolving ? resolve().groupId : groupId;
|
||||
|
||||
if (resolved == null) {
|
||||
throw new MissingAddressError();
|
||||
@@ -532,7 +528,7 @@ public class Recipient {
|
||||
Recipient resolved = resolving ? resolve() : this;
|
||||
|
||||
if (resolved.isGroup()) {
|
||||
return resolved.requireGroupId();
|
||||
return resolved.requireGroupId().toString();
|
||||
} else if (resolved.getUuid().isPresent()) {
|
||||
return resolved.getUuid().get().toString();
|
||||
}
|
||||
@@ -570,13 +566,13 @@ public class Recipient {
|
||||
}
|
||||
|
||||
public boolean isMmsGroup() {
|
||||
String groupId = resolve().groupId;
|
||||
return groupId != null && GroupUtil.isMmsGroup(groupId);
|
||||
GroupId groupId = resolve().groupId;
|
||||
return groupId != null && groupId.isMmsGroup();
|
||||
}
|
||||
|
||||
public boolean isPushGroup() {
|
||||
String groupId = resolve().groupId;
|
||||
return groupId != null && !GroupUtil.isMmsGroup(groupId);
|
||||
GroupId groupId = resolve().groupId;
|
||||
return groupId != null && !groupId.isMmsGroup();
|
||||
}
|
||||
|
||||
public @NonNull List<Recipient> getParticipants() {
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.thoughtcrime.securesms.database.RecipientDatabase.RecipientSettings;
|
||||
import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState;
|
||||
import org.thoughtcrime.securesms.database.RecipientDatabase.UnidentifiedAccessMode;
|
||||
import org.thoughtcrime.securesms.database.RecipientDatabase.VibrateState;
|
||||
import org.thoughtcrime.securesms.groups.GroupId;
|
||||
import org.thoughtcrime.securesms.profiles.ProfileName;
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||
import org.thoughtcrime.securesms.util.Util;
|
||||
@@ -28,7 +29,7 @@ public class RecipientDetails {
|
||||
final String username;
|
||||
final String e164;
|
||||
final String email;
|
||||
final String groupId;
|
||||
final GroupId groupId;
|
||||
final String name;
|
||||
final String customLabel;
|
||||
final Uri systemContactPhoto;
|
||||
|
||||
@@ -14,8 +14,9 @@ import org.thoughtcrime.securesms.contacts.sync.DirectoryHelper;
|
||||
import org.thoughtcrime.securesms.database.DatabaseFactory;
|
||||
import org.thoughtcrime.securesms.database.GroupDatabase;
|
||||
import org.thoughtcrime.securesms.database.RecipientDatabase.RegisteredState;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.database.ThreadDatabase;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.groups.GroupId;
|
||||
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
|
||||
import org.thoughtcrime.securesms.jobs.LeaveGroupJob;
|
||||
import org.thoughtcrime.securesms.jobs.MultiDeviceBlockedUpdateJob;
|
||||
@@ -23,9 +24,9 @@ import org.thoughtcrime.securesms.jobs.MultiDeviceMessageRequestResponseJob;
|
||||
import org.thoughtcrime.securesms.jobs.RotateProfileKeyJob;
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||
import org.thoughtcrime.securesms.logging.Log;
|
||||
import org.thoughtcrime.securesms.mms.OutgoingGroupMediaMessage;
|
||||
import org.thoughtcrime.securesms.storage.StorageSyncHelper;
|
||||
import org.thoughtcrime.securesms.util.FeatureFlags;
|
||||
import org.thoughtcrime.securesms.mms.OutgoingGroupMediaMessage;
|
||||
import org.thoughtcrime.securesms.util.GroupUtil;
|
||||
import org.whispersystems.libsignal.util.guava.Optional;
|
||||
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
||||
@@ -123,7 +124,7 @@ public class RecipientUtil {
|
||||
ApplicationDependencies.getJobManager().add(LeaveGroupJob.create(recipient));
|
||||
|
||||
GroupDatabase groupDatabase = DatabaseFactory.getGroupDatabase(context);
|
||||
String groupId = resolved.requireGroupId();
|
||||
GroupId groupId = resolved.requireGroupId();
|
||||
groupDatabase.setActive(groupId, false);
|
||||
groupDatabase.remove(groupId, Recipient.self().getId());
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user