Move "directory" information into RecipientPreferencesDatabase

// FREEBIE
This commit is contained in:
Moxie Marlinspike
2017-08-07 14:24:53 -07:00
parent a02f223a96
commit 5a5e47f2df
11 changed files with 189 additions and 399 deletions

View File

@@ -3,16 +3,10 @@ package org.thoughtcrime.securesms.jobs;
import android.content.Context;
import android.util.Log;
import org.thoughtcrime.securesms.ApplicationContext;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.whispersystems.jobqueue.JobManager;
import org.whispersystems.jobqueue.JobParameters;
import org.whispersystems.libsignal.InvalidVersionException;
import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
import org.thoughtcrime.securesms.database.TextSecureDirectory;
import org.thoughtcrime.securesms.database.NotInDirectoryException;
import org.whispersystems.signalservice.api.push.ContactTokenDetails;
import java.io.IOException;

View File

@@ -7,15 +7,17 @@ import org.thoughtcrime.securesms.ApplicationContext;
import org.thoughtcrime.securesms.database.Address;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.MessagingDatabase.SyncMessageId;
import org.thoughtcrime.securesms.database.NotInDirectoryException;
import org.thoughtcrime.securesms.database.TextSecureDirectory;
import org.thoughtcrime.securesms.database.RecipientPreferenceDatabase.RecipientsPreferences;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.recipients.RecipientFactory;
import org.thoughtcrime.securesms.service.KeyCachingService;
import org.thoughtcrime.securesms.util.Util;
import org.whispersystems.jobqueue.JobManager;
import org.whispersystems.jobqueue.JobParameters;
import org.whispersystems.libsignal.util.guava.Optional;
import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
import org.whispersystems.signalservice.api.push.ContactTokenDetails;
import java.util.LinkedList;
public abstract class PushReceivedJob extends ContextJob {
@@ -29,12 +31,7 @@ public abstract class PushReceivedJob extends ContextJob {
Address source = Address.fromExternal(context, envelope.getSource());
if (!isActiveNumber(context, source)) {
TextSecureDirectory directory = TextSecureDirectory.getInstance(context);
ContactTokenDetails contactTokenDetails = new ContactTokenDetails();
contactTokenDetails.setNumber(envelope.getSource());
directory.setNumber(contactTokenDetails, true);
DatabaseFactory.getRecipientPreferenceDatabase(context).setRegistered(Util.asList(source), new LinkedList<>());
Recipient recipient = RecipientFactory.getRecipientFor(context, source, false);
ApplicationContext.getInstance(context).getJobManager().add(new DirectoryRefreshJob(context, KeyCachingService.getMasterSecret(context), recipient));
}
@@ -73,15 +70,8 @@ public abstract class PushReceivedJob extends ContextJob {
}
private boolean isActiveNumber(Context context, Address address) {
boolean isActiveNumber;
try {
isActiveNumber = TextSecureDirectory.getInstance(context).isSecureTextSupported(address);
} catch (NotInDirectoryException e) {
isActiveNumber = false;
}
return isActiveNumber;
Optional<RecipientsPreferences> preferences = DatabaseFactory.getRecipientPreferenceDatabase(context).getRecipientsPreferences(address);
return preferences.isPresent() && preferences.get().isRegistered();
}

View File

@@ -10,7 +10,6 @@ import org.thoughtcrime.securesms.attachments.Attachment;
import org.thoughtcrime.securesms.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.Address;
import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.TextSecureDirectory;
import org.thoughtcrime.securesms.events.PartProgressEvent;
import org.thoughtcrime.securesms.jobs.requirements.MasterSecretRequirement;
import org.thoughtcrime.securesms.mms.PartAuthority;
@@ -62,7 +61,8 @@ public abstract class PushSendJob extends SendJob {
}
protected SignalServiceAddress getPushAddress(Address address) {
String relay = TextSecureDirectory.getInstance(context).getRelay(address.toPhoneString());
// String relay = TextSecureDirectory.getInstance(context).getRelay(address.toPhoneString());
String relay = null;
return new SignalServiceAddress(address.toPhoneString(), Optional.fromNullable(relay));
}