From 848101a783e7fafc758757031d5ef4eca10ca018 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 18 Dec 2019 16:45:39 -0500 Subject: [PATCH] Refactor AvatarImageView#setAvatarClickHandler. This triggered a call to Recipient#isGroup when rendering a view, which itself could trigger a DB read. This delays the call to #isGroup to lower the possibility of doing DB reads on the main thread. --- .../securesms/components/AvatarImageView.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/org/thoughtcrime/securesms/components/AvatarImageView.java b/src/org/thoughtcrime/securesms/components/AvatarImageView.java index c64a3a399a..af7b353223 100644 --- a/src/org/thoughtcrime/securesms/components/AvatarImageView.java +++ b/src/org/thoughtcrime/securesms/components/AvatarImageView.java @@ -136,17 +136,17 @@ public final class AvatarImageView extends AppCompatImageView { } private void setAvatarClickHandler(final Recipient recipient, boolean quickContactEnabled) { - if (!recipient.isGroup() && quickContactEnabled) { - super.setOnClickListener(v -> { + super.setOnClickListener(v -> { + if (!recipient.isGroup() && quickContactEnabled) { if (recipient.getContactUri() != null) { ContactsContract.QuickContact.showQuickContact(getContext(), AvatarImageView.this, recipient.getContactUri(), ContactsContract.QuickContact.MODE_LARGE, null); } else { getContext().startActivity(RecipientExporter.export(recipient).asAddContactIntent()); } - }); - } else { - super.setOnClickListener(listener); - } + } else { + listener.onClick(v); + } + }); } private static class RecipientContactPhoto {