Resign ourselves to a less sophisticated contact intersection method.

This commit is contained in:
Moxie Marlinspike
2013-09-30 13:24:42 -07:00
parent 073b1f69e3
commit 75cca3add1
7 changed files with 219 additions and 22 deletions

View File

@@ -9,7 +9,6 @@ import android.os.Binder;
import android.os.Handler;
import android.os.IBinder;
import android.util.Log;
import android.util.Pair;
import com.google.android.gcm.GCMRegistrar;
import org.thoughtcrime.securesms.R;
@@ -20,15 +19,14 @@ import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.whispersystems.textsecure.crypto.IdentityKey;
import org.whispersystems.textsecure.crypto.MasterSecret;
import org.whispersystems.textsecure.crypto.PreKeyUtil;
import org.whispersystems.textsecure.directory.DirectoryDescriptor;
import org.whispersystems.textsecure.directory.NumberFilter;
import org.whispersystems.textsecure.directory.Directory;
import org.whispersystems.textsecure.push.PushServiceSocket;
import org.whispersystems.textsecure.storage.PreKeyRecord;
import org.whispersystems.textsecure.util.Util;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
@@ -282,12 +280,14 @@ public class RegistrationService extends Service {
setState(new RegistrationState(RegistrationState.STATE_GCM_REGISTERING, number));
GCMRegistrar.register(this, GcmIntentService.GCM_SENDER_ID);
String gcmRegistrationId = waitForGcmRegistrationId();
socket.registerGcmId(gcmRegistrationId);
Pair<DirectoryDescriptor, File> directory = socket.retrieveDirectory();
if (directory != null) {
NumberFilter.getInstance(this).update(directory.first, directory.second);
Set<String> contactTokens = Directory.getInstance(this).getPushEligibleContactTokens(number);
List<String> activeTokens = socket.retrieveDirectory(contactTokens);
if (activeTokens != null) {
Directory.getInstance(this).setActiveTokens(activeTokens);
// NumberFilter.getInstance(this).update(directory.first, directory.second);
}
}

View File

@@ -20,12 +20,12 @@ import android.content.Context;
import android.util.Log;
import android.util.Pair;
import org.whispersystems.textsecure.crypto.MasterSecret;
import org.thoughtcrime.securesms.database.model.SmsMessageRecord;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.util.TextSecurePreferences;
import org.thoughtcrime.securesms.util.Util;
import org.whispersystems.textsecure.directory.NumberFilter;
import org.whispersystems.textsecure.crypto.MasterSecret;
import org.whispersystems.textsecure.directory.Directory;
import java.io.IOException;
import java.util.LinkedList;
@@ -57,7 +57,7 @@ public class UniversalTransport {
Recipient recipient = message.getIndividualRecipient();
String number = Util.canonicalizeNumber(context, recipient.getNumber());
if (NumberFilter.getInstance(context).containsNumber(number)) {
if (Directory.getInstance(context).containsNumber(number)) {
try {
Log.w("UniversalTransport", "Delivering with GCM...");
pushTransport.deliver(message);
@@ -78,7 +78,7 @@ public class UniversalTransport {
List<String> destinations = getMediaDestinations(mediaMessage);
if (NumberFilter.getInstance(context).containsNumbers(destinations)) {
if (Directory.getInstance(context).containsNumbers(destinations)) {
try {
Log.w("UniversalTransport", "Delivering media message with GCM...");
pushTransport.deliver(mediaMessage, destinations);