diff --git a/app/src/main/java/eu/faircode/email/AdapterCertificate.java b/app/src/main/java/eu/faircode/email/AdapterCertificate.java index 1da683a3e8..8304d41efb 100644 --- a/app/src/main/java/eu/faircode/email/AdapterCertificate.java +++ b/app/src/main/java/eu/faircode/email/AdapterCertificate.java @@ -20,6 +20,7 @@ package eu.faircode.email; */ import android.content.Context; +import android.graphics.Typeface; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; @@ -35,6 +36,7 @@ import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; +import java.util.Objects; public class AdapterCertificate extends RecyclerView.Adapter { private ICertificate intf; @@ -42,6 +44,7 @@ public class AdapterCertificate extends RecyclerView.Adapter items = new ArrayList<>(); public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener { @@ -110,6 +113,10 @@ public class AdapterCertificate extends RecyclerView.Adapter certificates) { - Log.i("Set certificates=" + certificates.size()); + public void set(String email, @NonNull List certificates) { + Log.i("Set email=" + email + " certificates=" + certificates.size()); DiffUtil.DiffResult diff = DiffUtil.calculateDiff(new DiffCallback(items, certificates), false); - items = certificates; + this.email = email; + this.items = certificates; diff.dispatchUpdatesTo(new ListUpdateCallback() { @Override diff --git a/app/src/main/java/eu/faircode/email/DaoCertificate.java b/app/src/main/java/eu/faircode/email/DaoCertificate.java index 0fee73dbf2..4774844040 100644 --- a/app/src/main/java/eu/faircode/email/DaoCertificate.java +++ b/app/src/main/java/eu/faircode/email/DaoCertificate.java @@ -29,8 +29,8 @@ import java.util.List; @Dao public interface DaoCertificate { @Query("SELECT * FROM certificate" + - " ORDER BY email") - LiveData> liveCertificates(); + " ORDER BY (email = :email) DESC, email, subject") + LiveData> liveCertificates(String email); @Query("SELECT * FROM certificate" + " WHERE id = :id") diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 5f7e4f9b8e..430244ebb0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -3999,12 +3999,12 @@ public class FragmentCompose extends FragmentBase { pbWait.setVisibility(View.VISIBLE); DB db = DB.getInstance(getContext()); - db.certificate().liveCertificates().observe(getViewLifecycleOwner(), new Observer>() { + db.certificate().liveCertificates(email).observe(getViewLifecycleOwner(), new Observer>() { @Override public void onChanged(List certificates) { pbWait.setVisibility(View.GONE); rvCertificate.setVisibility(View.VISIBLE); - adapter.set(certificates); + adapter.set(email, certificates); } });