diff --git a/briar-android/res/values/color.xml b/briar-android/res/values/color.xml
index 0ae07cc50..a55aadfa9 100644
--- a/briar-android/res/values/color.xml
+++ b/briar-android/res/values/color.xml
@@ -1,4 +1,4 @@
- #CCCCCC
+ #CCCCCC
\ No newline at end of file
diff --git a/briar-android/src/net/sf/briar/android/HomeScreenActivity.java b/briar-android/src/net/sf/briar/android/HomeScreenActivity.java
index 2b4b5f8cf..82f7a8088 100644
--- a/briar-android/src/net/sf/briar/android/HomeScreenActivity.java
+++ b/briar-android/src/net/sf/briar/android/HomeScreenActivity.java
@@ -13,6 +13,7 @@ import net.sf.briar.android.BriarService.BriarBinder;
import net.sf.briar.android.BriarService.BriarServiceConnection;
import net.sf.briar.android.contact.ContactListActivity;
import net.sf.briar.android.messages.ConversationListActivity;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import android.content.Intent;
import android.os.Bundle;
import android.os.IBinder;
@@ -48,8 +49,8 @@ public class HomeScreenActivity extends BriarActivity {
if(getIntent().getBooleanExtra("net.sf.briar.QUIT", false)) {
quit();
} else {
- ListView.LayoutParams matchParent = new ListView.LayoutParams(
- MATCH_PARENT, MATCH_PARENT);
+ ListView.LayoutParams matchParent =
+ new ListView.LayoutParams(MATCH_PARENT, MATCH_PARENT);
Button contactsButton = new Button(this);
contactsButton.setLayoutParams(matchParent);
@@ -172,8 +173,7 @@ public class HomeScreenActivity extends BriarActivity {
private void quit() {
LinearLayout layout = new LinearLayout(this);
- layout.setLayoutParams(new LinearLayout.LayoutParams(MATCH_PARENT,
- MATCH_PARENT));
+ layout.setLayoutParams(CommonLayoutParams.MATCH_MATCH);
layout.setGravity(CENTER);
ProgressBar spinner = new ProgressBar(this);
spinner.setIndeterminate(true);
diff --git a/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java b/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java
index 41cab314b..c66d780bb 100644
--- a/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java
+++ b/briar-android/src/net/sf/briar/android/contact/ContactListActivity.java
@@ -1,8 +1,6 @@
package net.sf.briar.android.contact;
import static android.view.Gravity.CENTER_HORIZONTAL;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.widget.LinearLayout.VERTICAL;
import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING;
@@ -16,6 +14,8 @@ import net.sf.briar.android.BriarActivity;
import net.sf.briar.android.BriarService;
import net.sf.briar.android.BriarService.BriarServiceConnection;
import net.sf.briar.android.invitation.AddContactActivity;
+import net.sf.briar.android.widgets.CommonLayoutParams;
+import net.sf.briar.android.widgets.HorizontalBorder;
import net.sf.briar.api.Contact;
import net.sf.briar.api.ContactId;
import net.sf.briar.api.db.DatabaseComponent;
@@ -33,7 +33,6 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;
import com.google.inject.Inject;
@@ -57,23 +56,19 @@ implements OnClickListener, DatabaseListener, ConnectionListener {
public void onCreate(Bundle state) {
super.onCreate(null);
LinearLayout layout = new LinearLayout(this);
- layout.setLayoutParams(new LayoutParams(MATCH_PARENT, MATCH_PARENT));
+ layout.setLayoutParams(CommonLayoutParams.MATCH_MATCH);
layout.setOrientation(VERTICAL);
layout.setGravity(CENTER_HORIZONTAL);
adapter = new ContactListAdapter(this);
ListView list = new ListView(this);
// Give me all the width and all the unused height
- list.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT, 1f));
+ list.setLayoutParams(CommonLayoutParams.MATCH_WRAP_1);
list.setAdapter(adapter);
list.setOnItemClickListener(adapter);
layout.addView(list);
- View line = new View(this);
- line.setLayoutParams(new LayoutParams(MATCH_PARENT, 5));
- int colour = getResources().getColor(R.color.ButtonBarBorder);
- line.setBackgroundColor(colour);
- layout.addView(line);
+ layout.addView(new HorizontalBorder(this));
ImageButton addContactButton = new ImageButton(this);
addContactButton.setPadding(10, 10, 10, 10);
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 45bc63639..630522efc 100644
--- a/briar-android/src/net/sf/briar/android/contact/ContactListAdapter.java
+++ b/briar-android/src/net/sf/briar/android/contact/ContactListAdapter.java
@@ -1,12 +1,12 @@
package net.sf.briar.android.contact;
import static android.view.Gravity.CENTER_VERTICAL;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.widget.LinearLayout.HORIZONTAL;
import java.util.ArrayList;
import net.sf.briar.R;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import android.content.Context;
import android.content.res.Resources;
import android.text.Html;
@@ -18,7 +18,6 @@ import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
class ContactListAdapter extends ArrayAdapter
@@ -45,7 +44,7 @@ implements OnItemClickListener {
TextView name = new TextView(ctx);
// Give me all the unused width
- name.setLayoutParams(new LayoutParams(WRAP_CONTENT, WRAP_CONTENT, 1));
+ name.setLayoutParams(CommonLayoutParams.WRAP_WRAP_1);
name.setTextSize(18);
name.setText(item.getName());
layout.addView(name);
diff --git a/briar-android/src/net/sf/briar/android/invitation/AddContactView.java b/briar-android/src/net/sf/briar/android/invitation/AddContactView.java
index cd90bc0fd..aaa6b1bc9 100644
--- a/briar-android/src/net/sf/briar/android/invitation/AddContactView.java
+++ b/briar-android/src/net/sf/briar/android/invitation/AddContactView.java
@@ -1,7 +1,7 @@
package net.sf.briar.android.invitation;
import static android.view.Gravity.CENTER_HORIZONTAL;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import android.content.Context;
import android.widget.LinearLayout;
@@ -15,7 +15,7 @@ abstract class AddContactView extends LinearLayout {
void init(AddContactActivity container) {
this.container = container;
- setLayoutParams(new LayoutParams(MATCH_PARENT, MATCH_PARENT));
+ setLayoutParams(CommonLayoutParams.MATCH_MATCH);
setOrientation(VERTICAL);
setGravity(CENTER_HORIZONTAL);
populate();
diff --git a/briar-android/src/net/sf/briar/android/invitation/BluetoothWidget.java b/briar-android/src/net/sf/briar/android/invitation/BluetoothWidget.java
index 03b9e76f1..ea470926a 100644
--- a/briar-android/src/net/sf/briar/android/invitation/BluetoothWidget.java
+++ b/briar-android/src/net/sf/briar/android/invitation/BluetoothWidget.java
@@ -3,8 +3,8 @@ package net.sf.briar.android.invitation;
import static android.bluetooth.BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE;
import static android.provider.Settings.ACTION_BLUETOOTH_SETTINGS;
import static android.view.Gravity.CENTER;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import net.sf.briar.R;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import android.bluetooth.BluetoothAdapter;
import android.content.Context;
import android.content.Intent;
@@ -34,7 +34,7 @@ public class BluetoothWidget extends LinearLayout implements OnClickListener {
removeAllViews();
Context ctx = getContext();
TextView status = new TextView(ctx);
- status.setLayoutParams(new LayoutParams(WRAP_CONTENT, WRAP_CONTENT, 1));
+ status.setLayoutParams(CommonLayoutParams.WRAP_WRAP_1);
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if(adapter == null) {
bluetoothStateChanged(false);
diff --git a/briar-android/src/net/sf/briar/android/invitation/CodesDoNotMatchView.java b/briar-android/src/net/sf/briar/android/invitation/CodesDoNotMatchView.java
index d30cffde9..6b3920944 100644
--- a/briar-android/src/net/sf/briar/android/invitation/CodesDoNotMatchView.java
+++ b/briar-android/src/net/sf/briar/android/invitation/CodesDoNotMatchView.java
@@ -2,8 +2,8 @@ package net.sf.briar.android.invitation;
import static android.view.Gravity.CENTER;
import static android.view.Gravity.CENTER_HORIZONTAL;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import net.sf.briar.R;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
@@ -44,8 +44,7 @@ implements OnClickListener {
addView(interfering);
Button tryAgain = new Button(ctx);
- LayoutParams lp = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
- tryAgain.setLayoutParams(lp);
+ tryAgain.setLayoutParams(CommonLayoutParams.WRAP_WRAP);
tryAgain.setText(R.string.try_again_button);
tryAgain.setOnClickListener(this);
addView(tryAgain);
diff --git a/briar-android/src/net/sf/briar/android/invitation/ConnectionFailedView.java b/briar-android/src/net/sf/briar/android/invitation/ConnectionFailedView.java
index 6bc06b41c..f3c9df256 100644
--- a/briar-android/src/net/sf/briar/android/invitation/ConnectionFailedView.java
+++ b/briar-android/src/net/sf/briar/android/invitation/ConnectionFailedView.java
@@ -2,8 +2,8 @@ package net.sf.briar.android.invitation;
import static android.view.Gravity.CENTER;
import static android.view.Gravity.CENTER_HORIZONTAL;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import net.sf.briar.R;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
@@ -53,8 +53,7 @@ implements WifiStateListener, BluetoothStateListener, OnClickListener {
addView(bluetooth);
tryAgainButton = new Button(ctx);
- LayoutParams lp = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
- tryAgainButton.setLayoutParams(lp);
+ tryAgainButton.setLayoutParams(CommonLayoutParams.WRAP_WRAP);
tryAgainButton.setText(R.string.try_again_button);
tryAgainButton.setOnClickListener(this);
enabledOrDisableTryAgainButton();
diff --git a/briar-android/src/net/sf/briar/android/invitation/NetworkSetupView.java b/briar-android/src/net/sf/briar/android/invitation/NetworkSetupView.java
index da4d7671e..64c0f47fb 100644
--- a/briar-android/src/net/sf/briar/android/invitation/NetworkSetupView.java
+++ b/briar-android/src/net/sf/briar/android/invitation/NetworkSetupView.java
@@ -1,8 +1,8 @@
package net.sf.briar.android.invitation;
import static android.view.Gravity.CENTER_HORIZONTAL;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import net.sf.briar.R;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
@@ -35,8 +35,7 @@ implements WifiStateListener, BluetoothStateListener, OnClickListener {
addView(bluetooth);
continueButton = new Button(ctx);
- LayoutParams lp = new LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
- continueButton.setLayoutParams(lp);
+ continueButton.setLayoutParams(CommonLayoutParams.WRAP_WRAP);
continueButton.setText(R.string.continue_button);
continueButton.setOnClickListener(this);
enableOrDisableContinueButton();
diff --git a/briar-android/src/net/sf/briar/android/invitation/WifiWidget.java b/briar-android/src/net/sf/briar/android/invitation/WifiWidget.java
index e3c5c2ac0..22fe4f425 100644
--- a/briar-android/src/net/sf/briar/android/invitation/WifiWidget.java
+++ b/briar-android/src/net/sf/briar/android/invitation/WifiWidget.java
@@ -3,8 +3,8 @@ package net.sf.briar.android.invitation;
import static android.content.Context.WIFI_SERVICE;
import static android.provider.Settings.ACTION_WIFI_SETTINGS;
import static android.view.Gravity.CENTER;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import net.sf.briar.R;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
@@ -36,7 +36,7 @@ public class WifiWidget extends LinearLayout implements OnClickListener {
removeAllViews();
Context ctx = getContext();
TextView status = new TextView(ctx);
- status.setLayoutParams(new LayoutParams(WRAP_CONTENT, WRAP_CONTENT, 1));
+ status.setLayoutParams(CommonLayoutParams.WRAP_WRAP_1);
WifiManager wifi = (WifiManager) ctx.getSystemService(WIFI_SERVICE);
if(wifi == null) {
wifiStateChanged(null);
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 380145d1b..bde389210 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationActivity.java
@@ -1,8 +1,6 @@
package net.sf.briar.android.messages;
import static android.view.Gravity.CENTER_HORIZONTAL;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.widget.LinearLayout.VERTICAL;
import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING;
@@ -18,6 +16,8 @@ import net.sf.briar.R;
import net.sf.briar.android.BriarActivity;
import net.sf.briar.android.BriarService;
import net.sf.briar.android.BriarService.BriarServiceConnection;
+import net.sf.briar.android.widgets.CommonLayoutParams;
+import net.sf.briar.android.widgets.HorizontalBorder;
import net.sf.briar.api.ContactId;
import net.sf.briar.api.db.DatabaseComponent;
import net.sf.briar.api.db.DatabaseExecutor;
@@ -35,7 +35,6 @@ import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageButton;
import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;
import com.google.inject.Inject;
@@ -69,23 +68,19 @@ implements DatabaseListener, OnClickListener, OnItemClickListener {
if(contactName == null) throw new IllegalStateException();
LinearLayout layout = new LinearLayout(this);
- layout.setLayoutParams(new LayoutParams(MATCH_PARENT, MATCH_PARENT));
+ layout.setLayoutParams(CommonLayoutParams.MATCH_MATCH);
layout.setOrientation(VERTICAL);
layout.setGravity(CENTER_HORIZONTAL);
adapter = new ConversationAdapter(this);
list = new ListView(this);
// Give me all the width and all the unused height
- list.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT, 1f));
+ list.setLayoutParams(CommonLayoutParams.MATCH_WRAP_1);
list.setAdapter(adapter);
list.setOnItemClickListener(this);
layout.addView(list);
- View line = new View(this);
- line.setLayoutParams(new LayoutParams(MATCH_PARENT, 5));
- int colour = getResources().getColor(R.color.ButtonBarBorder);
- line.setBackgroundColor(colour);
- layout.addView(line);
+ layout.addView(new HorizontalBorder(this));
ImageButton composeButton = new ImageButton(this);
composeButton.setPadding(10, 10, 10, 10);
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 8f2b7a96b..c6419ce7f 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationAdapter.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationAdapter.java
@@ -2,13 +2,13 @@ package net.sf.briar.android.messages;
import static android.graphics.Typeface.BOLD;
import static android.view.Gravity.CENTER_VERTICAL;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.widget.LinearLayout.HORIZONTAL;
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.api.db.PrivateMessageHeader;
import android.content.Context;
import android.text.format.DateUtils;
@@ -17,7 +17,6 @@ import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
class ConversationAdapter extends ArrayAdapter {
@@ -50,8 +49,7 @@ class ConversationAdapter extends ArrayAdapter {
TextView subject = new TextView(ctx);
// Give me all the unused width
- subject.setLayoutParams(new LayoutParams(WRAP_CONTENT, WRAP_CONTENT,
- 1));
+ subject.setLayoutParams(CommonLayoutParams.WRAP_WRAP_1);
subject.setTextSize(14);
subject.setMaxLines(2);
if(!item.isRead()) subject.setTypeface(null, BOLD);
diff --git a/briar-android/src/net/sf/briar/android/messages/ConversationListActivity.java b/briar-android/src/net/sf/briar/android/messages/ConversationListActivity.java
index 8aa3a27ff..1b3699377 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationListActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationListActivity.java
@@ -1,8 +1,6 @@
package net.sf.briar.android.messages;
import static android.view.Gravity.CENTER_HORIZONTAL;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.widget.LinearLayout.VERTICAL;
import static java.util.logging.Level.INFO;
import static java.util.logging.Level.WARNING;
@@ -21,6 +19,8 @@ import net.sf.briar.R;
import net.sf.briar.android.BriarActivity;
import net.sf.briar.android.BriarService;
import net.sf.briar.android.BriarService.BriarServiceConnection;
+import net.sf.briar.android.widgets.CommonLayoutParams;
+import net.sf.briar.android.widgets.HorizontalBorder;
import net.sf.briar.api.Contact;
import net.sf.briar.api.ContactId;
import net.sf.briar.api.db.DatabaseComponent;
@@ -39,7 +39,6 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
import android.widget.ListView;
import com.google.inject.Inject;
@@ -63,23 +62,19 @@ implements OnClickListener, DatabaseListener {
public void onCreate(Bundle state) {
super.onCreate(null);
LinearLayout layout = new LinearLayout(this);
- layout.setLayoutParams(new LayoutParams(MATCH_PARENT, MATCH_PARENT));
+ layout.setLayoutParams(CommonLayoutParams.MATCH_MATCH);
layout.setOrientation(VERTICAL);
layout.setGravity(CENTER_HORIZONTAL);
adapter = new ConversationListAdapter(this);
ListView list = new ListView(this);
// Give me all the width and all the unused height
- list.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT, 1f));
+ list.setLayoutParams(CommonLayoutParams.MATCH_WRAP_1);
list.setAdapter(adapter);
list.setOnItemClickListener(adapter);
layout.addView(list);
- View line = new View(this);
- line.setLayoutParams(new LayoutParams(MATCH_PARENT, 5));
- int colour = getResources().getColor(R.color.ButtonBarBorder);
- line.setBackgroundColor(colour);
- layout.addView(line);
+ layout.addView(new HorizontalBorder(this));
ImageButton composeButton = new ImageButton(this);
composeButton.setPadding(10, 10, 10, 10);
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 42b68a5d0..80627b99e 100644
--- a/briar-android/src/net/sf/briar/android/messages/ConversationListAdapter.java
+++ b/briar-android/src/net/sf/briar/android/messages/ConversationListAdapter.java
@@ -3,7 +3,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.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.widget.LinearLayout.HORIZONTAL;
import static android.widget.LinearLayout.VERTICAL;
import static java.text.DateFormat.SHORT;
@@ -11,6 +10,7 @@ import static java.text.DateFormat.SHORT;
import java.util.ArrayList;
import net.sf.briar.R;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import android.content.Context;
import android.content.Intent;
import android.text.format.DateUtils;
@@ -21,7 +21,6 @@ import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
class ConversationListAdapter extends ArrayAdapter
@@ -48,8 +47,7 @@ implements OnItemClickListener {
LinearLayout innerLayout = new LinearLayout(ctx);
// Give me all the unused width
- innerLayout.setLayoutParams(new LayoutParams(WRAP_CONTENT,
- WRAP_CONTENT, 1));
+ innerLayout.setLayoutParams(CommonLayoutParams.WRAP_WRAP_1);
innerLayout.setOrientation(VERTICAL);
innerLayout.setGravity(LEFT);
diff --git a/briar-android/src/net/sf/briar/android/messages/ReadMessageActivity.java b/briar-android/src/net/sf/briar/android/messages/ReadMessageActivity.java
index 10367da62..a5e302485 100644
--- a/briar-android/src/net/sf/briar/android/messages/ReadMessageActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/ReadMessageActivity.java
@@ -2,8 +2,6 @@ package net.sf.briar.android.messages;
import static android.view.Gravity.CENTER;
import static android.view.Gravity.CENTER_VERTICAL;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.widget.LinearLayout.HORIZONTAL;
import static android.widget.LinearLayout.VERTICAL;
import static java.text.DateFormat.SHORT;
@@ -18,6 +16,9 @@ import net.sf.briar.R;
import net.sf.briar.android.BriarActivity;
import net.sf.briar.android.BriarService;
import net.sf.briar.android.BriarService.BriarServiceConnection;
+import net.sf.briar.android.widgets.CommonLayoutParams;
+import net.sf.briar.android.widgets.HorizontalBorder;
+import net.sf.briar.android.widgets.HorizontalSpace;
import net.sf.briar.api.ContactId;
import net.sf.briar.api.android.BundleEncrypter;
import net.sf.briar.api.db.DatabaseComponent;
@@ -31,7 +32,6 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
import android.widget.ScrollView;
import android.widget.TextView;
@@ -113,25 +113,24 @@ implements OnClickListener {
}
LinearLayout layout = new LinearLayout(this);
- layout.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT));
+ layout.setLayoutParams(CommonLayoutParams.MATCH_WRAP);
layout.setOrientation(VERTICAL);
ScrollView scrollView = new ScrollView(this);
// Give me all the width and all the unused height
- scrollView.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT,
- 1));
+ scrollView.setLayoutParams(CommonLayoutParams.MATCH_WRAP_1);
LinearLayout message = new LinearLayout(this);
message.setOrientation(VERTICAL);
LinearLayout header = new LinearLayout(this);
- header.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT));
+ header.setLayoutParams(CommonLayoutParams.MATCH_WRAP);
header.setOrientation(HORIZONTAL);
header.setGravity(CENTER_VERTICAL);
TextView name = new TextView(this);
// Give me all the unused width
- name.setLayoutParams(new LayoutParams(WRAP_CONTENT, WRAP_CONTENT, 1));
+ name.setLayoutParams(CommonLayoutParams.WRAP_WRAP_1);
name.setTextSize(18);
name.setPadding(10, 0, 0, 0);
String format = getResources().getString(R.string.message_from);
@@ -156,14 +155,10 @@ implements OnClickListener {
scrollView.addView(message);
layout.addView(scrollView);
- View line = new View(this);
- line.setLayoutParams(new LayoutParams(MATCH_PARENT, 5));
- int colour = getResources().getColor(R.color.ButtonBarBorder);
- line.setBackgroundColor(colour);
- layout.addView(line);
+ layout.addView(new HorizontalBorder(this));
LinearLayout footer = new LinearLayout(this);
- footer.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT));
+ footer.setLayoutParams(CommonLayoutParams.MATCH_WRAP);
footer.setOrientation(HORIZONTAL);
footer.setGravity(CENTER);
@@ -174,6 +169,7 @@ implements OnClickListener {
else starButton.setImageResource(R.drawable.rating_not_important);
starButton.setOnClickListener(this);
footer.addView(starButton);
+ footer.addView(new HorizontalSpace(this));
readButton = new ImageButton(this);
readButton.setPadding(10, 10, 10, 10);
@@ -182,6 +178,7 @@ implements OnClickListener {
else readButton.setImageResource(R.drawable.content_read);
readButton.setOnClickListener(this);
footer.addView(readButton);
+ footer.addView(new HorizontalSpace(this));
prevButton = new ImageButton(this);
prevButton.setPadding(10, 10, 10, 10);
@@ -190,6 +187,7 @@ implements OnClickListener {
prevButton.setOnClickListener(this);
prevButton.setEnabled(!first);
footer.addView(prevButton);
+ footer.addView(new HorizontalSpace(this));
nextButton = new ImageButton(this);
nextButton.setPadding(10, 10, 10, 10);
@@ -198,6 +196,7 @@ implements OnClickListener {
nextButton.setOnClickListener(this);
nextButton.setEnabled(!last);
footer.addView(nextButton);
+ footer.addView(new HorizontalSpace(this));
replyButton = new ImageButton(this);
replyButton.setPadding(10, 10, 10, 10);
diff --git a/briar-android/src/net/sf/briar/android/messages/WriteMessageActivity.java b/briar-android/src/net/sf/briar/android/messages/WriteMessageActivity.java
index f5c7514bd..4c3bbe6cc 100644
--- a/briar-android/src/net/sf/briar/android/messages/WriteMessageActivity.java
+++ b/briar-android/src/net/sf/briar/android/messages/WriteMessageActivity.java
@@ -1,8 +1,6 @@
package net.sf.briar.android.messages;
import static android.view.Gravity.CENTER_VERTICAL;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.widget.LinearLayout.HORIZONTAL;
import static android.widget.LinearLayout.VERTICAL;
import static java.util.logging.Level.INFO;
@@ -17,6 +15,7 @@ import net.sf.briar.R;
import net.sf.briar.android.BriarActivity;
import net.sf.briar.android.BriarService;
import net.sf.briar.android.BriarService.BriarServiceConnection;
+import net.sf.briar.android.widgets.CommonLayoutParams;
import net.sf.briar.api.ContactId;
import net.sf.briar.api.android.BundleEncrypter;
import net.sf.briar.api.db.DatabaseComponent;
@@ -33,7 +32,6 @@ import android.view.View.OnClickListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.LinearLayout;
-import android.widget.LinearLayout.LayoutParams;
import android.widget.TextView;
import com.google.inject.Inject;
@@ -71,17 +69,17 @@ implements OnClickListener {
if(pid != null) parentId = new MessageId(pid);
LinearLayout layout = new LinearLayout(this);
- layout.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT));
+ layout.setLayoutParams(CommonLayoutParams.MATCH_WRAP);
layout.setOrientation(VERTICAL);
LinearLayout actionBar = new LinearLayout(this);
- actionBar.setLayoutParams(new LayoutParams(MATCH_PARENT, WRAP_CONTENT));
+ actionBar.setLayoutParams(CommonLayoutParams.MATCH_WRAP);
actionBar.setOrientation(HORIZONTAL);
actionBar.setGravity(CENTER_VERTICAL);
TextView to = new TextView(this);
// Give me all the unused width
- to.setLayoutParams(new LayoutParams(WRAP_CONTENT, WRAP_CONTENT, 1));
+ to.setLayoutParams(CommonLayoutParams.WRAP_WRAP_1);
to.setPadding(10, 0, 0, 0);
to.setTextSize(18);
String format = getResources().getString(R.string.message_to);
diff --git a/briar-android/src/net/sf/briar/android/widgets/CommonLayoutParams.java b/briar-android/src/net/sf/briar/android/widgets/CommonLayoutParams.java
new file mode 100644
index 000000000..465b98fad
--- /dev/null
+++ b/briar-android/src/net/sf/briar/android/widgets/CommonLayoutParams.java
@@ -0,0 +1,23 @@
+package net.sf.briar.android.widgets;
+
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import android.widget.LinearLayout;
+
+public class CommonLayoutParams {
+
+ public static final LinearLayout.LayoutParams MATCH_MATCH =
+ new LinearLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT);
+
+ public static final LinearLayout.LayoutParams MATCH_WRAP =
+ new LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT);
+
+ public static final LinearLayout.LayoutParams MATCH_WRAP_1 =
+ new LinearLayout.LayoutParams(MATCH_PARENT, WRAP_CONTENT, 1);
+
+ public static final LinearLayout.LayoutParams WRAP_WRAP =
+ new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT);
+
+ public static final LinearLayout.LayoutParams WRAP_WRAP_1 =
+ new LinearLayout.LayoutParams(WRAP_CONTENT, WRAP_CONTENT, 1);
+}
diff --git a/briar-android/src/net/sf/briar/android/widgets/HorizontalBorder.java b/briar-android/src/net/sf/briar/android/widgets/HorizontalBorder.java
new file mode 100644
index 000000000..958092f40
--- /dev/null
+++ b/briar-android/src/net/sf/briar/android/widgets/HorizontalBorder.java
@@ -0,0 +1,18 @@
+package net.sf.briar.android.widgets;
+
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+import net.sf.briar.R;
+import android.content.Context;
+import android.view.View;
+import android.widget.LinearLayout.LayoutParams;
+
+public class HorizontalBorder extends View {
+
+ private static final int LINE_WIDTH = 5;
+
+ public HorizontalBorder(Context ctx) {
+ super(ctx);
+ setLayoutParams(new LayoutParams(MATCH_PARENT, LINE_WIDTH));
+ setBackgroundColor(getResources().getColor(R.color.HorizontalBorder));
+ }
+}
diff --git a/briar-android/src/net/sf/briar/android/widgets/HorizontalSpace.java b/briar-android/src/net/sf/briar/android/widgets/HorizontalSpace.java
new file mode 100644
index 000000000..215003f6c
--- /dev/null
+++ b/briar-android/src/net/sf/briar/android/widgets/HorizontalSpace.java
@@ -0,0 +1,14 @@
+package net.sf.briar.android.widgets;
+
+import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
+import android.content.Context;
+import android.view.View;
+import android.widget.LinearLayout.LayoutParams;
+
+public class HorizontalSpace extends View {
+
+ public HorizontalSpace(Context ctx) {
+ super(ctx);
+ setLayoutParams(new LayoutParams(WRAP_CONTENT, 0, 1));
+ }
+}