diff --git a/app/src/main/java/eu/faircode/email/AdapterLog.java b/app/src/main/java/eu/faircode/email/AdapterLog.java index 51838eb633..da2c86b68d 100644 --- a/app/src/main/java/eu/faircode/email/AdapterLog.java +++ b/app/src/main/java/eu/faircode/email/AdapterLog.java @@ -106,7 +106,8 @@ public class AdapterLog extends RecyclerView.Adapter { public void set(@NonNull List logs, Long account, Long folder, Long message, - @NonNull List types) { + @NonNull List types, + Runnable callback) { Log.i("Set logs=" + logs.size()); this.all = logs; @@ -162,6 +163,8 @@ public class AdapterLog extends RecyclerView.Adapter { try { diff.dispatchUpdatesTo(AdapterLog.this); + if (callback != null) + callback.run(); } catch (Throwable ex) { Log.e(ex); } @@ -175,7 +178,7 @@ public class AdapterLog extends RecyclerView.Adapter { } public void setTypes(@NonNull List types) { - set(all, account, folder, message, types); + set(all, account, folder, message, types, null); } private static class DiffCallback extends DiffUtil.Callback { diff --git a/app/src/main/java/eu/faircode/email/FragmentLogs.java b/app/src/main/java/eu/faircode/email/FragmentLogs.java index e190e8b118..e0fbed4c0a 100644 --- a/app/src/main/java/eu/faircode/email/FragmentLogs.java +++ b/app/src/main/java/eu/faircode/email/FragmentLogs.java @@ -125,9 +125,13 @@ public class FragmentLogs extends FragmentBase { if (logs == null) logs = new ArrayList<>(); - adapter.set(logs, account, folder, message, getTypes()); - if (autoScroll) - rvLog.scrollToPosition(0); + adapter.set(logs, account, folder, message, getTypes(), new Runnable() { + @Override + public void run() { + if (autoScroll) + rvLog.scrollToPosition(0); + } + }); pbWait.setVisibility(View.GONE); grpReady.setVisibility(View.VISIBLE); @@ -173,7 +177,7 @@ public class FragmentLogs extends FragmentBase { } else if (itemId == R.id.menu_auto_scroll) { boolean enabled = !item.isChecked(); item.setChecked(enabled); - onMenuAutoScoll(enabled); + onMenuAutoScroll(enabled); return true; } else if (itemId == R.id.menu_show) { onMenuShow(); @@ -189,7 +193,7 @@ public class FragmentLogs extends FragmentBase { prefs.edit().putBoolean("main_log", enabled).apply(); } - private void onMenuAutoScoll(boolean enabled) { + private void onMenuAutoScroll(boolean enabled) { autoScroll = enabled; }