From 4ff2b889557c860ed8d64fc1890ae29bd88f290d Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Sun, 14 Apr 2013 19:36:05 +0100
Subject: [PATCH] Added an icon to indicate that a pseudonym is unrated.

---
 .../res/drawable-hdpi/rating_unrated.png      | Bin 0 -> 297 bytes
 .../res/drawable-mdpi/rating_unrated.png      | Bin 0 -> 150 bytes
 .../res/drawable-xhdpi/rating_unrated.png     | Bin 0 -> 211 bytes
 briar-android/res/values/color.xml            |   6 +++---
 briar-android/res/values/strings.xml          |   2 +-
 .../sf/briar/android/blogs/BlogAdapter.java   |  14 +++++---------
 .../briar/android/blogs/BlogListActivity.java |   3 ++-
 .../android/blogs/ReadBlogPostActivity.java   |  18 +++++-------------
 ...arator.java => ContactItemComparator.java} |   6 +++---
 .../sf/briar/android/groups/GroupAdapter.java |  14 +++++---------
 .../android/groups/GroupListActivity.java     |   1 +
 .../android/groups/ReadGroupPostActivity.java |  18 +++++-------------
 .../messages/WritePrivateMessageActivity.java |   4 ++--
 13 files changed, 32 insertions(+), 54 deletions(-)
 create mode 100644 briar-android/res/drawable-hdpi/rating_unrated.png
 create mode 100644 briar-android/res/drawable-mdpi/rating_unrated.png
 create mode 100644 briar-android/res/drawable-xhdpi/rating_unrated.png
 rename briar-android/src/net/sf/briar/android/contact/{ContactNameComparator.java => ContactItemComparator.java} (73%)

diff --git a/briar-android/res/drawable-hdpi/rating_unrated.png b/briar-android/res/drawable-hdpi/rating_unrated.png
new file mode 100644
index 0000000000000000000000000000000000000000..6b289165b9ee64f59cfc93f336fb61c648ffc171
GIT binary patch
literal 297
zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^R}k3C%+Lo)8Y
zy=0qp*g@pT$Nvu!e7Z#TwN$@!+vnk@vGw5ef<z9s^s`HDa<DI2Z=z_hKX3X?^}V&+
zf>2QJ=<VctIj5m{N$%ZUH|@UG*8kVMzwPa@Z;UsXJa#cIU-$Z5@>f;fpF4l`&l4-v
zeA}SBVSRM^1JMe3%T1F@w(OnW@^<r*lY8Fge@*}NT8d#qtV->b)X0LA6W&_emg{jW
zxDhwyzc2Hu;EHvxSHB8(pC$Y0tNS|R^PvX<?te@9dzJTw-T~<kLA!Te*?aN!|5Ml1
oOJ>fBn)`0nFR1fA-mhhPe=kF3g65S<pm!NOUHx3vIVCg!0K2q>7ytkO

literal 0
HcmV?d00001

diff --git a/briar-android/res/drawable-mdpi/rating_unrated.png b/briar-android/res/drawable-mdpi/rating_unrated.png
new file mode 100644
index 0000000000000000000000000000000000000000..19521e83c158602004663dc8030d8b31788d5ee0
GIT binary patch
literal 150
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}0iG_7ArXh)
zo?FP<;K1W>(Z6VtuV0yZThekbGt15c4owdQVw!&XZ~ZCC>N)Al=9ii-F09jvV~vZY
xZ|X1o9K-nR+}-Q{ejVW3a@%H?_aqetzDc(wxEyw!VFsGb;OXk;vd$@?2>^2>H8=nO

literal 0
HcmV?d00001

diff --git a/briar-android/res/drawable-xhdpi/rating_unrated.png b/briar-android/res/drawable-xhdpi/rating_unrated.png
new file mode 100644
index 0000000000000000000000000000000000000000..992827ce7f8095cc7fca8c638126832a043f74c3
GIT binary patch
literal 211
zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|dOcknLn>~)
zy|Oox*-@nRqW}KJ-v)XK!OPc0ndUGas<oJ~p-`#kW`SsLiJuv>c$;;9I8YY|*z7wy
z>w<}|{MGEQwYzVH&i`yP-|fWz?eUR!qQAz)=0A7dy4J7x$$PyALAAPa1(F*7(|^CQ
zPI${AvwHebei`;t_hS$2{1vIUu<;YbyaSVevTj>u)YaU>aUCS$>FVdQ&MBb@0Q^Hx
A+5i9m

literal 0
HcmV?d00001

diff --git a/briar-android/res/values/color.xml b/briar-android/res/values/color.xml
index 7dfd4ee1f5..d9fb00b4c6 100644
--- a/briar-android/res/values/color.xml
+++ b/briar-android/res/values/color.xml
@@ -4,7 +4,7 @@
     <color name="content_background">#FFFFFF</color>
     <color name="unread_background">#FFFFFF</color>
 	<color name="horizontal_border">#CCCCCC</color>
-	<color name="anonymous_author">#999999</color>
-	<color name="no_posts">#999999</color>
-	<color name="no_messages">#999999</color>
+	<color name="anonymous_author">#AAAAAA</color>
+	<color name="no_posts">#AAAAAA</color>
+	<color name="no_messages">#AAAAAA</color>
 </resources>
\ No newline at end of file
diff --git a/briar-android/res/values/strings.xml b/briar-android/res/values/strings.xml
index 4ad9695b87..09fe117937 100644
--- a/briar-android/res/values/strings.xml
+++ b/briar-android/res/values/strings.xml
@@ -46,7 +46,7 @@
 	<string name="compose_message_title">New Message</string>
 	<string name="from">From:</string>
 	<string name="to">To:</string>
-	<string name="anonymous">(Anonymous)</string>
+	<string name="anonymous">Anonymous</string>
 	<string name="new_contact_item">New contact\u2026</string>
 	<string name="groups_title">Groups</string>
 	<string name="no_posts">(No posts)</string>
diff --git a/briar-android/src/net/sf/briar/android/blogs/BlogAdapter.java b/briar-android/src/net/sf/briar/android/blogs/BlogAdapter.java
index 969b520e36..0a9529a624 100644
--- a/briar-android/src/net/sf/briar/android/blogs/BlogAdapter.java
+++ b/briar-android/src/net/sf/briar/android/blogs/BlogAdapter.java
@@ -2,13 +2,12 @@ package net.sf.briar.android.blogs;
 
 import static android.graphics.Typeface.BOLD;
 import static android.view.Gravity.CENTER_VERTICAL;
-import static android.view.View.INVISIBLE;
 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 static net.sf.briar.api.messaging.Rating.UNRATED;
 
 import java.util.ArrayList;
 
@@ -38,14 +37,12 @@ class BlogAdapter extends ArrayAdapter<GroupMessageHeader> {
 	public View getView(int position, View convertView, ViewGroup parent) {
 		GroupMessageHeader item = getItem(position);
 		Context ctx = getContext();
+		Resources res = ctx.getResources();
 
-		// FIXME: Use a RelativeLayout
 		LinearLayout layout = new LinearLayout(ctx);
 		layout.setOrientation(HORIZONTAL);
-		if(!item.isRead()) {
-			Resources res = ctx.getResources();
+		if(!item.isRead())
 			layout.setBackgroundColor(res.getColor(R.color.unread_background));
-		}
 
 		LinearLayout innerLayout = new LinearLayout(ctx);
 		// Give me all the unused width
@@ -60,8 +57,8 @@ class BlogAdapter extends ArrayAdapter<GroupMessageHeader> {
 		thumb.setPadding(10, 10, 10, 10);
 		Rating rating = item.getRating();
 		if(rating == GOOD) thumb.setImageResource(R.drawable.rating_good);
-		else thumb.setImageResource(R.drawable.rating_bad);
-		if(rating == UNRATED) thumb.setVisibility(INVISIBLE);
+		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);
@@ -71,7 +68,6 @@ class BlogAdapter extends ArrayAdapter<GroupMessageHeader> {
 		name.setMaxLines(1);
 		name.setPadding(0, 10, 10, 10);
 		Author author = item.getAuthor();
-		Resources res = ctx.getResources();
 		if(author == null) {
 			name.setTextColor(res.getColor(R.color.anonymous_author));
 			name.setText(R.string.anonymous);
diff --git a/briar-android/src/net/sf/briar/android/blogs/BlogListActivity.java b/briar-android/src/net/sf/briar/android/blogs/BlogListActivity.java
index 134c4f2fab..5f35cc3e91 100644
--- a/briar-android/src/net/sf/briar/android/blogs/BlogListActivity.java
+++ b/briar-android/src/net/sf/briar/android/blogs/BlogListActivity.java
@@ -215,7 +215,7 @@ implements OnClickListener, DatabaseListener, NoBlogsDialog.Listener {
 			if(countPostableGroups() == 0) {
 				NoBlogsDialog dialog = new NoBlogsDialog();
 				dialog.setListener(this);
-				dialog.show(getSupportFragmentManager(), "NoGroupsDialog");
+				dialog.show(getSupportFragmentManager(), "NoBlogsDialog");
 			} else {
 				startActivity(new Intent(this, WriteBlogPostActivity.class));
 			}
@@ -283,6 +283,7 @@ implements OnClickListener, DatabaseListener, NoBlogsDialog.Listener {
 				BlogListItem item = findGroup(g);
 				if(item != null) {
 					adapter.remove(item);
+					adapter.notifyDataSetChanged();
 					selectFirstUnread();
 				}
 			}
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 33b672e1b4..a09c74f8d0 100644
--- a/briar-android/src/net/sf/briar/android/blogs/ReadBlogPostActivity.java
+++ b/briar-android/src/net/sf/briar/android/blogs/ReadBlogPostActivity.java
@@ -2,8 +2,6 @@ package net.sf.briar.android.blogs;
 
 import static android.view.Gravity.CENTER;
 import static android.view.Gravity.CENTER_VERTICAL;
-import static android.view.View.INVISIBLE;
-import static android.view.View.VISIBLE;
 import static android.widget.LinearLayout.HORIZONTAL;
 import static android.widget.LinearLayout.VERTICAL;
 import static java.text.DateFormat.SHORT;
@@ -136,8 +134,8 @@ implements OnClickListener {
 		thumb = new ImageView(this);
 		thumb.setPadding(0, 10, 10, 10);
 		if(rating == GOOD) thumb.setImageResource(R.drawable.rating_good);
-		else thumb.setImageResource(R.drawable.rating_bad);
-		if(rating == UNRATED) thumb.setVisibility(INVISIBLE);
+		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);
@@ -367,15 +365,9 @@ implements OnClickListener {
 		runOnUiThread(new Runnable() {
 			public void run() {
 				rating = r;
-				if(r == GOOD) {
-					thumb.setImageResource(R.drawable.rating_good);
-					thumb.setVisibility(VISIBLE);
-				} else if(r == BAD) {
-					thumb.setImageResource(R.drawable.rating_bad);
-					thumb.setVisibility(VISIBLE);
-				} else {
-					thumb.setVisibility(INVISIBLE);
-				}
+				if(r == GOOD) thumb.setImageResource(R.drawable.rating_good);
+				else if(r == BAD) thumb.setImageResource(R.drawable.rating_bad);
+				else thumb.setImageResource(R.drawable.rating_unrated);
 			}
 		});
 	}
diff --git a/briar-android/src/net/sf/briar/android/contact/ContactNameComparator.java b/briar-android/src/net/sf/briar/android/contact/ContactItemComparator.java
similarity index 73%
rename from briar-android/src/net/sf/briar/android/contact/ContactNameComparator.java
rename to briar-android/src/net/sf/briar/android/contact/ContactItemComparator.java
index bb8bb09a62..b4617d1084 100644
--- a/briar-android/src/net/sf/briar/android/contact/ContactNameComparator.java
+++ b/briar-android/src/net/sf/briar/android/contact/ContactItemComparator.java
@@ -2,10 +2,10 @@ package net.sf.briar.android.contact;
 
 import java.util.Comparator;
 
-public class ContactNameComparator implements Comparator<ContactItem> {
+public class ContactItemComparator implements Comparator<ContactItem> {
 
-	public static final ContactNameComparator INSTANCE =
-			new ContactNameComparator();
+	public static final ContactItemComparator INSTANCE =
+			new ContactItemComparator();
 
 	public int compare(ContactItem a, ContactItem b) {
 		if(a == b) return 0;
diff --git a/briar-android/src/net/sf/briar/android/groups/GroupAdapter.java b/briar-android/src/net/sf/briar/android/groups/GroupAdapter.java
index 121fd50396..8e13a48d67 100644
--- a/briar-android/src/net/sf/briar/android/groups/GroupAdapter.java
+++ b/briar-android/src/net/sf/briar/android/groups/GroupAdapter.java
@@ -2,13 +2,12 @@ package net.sf.briar.android.groups;
 
 import static android.graphics.Typeface.BOLD;
 import static android.view.Gravity.CENTER_VERTICAL;
-import static android.view.View.INVISIBLE;
 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 static net.sf.briar.api.messaging.Rating.UNRATED;
 
 import java.util.ArrayList;
 
@@ -38,14 +37,12 @@ class GroupAdapter extends ArrayAdapter<GroupMessageHeader> {
 	public View getView(int position, View convertView, ViewGroup parent) {
 		GroupMessageHeader item = getItem(position);
 		Context ctx = getContext();
+		Resources res = ctx.getResources();
 
-		// FIXME: Use a RelativeLayout
 		LinearLayout layout = new LinearLayout(ctx);
 		layout.setOrientation(HORIZONTAL);
-		if(!item.isRead()) {
-			Resources res = ctx.getResources();
+		if(!item.isRead())
 			layout.setBackgroundColor(res.getColor(R.color.unread_background));
-		}
 
 		LinearLayout innerLayout = new LinearLayout(ctx);
 		// Give me all the unused width
@@ -60,8 +57,8 @@ class GroupAdapter extends ArrayAdapter<GroupMessageHeader> {
 		thumb.setPadding(10, 10, 10, 10);
 		Rating rating = item.getRating();
 		if(rating == GOOD) thumb.setImageResource(R.drawable.rating_good);
-		else thumb.setImageResource(R.drawable.rating_bad);
-		if(rating == UNRATED) thumb.setVisibility(INVISIBLE);
+		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);
@@ -71,7 +68,6 @@ class GroupAdapter extends ArrayAdapter<GroupMessageHeader> {
 		name.setMaxLines(1);
 		name.setPadding(0, 10, 10, 10);
 		Author author = item.getAuthor();
-		Resources res = ctx.getResources();
 		if(author == null) {
 			name.setTextColor(res.getColor(R.color.anonymous_author));
 			name.setText(R.string.anonymous);
diff --git a/briar-android/src/net/sf/briar/android/groups/GroupListActivity.java b/briar-android/src/net/sf/briar/android/groups/GroupListActivity.java
index 570198436c..83f3c3edd5 100644
--- a/briar-android/src/net/sf/briar/android/groups/GroupListActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/GroupListActivity.java
@@ -270,6 +270,7 @@ implements OnClickListener, DatabaseListener, NoGroupsDialog.Listener {
 				GroupListItem item = findGroup(g);
 				if(item != null) {
 					adapter.remove(item);
+					adapter.notifyDataSetChanged();
 					selectFirstUnread();
 				}
 			}
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 e815281d0d..1e40082e9b 100644
--- a/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/ReadGroupPostActivity.java
@@ -2,8 +2,6 @@ package net.sf.briar.android.groups;
 
 import static android.view.Gravity.CENTER;
 import static android.view.Gravity.CENTER_VERTICAL;
-import static android.view.View.INVISIBLE;
-import static android.view.View.VISIBLE;
 import static android.widget.LinearLayout.HORIZONTAL;
 import static android.widget.LinearLayout.VERTICAL;
 import static java.text.DateFormat.SHORT;
@@ -134,8 +132,8 @@ implements OnClickListener {
 		thumb = new ImageView(this);
 		thumb.setPadding(0, 10, 10, 10);
 		if(rating == GOOD) thumb.setImageResource(R.drawable.rating_good);
-		else thumb.setImageResource(R.drawable.rating_bad);
-		if(rating == UNRATED) thumb.setVisibility(INVISIBLE);
+		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);
@@ -360,15 +358,9 @@ implements OnClickListener {
 		runOnUiThread(new Runnable() {
 			public void run() {
 				rating = r;
-				if(r == GOOD) {
-					thumb.setImageResource(R.drawable.rating_good);
-					thumb.setVisibility(VISIBLE);
-				} else if(r == BAD) {
-					thumb.setImageResource(R.drawable.rating_bad);
-					thumb.setVisibility(VISIBLE);
-				} else {
-					thumb.setVisibility(INVISIBLE);
-				}
+				if(r == GOOD) thumb.setImageResource(R.drawable.rating_good);
+				else if(r == BAD) thumb.setImageResource(R.drawable.rating_bad);
+				else thumb.setImageResource(R.drawable.rating_unrated);
 			}
 		});
 	}
diff --git a/briar-android/src/net/sf/briar/android/messages/WritePrivateMessageActivity.java b/briar-android/src/net/sf/briar/android/messages/WritePrivateMessageActivity.java
index 09a5a263dc..728a28e5f4 100644
--- a/briar-android/src/net/sf/briar/android/messages/WritePrivateMessageActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/WritePrivateMessageActivity.java
@@ -21,7 +21,7 @@ import net.sf.briar.android.BriarActivity;
 import net.sf.briar.android.BriarService;
 import net.sf.briar.android.BriarService.BriarServiceConnection;
 import net.sf.briar.android.contact.ContactItem;
-import net.sf.briar.android.contact.ContactNameComparator;
+import net.sf.briar.android.contact.ContactItemComparator;
 import net.sf.briar.android.contact.ContactSpinnerAdapter;
 import net.sf.briar.android.invitation.AddContactActivity;
 import net.sf.briar.android.widgets.HorizontalSpace;
@@ -180,7 +180,7 @@ implements OnItemSelectedListener, OnClickListener {
 				if(contacts.isEmpty()) finish();
 				adapter.clear();
 				for(Contact c : contacts) adapter.add(new ContactItem(c));
-				adapter.sort(ContactNameComparator.INSTANCE);
+				adapter.sort(ContactItemComparator.INSTANCE);
 				adapter.notifyDataSetChanged();
 				int count = adapter.getCount();
 				for(int i = 0; i < count; i++) {
-- 
GitLab