Synchronize with paired devices when a contact changes.

// FREEBIE
This commit is contained in:
Moxie Marlinspike
2015-11-04 17:56:19 -08:00
parent 05eba8c2f0
commit 11a93fabe5
6 changed files with 46 additions and 21 deletions
@@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory;
import org.thoughtcrime.securesms.database.NotInDirectoryException;
import org.thoughtcrime.securesms.database.TextSecureDirectory;
import org.thoughtcrime.securesms.jobs.DirectoryRefreshJob;
import org.thoughtcrime.securesms.jobs.MultiDeviceContactUpdateJob;
import org.thoughtcrime.securesms.push.TextSecureCommunicationFactory;
import org.thoughtcrime.securesms.recipients.Recipients;
import org.thoughtcrime.securesms.util.DirectoryHelper.UserCapabilities.Capability;
@@ -59,13 +60,9 @@ public class DirectoryHelper {
private static final String TAG = DirectoryHelper.class.getSimpleName();
public static void refreshDirectory(final Context context) throws IOException {
refreshDirectory(context, TextSecureCommunicationFactory.createManager(context));
}
public static void refreshDirectory(final Context context, final TextSecureAccountManager accountManager)
throws IOException
{
refreshDirectory(context, accountManager, TextSecurePreferences.getLocalNumber(context));
refreshDirectory(context,
TextSecureCommunicationFactory.createManager(context),
TextSecurePreferences.getLocalNumber(context));
}
public static void refreshDirectory(final Context context, final TextSecureAccountManager accountManager, final String localNumber)
@@ -92,7 +89,14 @@ public class DirectoryHelper {
}
try {
DatabaseFactory.getContactsDatabase(context).setRegisteredUsers(account.get(), e164numbers);
boolean modified = DatabaseFactory.getContactsDatabase(context)
.setRegisteredUsers(account.get(), e164numbers);
if (modified && TextSecurePreferences.isMultiDevice(context)) {
ApplicationContext.getInstance(context)
.getJobManager()
.add(new MultiDeviceContactUpdateJob(context));
}
} catch (RemoteException | OperationApplicationException e) {
Log.w(TAG, e);
}