From aa72560d15b24e5acd4aeea5eddf8f0f3f18796f Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 2 Jan 2019 10:58:07 +0100 Subject: [PATCH] Updated navigation menu on changes only --- .../java/eu/faircode/email/ActivityView.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 9c8b6b7a2f..8b4ce9efd9 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -250,11 +250,27 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB getSupportFragmentManager().addOnBackStackChangedListener(this); DB.getInstance(this).account().liveAccounts(true, threading).observe(this, new Observer>() { + private List last = new ArrayList<>(); + @Override public void onChanged(@Nullable List accounts) { if (accounts == null) accounts = new ArrayList<>(); + boolean changed = false; + if (last.size() == accounts.size()) { + for (int i = 0; i < accounts.size(); i++) + if (!last.get(i).equals(accounts.get(i))) { + changed = true; + break; + } + } else + changed = true; + + if (!changed) + return; + last = accounts; + ArrayAdapterDrawer drawerArray = new ArrayAdapterDrawer(ActivityView.this); final Collator collator = Collator.getInstance(Locale.getDefault());