Don't render friend requests if we are already friends with a users linked device.

This commit is contained in:
Mikunj
2019-10-25 16:14:15 +11:00
parent 26800cba82
commit 09f5f50af4
6 changed files with 111 additions and 33 deletions

View File

@@ -2200,7 +2200,7 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
inputMethodManager.showSoftInput(inputPanel.composeText, 0);
}
boolean hasPendingFriendRequest = !recipient.isGroupRecipient() && hasPendingFriendRequestWithAnyLinkedDevice();
boolean isFriendsWithAnyLinkedDevices = isFriendsWithAnyLinkedDevice();
boolean isFriendsWithAnyLinkedDevices = MultiDeviceUtilitiesKt.isFriendsWithAnyLinkedDevice(this, recipient);
boolean shouldEnableInput = isFriendsWithAnyLinkedDevices || !hasPendingFriendRequest;
updateToggleButtonState();
inputPanel.setEnabled(shouldEnableInput);
@@ -3032,33 +3032,6 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
updateInputPanel();
}
public boolean isFriendsWithAnyLinkedDevice() {
if (recipient.isGroupRecipient()) return true;
SettableFuture<Boolean> future = new SettableFuture<>();
LokiStorageAPI storageAPI = LokiStorageAPI.Companion.getShared();
MultiDeviceUtilitiesKt.getAllDeviceFriendRequestStatus(this, recipient.getAddress().serialize(), storageAPI).success(map -> {
for (LokiThreadFriendRequestStatus status : map.values()) {
if (status == LokiThreadFriendRequestStatus.FRIENDS) {
future.set(true);
break;
}
}
if (!future.isDone()) { future.set(false); }
return Unit.INSTANCE;
}).fail(e -> {
future.set(false);
return Unit.INSTANCE;
});
try {
return future.get();
} catch (Exception e) {
return false;
}
}
public boolean hasPendingFriendRequestWithAnyLinkedDevice() {
if (recipient.isGroupRecipient()) return false;
SettableFuture<Boolean> future = new SettableFuture<>();