New Trust Level Indicator Replaces The Stars

This implements a generic `TrustIndicatorView` with a `setTrustLevel()`
method which updates the drawable according to the `Author.State`.

Closes #78
This commit is contained in:
Torsten Grote
2016-06-15 12:41:43 -03:00
parent da68ef78f1
commit dc048187f5
25 changed files with 326 additions and 223 deletions

View File

@@ -1,81 +0,0 @@
package org.briarproject.android.util;
import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.TextView;
import org.briarproject.R;
import org.briarproject.api.crypto.CryptoComponent;
import org.briarproject.api.identity.Author;
import org.briarproject.api.identity.AuthorId;
import javax.inject.Inject;
import im.delight.android.identicons.IdenticonDrawable;
public class AuthorView extends FrameLayout {
private ImageView avatarView;
private TextView nameView;
private ImageView statusView;
public AuthorView(Context ctx) {
super(ctx);
initViews();
}
public AuthorView(Context context, AttributeSet attrs) {
super(context, attrs);
initViews();
}
public AuthorView(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
initViews();
}
private void initViews() {
if (isInEditMode())
return;
View v = LayoutInflater.from(getContext()).inflate(
R.layout.author_view, this, true);
avatarView = (ImageView) v.findViewById(R.id.avatarView);
nameView = (TextView) v.findViewById(R.id.nameView);
statusView = (ImageView) v.findViewById(R.id.statusView);
}
public void init(String name, AuthorId id, Author.Status status) {
if (name == null) {
nameView.setText(R.string.anonymous);
} else {
nameView.setText(name);
avatarView.setImageDrawable(
new IdenticonDrawable(id.getBytes()));
}
switch(status) {
case ANONYMOUS:
statusView.setImageResource(R.drawable.identity_anonymous);
break;
case UNKNOWN:
statusView.setImageResource(R.drawable.identity_unknown);
break;
case UNVERIFIED:
statusView.setImageResource(R.drawable.identity_unverified);
break;
case VERIFIED:
statusView.setImageResource(R.drawable.identity_verified);
break;
}
}
}

View File

@@ -0,0 +1,44 @@
package org.briarproject.android.util;
import android.content.Context;
import android.support.v4.content.ContextCompat;
import android.util.AttributeSet;
import android.widget.ImageView;
import org.briarproject.R;
import org.briarproject.api.identity.Author.Status;
public class TrustIndicatorView extends ImageView {
public TrustIndicatorView(Context context) {
super(context);
}
public TrustIndicatorView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TrustIndicatorView(Context context, AttributeSet attrs,
int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public void setTrustLevel(Status status) {
int res;
switch (status) {
case ANONYMOUS:
res = R.drawable.trust_indicator_anonymous;
break;
case UNVERIFIED:
res = R.drawable.trust_indicator_unverified;
break;
case VERIFIED:
res = R.drawable.trust_indicator_verified;
break;
default:
res = R.drawable.trust_indicator_unknown;
}
setImageDrawable(ContextCompat.getDrawable(getContext(), res));
}
}