From c4aaf523dfc923bbb0f3c6f1b4fbdd9f38bb5c3d Mon Sep 17 00:00:00 2001 From: Floens Date: Wed, 27 Aug 2014 01:05:40 +0200 Subject: [PATCH] Highlight the quote the replies are viewed for. --- .../org/floens/chan/core/manager/ThreadManager.java | 3 +++ .../org/floens/chan/core/model/PostLinkable.java | 13 ++++++++++++- .../chan/ui/fragment/PostRepliesFragment.java | 1 + .../main/java/org/floens/chan/ui/view/PostView.java | 12 ++++++++++++ .../java/org/floens/chan/utils/ThemeHelper.java | 6 ++++++ Clover/app/src/main/res/values/attrs.xml | 1 + Clover/app/src/main/res/values/styles.xml | 1 + 7 files changed, 36 insertions(+), 1 deletion(-) diff --git a/Clover/app/src/main/java/org/floens/chan/core/manager/ThreadManager.java b/Clover/app/src/main/java/org/floens/chan/core/manager/ThreadManager.java index 4523b946..11456139 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/manager/ThreadManager.java +++ b/Clover/app/src/main/java/org/floens/chan/core/manager/ThreadManager.java @@ -411,6 +411,7 @@ public class ThreadManager implements Loader.LoaderListener { } } l.posts = p; + l.forNo = post.no; if (p.size() > 0) { showPostsRepliesFragment(l); } @@ -430,6 +431,7 @@ public class ThreadManager implements Loader.LoaderListener { Post post = findPostById((Integer) linkable.value); if (post != null) { RepliesPopup l = new RepliesPopup(); + l.forNo = (Integer) linkable.value; l.posts.add(post); showPostsRepliesFragment(l); } @@ -597,5 +599,6 @@ public class ThreadManager implements Loader.LoaderListener { public List posts = new ArrayList<>(); public int listViewIndex; public int listViewTop; + public int forNo = -1; } } diff --git a/Clover/app/src/main/java/org/floens/chan/core/model/PostLinkable.java b/Clover/app/src/main/java/org/floens/chan/core/model/PostLinkable.java index c7c67812..a59803b8 100644 --- a/Clover/app/src/main/java/org/floens/chan/core/model/PostLinkable.java +++ b/Clover/app/src/main/java/org/floens/chan/core/model/PostLinkable.java @@ -56,7 +56,18 @@ public class PostLinkable extends ClickableSpan { @Override public void updateDrawState(TextPaint ds) { if (type == Type.QUOTE || type == Type.LINK || type == Type.THREAD) { - ds.setColor(type == Type.LINK ? ThemeHelper.getInstance().getLinkColor() : ThemeHelper.getInstance().getQuoteColor()); + if (type == Type.QUOTE) { + if (value instanceof Integer && post.getLinkableListener() != null && (Integer)value == post.getLinkableListener().getHighlightQuotesWithNo()) { + ds.setColor(ThemeHelper.getInstance().getHighlightQuoteColor()); + } else { + ds.setColor(ThemeHelper.getInstance().getQuoteColor()); + } + } else if (type == Type.LINK) { + ds.setColor(ThemeHelper.getInstance().getLinkColor()); + } else { + ds.setColor(ThemeHelper.getInstance().getQuoteColor()); + } + ds.setUnderlineText(true); } else if (type == Type.SPOILER) { if (!clicked) { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/fragment/PostRepliesFragment.java b/Clover/app/src/main/java/org/floens/chan/ui/fragment/PostRepliesFragment.java index b5585da4..01c45c29 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/fragment/PostRepliesFragment.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/fragment/PostRepliesFragment.java @@ -124,6 +124,7 @@ public class PostRepliesFragment extends DialogFragment { final Post p = getItem(position); postView.setPost(p, manager); + postView.setHighlightQuotesWithNo(repliesPopup.forNo); postView.setOnClickListeners(new View.OnClickListener() { @Override public void onClick(View v) { diff --git a/Clover/app/src/main/java/org/floens/chan/ui/view/PostView.java b/Clover/app/src/main/java/org/floens/chan/ui/view/PostView.java index b876cfea..fa834288 100644 --- a/Clover/app/src/main/java/org/floens/chan/ui/view/PostView.java +++ b/Clover/app/src/main/java/org/floens/chan/ui/view/PostView.java @@ -65,6 +65,7 @@ public class PostView extends LinearLayout implements View.OnClickListener { private ThreadManager manager; private Post post; + private int highlightQuotesNo = -1; private boolean isBuild = false; private LinearLayout full; @@ -114,6 +115,9 @@ public class PostView extends LinearLayout implements View.OnClickListener { public void setPost(final Post post, final ThreadManager manager) { this.post = post; this.manager = manager; + + highlightQuotesNo = -1; + boolean boardCatalogMode = manager.getLoadable().isBoardMode() || manager.getLoadable().isCatalogMode(); TypedArray ta = context.obtainStyledAttributes(null, R.styleable.PostView, R.attr.post_style, 0); @@ -242,6 +246,14 @@ public class PostView extends LinearLayout implements View.OnClickListener { } } + public void setHighlightQuotesWithNo(int no) { + highlightQuotesNo = no; + } + + public int getHighlightQuotesWithNo() { + return highlightQuotesNo; + } + private void buildView(final Context context, TypedArray ta) { int thumbnailBackground = ta.getColor(R.styleable.PostView_thumbnail_background, 0); int replyCountColor = ta.getColor(R.styleable.PostView_reply_count_color, 0); diff --git a/Clover/app/src/main/java/org/floens/chan/utils/ThemeHelper.java b/Clover/app/src/main/java/org/floens/chan/utils/ThemeHelper.java index b8b2a9fc..029cad93 100644 --- a/Clover/app/src/main/java/org/floens/chan/utils/ThemeHelper.java +++ b/Clover/app/src/main/java/org/floens/chan/utils/ThemeHelper.java @@ -44,6 +44,7 @@ public class ThemeHelper { private static ThemeHelper instance; private Context context; private int quoteColor; + private int highlightQuoteColor; private int linkColor; private int spoilerColor; private int inlineQuoteColor; @@ -92,6 +93,7 @@ public class ThemeHelper { this.context = context; TypedArray ta = context.obtainStyledAttributes(null, R.styleable.PostView, R.attr.post_style, 0); quoteColor = ta.getColor(R.styleable.PostView_quote_color, 0); + highlightQuoteColor = ta.getColor(R.styleable.PostView_highlight_quote_color, 0); linkColor = ta.getColor(R.styleable.PostView_link_color, 0); spoilerColor = ta.getColor(R.styleable.PostView_spoiler_color, 0); inlineQuoteColor = ta.getColor(R.styleable.PostView_inline_quote_color, 0); @@ -104,6 +106,10 @@ public class ThemeHelper { return quoteColor; } + public int getHighlightQuoteColor() { + return highlightQuoteColor; + } + public int getLinkColor() { return linkColor; } diff --git a/Clover/app/src/main/res/values/attrs.xml b/Clover/app/src/main/res/values/attrs.xml index cb1336c0..70990203 100644 --- a/Clover/app/src/main/res/values/attrs.xml +++ b/Clover/app/src/main/res/values/attrs.xml @@ -36,6 +36,7 @@ along with this program. If not, see . + diff --git a/Clover/app/src/main/res/values/styles.xml b/Clover/app/src/main/res/values/styles.xml index bf390f78..16d55ec6 100644 --- a/Clover/app/src/main/res/values/styles.xml +++ b/Clover/app/src/main/res/values/styles.xml @@ -114,6 +114,7 @@ along with this program. If not, see . #ff0F0C5D #ff646464 #ffDD0000 + #ff950000 #ff0000B4 #ff000000 #ffff0000