Consolidate user "capability" enums to a single value

// FREEBIE
This commit is contained in:
Moxie Marlinspike
2017-08-07 14:33:21 -07:00
parent 5a5e47f2df
commit f61c52aace
4 changed files with 22 additions and 62 deletions

View File

@@ -30,7 +30,6 @@ import org.thoughtcrime.securesms.notifications.MessageNotifier;
import org.thoughtcrime.securesms.push.AccountManagerFactory;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.sms.IncomingJoinedMessage;
import org.thoughtcrime.securesms.util.DirectoryHelper.UserCapabilities.Capability;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
import org.whispersystems.signalservice.api.push.ContactTokenDetails;
@@ -44,37 +43,8 @@ import java.util.Set;
public class DirectoryHelper {
public static class UserCapabilities {
public static final UserCapabilities UNKNOWN = new UserCapabilities(Capability.UNKNOWN, Capability.UNKNOWN, Capability.UNKNOWN);
public static final UserCapabilities UNSUPPORTED = new UserCapabilities(Capability.UNSUPPORTED, Capability.UNSUPPORTED, Capability.UNSUPPORTED);
public static final UserCapabilities SUPPORTED = new UserCapabilities(Capability.SUPPORTED, Capability.SUPPORTED, Capability.SUPPORTED);
public enum Capability {
UNKNOWN, SUPPORTED, UNSUPPORTED
}
private final Capability text;
private final Capability voice;
private final Capability video;
public UserCapabilities(Capability text, Capability voice, Capability video) {
this.text = text;
this.voice = voice;
this.video = video;
}
public Capability getTextCapability() {
return text;
}
public Capability getVoiceCapability() {
return voice;
}
public Capability getVideoCapability() {
return video;
}
public enum Capability {
UNKNOWN, SUPPORTED, UNSUPPORTED
}
private static final String TAG = DirectoryHelper.class.getSimpleName();
@@ -128,9 +98,9 @@ public class DirectoryHelper {
return new RefreshResult(new LinkedList<>(), false);
}
public static UserCapabilities refreshDirectoryFor(@NonNull Context context,
@Nullable MasterSecret masterSecret,
@NonNull Recipient recipient)
public static Capability refreshDirectoryFor(@NonNull Context context,
@Nullable MasterSecret masterSecret,
@NonNull Recipient recipient)
throws IOException
{
RecipientPreferenceDatabase recipientDatabase = DatabaseFactory.getRecipientPreferenceDatabase(context);
@@ -151,40 +121,36 @@ public class DirectoryHelper {
notifyNewUsers(context, masterSecret, result.getNewUsers());
}
return new UserCapabilities(Capability.SUPPORTED,
details.get().isVoice() ? Capability.SUPPORTED : Capability.UNSUPPORTED,
details.get().isVideo() ? Capability.SUPPORTED : Capability.UNSUPPORTED);
return Capability.SUPPORTED;
} else {
recipientDatabase.setRegistered(new LinkedList<>(), Util.asList(recipient.getAddress()));
return UserCapabilities.UNSUPPORTED;
return Capability.UNSUPPORTED;
}
}
public static @NonNull UserCapabilities getUserCapabilities(@NonNull Context context,
@Nullable Recipient recipient)
{
public static @NonNull Capability getUserCapabilities(@NonNull Context context, @Nullable Recipient recipient) {
if (recipient == null) {
return UserCapabilities.UNSUPPORTED;
return Capability.UNSUPPORTED;
}
if (!TextSecurePreferences.isPushRegistered(context)) {
return UserCapabilities.UNSUPPORTED;
return Capability.UNSUPPORTED;
}
if (recipient.isMmsGroupRecipient()) {
return UserCapabilities.UNSUPPORTED;
return Capability.UNSUPPORTED;
}
if (recipient.isPushGroupRecipient()) {
return new UserCapabilities(Capability.SUPPORTED, Capability.UNSUPPORTED, Capability.UNSUPPORTED);
return Capability.SUPPORTED;
}
final RecipientPreferenceDatabase recipientDatabase = DatabaseFactory.getRecipientPreferenceDatabase(context);
final Optional<RecipientsPreferences> recipientPreferences = recipientDatabase.getRecipientsPreferences(recipient.getAddress());
if (recipientPreferences.isPresent() && recipientPreferences.get().isRegistered()) return UserCapabilities.SUPPORTED;
else if (recipientPreferences.isPresent()) return UserCapabilities.UNSUPPORTED;
else return UserCapabilities.UNKNOWN;
if (recipientPreferences.isPresent() && recipientPreferences.get().isRegistered()) return Capability.SUPPORTED;
else if (recipientPreferences.isPresent()) return Capability.UNSUPPORTED;
else return Capability.UNKNOWN;
}
private static @NonNull RefreshResult updateContactsDatabase(@NonNull Context context,