This addresses two types of introduction corner cases:

* force decline when two of our own identities are introduced to each
  other
* throw away introduction requests to the same identity
  (impossible to trigger from UI)

Closes #284
This commit is contained in:
Torsten Grote
2016-04-13 13:46:34 -03:00
parent 9f4cacd81c
commit d0036deaf7
11 changed files with 72 additions and 17 deletions

View File

@@ -102,6 +102,12 @@ public interface DatabaseComponent {
*/
boolean containsGroup(Transaction txn, GroupId g) throws DbException;
/**
* Returns true if the database contains the given local author.
*/
boolean containsLocalAuthor(Transaction txn, AuthorId local)
throws DbException;
/**
* Deletes the message with the given ID. The message ID and any other
* associated data are not deleted.

View File

@@ -57,6 +57,7 @@ public interface IntroductionConstants {
String ADDED_CONTACT_ID = "addedContactId";
String NOT_OUR_RESPONSE = "notOurResponse";
String EXISTS = "contactExists";
String REMOTE_AUTHOR_IS_US = "remoteAuthorIsUs";
String ANSWERED = "answered";
String TASK = "task";

View File

@@ -6,12 +6,12 @@ import org.briarproject.api.sync.MessageId;
public class IntroductionRequest extends IntroductionResponse {
private final String message;
private final boolean answered, exists;
private final boolean answered, exists, introducesOtherIdentity;
public IntroductionRequest(SessionId sessionId, MessageId messageId,
long time, boolean local, boolean sent, boolean seen, boolean read,
AuthorId authorId, String name, boolean accepted, String message,
boolean answered, boolean exists) {
boolean answered, boolean exists, boolean introducesOtherIdentity) {
super(sessionId, messageId, time, local, sent, seen, read, authorId,
name, accepted);
@@ -19,6 +19,7 @@ public class IntroductionRequest extends IntroductionResponse {
this.message = message;
this.answered = answered;
this.exists = exists;
this.introducesOtherIdentity = introducesOtherIdentity;
}
public String getMessage() {
@@ -33,4 +34,7 @@ public class IntroductionRequest extends IntroductionResponse {
return exists;
}
public boolean doesIntroduceOtherIdentity() {
return introducesOtherIdentity;
}
}