diff --git a/app/src/main/java/eu/faircode/email/AdapterMessage.java b/app/src/main/java/eu/faircode/email/AdapterMessage.java index fa0f34b951..ac1c615892 100644 --- a/app/src/main/java/eu/faircode/email/AdapterMessage.java +++ b/app/src/main/java/eu/faircode/email/AdapterMessage.java @@ -93,6 +93,8 @@ import androidx.paging.PagedList; import androidx.preference.PreferenceManager; import androidx.recyclerview.selection.ItemDetailsLookup; import androidx.recyclerview.selection.SelectionTracker; +import androidx.recyclerview.widget.AdapterListUpdateCallback; +import androidx.recyclerview.widget.AsyncDifferConfig; import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; @@ -118,6 +120,8 @@ import java.util.Arrays; import java.util.Collections; import java.util.Date; import java.util.List; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import javax.mail.Address; import javax.mail.internet.InternetAddress; @@ -181,6 +185,8 @@ public class AdapterMessage extends RecyclerView.Adapter PARANOID_QUERY = Collections.unmodifiableList(Arrays.asList( "utm_source", "utm_medium", @@ -3447,7 +3453,10 @@ public class AdapterMessage extends RecyclerView.Adapter(this, DIFF_CALLBACK); + AsyncDifferConfig config = new AsyncDifferConfig.Builder<>(DIFF_CALLBACK) + .setBackgroundThreadExecutor(executor) + .build(); + this.differ = new AsyncPagedListDiffer<>(new AdapterListUpdateCallback(this), config); this.differ.addPagedListListener(new AsyncPagedListDiffer.PagedListListener() { @Override public void onCurrentListChanged(@Nullable PagedList previousList, @Nullable PagedList currentList) {