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_SAVE = 8;
private static final int POST_OPTION_PIN = 9; private static final int POST_OPTION_PIN = 9;
private static final int POST_OPTION_SHARE = 10; private static final int POST_OPTION_SHARE = 10;
private static final int POST_OPTION_HIGHLIGHT_TRIPCODE = 11;
private WatchManager watchManager; private WatchManager watchManager;
private DatabaseManager databaseManager; 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)); 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)) { if (databaseManager.isSavedReply(post.board, post.no)) {
menu.add(new FloatingMenuItem(POST_OPTION_DELETE, R.string.delete)); 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: case POST_OPTION_HIGHLIGHT_ID:
threadPresenterCallback.highlightPostId(post.id); threadPresenterCallback.highlightPostId(post.id);
break; break;
case POST_OPTION_HIGHLIGHT_TRIPCODE:
threadPresenterCallback.highlightPostTripcode(post.tripcode);
break;
case POST_OPTION_DELETE: case POST_OPTION_DELETE:
requestDeletePost(post); requestDeletePost(post);
break; break;
@ -603,6 +611,8 @@ public class ThreadPresenter implements ChanLoader.ChanLoaderCallback, PostAdapt
void highlightPostId(String id); void highlightPostId(String id);
void highlightPostTripcode(String tripcode);
void showSearch(boolean show); void showSearch(boolean show);
void filterList(String query, List<Post> filter, boolean clearFilter, boolean setEmptyText, boolean hideKeyboard); 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 Post highlightedPost;
private String highlightedPostId; private String highlightedPostId;
private int highlightedPostNo = -1; private int highlightedPostNo = -1;
private String highlightedPostTripcode;
private boolean filtering = false; private boolean filtering = false;
private PostCellInterface.PostViewMode postViewMode; private PostCellInterface.PostViewMode postViewMode;
@ -93,7 +94,7 @@ public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
if (getItemViewType(position) == TYPE_POST) { if (getItemViewType(position) == TYPE_POST) {
PostViewHolder postViewHolder = (PostViewHolder) holder; PostViewHolder postViewHolder = (PostViewHolder) holder;
Post post = displayList.get(position); 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); postViewHolder.postView.setPost(null, post, postCellCallback, highlight, -1);
} else if (getItemViewType(position) == TYPE_STATUS) { } else if (getItemViewType(position) == TYPE_STATUS) {
((StatusViewHolder) holder).threadStatusCell.update(); ((StatusViewHolder) holder).threadStatusCell.update();
@ -151,6 +152,7 @@ public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
highlightedPost = null; highlightedPost = null;
highlightedPostId = null; highlightedPostId = null;
highlightedPostNo = -1; highlightedPostNo = -1;
highlightedPostTripcode = null;
filtering = false; filtering = false;
lastPostCount = 0; lastPostCount = 0;
} }
@ -199,6 +201,7 @@ public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
highlightedPost = post; highlightedPost = post;
highlightedPostId = null; highlightedPostId = null;
highlightedPostNo = -1; highlightedPostNo = -1;
highlightedPostTripcode = null;
notifyDataSetChanged(); notifyDataSetChanged();
} }
@ -206,6 +209,15 @@ public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
highlightedPost = null; highlightedPost = null;
highlightedPostId = id; highlightedPostId = id;
highlightedPostNo = -1; highlightedPostNo = -1;
highlightedPostTripcode = null;
notifyDataSetChanged();
}
public void highlightPostTripcode(String tripcode) {
highlightedPost = null;
highlightedPostId = null;
highlightedPostNo = -1;
highlightedPostTripcode = tripcode;
notifyDataSetChanged(); notifyDataSetChanged();
} }
@ -213,6 +225,7 @@ public class PostAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
highlightedPost = null; highlightedPost = null;
highlightedPostId = null; highlightedPostId = null;
highlightedPostNo = no; highlightedPostNo = no;
highlightedPostTripcode = null;
notifyDataSetChanged(); notifyDataSetChanged();
} }

@ -293,6 +293,11 @@ public class ThreadLayout extends CoordinatorLayout implements ThreadPresenter.T
threadListLayout.highlightPostId(id); threadListLayout.highlightPostId(id);
} }
@Override
public void highlightPostTripcode(String tripcode) {
threadListLayout.highlightPostTripcode(tripcode);
}
@Override @Override
public void showSearch(boolean show) { public void showSearch(boolean show) {
threadListLayout.showSearch(show); threadListLayout.showSearch(show);

@ -343,6 +343,10 @@ public class ThreadListLayout extends LinearLayout implements ReplyLayout.ReplyL
postAdapter.highlightPostId(id); postAdapter.highlightPostId(id);
} }
public void highlightPostTripcode(String tripcode) {
postAdapter.highlightPostTripcode(tripcode);
}
@Override @Override
public void highlightPostNo(int no) { public void highlightPostNo(int no) {
postAdapter.highlightPostNo(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="drawer_pin_removed">Removed \'%1$s\'</string>
<string name="post_highlight_id">Highlight ID</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_text_copied">Text copied to clipboard</string>
<string name="post_quote">Quote</string> <string name="post_quote">Quote</string>
<string name="post_quote_text">Quote text</string> <string name="post_quote_text">Quote text</string>

Loading…
Cancel
Save