From ae09b4c607c36cbf6fb409ad59307cecc5a8271c Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 19 Mar 2019 12:35:15 -0300 Subject: [PATCH] [android] remove complicated logic for detecting new visible items notify after every scroll for all visible items instead --- .../ConversationScrollListener.java | 2 +- .../threaded/ThreadScrollListener.java | 6 ++-- .../view/BriarRecyclerViewScrollListener.java | 33 ++++--------------- 3 files changed, 11 insertions(+), 30 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationScrollListener.java b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationScrollListener.java index 300a8ed3b..da90aa0cf 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationScrollListener.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/conversation/ConversationScrollListener.java @@ -16,7 +16,7 @@ class ConversationScrollListener extends } @Override - protected void onNewItemVisible(ConversationItem item) { + protected void onItemVisible(ConversationItem item) { if (!item.isRead()) { viewModel.markMessageRead(item.getGroupId(), item.getId()); item.markRead(); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadScrollListener.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadScrollListener.java index d9f915048..1091d507c 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadScrollListener.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadScrollListener.java @@ -34,14 +34,14 @@ class ThreadScrollListener } @Override - protected void onNewItemVisible(int firstVisible, int lastVisible, + protected void onItemsVisible(int firstVisible, int lastVisible, int itemCount) { - super.onNewItemVisible(firstVisible, lastVisible, itemCount); + super.onItemsVisible(firstVisible, lastVisible, itemCount); updateUnreadButtons(firstVisible, lastVisible, itemCount); } @Override - protected void onNewItemVisible(I item) { + protected void onItemVisible(I item) { if (!item.isRead()) { item.setRead(true); controller.markItemRead(item); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/BriarRecyclerViewScrollListener.java b/briar-android/src/main/java/org/briarproject/briar/android/view/BriarRecyclerViewScrollListener.java index fc7cf1214..73686d601 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/view/BriarRecyclerViewScrollListener.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/view/BriarRecyclerViewScrollListener.java @@ -36,7 +36,7 @@ public abstract class BriarRecyclerViewScrollListener visibleItems; - - if (init || jump) { - // If the list has loaded, or we jump scrolled, - // all visible items are newly visible - for (int i = firstVisible; i <= lastVisible; i++) - onNewItemVisible(i); - return; - } - - boolean up = firstVisible > prevFirstVisible || - lastVisible > prevLastVisible; - if (up) { - for (int i = prevLastVisible + 1; i <= lastVisible; i++) - onNewItemVisible(i); - } else { - for (int i = firstVisible; i < prevFirstVisible; i++) - onNewItemVisible(i); + for (int i = firstVisible; i <= lastVisible; i++) { + onItemVisible(i); } } - private void onNewItemVisible(int position) { + private void onItemVisible(int position) { I item = requireNonNull(adapter.getItemAt(position)); - onNewItemVisible(item); + onItemVisible(item); } - protected abstract void onNewItemVisible(I item); + protected abstract void onItemVisible(I item); }