Use the displaying list (after filtering) for scrolling to positions in the thread.

filtering
Floens 10 years ago
parent 97a0d1b4a8
commit 5a564ddc32
  1. 17
      Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java
  2. 4
      Clover/app/src/main/java/org/floens/chan/ui/adapter/PostAdapter.java
  3. 5
      Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadLayout.java
  4. 6
      Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.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<Post> 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<Post> 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<PostImage> images = new ArrayList<>();
int index = -1;
for (int i = 0; i < chanLoader.getThread().posts.size(); i++) {
Post item = chanLoader.getThread().posts.get(i);
List<Post> 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<Post> posts);
List<Post> getDisplayingPosts();
void showImages(List<PostImage> images, int index, Loadable loadable, ThumbnailView thumbnail);
void scrollTo(int position, boolean smooth);

@ -144,6 +144,10 @@ public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
return displayList.size();
}
public List<Post> getDisplayList() {
return displayList;
}
public void cleanup() {
highlightedPost = null;
highlightedPostId = null;

@ -285,6 +285,11 @@ public class ThreadLayout extends CoordinatorLayout implements ThreadPresenter.T
postPopupHelper.showPosts(forPost, posts);
}
@Override
public List<Post> getDisplayingPosts() {
return threadListLayout.getDisplayingPosts();
}
@Override
public void showImages(List<PostImage> images, int index, Loadable loadable, ThumbnailView thumbnail) {
callback.showImages(images, index, loadable, thumbnail);

@ -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<Post> getDisplayingPosts() {
return postAdapter.getDisplayList();
}
public ThumbnailView getThumbnail(PostImage postImage) {
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();

Loading…
Cancel
Save