From aff74cffa0a4ca69050c1c8ff2703103684a27c3 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 30 Jul 2020 13:31:45 -0400 Subject: [PATCH] Fix crash with UnknownSenderView. The listener was being called on a background thread, but it was doing UI work. --- .../securesms/profiles/UnknownSenderView.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/UnknownSenderView.java b/app/src/main/java/org/thoughtcrime/securesms/profiles/UnknownSenderView.java index f72a086234..642efa67d4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/profiles/UnknownSenderView.java +++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/UnknownSenderView.java @@ -12,6 +12,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.recipients.RecipientExporter; import org.thoughtcrime.securesms.util.ViewUtil; +import org.thoughtcrime.securesms.util.concurrent.SignalExecutors; public class UnknownSenderView extends FrameLayout { @@ -50,10 +51,14 @@ public class UnknownSenderView extends FrameLayout { protected Void doInBackground(Void... params) { DatabaseFactory.getRecipientDatabase(context).setBlocked(recipient.getId(), true); if (threadId != -1) DatabaseFactory.getThreadDatabase(context).setHasSent(threadId, true); - listener.onActionTaken(); return null; } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + + @Override + protected void onPostExecute(Void aVoid) { + listener.onActionTaken(); + } + }.executeOnExecutor(SignalExecutors.BOUNDED); }) .setNegativeButton(android.R.string.cancel, null) .show(); @@ -78,10 +83,14 @@ public class UnknownSenderView extends FrameLayout { protected Void doInBackground(Void... params) { DatabaseFactory.getRecipientDatabase(context).setProfileSharing(recipient.getId(), true); if (threadId != -1) DatabaseFactory.getThreadDatabase(context).setHasSent(threadId, true); - listener.onActionTaken(); return null; } - }.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + + @Override + protected void onPostExecute(Void aVoid) { + listener.onActionTaken(); + } + }.executeOnExecutor(SignalExecutors.BOUNDED); }) .setNegativeButton(android.R.string.cancel, null) .show();