diff --git a/briar-android/res/drawable-hdpi/green_bulb.png b/briar-android/res/drawable-hdpi/contact_connected.png
similarity index 100%
rename from briar-android/res/drawable-hdpi/green_bulb.png
rename to briar-android/res/drawable-hdpi/contact_connected.png
diff --git a/briar-android/res/drawable-hdpi/grey_bulb.png b/briar-android/res/drawable-hdpi/contact_disconnected.png
similarity index 100%
rename from briar-android/res/drawable-hdpi/grey_bulb.png
rename to briar-android/res/drawable-hdpi/contact_disconnected.png
diff --git a/briar-android/res/drawable-mdpi/green_bulb.png b/briar-android/res/drawable-mdpi/contact_connected.png
similarity index 100%
rename from briar-android/res/drawable-mdpi/green_bulb.png
rename to briar-android/res/drawable-mdpi/contact_connected.png
diff --git a/briar-android/res/drawable-mdpi/grey_bulb.png b/briar-android/res/drawable-mdpi/contact_disconnected.png
similarity index 100%
rename from briar-android/res/drawable-mdpi/grey_bulb.png
rename to briar-android/res/drawable-mdpi/contact_disconnected.png
diff --git a/briar-android/res/drawable-xhdpi/green_bulb.png b/briar-android/res/drawable-xhdpi/contact_connected.png
similarity index 100%
rename from briar-android/res/drawable-xhdpi/green_bulb.png
rename to briar-android/res/drawable-xhdpi/contact_connected.png
diff --git a/briar-android/res/drawable-xhdpi/grey_bulb.png b/briar-android/res/drawable-xhdpi/contact_disconnected.png
similarity index 100%
rename from briar-android/res/drawable-xhdpi/grey_bulb.png
rename to briar-android/res/drawable-xhdpi/contact_disconnected.png
diff --git a/briar-android/res/values/color.xml b/briar-android/res/values/color.xml
index 866b33e58..6252b617f 100644
--- a/briar-android/res/values/color.xml
+++ b/briar-android/res/values/color.xml
@@ -1,6 +1,8 @@
+ #FFFFFF
+ #FFFFFF
#CCCCCC
- #999999
+ #AAAAAA
#000000
\ No newline at end of file
diff --git a/briar-android/src/net/sf/briar/android/BriarActivity.java b/briar-android/src/net/sf/briar/android/BriarActivity.java
index 732afda96..5afee39e1 100644
--- a/briar-android/src/net/sf/briar/android/BriarActivity.java
+++ b/briar-android/src/net/sf/briar/android/BriarActivity.java
@@ -25,4 +25,12 @@ public abstract class BriarActivity extends RoboActivity {
public void onSaveInstanceState(Bundle state) {
// Don't allow the superclass to save state
}
+
+ protected void finishOnUiThread() {
+ runOnUiThread(new Runnable() {
+ public void run() {
+ finish();
+ }
+ });
+ }
}
diff --git a/briar-android/src/net/sf/briar/android/contact/ContactListAdapter.java b/briar-android/src/net/sf/briar/android/contact/ContactListAdapter.java
index bb10e399c..1acf42a1c 100644
--- a/briar-android/src/net/sf/briar/android/contact/ContactListAdapter.java
+++ b/briar-android/src/net/sf/briar/android/contact/ContactListAdapter.java
@@ -37,8 +37,9 @@ implements OnItemClickListener {
ImageView bulb = new ImageView(ctx);
bulb.setPadding(10, 10, 10, 10);
- if(item.isConnected()) bulb.setImageResource(R.drawable.green_bulb);
- else bulb.setImageResource(R.drawable.grey_bulb);
+ if(item.isConnected())
+ bulb.setImageResource(R.drawable.contact_connected);
+ else bulb.setImageResource(R.drawable.contact_disconnected);
layout.addView(bulb);
TextView name = new TextView(ctx);
diff --git a/briar-android/src/net/sf/briar/android/groups/GroupActivity.java b/briar-android/src/net/sf/briar/android/groups/GroupActivity.java
index c0ae2820e..148e73402 100644
--- a/briar-android/src/net/sf/briar/android/groups/GroupActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/GroupActivity.java
@@ -139,11 +139,7 @@ OnClickListener, OnItemClickListener {
updateConversation(headers, ratings);
} catch(NoSuchSubscriptionException e) {
if(LOG.isLoggable(INFO)) LOG.info("Subscription removed");
- runOnUiThread(new Runnable() {
- public void run() {
- finish();
- }
- });
+ finishOnUiThread();
} catch(DbException e) {
if(LOG.isLoggable(WARNING))
LOG.log(WARNING, e.toString(), e);
@@ -200,7 +196,7 @@ OnClickListener, OnItemClickListener {
SubscriptionRemovedEvent s = (SubscriptionRemovedEvent) e;
if(s.getGroupId().equals(groupId)) {
if(LOG.isLoggable(INFO)) LOG.info("Subscription removed");
- finish();
+ finishOnUiThread();
}
}
}
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 c554a7bfa..463785884 100644
--- a/briar-android/src/net/sf/briar/android/groups/GroupAdapter.java
+++ b/briar-android/src/net/sf/briar/android/groups/GroupAdapter.java
@@ -40,16 +40,20 @@ class GroupAdapter extends ArrayAdapter {
// FIXME: Use a RelativeLayout
LinearLayout layout = new LinearLayout(ctx);
layout.setOrientation(HORIZONTAL);
- layout.setGravity(CENTER_VERTICAL);
+ // layout.setGravity(CENTER_VERTICAL);
+ if(!item.isRead()) {
+ Resources res = ctx.getResources();
+ layout.setBackgroundColor(res.getColor(R.color.unread_background));
+ }
LinearLayout innerLayout = new LinearLayout(ctx);
// Give me all the unused width
innerLayout.setLayoutParams(CommonLayoutParams.WRAP_WRAP_1);
innerLayout.setOrientation(VERTICAL);
- LinearLayout innerInnerLayout = new LinearLayout(ctx);
- innerInnerLayout.setOrientation(HORIZONTAL);
- innerInnerLayout.setGravity(CENTER_VERTICAL);
+ LinearLayout authorLayout = new LinearLayout(ctx);
+ authorLayout.setOrientation(HORIZONTAL);
+ authorLayout.setGravity(CENTER_VERTICAL);
ImageView thumb = new ImageView(ctx);
thumb.setPadding(10, 10, 10, 10);
@@ -57,9 +61,11 @@ class GroupAdapter extends ArrayAdapter {
if(rating == GOOD) thumb.setImageResource(R.drawable.rating_good);
else thumb.setImageResource(R.drawable.rating_bad);
if(rating == UNRATED) thumb.setVisibility(INVISIBLE);
- innerInnerLayout.addView(thumb);
+ authorLayout.addView(thumb);
TextView name = new TextView(ctx);
+ // Give me all the unused width
+ name.setLayoutParams(CommonLayoutParams.WRAP_WRAP_1);
name.setTextSize(18);
name.setMaxLines(1);
name.setPadding(0, 10, 10, 10);
@@ -72,8 +78,8 @@ class GroupAdapter extends ArrayAdapter {
name.setTextColor(res.getColor(R.color.pseudonymous_author));
name.setText(author.getName());
}
- innerInnerLayout.addView(name);
- innerLayout.addView(innerInnerLayout);
+ authorLayout.addView(name);
+ innerLayout.addView(authorLayout);
if(item.getContentType().equals("text/plain")) {
TextView subject = new TextView(ctx);
@@ -84,12 +90,15 @@ class GroupAdapter extends ArrayAdapter {
subject.setText(item.getSubject());
innerLayout.addView(subject);
} else {
+ LinearLayout attachmentLayout = new LinearLayout(ctx);
+ attachmentLayout.setOrientation(HORIZONTAL);
ImageView attachment = new ImageView(ctx);
attachment.setPadding(10, 0, 10, 10);
attachment.setImageResource(R.drawable.content_attachment);
- innerInnerLayout.addView(attachment);
+ attachmentLayout.addView(attachment);
+ attachmentLayout.addView(new HorizontalSpace(ctx));
+ innerLayout.addView(attachmentLayout);
}
- innerInnerLayout.addView(new HorizontalSpace(ctx));
layout.addView(innerLayout);
TextView date = new TextView(ctx);
diff --git a/briar-android/src/net/sf/briar/android/groups/GroupListAdapter.java b/briar-android/src/net/sf/briar/android/groups/GroupListAdapter.java
index 102a93a06..8242412d7 100644
--- a/briar-android/src/net/sf/briar/android/groups/GroupListAdapter.java
+++ b/briar-android/src/net/sf/briar/android/groups/GroupListAdapter.java
@@ -1,7 +1,6 @@
package net.sf.briar.android.groups;
import static android.graphics.Typeface.BOLD;
-import static android.view.Gravity.CENTER_VERTICAL;
import static android.view.Gravity.LEFT;
import static android.widget.LinearLayout.HORIZONTAL;
import static android.widget.LinearLayout.VERTICAL;
@@ -9,10 +8,12 @@ import static java.text.DateFormat.SHORT;
import java.util.ArrayList;
+import net.sf.briar.R;
import net.sf.briar.android.widgets.CommonLayoutParams;
import net.sf.briar.util.StringUtils;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Resources;
import android.text.format.DateUtils;
import android.view.View;
import android.view.ViewGroup;
@@ -36,7 +37,10 @@ implements OnItemClickListener {
Context ctx = getContext();
LinearLayout layout = new LinearLayout(ctx);
layout.setOrientation(HORIZONTAL);
- layout.setGravity(CENTER_VERTICAL);
+ if(item.getUnreadCount() > 0) {
+ Resources res = ctx.getResources();
+ layout.setBackgroundColor(res.getColor(R.color.unread_background));
+ }
LinearLayout innerLayout = new LinearLayout(ctx);
// Give me all the unused width
diff --git a/briar-android/src/net/sf/briar/android/groups/ReadGroupMessageActivity.java b/briar-android/src/net/sf/briar/android/groups/ReadGroupMessageActivity.java
index 6c58d3290..9a43b56d4 100644
--- a/briar-android/src/net/sf/briar/android/groups/ReadGroupMessageActivity.java
+++ b/briar-android/src/net/sf/briar/android/groups/ReadGroupMessageActivity.java
@@ -124,6 +124,8 @@ implements OnClickListener {
LinearLayout message = new LinearLayout(this);
message.setOrientation(VERTICAL);
+ Resources res = getResources();
+ message.setBackgroundColor(res.getColor(R.color.content_background));
LinearLayout header = new LinearLayout(this);
header.setLayoutParams(CommonLayoutParams.MATCH_WRAP);
@@ -143,7 +145,6 @@ implements OnClickListener {
author.setTextSize(18);
author.setMaxLines(1);
author.setPadding(10, 10, 10, 10);
- Resources res = getResources();
if(authorName == null) {
author.setTextColor(res.getColor(R.color.anonymous_author));
author.setText(R.string.anonymous);
@@ -280,11 +281,7 @@ implements OnClickListener {
});
} catch(NoSuchMessageException e) {
if(LOG.isLoggable(INFO)) LOG.info("Message removed");
- runOnUiThread(new Runnable() {
- public void run() {
- finish();
- }
- });
+ finishOnUiThread();
} catch(DbException e) {
if(LOG.isLoggable(WARNING))
LOG.log(WARNING, e.toString(), e);
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 f130f1737..aefd64d0d 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
@@ -124,11 +124,7 @@ implements DatabaseListener, OnClickListener, OnItemClickListener {
updateConversation(headers);
} catch(NoSuchContactException e) {
if(LOG.isLoggable(INFO)) LOG.info("Contact removed");
- runOnUiThread(new Runnable() {
- public void run() {
- finish();
- }
- });
+ finishOnUiThread();
} catch(DbException e) {
if(LOG.isLoggable(WARNING))
LOG.log(WARNING, e.toString(), e);
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 40e9626db..bf105d50c 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationAdapter.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationAdapter.java
@@ -1,7 +1,6 @@
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 java.text.DateFormat.SHORT;
@@ -12,6 +11,7 @@ import net.sf.briar.android.widgets.CommonLayoutParams;
import net.sf.briar.android.widgets.HorizontalSpace;
import net.sf.briar.api.db.PrivateMessageHeader;
import android.content.Context;
+import android.content.res.Resources;
import android.text.format.DateUtils;
import android.view.View;
import android.view.ViewGroup;
@@ -33,7 +33,10 @@ class ConversationAdapter extends ArrayAdapter {
Context ctx = getContext();
LinearLayout layout = new LinearLayout(ctx);
layout.setOrientation(HORIZONTAL);
- layout.setGravity(CENTER_VERTICAL);
+ if(!item.isRead()) {
+ Resources res = ctx.getResources();
+ layout.setBackgroundColor(res.getColor(R.color.unread_background));
+ }
if(item.getContentType().equals("text/plain")) {
TextView subject = new TextView(ctx);
diff --git a/briar-android/src/net/sf/briar/android/messages/ConversationListAdapter.java b/briar-android/src/net/sf/briar/android/messages/ConversationListAdapter.java
index 19066131b..757884ac5 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationListAdapter.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationListAdapter.java
@@ -1,7 +1,6 @@
package net.sf.briar.android.messages;
import static android.graphics.Typeface.BOLD;
-import static android.view.Gravity.CENTER_VERTICAL;
import static android.view.Gravity.LEFT;
import static android.widget.LinearLayout.HORIZONTAL;
import static android.widget.LinearLayout.VERTICAL;
@@ -9,10 +8,12 @@ import static java.text.DateFormat.SHORT;
import java.util.ArrayList;
+import net.sf.briar.R;
import net.sf.briar.android.widgets.CommonLayoutParams;
import net.sf.briar.util.StringUtils;
import android.content.Context;
import android.content.Intent;
+import android.content.res.Resources;
import android.text.format.DateUtils;
import android.view.View;
import android.view.ViewGroup;
@@ -36,7 +37,10 @@ implements OnItemClickListener {
Context ctx = getContext();
LinearLayout layout = new LinearLayout(ctx);
layout.setOrientation(HORIZONTAL);
- layout.setGravity(CENTER_VERTICAL);
+ if(item.getUnreadCount() > 0) {
+ Resources res = ctx.getResources();
+ layout.setBackgroundColor(res.getColor(R.color.unread_background));
+ }
LinearLayout innerLayout = new LinearLayout(ctx);
// Give me all the unused width
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 222bb307f..3183aae7c 100644
--- a/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/ReadPrivateMessageActivity.java
@@ -27,6 +27,7 @@ import net.sf.briar.api.db.DbException;
import net.sf.briar.api.db.NoSuchMessageException;
import net.sf.briar.api.messaging.MessageId;
import android.content.Intent;
+import android.content.res.Resources;
import android.os.Bundle;
import android.text.format.DateUtils;
import android.view.View;
@@ -101,6 +102,8 @@ implements OnClickListener {
LinearLayout message = new LinearLayout(this);
message.setOrientation(VERTICAL);
+ Resources res = getResources();
+ message.setBackgroundColor(res.getColor(R.color.content_background));
LinearLayout header = new LinearLayout(this);
header.setLayoutParams(CommonLayoutParams.MATCH_WRAP);
@@ -114,8 +117,8 @@ implements OnClickListener {
name.setMaxLines(1);
name.setPadding(10, 10, 10, 10);
String format;
- if(incoming) format = getResources().getString(R.string.format_from);
- else format = getResources().getString(R.string.format_to);
+ 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);
@@ -229,11 +232,7 @@ implements OnClickListener {
});
} catch(NoSuchMessageException e) {
if(LOG.isLoggable(INFO)) LOG.info("Message removed");
- runOnUiThread(new Runnable() {
- public void run() {
- finish();
- }
- });
+ finishOnUiThread();
} catch(DbException e) {
if(LOG.isLoggable(WARNING))
LOG.log(WARNING, e.toString(), e);