From eb6e2fb71342cd3d271846b40215147e1d4c720a Mon Sep 17 00:00:00 2001 From: M66B Date: Sun, 6 Mar 2022 12:20:47 +0100 Subject: [PATCH] Optimization --- .../java/eu/faircode/email/ActivityView.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index e77f8bfdb1..0e2f53e617 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -872,10 +872,23 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB }); db.operation().liveStats().observe(owner, new Observer() { + private Boolean lastWarning = null; + private Integer lastCount = null; + @Override public void onChanged(TupleOperationStats stats) { - navOperations.setWarning(stats != null && stats.errors != null && stats.errors > 0); - navOperations.setCount(stats == null ? 0 : stats.pending); + boolean warning = (stats != null && stats.errors != null && stats.errors > 0); + int count = (stats == null ? 0 : stats.pending); + + if (Objects.equals(lastWarning, warning) && Objects.equals(lastCount, count)) + return; + + lastWarning = warning; + lastCount = count; + + navOperations.setWarning(warning); + navOperations.setCount(count); + int pos = adapterNavMenu.getPosition(navOperations); if (pos < 0) adapterNavMenu.notifyDataSetChanged();