Add account management interface to libtextsecure api

This commit is contained in:
Moxie Marlinspike
2014-11-09 20:35:08 -08:00
parent ae178fc4ec
commit 601e233d47
32 changed files with 463 additions and 491 deletions

View File

@@ -5,13 +5,12 @@ import android.util.Log;
import android.widget.Toast;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.push.PushServiceSocketFactory;
import org.thoughtcrime.securesms.recipients.Recipient;
import org.thoughtcrime.securesms.database.NotInDirectoryException;
import org.thoughtcrime.securesms.database.TextSecureDirectory;
import org.thoughtcrime.securesms.push.TextSecureCommunicationFactory;
import org.thoughtcrime.securesms.recipients.Recipients;
import org.whispersystems.textsecure.directory.Directory;
import org.whispersystems.textsecure.directory.NotInDirectoryException;
import org.whispersystems.textsecure.api.TextSecureAccountManager;
import org.whispersystems.textsecure.push.ContactTokenDetails;
import org.whispersystems.textsecure.push.PushServiceSocket;
import org.whispersystems.textsecure.util.DirectoryUtil;
import org.whispersystems.textsecure.util.InvalidNumberException;
@@ -54,19 +53,18 @@ public class DirectoryHelper {
}
public static void refreshDirectory(final Context context) {
refreshDirectory(context, PushServiceSocketFactory.create(context));
refreshDirectory(context, TextSecureCommunicationFactory.createManager(context));
}
public static void refreshDirectory(final Context context, final PushServiceSocket socket) {
refreshDirectory(context, socket, TextSecurePreferences.getLocalNumber(context));
public static void refreshDirectory(final Context context, final TextSecureAccountManager accountManager) {
refreshDirectory(context, accountManager, TextSecurePreferences.getLocalNumber(context));
}
public static void refreshDirectory(final Context context, final PushServiceSocket socket, final String localNumber) {
Directory directory = Directory.getInstance(context);
public static void refreshDirectory(final Context context, final TextSecureAccountManager accountManager, final String localNumber) {
TextSecureDirectory directory = TextSecureDirectory.getInstance(context);
Set<String> eligibleContactNumbers = directory.getPushEligibleContactNumbers(localNumber);
Map<String, String> tokenMap = DirectoryUtil.getDirectoryServerTokenMap(eligibleContactNumbers);
List<ContactTokenDetails> activeTokens = socket.retrieveDirectory(tokenMap.keySet());
List<ContactTokenDetails> activeTokens = accountManager.getContacts(tokenMap.keySet());
if (activeTokens != null) {
for (ContactTokenDetails activeToken : activeTokens) {
@@ -104,7 +102,7 @@ public class DirectoryHelper {
final String e164number = Util.canonicalizeNumber(context, number);
return Directory.getInstance(context).isActiveNumber(e164number);
return TextSecureDirectory.getInstance(context).isActiveNumber(e164number);
} catch (InvalidNumberException e) {
Log.w(TAG, e);
return false;