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 a66deb71..7abeabc6 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 @@ -203,7 +203,7 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt if (chanLoader != null) { ChanThread thread = chanLoader.getThread(); if (thread != null) { - threadPresenterCallback.scrollTo(0, false); + scrollTo(0, false); showPosts(); } } diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/PostRepliesController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/PostRepliesController.java index 80c33689..cf41c244 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/PostRepliesController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/PostRepliesController.java @@ -44,6 +44,8 @@ import org.floens.chan.ui.helper.PostPopupHelper; import org.floens.chan.ui.view.LoadView; import org.floens.chan.ui.view.ThumbnailView; +import java.util.List; + import static org.floens.chan.ui.theme.ThemeHelper.theme; public class PostRepliesController extends Controller { @@ -57,6 +59,7 @@ public class PostRepliesController extends Controller { private LoadView loadView; private ListView listView; + private PostPopupHelper.RepliesData displayingData; public PostRepliesController(Context context, PostPopupHelper postPopupHelper, ThreadPresenter presenter) { super(context); @@ -122,7 +125,17 @@ public class PostRepliesController extends Controller { displayData(data); } + public List getPostRepliesData() { + return displayingData.posts; + } + + public void scrollTo(int displayPosition, boolean smooth) { + listView.smoothScrollToPosition(displayPosition); + } + private void displayData(final PostPopupHelper.RepliesData data) { + displayingData = data; + View dataView; if (ChanSettings.repliesButtonsBottom.get()) { dataView = inflateRes(R.layout.layout_post_replies_bottombuttons); diff --git a/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java b/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java index 0d64508e..dada6ed0 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/controller/ThreadController.java @@ -182,9 +182,7 @@ public abstract class ThreadController extends Controller implements ThreadLayou } public void scrollToImage(PostImage postImage) { - if (!threadLayout.postRepliesOpen()) { - threadLayout.getPresenter().scrollToImage(postImage, true); - } + threadLayout.getPresenter().scrollToImage(postImage, true); } @Override diff --git a/Clover/app/src/main/java/org/floens/chan/ui/helper/PostPopupHelper.java b/Clover/app/src/main/java/org/floens/chan/ui/helper/PostPopupHelper.java index 6d33df1f..6882f524 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/helper/PostPopupHelper.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/helper/PostPopupHelper.java @@ -75,6 +75,14 @@ public class PostPopupHelper { return presentingController != null && presentingController.alive; } + public List getDisplayingPosts() { + return presentingController.getPostRepliesData(); + } + + public void scrollTo(int displayPosition, boolean smooth) { + presentingController.scrollTo(displayPosition, smooth); + } + public ThumbnailView getThumbnail(PostImage postImage) { return presentingController.getThumbnail(postImage); } 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 d473387f..85fd38b3 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 @@ -310,7 +310,11 @@ public class ThreadLayout extends CoordinatorLayout implements ThreadPresenter.T @Override public List getDisplayingPosts() { - return threadListLayout.getDisplayingPosts(); + if (postPopupHelper.isOpen()) { + return postPopupHelper.getDisplayingPosts(); + } else { + return threadListLayout.getDisplayingPosts(); + } } @Override @@ -320,7 +324,11 @@ public class ThreadLayout extends CoordinatorLayout implements ThreadPresenter.T @Override public void scrollTo(int displayPosition, boolean smooth) { - threadListLayout.scrollTo(displayPosition, smooth); + if (postPopupHelper.isOpen()) { + postPopupHelper.scrollTo(displayPosition, smooth); + } else { + threadListLayout.scrollTo(displayPosition, smooth); + } } @Override