diff --git a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java index ed0e7bd5..868e6813 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java +++ b/Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java @@ -278,8 +278,9 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt public void scrollToImage(PostImage postImage, boolean smooth) { if (!searchOpen) { int position = -1; - for (int i = 0; i < chanLoader.getThread().posts.size(); i++) { - Post post = chanLoader.getThread().posts.get(i); + List posts = threadPresenterCallback.getDisplayingPosts(); + for (int i = 0; i < posts.size(); i++) { + Post post = posts.get(i); if (post.hasImage && post.imageUrl.equals(postImage.imageUrl)) { position = i; break; @@ -293,8 +294,9 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt public void scrollToPost(Post needle, boolean smooth) { int position = -1; - for (int i = 0; i < chanLoader.getThread().posts.size(); i++) { - Post post = chanLoader.getThread().posts.get(i); + List posts = threadPresenterCallback.getDisplayingPosts(); + for (int i = 0; i < posts.size(); i++) { + Post post = posts.get(i); if (post.no == needle.no) { position = i; break; @@ -335,8 +337,9 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt public void onThumbnailClicked(Post post, ThumbnailView thumbnail) { List images = new ArrayList<>(); int index = -1; - for (int i = 0; i < chanLoader.getThread().posts.size(); i++) { - Post item = chanLoader.getThread().posts.get(i); + List posts = threadPresenterCallback.getDisplayingPosts(); + for (int i = 0; i < posts.size(); i++) { + Post item = posts.get(i); if (item.hasImage) { images.add(new PostImage(String.valueOf(item.tim), item.thumbnailUrl, item.imageUrl, item.filename, item.ext, item.imageWidth, item.imageHeight, item.spoiler)); if (item.no == post.no) { @@ -621,6 +624,8 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt void showPostsPopup(Post forPost, List posts); + List getDisplayingPosts(); + void showImages(List images, int index, Loadable loadable, ThumbnailView thumbnail); void scrollTo(int position, boolean smooth); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PostAdapter.java b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PostAdapter.java index 40078390..fa8fd843 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/adapter/PostAdapter.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/adapter/PostAdapter.java @@ -144,6 +144,10 @@ public class PostAdapter extends RecyclerView.Adapter { return displayList.size(); } + public List getDisplayList() { + return displayList; + } + public void cleanup() { highlightedPost = null; highlightedPostId = null; diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java index 0217cced..aa15c8cc 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java @@ -285,6 +285,11 @@ public class ThreadLayout extends CoordinatorLayout implements ThreadPresenter.T postPopupHelper.showPosts(forPost, posts); } + @Override + public List getDisplayingPosts() { + return threadListLayout.getDisplayingPosts(); + } + @Override public void showImages(List images, int index, Loadable loadable, ThumbnailView thumbnail) { callback.showImages(images, index, loadable, thumbnail); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java index d9774254..8df00947 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java @@ -41,6 +41,8 @@ import org.floens.chan.ui.view.ThumbnailView; import org.floens.chan.utils.AndroidUtils; import org.floens.chan.utils.AnimationUtils; +import java.util.List; + import static org.floens.chan.utils.AndroidUtils.ROBOTO_MEDIUM; import static org.floens.chan.utils.AndroidUtils.dp; import static org.floens.chan.utils.AndroidUtils.getAttrColor; @@ -313,6 +315,10 @@ public class ThreadListLayout extends LinearLayout implements ReplyLayout.ReplyL showingThread = null; } + public List getDisplayingPosts() { + return postAdapter.getDisplayList(); + } + public ThumbnailView getThumbnail(PostImage postImage) { RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();