From 524f5b913660a071eb29b543e88acf39ba47620e Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 30 Jan 2019 19:05:01 +0000 Subject: [PATCH] Fixed single message previous/next navigation --- .../main/java/eu/faircode/email/FragmentMessages.java | 4 ++-- .../main/java/eu/faircode/email/ViewModelMessages.java | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 884ce11139..58e13a9e0e 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -283,7 +283,7 @@ public class FragmentMessages extends FragmentBase { if (viewType == AdapterMessage.ViewType.THREAD) { if (actionbar) { ViewModelMessages model = ViewModelProviders.of(getActivity()).get(ViewModelMessages.class); - model.observePrevNext(getViewLifecycleOwner(), thread, new ViewModelMessages.IPrevNext() { + model.observePrevNext(getViewLifecycleOwner(), id, new ViewModelMessages.IPrevNext() { @Override public void onPrevious(boolean exists, Long id) { bottom_navigation.getMenu().findItem(R.id.action_prev).setIntent(new Intent().putExtra("id", id)); @@ -1777,7 +1777,7 @@ public class FragmentMessages extends FragmentBase { private void loadMessages() { if (viewType == AdapterMessage.ViewType.THREAD && autonext) { ViewModelMessages model = ViewModelProviders.of(getActivity()).get(ViewModelMessages.class); - model.observePrevNext(getViewLifecycleOwner(), thread, new ViewModelMessages.IPrevNext() { + model.observePrevNext(getViewLifecycleOwner(), id, new ViewModelMessages.IPrevNext() { boolean once = false; @Override diff --git a/app/src/main/java/eu/faircode/email/ViewModelMessages.java b/app/src/main/java/eu/faircode/email/ViewModelMessages.java index 897dcdf4a4..0ac0a5e352 100644 --- a/app/src/main/java/eu/faircode/email/ViewModelMessages.java +++ b/app/src/main/java/eu/faircode/email/ViewModelMessages.java @@ -75,22 +75,22 @@ public class ViewModelMessages extends ViewModel { messages.clear(); } - void observePrevNext(LifecycleOwner owner, final String thread, final IPrevNext intf) { + void observePrevNext(LifecycleOwner owner, final long id, final IPrevNext intf) { LiveData> list = messages.get(false); if (list == null) { Log.w("Observe previous/next without list"); return; } - Log.i("Observe previous/next thread=" + thread); + Log.i("Observe previous/next id=" + id); list.observe(owner, new Observer>() { @Override public void onChanged(PagedList messages) { - Log.i("Observe previous/next thread=" + thread + " messages=" + messages.size()); + Log.i("Observe previous/next id=" + id + " messages=" + messages.size()); for (int pos = 0; pos < messages.size(); pos++) { TupleMessageEx item = messages.get(pos); - if (item != null && thread.equals(item.thread)) { + if (item != null && id == item.id) { boolean load = false; if (pos - 1 >= 0) { @@ -116,7 +116,7 @@ public class ViewModelMessages extends ViewModel { } } - Log.w("Observe previous/next gone thread=" + thread); + Log.w("Observe previous/next gone id=" + id); } }); }