diff --git a/briar-android/src/net/sf/briar/android/blogs/ReadBlogPostActivity.java b/briar-android/src/net/sf/briar/android/blogs/ReadBlogPostActivity.java index a09c74f8d07f5af389a3292e7f97b3ed485a403a..416fd13c92f2623fc40bdf04d79f0ad6daeda495 100644 --- a/briar-android/src/net/sf/briar/android/blogs/ReadBlogPostActivity.java +++ b/briar-android/src/net/sf/briar/android/blogs/ReadBlogPostActivity.java @@ -132,7 +132,7 @@ implements OnClickListener { header.setGravity(CENTER_VERTICAL); thumb = new ImageView(this); - thumb.setPadding(0, 10, 10, 10); + thumb.setPadding(10, 10, 10, 10); if(rating == GOOD) thumb.setImageResource(R.drawable.rating_good); else if(rating == BAD) thumb.setImageResource(R.drawable.rating_bad); else thumb.setImageResource(R.drawable.rating_unrated); @@ -143,7 +143,7 @@ implements OnClickListener { author.setLayoutParams(WRAP_WRAP_1); author.setTextSize(18); author.setMaxLines(1); - author.setPadding(10, 10, 10, 10); + author.setPadding(0, 10, 10, 10); if(authorName == null) { author.setTextColor(res.getColor(R.color.anonymous_author)); author.setText(R.string.anonymous); diff --git a/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java b/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java index 1e40082e9bb6d4f0bb1214ff48752af96dd0608e..de801ccb53da12988c76b7139bf0a558070ac495 100644 --- a/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java +++ b/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java @@ -130,7 +130,7 @@ implements OnClickListener { header.setGravity(CENTER_VERTICAL); thumb = new ImageView(this); - thumb.setPadding(0, 10, 10, 10); + thumb.setPadding(10, 10, 10, 10); if(rating == GOOD) thumb.setImageResource(R.drawable.rating_good); else if(rating == BAD) thumb.setImageResource(R.drawable.rating_bad); else thumb.setImageResource(R.drawable.rating_unrated); @@ -141,7 +141,7 @@ implements OnClickListener { author.setLayoutParams(WRAP_WRAP_1); author.setTextSize(18); author.setMaxLines(1); - author.setPadding(10, 10, 10, 10); + author.setPadding(0, 10, 10, 10); if(authorName == null) { author.setTextColor(res.getColor(R.color.anonymous_author)); author.setText(R.string.anonymous); diff --git a/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java b/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java index e93e9f19fe04bf79f9a2d93b94bd50117a2e2bde..b93b8be7f58972e0fc697ad970f32fe53ec5ef6d 100644 --- a/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java +++ b/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java @@ -223,10 +223,11 @@ implements DatabaseListener, OnClickListener, OnItemClickListener { Intent i = new Intent(this, ReadPrivateMessageActivity.class); i.putExtra("net.sf.briar.CONTACT_ID", contactId.getInt()); i.putExtra("net.sf.briar.CONTACT_NAME", contactName); + i.putExtra("net.sf.briar.AUTHOR_NAME", item.getAuthor().getName()); + i.putExtra("net.sf.briar.RATING", item.getRating().toString()); i.putExtra("net.sf.briar.MESSAGE_ID", item.getId().getBytes()); i.putExtra("net.sf.briar.CONTENT_TYPE", item.getContentType()); i.putExtra("net.sf.briar.TIMESTAMP", item.getTimestamp()); - i.putExtra("net.sf.briar.INCOMING", item.isIncoming()); startActivityForResult(i, position); } } diff --git a/briar-android/src/net/sf/briar/android/messages/ConversationAdapter.java b/briar-android/src/net/sf/briar/android/messages/ConversationAdapter.java index 0e1ffc63a6c05869145456f7188efcbfa8aaa5b0..efbce219bc63ebc96c766e40eca52b571f54a6c3 100644 --- a/briar-android/src/net/sf/briar/android/messages/ConversationAdapter.java +++ b/briar-android/src/net/sf/briar/android/messages/ConversationAdapter.java @@ -1,16 +1,20 @@ package net.sf.briar.android.messages; import static android.graphics.Typeface.BOLD; +import static android.view.Gravity.CENTER_VERTICAL; import static android.widget.LinearLayout.HORIZONTAL; import static android.widget.LinearLayout.VERTICAL; import static java.text.DateFormat.SHORT; import static net.sf.briar.android.widgets.CommonLayoutParams.WRAP_WRAP_1; +import static net.sf.briar.api.messaging.Rating.BAD; +import static net.sf.briar.api.messaging.Rating.GOOD; import java.util.ArrayList; import net.sf.briar.R; import net.sf.briar.android.widgets.HorizontalSpace; import net.sf.briar.api.db.PrivateMessageHeader; +import net.sf.briar.api.messaging.Rating; import android.content.Context; import android.content.res.Resources; import android.text.format.DateUtils; @@ -45,12 +49,27 @@ class ConversationAdapter extends ArrayAdapter<PrivateMessageHeader> { innerLayout.setLayoutParams(WRAP_WRAP_1); innerLayout.setOrientation(VERTICAL); + LinearLayout authorLayout = new LinearLayout(ctx); + authorLayout.setOrientation(HORIZONTAL); + authorLayout.setGravity(CENTER_VERTICAL); + + ImageView thumb = new ImageView(ctx); + thumb.setPadding(10, 10, 10, 10); + Rating rating = item.getRating(); + if(rating == GOOD) thumb.setImageResource(R.drawable.rating_good); + else if(rating == BAD) thumb.setImageResource(R.drawable.rating_bad); + else thumb.setImageResource(R.drawable.rating_unrated); + authorLayout.addView(thumb); + TextView name = new TextView(ctx); + // Give me all the unused width + name.setLayoutParams(WRAP_WRAP_1); name.setTextSize(18); name.setMaxLines(1); - name.setPadding(10, 10, 10, 10); + name.setPadding(0, 10, 10, 10); name.setText(item.getAuthor().getName()); - innerLayout.addView(name); + authorLayout.addView(name); + innerLayout.addView(authorLayout); if(item.getContentType().equals("text/plain")) { TextView subject = new TextView(ctx); diff --git a/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java b/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java index 9a4ba4eeccded0bc8a65257327918d1acc45f436..f90e9e57a26761a83deb885dc651b9fde91c77d2 100644 --- a/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java +++ b/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java @@ -10,6 +10,9 @@ import static java.util.logging.Level.WARNING; import static net.sf.briar.android.widgets.CommonLayoutParams.MATCH_WRAP; import static net.sf.briar.android.widgets.CommonLayoutParams.MATCH_WRAP_1; import static net.sf.briar.android.widgets.CommonLayoutParams.WRAP_WRAP_1; +import static net.sf.briar.api.messaging.Rating.BAD; +import static net.sf.briar.api.messaging.Rating.GOOD; +import static net.sf.briar.api.messaging.Rating.UNRATED; import java.io.UnsupportedEncodingException; import java.util.concurrent.Executor; @@ -28,6 +31,7 @@ import net.sf.briar.api.db.DatabaseComponent; import net.sf.briar.api.db.DbException; import net.sf.briar.api.db.NoSuchMessageException; import net.sf.briar.api.messaging.MessageId; +import net.sf.briar.api.messaging.Rating; import android.content.Intent; import android.content.res.Resources; import android.os.Bundle; @@ -35,6 +39,7 @@ import android.text.format.DateUtils; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageButton; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ScrollView; import android.widget.TextView; @@ -56,6 +61,7 @@ implements OnClickListener { @Inject private BundleEncrypter bundleEncrypter; private ContactId contactId = null; + private Rating rating = UNRATED; private boolean read; private ImageButton readButton = null, prevButton = null, nextButton = null; private ImageButton replyButton = null; @@ -77,6 +83,11 @@ implements OnClickListener { String contactName = i.getStringExtra("net.sf.briar.CONTACT_NAME"); if(contactName == null) throw new IllegalStateException(); setTitle(contactName); + String authorName = i.getStringExtra("net.sf.briar.AUTHOR_NAME"); + if(authorName == null) throw new IllegalStateException(); + String r = i.getStringExtra("net.sf.briar.RATING"); + if(r == null) throw new IllegalStateException(); + rating = Rating.valueOf(r); byte[] b = i.getByteArrayExtra("net.sf.briar.MESSAGE_ID"); if(b == null) throw new IllegalStateException(); messageId = new MessageId(b); @@ -84,7 +95,6 @@ implements OnClickListener { if(contentType == null) throw new IllegalStateException(); long timestamp = i.getLongExtra("net.sf.briar.TIMESTAMP", -1); if(timestamp == -1) throw new IllegalStateException(); - boolean incoming = i.getBooleanExtra("net.sf.briar.INCOMING", false); if(state != null && bundleEncrypter.decrypt(state)) { read = state.getBoolean("net.sf.briar.READ"); @@ -111,17 +121,21 @@ implements OnClickListener { header.setOrientation(HORIZONTAL); header.setGravity(CENTER_VERTICAL); - TextView name = new TextView(this); + ImageView thumb = new ImageView(this); + thumb.setPadding(10, 10, 10, 10); + if(rating == GOOD) thumb.setImageResource(R.drawable.rating_good); + else if(rating == BAD) thumb.setImageResource(R.drawable.rating_bad); + else thumb.setImageResource(R.drawable.rating_unrated); + header.addView(thumb); + + TextView author = new TextView(this); // Give me all the unused width - name.setLayoutParams(WRAP_WRAP_1); - name.setTextSize(18); - name.setMaxLines(1); - name.setPadding(10, 10, 10, 10); - String format; - if(incoming) format = res.getString(R.string.format_from); - else format = res.getString(R.string.format_to); - name.setText(String.format(format, contactName)); - header.addView(name); + author.setLayoutParams(WRAP_WRAP_1); + author.setTextSize(18); + author.setMaxLines(1); + author.setPadding(0, 10, 10, 10); + author.setText(authorName); + header.addView(author); TextView date = new TextView(this); date.setTextSize(14);