Merge branch '893-double-introduction-accept' into 'master'

Prevent conversation actions from being executed twice

Closes #893

See merge request !512
This commit is contained in:
akwizgran
2017-04-07 14:03:40 +00:00
3 changed files with 11 additions and 1 deletions

View File

@@ -946,6 +946,7 @@ public class ConversationActivity extends BriarActivity
@Override @Override
public void respondToRequest(final ConversationRequestItem item, public void respondToRequest(final ConversationRequestItem item,
final boolean accept) { final boolean accept) {
item.setAnswered(true);
int position = adapter.findItemPosition(item); int position = adapter.findItemPosition(item);
if (position != INVALID_POSITION) { if (position != INVALID_POSITION) {
adapter.notifyItemChanged(position, item); adapter.notifyItemChanged(position, item);

View File

@@ -21,7 +21,8 @@ class ConversationRequestItem extends ConversationNoticeInItem {
private final GroupId requestedGroupId; private final GroupId requestedGroupId;
private final RequestType requestType; private final RequestType requestType;
private final SessionId sessionId; private final SessionId sessionId;
private final boolean answered, canBeOpened; private final boolean canBeOpened;
private boolean answered;
ConversationRequestItem(MessageId id, GroupId groupId, ConversationRequestItem(MessageId id, GroupId groupId,
RequestType requestType, SessionId sessionId, String text, RequestType requestType, SessionId sessionId, String text,
@@ -53,6 +54,10 @@ class ConversationRequestItem extends ConversationNoticeInItem {
return answered; return answered;
} }
void setAnswered(boolean answered) {
this.answered = answered;
}
public boolean canBeOpened() { public boolean canBeOpened() {
return canBeOpened; return canBeOpened;
} }

View File

@@ -51,6 +51,8 @@ class ConversationRequestViewHolder extends ConversationNoticeInViewHolder {
acceptButton.setOnClickListener(new OnClickListener() { acceptButton.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
acceptButton.setEnabled(false);
declineButton.setEnabled(false);
listener.respondToRequest(item, true); listener.respondToRequest(item, true);
} }
}); });
@@ -58,6 +60,8 @@ class ConversationRequestViewHolder extends ConversationNoticeInViewHolder {
declineButton.setOnClickListener(new OnClickListener() { declineButton.setOnClickListener(new OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
acceptButton.setEnabled(false);
declineButton.setEnabled(false);
listener.respondToRequest(item, false); listener.respondToRequest(item, false);
} }
}); });