Add highlighting by tripcode

filtering
Floens 10 years ago
parent 7e991eb45c
commit 608bc2ed6f
  1. 10
      Clover/app/src/main/java/org/floens/chan/core/presenter/ThreadPresenter.java
  2. 15
      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. 4
      Clover/app/src/main/java/org/floens/chan/ui/layout/ThreadListLayout.java
  5. 1
      Clover/app/src/main/res/values/strings.xml

@ -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<Post> filter, boolean clearFilter, boolean setEmptyText, boolean hideKeyboard);

@ -52,6 +52,7 @@ public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
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<RecyclerView.ViewHolder> {
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<RecyclerView.ViewHolder> {
highlightedPost = null;
highlightedPostId = null;
highlightedPostNo = -1;
highlightedPostTripcode = null;
filtering = false;
lastPostCount = 0;
}
@ -199,6 +201,7 @@ public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
highlightedPost = post;
highlightedPostId = null;
highlightedPostNo = -1;
highlightedPostTripcode = null;
notifyDataSetChanged();
}
@ -206,6 +209,15 @@ public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
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<RecyclerView.ViewHolder> {
highlightedPost = null;
highlightedPostId = null;
highlightedPostNo = no;
highlightedPostTripcode = null;
notifyDataSetChanged();
}

@ -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);

@ -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);

@ -120,6 +120,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<string name="drawer_pin_removed">Removed \'%1$s\'</string>
<string name="post_highlight_id">Highlight ID</string>
<string name="post_highlight_tripcode">Highlight tripcode</string>
<string name="post_text_copied">Text copied to clipboard</string>
<string name="post_quote">Quote</string>
<string name="post_quote_text">Quote text</string>

Loading…
Cancel
Save