diff --git a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java index 5f1648e6a..5da03b132 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/blog/BlogPostViewHolder.java @@ -16,8 +16,6 @@ import org.briarproject.briar.android.view.AuthorView; import org.briarproject.briar.api.blog.BlogCommentHeader; import org.briarproject.briar.api.blog.BlogPostHeader; -import javax.annotation.Nullable; - import androidx.annotation.UiThread; import androidx.core.view.ViewCompat; import androidx.recyclerview.widget.RecyclerView; @@ -81,15 +79,15 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder { return "blogPost" + id.hashCode(); } - void bindItem(@Nullable BlogPostItem item) { - if (item == null) return; - + void bindItem(BlogPostItem item) { setTransitionName(item.getId()); if (!fullText) { layout.setClickable(true); layout.setOnClickListener(v -> listener.onBlogPostClick(item)); } + boolean isReblog = item instanceof BlogCommentItem; + // author and date BlogPostHeader post = item.getPostHeader(); author.setAuthor(post.getAuthor(), post.getAuthorInfo()); @@ -97,7 +95,7 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder { author.setPersona( item.isRssFeed() ? AuthorView.RSS_FEED : AuthorView.NORMAL); // TODO make author clickable more often #624 - if (authorClickable) { + if (authorClickable && !isReblog) { author.setAuthorClickable(v -> listener.onAuthorClick(item)); } else { author.setAuthorNotClickable(); @@ -126,19 +124,21 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder { // comments commentContainer.removeAllViews(); - if (item instanceof BlogCommentItem) { - onBindComment((BlogCommentItem) item); + if (isReblog) { + onBindComment((BlogCommentItem) item, authorClickable); } else { reblogger.setVisibility(GONE); } } - private void onBindComment(BlogCommentItem item) { + private void onBindComment(BlogCommentItem item, boolean authorClickable) { // reblogger reblogger.setAuthor(item.getAuthor(), item.getAuthorInfo()); reblogger.setDate(item.getTimestamp()); - if (!fullText) { + if (authorClickable) { reblogger.setAuthorClickable(v -> listener.onAuthorClick(item)); + } else { + reblogger.setAuthorNotClickable(); } reblogger.setVisibility(VISIBLE); reblogger.setPersona(REBLOGGER); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java b/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java index 6cd18ed85..389215b3a 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/view/AuthorView.java @@ -135,9 +135,10 @@ public class AuthorView extends ConstraintLayout { } public void setAuthorNotClickable() { - setClickable(false); - setBackgroundResource(0); setOnClickListener(null); + setClickable(false); + setFocusable(false); + setBackgroundResource(0); } /** diff --git a/briar-android/src/main/res/layout/list_item_blog_post.xml b/briar-android/src/main/res/layout/list_item_blog_post.xml index fa53019cf..d86e5ab5e 100644 --- a/briar-android/src/main/res/layout/list_item_blog_post.xml +++ b/briar-android/src/main/res/layout/list_item_blog_post.xml @@ -16,27 +16,18 @@ android:id="@+id/rebloggerView" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/listitem_vertical_margin" - android:layout_marginLeft="@dimen/listitem_vertical_margin" - android:layout_marginTop="@dimen/listitem_vertical_margin" - android:layout_marginEnd="@dimen/listitem_vertical_margin" - android:layout_marginRight="@dimen/listitem_vertical_margin" - android:layout_marginBottom="@dimen/listitem_horizontal_margin" + android:padding="@dimen/listitem_vertical_margin" app:layout_constraintEnd_toStartOf="@+id/commentView" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" - app:persona="reblogger" /> + app:persona="reblogger" + tools:visibility="visible" />