From 5f4e1ecdfd7da00a723de0b8f4de706fa63fe8e1 Mon Sep 17 00:00:00 2001 From: Ernir Erlingsson Date: Mon, 24 Apr 2017 23:34:34 +0200 Subject: [PATCH] improvements after code review #1 fix --- .../android/threaded/ThreadItemAdapter.java | 26 +++++++++---------- .../android/threaded/ThreadListActivity.java | 5 ++-- .../threaded/ThreadListController.java | 6 ++--- .../threaded/ThreadListControllerImpl.java | 13 +++------- .../briar/client/MessageTrackerImpl.java | 2 +- 5 files changed, 22 insertions(+), 30 deletions(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadItemAdapter.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadItemAdapter.java index 9e4bbe51e..0a36ac80e 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadItemAdapter.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadItemAdapter.java @@ -66,31 +66,29 @@ public class ThreadItemAdapter revision++; } - void setBottomItem(MessageId messageId) { + // Useful when the adapter has not calculated the dimension yet + void postSetItemWithIdVisible(@Nullable final MessageId messageId) { + new Handler().post(new Runnable() { + @Override + public void run() { + setItemWithIdVisible(messageId); + } + }); + } + + void setItemWithIdVisible(@Nullable MessageId messageId) { if (messageId != null) { int pos = 0; for (I item : items) { if (item.getId().equals(messageId)) { - scrollToPosition(pos); + layoutManager.scrollToPosition(pos); break; - } pos++; } } } - private void scrollToPosition(final int pos) { - // Post call ensures that the list scrolls AFTER it has been propagated - // and the layout has been calculated. - handler.post(new Runnable() { - @Override - public void run() { - layoutManager.scrollToPosition(pos); - } - }); - } - public void setItems(Collection items) { this.items.clear(); this.items.addAll(items); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java index dc184365e..68cec97a2 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/threaded/ThreadListActivity.java @@ -148,7 +148,8 @@ public abstract class ThreadListActivity handler); - interface ThreadListListener extends DestroyableContext { + interface ThreadListListener extends ThreadListDataSource { @UiThread void onHeaderReceived(H header); @@ -53,10 +53,10 @@ public interface ThreadListController