From ac1165c8fd7981b7a8086375e80e0cd9739f594a Mon Sep 17 00:00:00 2001 From: Sagar <85388413+Sagar0-0@users.noreply.github.com> Date: Fri, 11 Apr 2025 21:15:28 +0530 Subject: [PATCH] Avoid blocking yourself. --- .../blocked/BlockedUsersActivity.java | 21 +++++++++++++++++-- app/src/main/res/values/strings.xml | 1 + 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/blocked/BlockedUsersActivity.java b/app/src/main/java/org/thoughtcrime/securesms/blocked/BlockedUsersActivity.java index 3c5492f053..50a8205262 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/blocked/BlockedUsersActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/blocked/BlockedUsersActivity.java @@ -38,6 +38,7 @@ public class BlockedUsersActivity extends PassphraseRequiredActivity implements private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme(); private BlockedUsersViewModel viewModel; + private View container; private final LifecycleDisposable lifecycleDisposable = new LifecycleDisposable(); @@ -57,7 +58,7 @@ public class BlockedUsersActivity extends PassphraseRequiredActivity implements Toolbar toolbar = findViewById(R.id.toolbar); ContactFilterView contactFilterView = findViewById(R.id.contact_filter_edit_text); - View container = findViewById(R.id.fragment_container); + container = findViewById(R.id.fragment_container); toolbar.setNavigationOnClickListener(unused -> onBackPressed()); contactFilterView.setOnFilterChangedListener(query -> { @@ -99,7 +100,23 @@ public class BlockedUsersActivity extends PassphraseRequiredActivity implements @Override public void onBeforeContactSelected(boolean isFromUnknownSearchKey, @NonNull Optional recipientId, String number, @NonNull Optional chatType, @NonNull Consumer callback) { - final String displayName = recipientId.map(id -> Recipient.resolved(id).getDisplayName(this)).orElse(number); + Optional resolvedRecipient = recipientId.map(Recipient::resolved); + + final String displayName = resolvedRecipient + .map(r -> r.getDisplayName(this)) + .orElse(number); + + boolean isSelf = resolvedRecipient + .map(Recipient::isSelf) + .orElseGet(() -> Optional.ofNullable(number) + .map(Recipient::external) + .map(Recipient::isSelf) + .orElse(false)); + + if (isSelf) { + Snackbar.make(container, getString(R.string.BlockedUsersActivity__cannot_block_yourself), Snackbar.LENGTH_SHORT).show(); + return; + } AlertDialog confirmationDialog = new MaterialAlertDialogBuilder(this) .setTitle(R.string.BlockedUsersActivity__block_user) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6957e9b6d9..04d87b14b4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -152,6 +152,7 @@ Blocked users Add blocked user + Cannot block yourself Blocked users will not be able to call you or send you messages. No blocked users Block user?