From 608bc2ed6fe81be94db75ed486dc7b9d07855b36 Mon Sep 17 00:00:00 2001 From: Floens Date: Mon, 22 Jun 2015 19:55:13 +0200 Subject: [PATCH] Add highlighting by tripcode --- .../chan/core/presenter/ThreadPresenter.java | 10 ++++++++++ .../org/floens/chan/ui/adapter/PostAdapter.java | 15 ++++++++++++++- .../org/floens/chan/ui/layout/ThreadLayout.java | 5 +++++ .../floens/chan/ui/layout/ThreadListLayout.java | 4 ++++ Clover/app/src/main/res/values/strings.xml | 1 + 5 files changed, 34 insertions(+), 1 deletion(-) 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 68b16415..3247a81e 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 @@ -65,6 +65,7 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt private static final int POST_OPTION_SAVE = 8; private static final int POST_OPTION_PIN = 9; private static final int POST_OPTION_SHARE = 10; + private static final int POST_OPTION_HIGHLIGHT_TRIPCODE = 11; private WatchManager watchManager; private DatabaseManager databaseManager; @@ -325,6 +326,10 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt menu.add(new FloatingMenuItem(POST_OPTION_HIGHLIGHT_ID, R.string.post_highlight_id)); } + if (!TextUtils.isEmpty(post.tripcode)) { + menu.add(new FloatingMenuItem(POST_OPTION_HIGHLIGHT_TRIPCODE, R.string.post_highlight_tripcode)); + } + if (databaseManager.isSavedReply(post.board, post.no)) { menu.add(new FloatingMenuItem(POST_OPTION_DELETE, R.string.delete)); } @@ -359,6 +364,9 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt case POST_OPTION_HIGHLIGHT_ID: threadPresenterCallback.highlightPostId(post.id); break; + case POST_OPTION_HIGHLIGHT_TRIPCODE: + threadPresenterCallback.highlightPostTripcode(post.tripcode); + break; case POST_OPTION_DELETE: requestDeletePost(post); break; @@ -603,6 +611,8 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt void highlightPostId(String id); + void highlightPostTripcode(String tripcode); + void showSearch(boolean show); void filterList(String query, List filter, boolean clearFilter, boolean setEmptyText, boolean hideKeyboard); 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 a4ecf40d..c81a83e9 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 @@ -52,6 +52,7 @@ public class PostAdapter extends RecyclerView.Adapter { private Post highlightedPost; private String highlightedPostId; private int highlightedPostNo = -1; + private String highlightedPostTripcode; private boolean filtering = false; private PostCellInterface.PostViewMode postViewMode; @@ -93,7 +94,7 @@ public class PostAdapter extends RecyclerView.Adapter { if (getItemViewType(position) == TYPE_POST) { PostViewHolder postViewHolder = (PostViewHolder) holder; Post post = displayList.get(position); - boolean highlight = post == highlightedPost || post.id.equals(highlightedPostId) || post.no == highlightedPostNo; + boolean highlight = post == highlightedPost || post.id.equals(highlightedPostId) || post.no == highlightedPostNo || post.tripcode.equals(highlightedPostTripcode); postViewHolder.postView.setPost(null, post, postCellCallback, highlight, -1); } else if (getItemViewType(position) == TYPE_STATUS) { ((StatusViewHolder) holder).threadStatusCell.update(); @@ -151,6 +152,7 @@ public class PostAdapter extends RecyclerView.Adapter { highlightedPost = null; highlightedPostId = null; highlightedPostNo = -1; + highlightedPostTripcode = null; filtering = false; lastPostCount = 0; } @@ -199,6 +201,7 @@ public class PostAdapter extends RecyclerView.Adapter { highlightedPost = post; highlightedPostId = null; highlightedPostNo = -1; + highlightedPostTripcode = null; notifyDataSetChanged(); } @@ -206,6 +209,15 @@ public class PostAdapter extends RecyclerView.Adapter { highlightedPost = null; highlightedPostId = id; highlightedPostNo = -1; + highlightedPostTripcode = null; + notifyDataSetChanged(); + } + + public void highlightPostTripcode(String tripcode) { + highlightedPost = null; + highlightedPostId = null; + highlightedPostNo = -1; + highlightedPostTripcode = tripcode; notifyDataSetChanged(); } @@ -213,6 +225,7 @@ public class PostAdapter extends RecyclerView.Adapter { highlightedPost = null; highlightedPostId = null; highlightedPostNo = no; + highlightedPostTripcode = null; notifyDataSetChanged(); } 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 a4eb33b1..f2983e2e 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 @@ -293,6 +293,11 @@ public class ThreadLayout extends CoordinatorLayout implements ThreadPresenter.T threadListLayout.highlightPostId(id); } + @Override + public void highlightPostTripcode(String tripcode) { + threadListLayout.highlightPostTripcode(tripcode); + } + @Override public void showSearch(boolean show) { threadListLayout.showSearch(show); 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 2749a32c..4f47e5a8 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 @@ -343,6 +343,10 @@ public class ThreadListLayout extends LinearLayout implements ReplyLayout.ReplyL postAdapter.highlightPostId(id); } + public void highlightPostTripcode(String tripcode) { + postAdapter.highlightPostTripcode(tripcode); + } + @Override public void highlightPostNo(int no) { postAdapter.highlightPostNo(no); diff --git a/Clover/app/src/main/res/values/strings.xml b/Clover/app/src/main/res/values/strings.xml index 61b3f66c..04967270 100644 --- a/Clover/app/src/main/res/values/strings.xml +++ b/Clover/app/src/main/res/values/strings.xml @@ -120,6 +120,7 @@ along with this program. If not, see . Removed \'%1$s\' Highlight ID + Highlight tripcode Text copied to clipboard Quote Quote text