mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-16 20:59:54 +01:00
Merge branch '639-reblogger-and-author-look-similar-their-roles-are-unclear' into 'master'
Make original author look like commenter when reblogged This wasn't as simple as changing the persona in the XML, because the same layout is used for a post whether reblogged or not. So the persona needs to be changed programmatically for reblogged posts. For this, the `AuthorView#setPersona()` method has been made public and was changed to always set all views into the desired state to support usage in a RecyclerView.  Closes #639 See merge request !426
This commit is contained in:
@@ -107,6 +107,7 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder {
|
|||||||
author.setAuthor(a);
|
author.setAuthor(a);
|
||||||
author.setAuthorStatus(post.getAuthorStatus());
|
author.setAuthorStatus(post.getAuthorStatus());
|
||||||
author.setDate(post.getTimestamp());
|
author.setDate(post.getTimestamp());
|
||||||
|
author.setPersona(AuthorView.NORMAL);
|
||||||
// TODO make author clickable more often #624
|
// TODO make author clickable more often #624
|
||||||
if (item.getHeader().getType() == POST) {
|
if (item.getHeader().getType() == POST) {
|
||||||
author.setBlogLink(post.getGroupId());
|
author.setBlogLink(post.getGroupId());
|
||||||
@@ -166,6 +167,8 @@ class BlogPostViewHolder extends RecyclerView.ViewHolder {
|
|||||||
reblogger.setBlogLink(item.getGroupId());
|
reblogger.setBlogLink(item.getGroupId());
|
||||||
reblogger.setVisibility(VISIBLE);
|
reblogger.setVisibility(VISIBLE);
|
||||||
|
|
||||||
|
author.setPersona(AuthorView.COMMENTER);
|
||||||
|
|
||||||
// comments
|
// comments
|
||||||
for (BlogCommentHeader c : item.getComments()) {
|
for (BlogCommentHeader c : item.getComments()) {
|
||||||
View v = LayoutInflater.from(ctx)
|
View v = LayoutInflater.from(ctx)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
|||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.content.res.TypedArray;
|
import android.content.res.TypedArray;
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
|
import android.support.annotation.DimenRes;
|
||||||
import android.support.annotation.Nullable;
|
import android.support.annotation.Nullable;
|
||||||
import android.support.annotation.UiThread;
|
import android.support.annotation.UiThread;
|
||||||
import android.support.v4.app.ActivityOptionsCompat;
|
import android.support.v4.app.ActivityOptionsCompat;
|
||||||
@@ -29,7 +30,6 @@ import im.delight.android.identicons.IdenticonDrawable;
|
|||||||
import static android.content.Context.LAYOUT_INFLATER_SERVICE;
|
import static android.content.Context.LAYOUT_INFLATER_SERVICE;
|
||||||
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
|
||||||
import static android.graphics.Typeface.BOLD;
|
import static android.graphics.Typeface.BOLD;
|
||||||
import static android.graphics.Typeface.NORMAL;
|
|
||||||
import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation;
|
import static android.support.v4.app.ActivityOptionsCompat.makeCustomAnimation;
|
||||||
import static android.util.TypedValue.COMPLEX_UNIT_PX;
|
import static android.util.TypedValue.COMPLEX_UNIT_PX;
|
||||||
import static org.briarproject.android.BriarActivity.GROUP_ID;
|
import static org.briarproject.android.BriarActivity.GROUP_ID;
|
||||||
@@ -38,6 +38,11 @@ import static org.briarproject.api.identity.Author.Status.OURSELVES;
|
|||||||
@UiThread
|
@UiThread
|
||||||
public class AuthorView extends RelativeLayout {
|
public class AuthorView extends RelativeLayout {
|
||||||
|
|
||||||
|
public static final int NORMAL = 0;
|
||||||
|
public static final int REBLOGGER = 1;
|
||||||
|
public static final int COMMENTER = 2;
|
||||||
|
public static final int LIST = 3;
|
||||||
|
|
||||||
private final CircleImageView avatar;
|
private final CircleImageView avatar;
|
||||||
private final ImageView avatarIcon;
|
private final ImageView avatarIcon;
|
||||||
private final TextView authorName;
|
private final TextView authorName;
|
||||||
@@ -127,44 +132,51 @@ public class AuthorView extends RelativeLayout {
|
|||||||
setOnClickListener(null);
|
setOnClickListener(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void setPersona(int persona) {
|
public void setPersona(int persona) {
|
||||||
switch (persona) {
|
switch (persona) {
|
||||||
// reblogger
|
case REBLOGGER:
|
||||||
case 1:
|
|
||||||
avatarIcon.setVisibility(VISIBLE);
|
avatarIcon.setVisibility(VISIBLE);
|
||||||
|
date.setVisibility(VISIBLE);
|
||||||
|
setCenterVertical(authorName, false);
|
||||||
|
setCenterVertical(trustIndicator, false);
|
||||||
break;
|
break;
|
||||||
// commenter
|
case COMMENTER:
|
||||||
case 2:
|
avatarIcon.setVisibility(INVISIBLE);
|
||||||
LayoutParams params = (LayoutParams) avatar.getLayoutParams();
|
date.setVisibility(VISIBLE);
|
||||||
int size = getResources().getDimensionPixelSize(
|
setAvatarSize(R.dimen.blogs_avatar_comment_size);
|
||||||
R.dimen.blogs_avatar_comment_size);
|
setTextSize(authorName, R.dimen.text_size_tiny);
|
||||||
params.height = size;
|
setCenterVertical(authorName, false);
|
||||||
params.width = size;
|
setCenterVertical(trustIndicator, false);
|
||||||
avatar.setLayoutParams(params);
|
|
||||||
float textSize = getResources()
|
|
||||||
.getDimensionPixelSize(R.dimen.text_size_tiny);
|
|
||||||
authorName.setTextSize(COMPLEX_UNIT_PX, textSize);
|
|
||||||
break;
|
break;
|
||||||
// list
|
case LIST:
|
||||||
case 3:
|
avatarIcon.setVisibility(INVISIBLE);
|
||||||
date.setVisibility(GONE);
|
date.setVisibility(GONE);
|
||||||
params = (LayoutParams) avatar.getLayoutParams();
|
setAvatarSize(R.dimen.listitem_picture_size_small);
|
||||||
size = getResources().getDimensionPixelSize(
|
setTextSize(authorName, R.dimen.text_size_medium);
|
||||||
R.dimen.listitem_picture_size_small);
|
setCenterVertical(authorName, true);
|
||||||
params.height = size;
|
setCenterVertical(trustIndicator, true);
|
||||||
params.width = size;
|
|
||||||
avatar.setLayoutParams(params);
|
|
||||||
textSize = getResources()
|
|
||||||
.getDimensionPixelSize(R.dimen.text_size_medium);
|
|
||||||
authorName.setTextSize(COMPLEX_UNIT_PX, textSize);
|
|
||||||
params = (LayoutParams) authorName.getLayoutParams();
|
|
||||||
params.addRule(CENTER_VERTICAL);
|
|
||||||
authorName.setLayoutParams(params);
|
|
||||||
params = (LayoutParams) trustIndicator.getLayoutParams();
|
|
||||||
params.addRule(CENTER_VERTICAL);
|
|
||||||
trustIndicator.setLayoutParams(params);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void setAvatarSize(@DimenRes int res) {
|
||||||
|
LayoutParams params = (LayoutParams) avatar.getLayoutParams();
|
||||||
|
int size = getResources().getDimensionPixelSize(
|
||||||
|
res);
|
||||||
|
params.height = size;
|
||||||
|
params.width = size;
|
||||||
|
avatar.setLayoutParams(params);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setTextSize(TextView v, @DimenRes int res) {
|
||||||
|
float textSize = getResources().getDimensionPixelSize(res);
|
||||||
|
v.setTextSize(COMPLEX_UNIT_PX, textSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setCenterVertical(View v, boolean center) {
|
||||||
|
LayoutParams params = (LayoutParams) v.getLayoutParams();
|
||||||
|
params.addRule(CENTER_VERTICAL, center ? RelativeLayout.TRUE : 0);
|
||||||
|
v.setLayoutParams(params);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user