Padding now depends on screen size. Closes dev task #57.

This commit is contained in:
akwizgran
2014-01-09 12:42:19 +00:00
parent 452f8bd7e1
commit 0cebc42ddb
34 changed files with 227 additions and 96 deletions

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="LightTheme" parent="android:Theme.Holo.Light" /> <style name="LightTheme" parent="android:Theme.Holo.Light" />
<integer name="horizontal_border_width">5</integer>
<integer name="spinner_padding">10</integer> <integer name="spinner_padding">10</integer>
</resources> </resources>

View File

@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<resources> <resources>
<style name="LightTheme" parent="android:Theme.Light" /> <style name="LightTheme" parent="android:Theme.Light" />
<integer name="horizontal_border_width">2</integer>
<integer name="spinner_padding">0</integer> <integer name="spinner_padding">0</integer>
</resources> </resources>

View File

@@ -27,6 +27,8 @@ import org.briarproject.android.BriarService.BriarBinder;
import org.briarproject.android.BriarService.BriarServiceConnection; import org.briarproject.android.BriarService.BriarServiceConnection;
import org.briarproject.android.contact.ContactListActivity; import org.briarproject.android.contact.ContactListActivity;
import org.briarproject.android.groups.GroupListActivity; import org.briarproject.android.groups.GroupListActivity;
import org.briarproject.android.util.FixedVerticalSpace;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.LocalAuthor; import org.briarproject.api.LocalAuthor;
import org.briarproject.api.android.DatabaseUiExecutor; import org.briarproject.api.android.DatabaseUiExecutor;
import org.briarproject.api.android.ReferenceManager; import org.briarproject.api.android.ReferenceManager;
@@ -198,10 +200,12 @@ public class HomeScreenActivity extends RoboActivity {
layout.setOrientation(VERTICAL); layout.setOrientation(VERTICAL);
layout.setGravity(CENTER_HORIZONTAL); layout.setGravity(CENTER_HORIZONTAL);
int pad = LayoutUtils.getPadding(this);
enterPassword = new TextView(this); enterPassword = new TextView(this);
enterPassword.setGravity(CENTER); enterPassword.setGravity(CENTER);
enterPassword.setTextSize(18); enterPassword.setTextSize(18);
enterPassword.setPadding(10, 10, 10, 0); enterPassword.setPadding(pad, pad, pad, 0);
enterPassword.setText(R.string.enter_password); enterPassword.setText(R.string.enter_password);
layout.addView(enterPassword); layout.addView(enterPassword);
@@ -218,6 +222,9 @@ public class HomeScreenActivity extends RoboActivity {
}); });
layout.addView(passwordEntry); layout.addView(passwordEntry);
// Adjusting the padding of buttons and EditTexts has the wrong results
layout.addView(new FixedVerticalSpace(this));
continueButton = new Button(this); continueButton = new Button(this);
continueButton.setLayoutParams(WRAP_WRAP); continueButton.setLayoutParams(WRAP_WRAP);
continueButton.setText(R.string.continue_button); continueButton.setText(R.string.continue_button);
@@ -230,7 +237,6 @@ public class HomeScreenActivity extends RoboActivity {
progress = new ProgressBar(this); progress = new ProgressBar(this);
progress.setLayoutParams(WRAP_WRAP); progress.setLayoutParams(WRAP_WRAP);
progress.setPadding(0, 10, 0, 0);
progress.setIndeterminate(true); progress.setIndeterminate(true);
progress.setVisibility(GONE); progress.setVisibility(GONE);
layout.addView(progress); layout.addView(progress);
@@ -288,12 +294,16 @@ public class HomeScreenActivity extends RoboActivity {
LinearLayout layout = new LinearLayout(this); LinearLayout layout = new LinearLayout(this);
layout.setLayoutParams(MATCH_MATCH); layout.setLayoutParams(MATCH_MATCH);
layout.setGravity(CENTER); layout.setGravity(CENTER);
int pad = LayoutUtils.getPadding(this);
TextView warning = new TextView(this); TextView warning = new TextView(this);
warning.setGravity(CENTER); warning.setGravity(CENTER);
warning.setTextSize(18); warning.setTextSize(18);
warning.setPadding(10, 10, 10, 10); warning.setPadding(pad, pad, pad, pad);
warning.setText(R.string.expiry_warning); warning.setText(R.string.expiry_warning);
layout.addView(warning); layout.addView(warning);
setContentView(layout); setContentView(layout);
} }
@@ -359,10 +369,12 @@ public class HomeScreenActivity extends RoboActivity {
}); });
buttons.add(quitButton); buttons.add(quitButton);
int pad = LayoutUtils.getPadding(this);
GridView grid = new GridView(this); GridView grid = new GridView(this);
grid.setLayoutParams(matchMatch); grid.setLayoutParams(matchMatch);
grid.setGravity(CENTER); grid.setGravity(CENTER);
grid.setPadding(5, 5, 5, 5); grid.setPadding(pad, pad, pad, pad);
grid.setBackgroundColor(getResources().getColor( grid.setBackgroundColor(getResources().getColor(
R.color.home_screen_background)); R.color.home_screen_background));
grid.setNumColumns(2); grid.setNumColumns(2);

View File

@@ -19,6 +19,7 @@ import java.util.concurrent.Executor;
import javax.inject.Inject; import javax.inject.Inject;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.android.util.StrengthMeter; import org.briarproject.android.util.StrengthMeter;
import org.briarproject.api.AuthorFactory; import org.briarproject.api.AuthorFactory;
import org.briarproject.api.LocalAuthor; import org.briarproject.api.LocalAuthor;
@@ -70,10 +71,12 @@ public class SetupActivity extends RoboActivity implements OnClickListener {
layout.setOrientation(VERTICAL); layout.setOrientation(VERTICAL);
layout.setGravity(CENTER_HORIZONTAL); layout.setGravity(CENTER_HORIZONTAL);
int pad = LayoutUtils.getPadding(this);
TextView chooseNickname = new TextView(this); TextView chooseNickname = new TextView(this);
chooseNickname.setGravity(CENTER); chooseNickname.setGravity(CENTER);
chooseNickname.setTextSize(18); chooseNickname.setTextSize(18);
chooseNickname.setPadding(10, 10, 10, 0); chooseNickname.setPadding(pad, pad, pad, 0);
chooseNickname.setText(R.string.choose_nickname); chooseNickname.setText(R.string.choose_nickname);
layout.addView(chooseNickname); layout.addView(chooseNickname);
@@ -93,7 +96,7 @@ public class SetupActivity extends RoboActivity implements OnClickListener {
TextView choosePassword = new TextView(this); TextView choosePassword = new TextView(this);
choosePassword.setGravity(CENTER); choosePassword.setGravity(CENTER);
choosePassword.setTextSize(18); choosePassword.setTextSize(18);
choosePassword.setPadding(10, 10, 10, 0); choosePassword.setPadding(pad, pad, pad, 0);
choosePassword.setText(R.string.choose_password); choosePassword.setText(R.string.choose_password);
layout.addView(choosePassword); layout.addView(choosePassword);
@@ -113,7 +116,7 @@ public class SetupActivity extends RoboActivity implements OnClickListener {
TextView confirmPassword = new TextView(this); TextView confirmPassword = new TextView(this);
confirmPassword.setGravity(CENTER); confirmPassword.setGravity(CENTER);
confirmPassword.setTextSize(18); confirmPassword.setTextSize(18);
confirmPassword.setPadding(10, 10, 10, 0); confirmPassword.setPadding(pad, pad, pad, 0);
confirmPassword.setText(R.string.confirm_password); confirmPassword.setText(R.string.confirm_password);
layout.addView(confirmPassword); layout.addView(confirmPassword);
@@ -131,13 +134,13 @@ public class SetupActivity extends RoboActivity implements OnClickListener {
layout.addView(passwordConfirmation); layout.addView(passwordConfirmation);
strengthMeter = new StrengthMeter(this); strengthMeter = new StrengthMeter(this);
strengthMeter.setPadding(30, 10, 30, 0); strengthMeter.setPadding(5 * pad, pad, 5 * pad, 0);
layout.addView(strengthMeter); layout.addView(strengthMeter);
feedback = new TextView(this); feedback = new TextView(this);
feedback.setGravity(CENTER); feedback.setGravity(CENTER);
feedback.setTextSize(14); feedback.setTextSize(14);
feedback.setPadding(10, 10, 10, 10); feedback.setPadding(pad, pad, pad, pad);
feedback.setText(""); feedback.setText("");
layout.addView(feedback); layout.addView(feedback);
@@ -150,7 +153,6 @@ public class SetupActivity extends RoboActivity implements OnClickListener {
progress = new ProgressBar(this); progress = new ProgressBar(this);
progress.setLayoutParams(WRAP_WRAP); progress.setLayoutParams(WRAP_WRAP);
progress.setPadding(0, 10, 0, 0);
progress.setIndeterminate(true); progress.setIndeterminate(true);
progress.setVisibility(GONE); progress.setVisibility(GONE);
layout.addView(progress); layout.addView(progress);

View File

@@ -7,6 +7,8 @@ import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1;
import java.util.ArrayList; import java.util.ArrayList;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.text.Html; import android.text.Html;
@@ -20,9 +22,12 @@ import android.widget.TextView;
class ContactListAdapter extends ArrayAdapter<ContactListItem> { class ContactListAdapter extends ArrayAdapter<ContactListItem> {
private final int pad;
ContactListAdapter(Context ctx) { ContactListAdapter(Context ctx) {
super(ctx, android.R.layout.simple_expandable_list_item_1, super(ctx, android.R.layout.simple_expandable_list_item_1,
new ArrayList<ContactListItem>()); new ArrayList<ContactListItem>());
pad = LayoutUtils.getPadding(ctx);
} }
@Override @Override
@@ -37,7 +42,7 @@ class ContactListAdapter extends ArrayAdapter<ContactListItem> {
layout.setBackgroundColor(res.getColor(R.color.unread_background)); layout.setBackgroundColor(res.getColor(R.color.unread_background));
ImageView bulb = new ImageView(ctx); ImageView bulb = new ImageView(ctx);
bulb.setPadding(5, 5, 5, 5); bulb.setPadding(pad, pad, pad, pad);
if(item.isConnected()) if(item.isConnected())
bulb.setImageResource(R.drawable.contact_connected); bulb.setImageResource(R.drawable.contact_connected);
else bulb.setImageResource(R.drawable.contact_disconnected); else bulb.setImageResource(R.drawable.contact_disconnected);
@@ -48,7 +53,7 @@ class ContactListAdapter extends ArrayAdapter<ContactListItem> {
name.setLayoutParams(WRAP_WRAP_1); name.setLayoutParams(WRAP_WRAP_1);
name.setTextSize(18); name.setTextSize(18);
name.setMaxLines(1); name.setMaxLines(1);
name.setPadding(0, 10, 10, 10); name.setPadding(0, pad, pad, pad);
int unread = item.getUnreadCount(); int unread = item.getUnreadCount();
String contactName = item.getContact().getAuthor().getName(); String contactName = item.getContact().getAuthor().getName();
if(unread > 0) name.setText(contactName + " (" + unread + ")"); if(unread > 0) name.setText(contactName + " (" + unread + ")");
@@ -57,7 +62,7 @@ class ContactListAdapter extends ArrayAdapter<ContactListItem> {
TextView connected = new TextView(ctx); TextView connected = new TextView(ctx);
connected.setTextSize(14); connected.setTextSize(14);
connected.setPadding(0, 10, 10, 10); connected.setPadding(0, pad, pad, pad);
if(item.isConnected()) { if(item.isConnected()) {
connected.setText(R.string.contact_connected); connected.setText(R.string.contact_connected);
} else { } else {

View File

@@ -7,7 +7,9 @@ import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1;
import java.util.ArrayList; import java.util.ArrayList;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.db.MessageHeader; import org.briarproject.api.db.MessageHeader;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.text.format.DateUtils; import android.text.format.DateUtils;
@@ -19,9 +21,12 @@ import android.widget.TextView;
class ConversationAdapter extends ArrayAdapter<ConversationItem> { class ConversationAdapter extends ArrayAdapter<ConversationItem> {
private final int pad;
ConversationAdapter(Context ctx) { ConversationAdapter(Context ctx) {
super(ctx, android.R.layout.simple_expandable_list_item_1, super(ctx, android.R.layout.simple_expandable_list_item_1,
new ArrayList<ConversationItem>()); new ArrayList<ConversationItem>());
pad = LayoutUtils.getPadding(ctx);
} }
@Override @Override
@@ -41,13 +46,13 @@ class ConversationAdapter extends ArrayAdapter<ConversationItem> {
name.setLayoutParams(WRAP_WRAP_1); name.setLayoutParams(WRAP_WRAP_1);
name.setTextSize(18); name.setTextSize(18);
name.setMaxLines(1); name.setMaxLines(1);
name.setPadding(10, 10, 10, 10); name.setPadding(pad, pad, pad, pad);
name.setText(header.getAuthor().getName()); name.setText(header.getAuthor().getName());
layout.addView(name); layout.addView(name);
TextView date = new TextView(ctx); TextView date = new TextView(ctx);
date.setTextSize(14); date.setTextSize(14);
date.setPadding(0, 10, 10, 10); date.setPadding(0, pad, pad, pad);
long then = header.getTimestamp(), now = System.currentTimeMillis(); long then = header.getTimestamp(), now = System.currentTimeMillis();
date.setText(DateUtils.formatSameDayTime(then, now, SHORT, SHORT)); date.setText(DateUtils.formatSameDayTime(then, now, SHORT, SHORT));
layout.addView(date); layout.addView(date);

View File

@@ -19,7 +19,8 @@ import javax.inject.Inject;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.HorizontalBorder; import org.briarproject.android.util.HorizontalBorder;
import org.briarproject.android.util.HorizontalSpace; import org.briarproject.android.util.ElasticHorizontalSpace;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.AuthorId; import org.briarproject.api.AuthorId;
import org.briarproject.api.android.DatabaseUiExecutor; import org.briarproject.api.android.DatabaseUiExecutor;
import org.briarproject.api.db.DatabaseComponent; import org.briarproject.api.db.DatabaseComponent;
@@ -28,6 +29,7 @@ import org.briarproject.api.db.NoSuchMessageException;
import org.briarproject.api.lifecycle.LifecycleManager; import org.briarproject.api.lifecycle.LifecycleManager;
import org.briarproject.api.messaging.GroupId; import org.briarproject.api.messaging.GroupId;
import org.briarproject.api.messaging.MessageId; import org.briarproject.api.messaging.MessageId;
import roboguice.activity.RoboActivity; import roboguice.activity.RoboActivity;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
@@ -114,18 +116,20 @@ implements OnClickListener {
header.setOrientation(HORIZONTAL); header.setOrientation(HORIZONTAL);
header.setGravity(CENTER_VERTICAL); header.setGravity(CENTER_VERTICAL);
int pad = LayoutUtils.getPadding(this);
TextView name = new TextView(this); TextView name = new TextView(this);
// Give me all the unused width // Give me all the unused width
name.setLayoutParams(WRAP_WRAP_1); name.setLayoutParams(WRAP_WRAP_1);
name.setTextSize(18); name.setTextSize(18);
name.setMaxLines(1); name.setMaxLines(1);
name.setPadding(10, 10, 10, 10); name.setPadding(pad, pad, pad, pad);
name.setText(authorName); name.setText(authorName);
header.addView(name); header.addView(name);
TextView date = new TextView(this); TextView date = new TextView(this);
date.setTextSize(14); date.setTextSize(14);
date.setPadding(0, 10, 10, 10); date.setPadding(0, pad, pad, pad);
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
date.setText(DateUtils.formatSameDayTime(timestamp, now, SHORT, SHORT)); date.setText(DateUtils.formatSameDayTime(timestamp, now, SHORT, SHORT));
header.addView(date); header.addView(date);
@@ -134,7 +138,7 @@ implements OnClickListener {
if(contentType.equals("text/plain")) { if(contentType.equals("text/plain")) {
// Load and display the message body // Load and display the message body
content = new TextView(this); content = new TextView(this);
content.setPadding(10, 0, 10, 10); content.setPadding(pad, 0, pad, pad);
message.addView(content); message.addView(content);
loadMessageBody(); loadMessageBody();
} }
@@ -154,21 +158,21 @@ implements OnClickListener {
else readButton.setImageResource(R.drawable.content_read); else readButton.setImageResource(R.drawable.content_read);
readButton.setOnClickListener(this); readButton.setOnClickListener(this);
footer.addView(readButton); footer.addView(readButton);
footer.addView(new HorizontalSpace(this)); footer.addView(new ElasticHorizontalSpace(this));
prevButton = new ImageButton(this); prevButton = new ImageButton(this);
prevButton.setBackgroundResource(0); prevButton.setBackgroundResource(0);
prevButton.setImageResource(R.drawable.navigation_previous_item); prevButton.setImageResource(R.drawable.navigation_previous_item);
prevButton.setOnClickListener(this); prevButton.setOnClickListener(this);
footer.addView(prevButton); footer.addView(prevButton);
footer.addView(new HorizontalSpace(this)); footer.addView(new ElasticHorizontalSpace(this));
nextButton = new ImageButton(this); nextButton = new ImageButton(this);
nextButton.setBackgroundResource(0); nextButton.setBackgroundResource(0);
nextButton.setImageResource(R.drawable.navigation_next_item); nextButton.setImageResource(R.drawable.navigation_next_item);
nextButton.setOnClickListener(this); nextButton.setOnClickListener(this);
footer.addView(nextButton); footer.addView(nextButton);
footer.addView(new HorizontalSpace(this)); footer.addView(new ElasticHorizontalSpace(this));
replyButton = new ImageButton(this); replyButton = new ImageButton(this);
replyButton.setBackgroundResource(0); replyButton.setBackgroundResource(0);

View File

@@ -19,7 +19,8 @@ import java.util.logging.Logger;
import javax.inject.Inject; import javax.inject.Inject;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.HorizontalSpace; import org.briarproject.android.util.ElasticHorizontalSpace;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.AuthorId; import org.briarproject.api.AuthorId;
import org.briarproject.api.LocalAuthor; import org.briarproject.api.LocalAuthor;
import org.briarproject.api.android.DatabaseUiExecutor; import org.briarproject.api.android.DatabaseUiExecutor;
@@ -34,6 +35,7 @@ import org.briarproject.api.messaging.GroupId;
import org.briarproject.api.messaging.Message; import org.briarproject.api.messaging.Message;
import org.briarproject.api.messaging.MessageFactory; import org.briarproject.api.messaging.MessageFactory;
import org.briarproject.api.messaging.MessageId; import org.briarproject.api.messaging.MessageId;
import roboguice.activity.RoboActivity; import roboguice.activity.RoboActivity;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
@@ -97,13 +99,15 @@ implements OnClickListener {
header.setOrientation(HORIZONTAL); header.setOrientation(HORIZONTAL);
header.setGravity(CENTER_VERTICAL); header.setGravity(CENTER_VERTICAL);
int pad = LayoutUtils.getPadding(this);
from = new TextView(this); from = new TextView(this);
from.setTextSize(18); from.setTextSize(18);
from.setPadding(10, 10, 10, 10); from.setPadding(pad, pad, pad, pad);
from.setText(R.string.from); from.setText(R.string.from);
header.addView(from); header.addView(from);
header.addView(new HorizontalSpace(this)); header.addView(new ElasticHorizontalSpace(this));
sendButton = new ImageButton(this); sendButton = new ImageButton(this);
sendButton.setBackgroundResource(0); sendButton.setBackgroundResource(0);
@@ -115,7 +119,7 @@ implements OnClickListener {
to = new TextView(this); to = new TextView(this);
to.setTextSize(18); to.setTextSize(18);
to.setPadding(10, 0, 10, 10); to.setPadding(pad, 0, pad, pad);
String format = getResources().getString(R.string.format_to); String format = getResources().getString(R.string.format_to);
to.setText(String.format(format, contactName)); to.setText(String.format(format, contactName));
layout.addView(to); layout.addView(to);

View File

@@ -23,6 +23,7 @@ import javax.inject.Inject;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.contact.SelectContactsDialog; import org.briarproject.android.contact.SelectContactsDialog;
import org.briarproject.android.invitation.AddContactActivity; import org.briarproject.android.invitation.AddContactActivity;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.Contact; import org.briarproject.api.Contact;
import org.briarproject.api.ContactId; import org.briarproject.api.ContactId;
import org.briarproject.api.android.DatabaseUiExecutor; import org.briarproject.api.android.DatabaseUiExecutor;
@@ -31,6 +32,7 @@ import org.briarproject.api.db.DbException;
import org.briarproject.api.lifecycle.LifecycleManager; import org.briarproject.api.lifecycle.LifecycleManager;
import org.briarproject.api.messaging.Group; import org.briarproject.api.messaging.Group;
import org.briarproject.api.messaging.GroupFactory; import org.briarproject.api.messaging.GroupFactory;
import roboguice.activity.RoboFragmentActivity; import roboguice.activity.RoboFragmentActivity;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
@@ -79,10 +81,12 @@ SelectContactsDialog.Listener {
layout.setOrientation(VERTICAL); layout.setOrientation(VERTICAL);
layout.setGravity(CENTER_HORIZONTAL); layout.setGravity(CENTER_HORIZONTAL);
int pad = LayoutUtils.getPadding(this);
TextView chooseName = new TextView(this); TextView chooseName = new TextView(this);
chooseName.setGravity(CENTER); chooseName.setGravity(CENTER);
chooseName.setTextSize(18); chooseName.setTextSize(18);
chooseName.setPadding(10, 10, 10, 0); chooseName.setPadding(pad, pad, pad, 0);
chooseName.setText(R.string.choose_forum_name); chooseName.setText(R.string.choose_forum_name);
layout.addView(chooseName); layout.addView(chooseName);

View File

@@ -7,8 +7,10 @@ import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1;
import java.util.ArrayList; import java.util.ArrayList;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.Author; import org.briarproject.api.Author;
import org.briarproject.api.db.MessageHeader; import org.briarproject.api.db.MessageHeader;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.text.format.DateUtils; import android.text.format.DateUtils;
@@ -20,9 +22,12 @@ import android.widget.TextView;
class GroupAdapter extends ArrayAdapter<MessageHeader> { class GroupAdapter extends ArrayAdapter<MessageHeader> {
private final int pad;
GroupAdapter(Context ctx) { GroupAdapter(Context ctx) {
super(ctx, android.R.layout.simple_expandable_list_item_1, super(ctx, android.R.layout.simple_expandable_list_item_1,
new ArrayList<MessageHeader>()); new ArrayList<MessageHeader>());
pad = LayoutUtils.getPadding(ctx);
} }
@Override @Override
@@ -41,7 +46,7 @@ class GroupAdapter extends ArrayAdapter<MessageHeader> {
name.setLayoutParams(WRAP_WRAP_1); name.setLayoutParams(WRAP_WRAP_1);
name.setTextSize(18); name.setTextSize(18);
name.setMaxLines(1); name.setMaxLines(1);
name.setPadding(10, 10, 10, 10); name.setPadding(pad, pad, pad, pad);
Author author = item.getAuthor(); Author author = item.getAuthor();
if(author == null) { if(author == null) {
name.setTextColor(res.getColor(R.color.anonymous_author)); name.setTextColor(res.getColor(R.color.anonymous_author));
@@ -53,7 +58,7 @@ class GroupAdapter extends ArrayAdapter<MessageHeader> {
TextView date = new TextView(ctx); TextView date = new TextView(ctx);
date.setTextSize(14); date.setTextSize(14);
date.setPadding(10, 10, 10, 10); date.setPadding(pad, pad, pad, pad);
long then = item.getTimestamp(), now = System.currentTimeMillis(); long then = item.getTimestamp(), now = System.currentTimeMillis();
date.setText(DateUtils.formatSameDayTime(then, now, SHORT, SHORT)); date.setText(DateUtils.formatSameDayTime(then, now, SHORT, SHORT));
layout.addView(date); layout.addView(date);

View File

@@ -24,7 +24,7 @@ import javax.inject.Inject;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.HorizontalBorder; import org.briarproject.android.util.HorizontalBorder;
import org.briarproject.android.util.HorizontalSpace; import org.briarproject.android.util.ElasticHorizontalSpace;
import org.briarproject.android.util.ListLoadingProgressBar; import org.briarproject.android.util.ListLoadingProgressBar;
import org.briarproject.api.android.DatabaseUiExecutor; import org.briarproject.api.android.DatabaseUiExecutor;
import org.briarproject.api.db.DatabaseComponent; import org.briarproject.api.db.DatabaseComponent;
@@ -99,21 +99,21 @@ implements EventListener, OnClickListener, OnItemClickListener {
footer.setLayoutParams(MATCH_WRAP); footer.setLayoutParams(MATCH_WRAP);
footer.setOrientation(HORIZONTAL); footer.setOrientation(HORIZONTAL);
footer.setGravity(CENTER); footer.setGravity(CENTER);
footer.addView(new HorizontalSpace(this)); footer.addView(new ElasticHorizontalSpace(this));
newGroupButton = new ImageButton(this); newGroupButton = new ImageButton(this);
newGroupButton.setBackgroundResource(0); newGroupButton.setBackgroundResource(0);
newGroupButton.setImageResource(R.drawable.social_new_chat); newGroupButton.setImageResource(R.drawable.social_new_chat);
newGroupButton.setOnClickListener(this); newGroupButton.setOnClickListener(this);
footer.addView(newGroupButton); footer.addView(newGroupButton);
footer.addView(new HorizontalSpace(this)); footer.addView(new ElasticHorizontalSpace(this));
manageGroupsButton = new ImageButton(this); manageGroupsButton = new ImageButton(this);
manageGroupsButton.setBackgroundResource(0); manageGroupsButton.setBackgroundResource(0);
manageGroupsButton.setImageResource(R.drawable.action_settings); manageGroupsButton.setImageResource(R.drawable.action_settings);
manageGroupsButton.setOnClickListener(this); manageGroupsButton.setOnClickListener(this);
footer.addView(manageGroupsButton); footer.addView(manageGroupsButton);
footer.addView(new HorizontalSpace(this)); footer.addView(new ElasticHorizontalSpace(this));
layout.addView(footer); layout.addView(footer);
setContentView(layout); setContentView(layout);

View File

@@ -12,6 +12,8 @@ import java.util.Comparator;
import java.util.List; import java.util.List;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.text.format.DateUtils; import android.text.format.DateUtils;
@@ -24,11 +26,13 @@ import android.widget.TextView;
class GroupListAdapter extends BaseAdapter { class GroupListAdapter extends BaseAdapter {
private final Context ctx; private final Context ctx;
private final int pad;
private final List<GroupListItem> list = new ArrayList<GroupListItem>(); private final List<GroupListItem> list = new ArrayList<GroupListItem>();
private int available = 0; private int available = 0;
GroupListAdapter(Context ctx) { GroupListAdapter(Context ctx) {
this.ctx = ctx; this.ctx = ctx;
pad = LayoutUtils.getPadding(ctx);
} }
public void setAvailable(int available) { public void setAvailable(int available) {
@@ -63,7 +67,7 @@ class GroupListAdapter extends BaseAdapter {
TextView manage = new TextView(ctx); TextView manage = new TextView(ctx);
manage.setGravity(CENTER); manage.setGravity(CENTER);
manage.setTextSize(18); manage.setTextSize(18);
manage.setPadding(10, 10, 10, 10); manage.setPadding(pad, pad, pad, pad);
String format = res.getQuantityString(R.plurals.forums_available, String format = res.getQuantityString(R.plurals.forums_available,
available); available);
manage.setText(String.format(format, available)); manage.setText(String.format(format, available));
@@ -80,7 +84,7 @@ class GroupListAdapter extends BaseAdapter {
name.setLayoutParams(WRAP_WRAP_1); name.setLayoutParams(WRAP_WRAP_1);
name.setTextSize(18); name.setTextSize(18);
name.setMaxLines(1); name.setMaxLines(1);
name.setPadding(10, 10, 10, 10); name.setPadding(pad, pad, pad, pad);
int unread = item.getUnreadCount(); int unread = item.getUnreadCount();
String groupName = item.getGroup().getName(); String groupName = item.getGroup().getName();
if(unread > 0) name.setText(groupName + " (" + unread + ")"); if(unread > 0) name.setText(groupName + " (" + unread + ")");
@@ -90,14 +94,14 @@ class GroupListAdapter extends BaseAdapter {
if(item.isEmpty()) { if(item.isEmpty()) {
TextView noPosts = new TextView(ctx); TextView noPosts = new TextView(ctx);
noPosts.setTextSize(14); noPosts.setTextSize(14);
noPosts.setPadding(10, 0, 10, 10); noPosts.setPadding(pad, 0, pad, pad);
noPosts.setTextColor(res.getColor(R.color.no_posts)); noPosts.setTextColor(res.getColor(R.color.no_posts));
noPosts.setText(R.string.no_posts); noPosts.setText(R.string.no_posts);
layout.addView(noPosts); layout.addView(noPosts);
} else { } else {
TextView date = new TextView(ctx); TextView date = new TextView(ctx);
date.setTextSize(14); date.setTextSize(14);
date.setPadding(10, 0, 10, 10); date.setPadding(pad, 0, pad, pad);
long then = item.getTimestamp(), now = System.currentTimeMillis(); long then = item.getTimestamp(), now = System.currentTimeMillis();
date.setText(DateUtils.formatSameDayTime(then, now, SHORT, SHORT)); date.setText(DateUtils.formatSameDayTime(then, now, SHORT, SHORT));
layout.addView(date); layout.addView(date);

View File

@@ -12,7 +12,9 @@ import java.util.Comparator;
import java.util.List; import java.util.List;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.messaging.GroupStatus; import org.briarproject.api.messaging.GroupStatus;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@@ -24,11 +26,13 @@ import android.widget.TextView;
class ManageGroupsAdapter extends BaseAdapter { class ManageGroupsAdapter extends BaseAdapter {
private final Context ctx; private final Context ctx;
private final int pad;
private final List<ManageGroupsItem> list = private final List<ManageGroupsItem> list =
new ArrayList<ManageGroupsItem>(); new ArrayList<ManageGroupsItem>();
ManageGroupsAdapter(Context ctx) { ManageGroupsAdapter(Context ctx) {
this.ctx = ctx; this.ctx = ctx;
pad = LayoutUtils.getPadding(ctx);
} }
public void add(ManageGroupsItem item) { public void add(ManageGroupsItem item) {
@@ -58,7 +62,7 @@ class ManageGroupsAdapter extends BaseAdapter {
TextView none = new TextView(ctx); TextView none = new TextView(ctx);
none.setGravity(CENTER); none.setGravity(CENTER);
none.setTextSize(18); none.setTextSize(18);
none.setPadding(10, 10, 10, 10); none.setPadding(pad, pad, pad, pad);
none.setText(R.string.no_forums_available); none.setText(R.string.no_forums_available);
return none; return none;
} }
@@ -68,7 +72,7 @@ class ManageGroupsAdapter extends BaseAdapter {
layout.setOrientation(HORIZONTAL); layout.setOrientation(HORIZONTAL);
ImageView subscribed = new ImageView(ctx); ImageView subscribed = new ImageView(ctx);
subscribed.setPadding(5, 5, 5, 5); subscribed.setPadding(pad, pad, pad, pad);
subscribed.setImageResource(R.drawable.navigation_accept); subscribed.setImageResource(R.drawable.navigation_accept);
if(!s.isSubscribed()) subscribed.setVisibility(INVISIBLE); if(!s.isSubscribed()) subscribed.setVisibility(INVISIBLE);
layout.addView(subscribed); layout.addView(subscribed);
@@ -79,13 +83,13 @@ class ManageGroupsAdapter extends BaseAdapter {
TextView name = new TextView(ctx); TextView name = new TextView(ctx);
name.setTextSize(18); name.setTextSize(18);
name.setMaxLines(1); name.setMaxLines(1);
name.setPadding(0, 10, 10, 10); name.setPadding(0, pad, pad, pad);
name.setText(s.getGroup().getName()); name.setText(s.getGroup().getName());
innerLayout.addView(name); innerLayout.addView(name);
TextView status = new TextView(ctx); TextView status = new TextView(ctx);
status.setTextSize(14); status.setTextSize(14);
status.setPadding(0, 0, 10, 10); status.setPadding(0, 0, pad, pad);
if(s.isSubscribed()) { if(s.isSubscribed()) {
if(s.isVisibleToAll()) status.setText(R.string.subscribed_all); if(s.isVisibleToAll()) status.setText(R.string.subscribed_all);
else status.setText(R.string.subscribed_some); else status.setText(R.string.subscribed_some);

View File

@@ -19,7 +19,8 @@ import javax.inject.Inject;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.HorizontalBorder; import org.briarproject.android.util.HorizontalBorder;
import org.briarproject.android.util.HorizontalSpace; import org.briarproject.android.util.ElasticHorizontalSpace;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.android.DatabaseUiExecutor; import org.briarproject.api.android.DatabaseUiExecutor;
import org.briarproject.api.db.DatabaseComponent; import org.briarproject.api.db.DatabaseComponent;
import org.briarproject.api.db.DbException; import org.briarproject.api.db.DbException;
@@ -27,6 +28,7 @@ import org.briarproject.api.db.NoSuchMessageException;
import org.briarproject.api.lifecycle.LifecycleManager; import org.briarproject.api.lifecycle.LifecycleManager;
import org.briarproject.api.messaging.GroupId; import org.briarproject.api.messaging.GroupId;
import org.briarproject.api.messaging.MessageId; import org.briarproject.api.messaging.MessageId;
import roboguice.activity.RoboActivity; import roboguice.activity.RoboActivity;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
@@ -107,12 +109,14 @@ implements OnClickListener {
header.setOrientation(HORIZONTAL); header.setOrientation(HORIZONTAL);
header.setGravity(CENTER_VERTICAL); header.setGravity(CENTER_VERTICAL);
int pad = LayoutUtils.getPadding(this);
TextView name = new TextView(this); TextView name = new TextView(this);
// Give me all the unused width // Give me all the unused width
name.setLayoutParams(WRAP_WRAP_1); name.setLayoutParams(WRAP_WRAP_1);
name.setTextSize(18); name.setTextSize(18);
name.setMaxLines(1); name.setMaxLines(1);
name.setPadding(10, 10, 10, 10); name.setPadding(pad, pad, pad, pad);
if(authorName == null) { if(authorName == null) {
name.setTextColor(res.getColor(R.color.anonymous_author)); name.setTextColor(res.getColor(R.color.anonymous_author));
name.setText(R.string.anonymous); name.setText(R.string.anonymous);
@@ -123,7 +127,7 @@ implements OnClickListener {
TextView date = new TextView(this); TextView date = new TextView(this);
date.setTextSize(14); date.setTextSize(14);
date.setPadding(0, 10, 10, 10); date.setPadding(0, pad, pad, pad);
long now = System.currentTimeMillis(); long now = System.currentTimeMillis();
date.setText(DateUtils.formatSameDayTime(timestamp, now, SHORT, SHORT)); date.setText(DateUtils.formatSameDayTime(timestamp, now, SHORT, SHORT));
header.addView(date); header.addView(date);
@@ -132,7 +136,7 @@ implements OnClickListener {
if(contentType.equals("text/plain")) { if(contentType.equals("text/plain")) {
// Load and display the message body // Load and display the message body
content = new TextView(this); content = new TextView(this);
content.setPadding(10, 0, 10, 10); content.setPadding(pad, 0, pad, pad);
message.addView(content); message.addView(content);
loadMessageBody(); loadMessageBody();
} }
@@ -152,21 +156,21 @@ implements OnClickListener {
else readButton.setImageResource(R.drawable.content_read); else readButton.setImageResource(R.drawable.content_read);
readButton.setOnClickListener(this); readButton.setOnClickListener(this);
footer.addView(readButton); footer.addView(readButton);
footer.addView(new HorizontalSpace(this)); footer.addView(new ElasticHorizontalSpace(this));
prevButton = new ImageButton(this); prevButton = new ImageButton(this);
prevButton.setBackgroundResource(0); prevButton.setBackgroundResource(0);
prevButton.setImageResource(R.drawable.navigation_previous_item); prevButton.setImageResource(R.drawable.navigation_previous_item);
prevButton.setOnClickListener(this); prevButton.setOnClickListener(this);
footer.addView(prevButton); footer.addView(prevButton);
footer.addView(new HorizontalSpace(this)); footer.addView(new ElasticHorizontalSpace(this));
nextButton = new ImageButton(this); nextButton = new ImageButton(this);
nextButton.setBackgroundResource(0); nextButton.setBackgroundResource(0);
nextButton.setImageResource(R.drawable.navigation_next_item); nextButton.setImageResource(R.drawable.navigation_next_item);
nextButton.setOnClickListener(this); nextButton.setOnClickListener(this);
footer.addView(nextButton); footer.addView(nextButton);
footer.addView(new HorizontalSpace(this)); footer.addView(new ElasticHorizontalSpace(this));
replyButton = new ImageButton(this); replyButton = new ImageButton(this);
replyButton.setBackgroundResource(0); replyButton.setBackgroundResource(0);

View File

@@ -24,7 +24,8 @@ import org.briarproject.android.identity.CreateIdentityActivity;
import org.briarproject.android.identity.LocalAuthorItem; import org.briarproject.android.identity.LocalAuthorItem;
import org.briarproject.android.identity.LocalAuthorItemComparator; import org.briarproject.android.identity.LocalAuthorItemComparator;
import org.briarproject.android.identity.LocalAuthorSpinnerAdapter; import org.briarproject.android.identity.LocalAuthorSpinnerAdapter;
import org.briarproject.android.util.HorizontalSpace; import org.briarproject.android.util.ElasticHorizontalSpace;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.AuthorId; import org.briarproject.api.AuthorId;
import org.briarproject.api.LocalAuthor; import org.briarproject.api.LocalAuthor;
import org.briarproject.api.android.DatabaseUiExecutor; import org.briarproject.api.android.DatabaseUiExecutor;
@@ -40,6 +41,7 @@ import org.briarproject.api.messaging.GroupId;
import org.briarproject.api.messaging.Message; import org.briarproject.api.messaging.Message;
import org.briarproject.api.messaging.MessageFactory; import org.briarproject.api.messaging.MessageFactory;
import org.briarproject.api.messaging.MessageId; import org.briarproject.api.messaging.MessageId;
import roboguice.activity.RoboActivity; import roboguice.activity.RoboActivity;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
@@ -109,9 +111,11 @@ implements OnItemSelectedListener, OnClickListener {
header.setOrientation(HORIZONTAL); header.setOrientation(HORIZONTAL);
header.setGravity(CENTER_VERTICAL); header.setGravity(CENTER_VERTICAL);
int pad = LayoutUtils.getPadding(this);
TextView from = new TextView(this); TextView from = new TextView(this);
from.setTextSize(18); from.setTextSize(18);
from.setPadding(10, 10, 0, 10); from.setPadding(pad, pad, 0, pad);
from.setText(R.string.from); from.setText(R.string.from);
header.addView(from); header.addView(from);
@@ -121,7 +125,7 @@ implements OnItemSelectedListener, OnClickListener {
spinner.setOnItemSelectedListener(this); spinner.setOnItemSelectedListener(this);
header.addView(spinner); header.addView(spinner);
header.addView(new HorizontalSpace(this)); header.addView(new ElasticHorizontalSpace(this));
sendButton = new ImageButton(this); sendButton = new ImageButton(this);
sendButton.setBackgroundResource(0); sendButton.setBackgroundResource(0);
@@ -133,7 +137,7 @@ implements OnItemSelectedListener, OnClickListener {
to = new TextView(this); to = new TextView(this);
to.setTextSize(18); to.setTextSize(18);
to.setPadding(10, 0, 10, 10); to.setPadding(pad, 0, pad, pad);
to.setText(R.string.to); to.setText(R.string.to);
layout.addView(to); layout.addView(to);

View File

@@ -19,6 +19,7 @@ import java.util.logging.Logger;
import javax.inject.Inject; import javax.inject.Inject;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import org.briarproject.api.AuthorFactory; import org.briarproject.api.AuthorFactory;
import org.briarproject.api.LocalAuthor; import org.briarproject.api.LocalAuthor;
import org.briarproject.api.android.DatabaseUiExecutor; import org.briarproject.api.android.DatabaseUiExecutor;
@@ -28,6 +29,7 @@ import org.briarproject.api.crypto.KeyPair;
import org.briarproject.api.db.DatabaseComponent; import org.briarproject.api.db.DatabaseComponent;
import org.briarproject.api.db.DbException; import org.briarproject.api.db.DbException;
import org.briarproject.api.lifecycle.LifecycleManager; import org.briarproject.api.lifecycle.LifecycleManager;
import roboguice.activity.RoboActivity; import roboguice.activity.RoboActivity;
import android.os.Bundle; import android.os.Bundle;
import android.view.KeyEvent; import android.view.KeyEvent;
@@ -67,10 +69,12 @@ implements OnEditorActionListener, OnClickListener {
layout.setOrientation(VERTICAL); layout.setOrientation(VERTICAL);
layout.setGravity(CENTER_HORIZONTAL); layout.setGravity(CENTER_HORIZONTAL);
int pad = LayoutUtils.getPadding(this);
TextView chooseNickname = new TextView(this); TextView chooseNickname = new TextView(this);
chooseNickname.setGravity(CENTER); chooseNickname.setGravity(CENTER);
chooseNickname.setTextSize(18); chooseNickname.setTextSize(18);
chooseNickname.setPadding(10, 10, 10, 0); chooseNickname.setPadding(pad, pad, pad, 0);
chooseNickname.setText(R.string.choose_nickname); chooseNickname.setText(R.string.choose_nickname);
layout.addView(chooseNickname); layout.addView(chooseNickname);

View File

@@ -68,6 +68,7 @@ implements SpinnerAdapter {
name.setTextSize(18); name.setTextSize(18);
name.setMaxLines(1); name.setMaxLines(1);
Resources res = ctx.getResources(); Resources res = ctx.getResources();
// FIXME: Use LayoutUtils.getPadding() here?
int pad = res.getInteger(R.integer.spinner_padding); int pad = res.getInteger(R.integer.spinner_padding);
name.setPadding(pad, pad, pad, pad); name.setPadding(pad, pad, pad, pad);
LocalAuthorItem item = getItem(position); LocalAuthorItem item = getItem(position);

View File

@@ -2,15 +2,21 @@ package org.briarproject.android.invitation;
import static android.view.Gravity.CENTER_HORIZONTAL; import static android.view.Gravity.CENTER_HORIZONTAL;
import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH;
import org.briarproject.android.util.LayoutUtils;
import android.content.Context; import android.content.Context;
import android.widget.LinearLayout; import android.widget.LinearLayout;
abstract class AddContactView extends LinearLayout { abstract class AddContactView extends LinearLayout {
protected final int pad;
protected AddContactActivity container = null; protected AddContactActivity container = null;
AddContactView(Context ctx) { AddContactView(Context ctx) {
super(ctx); super(ctx);
pad = LayoutUtils.getPadding(ctx);
} }
void init(AddContactActivity container) { void init(AddContactActivity container) {

View File

@@ -4,7 +4,10 @@ import static android.bluetooth.BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERA
import static android.provider.Settings.ACTION_BLUETOOTH_SETTINGS; import static android.provider.Settings.ACTION_BLUETOOTH_SETTINGS;
import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER;
import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothAdapter;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
@@ -17,8 +20,11 @@ import android.widget.TextView;
class BluetoothStatusView extends LinearLayout implements OnClickListener { class BluetoothStatusView extends LinearLayout implements OnClickListener {
private final int pad;
public BluetoothStatusView(Context ctx) { public BluetoothStatusView(Context ctx) {
super(ctx); super(ctx);
pad = LayoutUtils.getPadding(ctx);
} }
void init() { void init() {
@@ -33,18 +39,18 @@ class BluetoothStatusView extends LinearLayout implements OnClickListener {
TextView status = new TextView(ctx); TextView status = new TextView(ctx);
status.setLayoutParams(WRAP_WRAP_1); status.setLayoutParams(WRAP_WRAP_1);
status.setTextSize(14); status.setTextSize(14);
status.setPadding(10, 10, 10, 10); status.setPadding(pad, pad, pad, pad);
BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter();
if(adapter == null) { if(adapter == null) {
ImageView warning = new ImageView(ctx); ImageView warning = new ImageView(ctx);
warning.setPadding(5, 5, 5, 5); warning.setPadding(pad, pad, pad, pad);
warning.setImageResource(R.drawable.alerts_and_states_warning); warning.setImageResource(R.drawable.alerts_and_states_warning);
addView(warning); addView(warning);
status.setText(R.string.bluetooth_not_available); status.setText(R.string.bluetooth_not_available);
addView(status); addView(status);
} else if(adapter.getScanMode() == SCAN_MODE_CONNECTABLE_DISCOVERABLE) { } else if(adapter.getScanMode() == SCAN_MODE_CONNECTABLE_DISCOVERABLE) {
ImageView ok = new ImageView(ctx); ImageView ok = new ImageView(ctx);
ok.setPadding(5, 5, 5, 5); ok.setPadding(pad, pad, pad, pad);
ok.setImageResource(R.drawable.navigation_accept); ok.setImageResource(R.drawable.navigation_accept);
addView(ok); addView(ok);
status.setText(R.string.bluetooth_discoverable); status.setText(R.string.bluetooth_discoverable);
@@ -55,7 +61,7 @@ class BluetoothStatusView extends LinearLayout implements OnClickListener {
addView(settings); addView(settings);
} else if(adapter.isEnabled()) { } else if(adapter.isEnabled()) {
ImageView warning = new ImageView(ctx); ImageView warning = new ImageView(ctx);
warning.setPadding(5, 5, 5, 5); warning.setPadding(pad, pad, pad, pad);
warning.setImageResource(R.drawable.alerts_and_states_warning); warning.setImageResource(R.drawable.alerts_and_states_warning);
addView(warning); addView(warning);
status.setText(R.string.bluetooth_not_discoverable); status.setText(R.string.bluetooth_not_discoverable);
@@ -66,7 +72,7 @@ class BluetoothStatusView extends LinearLayout implements OnClickListener {
addView(settings); addView(settings);
} else { } else {
ImageView warning = new ImageView(ctx); ImageView warning = new ImageView(ctx);
warning.setPadding(5, 5, 5, 5); warning.setPadding(pad, pad, pad, pad);
warning.setImageResource(R.drawable.alerts_and_states_warning); warning.setImageResource(R.drawable.alerts_and_states_warning);
addView(warning); addView(warning);
status.setText(R.string.bluetooth_disabled); status.setText(R.string.bluetooth_disabled);

View File

@@ -6,7 +6,10 @@ import static android.view.Gravity.CENTER;
import static android.view.Gravity.CENTER_HORIZONTAL; import static android.view.Gravity.CENTER_HORIZONTAL;
import static android.view.inputmethod.InputMethodManager.HIDE_IMPLICIT_ONLY; import static android.view.inputmethod.InputMethodManager.HIDE_IMPLICIT_ONLY;
import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import android.content.Context; import android.content.Context;
import android.view.KeyEvent; import android.view.KeyEvent;
import android.view.View; import android.view.View;
@@ -21,12 +24,15 @@ import android.widget.TextView.OnEditorActionListener;
class CodeEntryView extends LinearLayout class CodeEntryView extends LinearLayout
implements OnEditorActionListener, OnClickListener { implements OnEditorActionListener, OnClickListener {
private final int pad;
private CodeEntryListener listener = null; private CodeEntryListener listener = null;
private EditText codeEntry = null; private EditText codeEntry = null;
private Button continueButton = null; private Button continueButton = null;
public CodeEntryView(Context ctx) { public CodeEntryView(Context ctx) {
super(ctx); super(ctx);
pad = LayoutUtils.getPadding(ctx);
} }
void init(CodeEntryListener listener, String prompt) { void init(CodeEntryListener listener, String prompt) {
@@ -38,7 +44,7 @@ implements OnEditorActionListener, OnClickListener {
TextView enterCode = new TextView(ctx); TextView enterCode = new TextView(ctx);
enterCode.setGravity(CENTER_HORIZONTAL); enterCode.setGravity(CENTER_HORIZONTAL);
enterCode.setTextSize(14); enterCode.setTextSize(14);
enterCode.setPadding(10, 10, 10, 0); enterCode.setPadding(pad, pad, pad, 0);
enterCode.setText(prompt); enterCode.setText(prompt);
addView(enterCode); addView(enterCode);

View File

@@ -2,7 +2,9 @@ package org.briarproject.android.invitation;
import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER;
import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP;
import org.briarproject.R; import org.briarproject.R;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@@ -30,14 +32,14 @@ class CodesDoNotMatchView extends AddContactView implements OnClickListener {
TextView failed = new TextView(ctx); TextView failed = new TextView(ctx);
failed.setTextSize(22); failed.setTextSize(22);
failed.setPadding(10, 10, 10, 10); failed.setPadding(pad, pad, pad, pad);
failed.setText(R.string.codes_do_not_match); failed.setText(R.string.codes_do_not_match);
innerLayout.addView(failed); innerLayout.addView(failed);
addView(innerLayout); addView(innerLayout);
TextView interfering = new TextView(ctx); TextView interfering = new TextView(ctx);
interfering.setTextSize(14); interfering.setTextSize(14);
interfering.setPadding(10, 0, 10, 10); interfering.setPadding(pad, 0, pad, pad);
interfering.setText(R.string.interfering); interfering.setText(R.string.interfering);
addView(interfering); addView(interfering);

View File

@@ -2,7 +2,9 @@ package org.briarproject.android.invitation;
import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER;
import static android.view.Gravity.CENTER_HORIZONTAL; import static android.view.Gravity.CENTER_HORIZONTAL;
import org.briarproject.R; import org.briarproject.R;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
import android.widget.ImageView; import android.widget.ImageView;
@@ -28,7 +30,7 @@ class ConfirmationCodeView extends AddContactView implements CodeEntryListener {
TextView connected = new TextView(ctx); TextView connected = new TextView(ctx);
connected.setTextSize(22); connected.setTextSize(22);
connected.setPadding(10, 10, 10, 10); connected.setPadding(pad, pad, pad, pad);
connected.setText(R.string.connected_to_contact); connected.setText(R.string.connected_to_contact);
innerLayout.addView(connected); innerLayout.addView(connected);
addView(innerLayout); addView(innerLayout);
@@ -36,14 +38,14 @@ class ConfirmationCodeView extends AddContactView implements CodeEntryListener {
TextView yourCode = new TextView(ctx); TextView yourCode = new TextView(ctx);
yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setGravity(CENTER_HORIZONTAL);
yourCode.setTextSize(14); yourCode.setTextSize(14);
yourCode.setPadding(10, 10, 10, 10); yourCode.setPadding(pad, pad, pad, pad);
yourCode.setText(R.string.your_confirmation_code); yourCode.setText(R.string.your_confirmation_code);
addView(yourCode); addView(yourCode);
TextView code = new TextView(ctx); TextView code = new TextView(ctx);
code.setGravity(CENTER_HORIZONTAL); code.setGravity(CENTER_HORIZONTAL);
code.setTextSize(50); code.setTextSize(50);
code.setPadding(10, 0, 10, 10); code.setPadding(pad, 0, pad, pad);
int localCode = container.getLocalConfirmationCode(); int localCode = container.getLocalConfirmationCode();
code.setText(String.format("%06d", localCode)); code.setText(String.format("%06d", localCode));
addView(code); addView(code);

View File

@@ -27,7 +27,7 @@ class ConnectedView extends AddContactView {
TextView connected = new TextView(ctx); TextView connected = new TextView(ctx);
connected.setTextSize(22); connected.setTextSize(22);
connected.setPadding(10, 10, 10, 10); connected.setPadding(pad, pad, pad, pad);
connected.setText(R.string.connected_to_contact); connected.setText(R.string.connected_to_contact);
innerLayout.addView(connected); innerLayout.addView(connected);
addView(innerLayout); addView(innerLayout);
@@ -38,7 +38,7 @@ class ConnectedView extends AddContactView {
ProgressBar progress = new ProgressBar(ctx); ProgressBar progress = new ProgressBar(ctx);
progress.setIndeterminate(true); progress.setIndeterminate(true);
progress.setPadding(10, 10, 10, 10); progress.setPadding(pad, pad, pad, pad);
innerLayout.addView(progress); innerLayout.addView(progress);
TextView connecting = new TextView(ctx); TextView connecting = new TextView(ctx);

View File

@@ -2,7 +2,9 @@ package org.briarproject.android.invitation;
import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER;
import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP;
import org.briarproject.R; import org.briarproject.R;
import android.content.Context; import android.content.Context;
import android.view.View; import android.view.View;
import android.view.View.OnClickListener; import android.view.View.OnClickListener;
@@ -34,14 +36,14 @@ class ConnectionFailedView extends AddContactView implements OnClickListener {
TextView failed = new TextView(ctx); TextView failed = new TextView(ctx);
failed.setTextSize(22); failed.setTextSize(22);
failed.setPadding(10, 10, 10, 10); failed.setPadding(pad, pad, pad, pad);
failed.setText(R.string.connection_failed); failed.setText(R.string.connection_failed);
innerLayout.addView(failed); innerLayout.addView(failed);
addView(innerLayout); addView(innerLayout);
TextView checkNetwork = new TextView(ctx); TextView checkNetwork = new TextView(ctx);
checkNetwork.setTextSize(14); checkNetwork.setTextSize(14);
checkNetwork.setPadding(10, 0, 10, 10); checkNetwork.setPadding(pad, 0, pad, pad);
checkNetwork.setText(R.string.check_same_network); checkNetwork.setText(R.string.check_same_network);
addView(checkNetwork); addView(checkNetwork);

View File

@@ -2,7 +2,9 @@ package org.briarproject.android.invitation;
import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER;
import static android.view.Gravity.CENTER_HORIZONTAL; import static android.view.Gravity.CENTER_HORIZONTAL;
import org.briarproject.R; import org.briarproject.R;
import android.content.Context; import android.content.Context;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.ProgressBar; import android.widget.ProgressBar;
@@ -20,14 +22,14 @@ class ConnectionView extends AddContactView {
TextView yourCode = new TextView(ctx); TextView yourCode = new TextView(ctx);
yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setGravity(CENTER_HORIZONTAL);
yourCode.setTextSize(14); yourCode.setTextSize(14);
yourCode.setPadding(10, 10, 10, 10); yourCode.setPadding(pad, pad, pad, pad);
yourCode.setText(R.string.your_invitation_code); yourCode.setText(R.string.your_invitation_code);
addView(yourCode); addView(yourCode);
TextView code = new TextView(ctx); TextView code = new TextView(ctx);
code.setGravity(CENTER_HORIZONTAL); code.setGravity(CENTER_HORIZONTAL);
code.setTextSize(50); code.setTextSize(50);
code.setPadding(10, 0, 10, 10); code.setPadding(pad, 0, pad, pad);
int localCode = container.getLocalInvitationCode(); int localCode = container.getLocalInvitationCode();
code.setText(String.format("%06d", localCode)); code.setText(String.format("%06d", localCode));
addView(code); addView(code);
@@ -40,7 +42,7 @@ class ConnectionView extends AddContactView {
ProgressBar progress = new ProgressBar(ctx); ProgressBar progress = new ProgressBar(ctx);
progress.setIndeterminate(true); progress.setIndeterminate(true);
progress.setPadding(10, 10, 10, 10); progress.setPadding(pad, pad, pad, pad);
innerLayout.addView(progress); innerLayout.addView(progress);
TextView connecting = new TextView(ctx); TextView connecting = new TextView(ctx);
@@ -58,7 +60,7 @@ class ConnectionView extends AddContactView {
innerLayout.setGravity(CENTER); innerLayout.setGravity(CENTER);
ProgressBar progress = new ProgressBar(ctx); ProgressBar progress = new ProgressBar(ctx);
progress.setPadding(10, 10, 10, 10); progress.setPadding(pad, pad, pad, pad);
progress.setIndeterminate(true); progress.setIndeterminate(true);
innerLayout.addView(progress); innerLayout.addView(progress);

View File

@@ -28,7 +28,7 @@ class ContactDetailsView extends AddContactView {
TextView connected = new TextView(ctx); TextView connected = new TextView(ctx);
connected.setTextSize(22); connected.setTextSize(22);
connected.setPadding(10, 10, 10, 10); connected.setPadding(pad, pad, pad, pad);
connected.setText(R.string.connected_to_contact); connected.setText(R.string.connected_to_contact);
innerLayout.addView(connected); innerLayout.addView(connected);
addView(innerLayout); addView(innerLayout);
@@ -36,14 +36,14 @@ class ContactDetailsView extends AddContactView {
TextView yourCode = new TextView(ctx); TextView yourCode = new TextView(ctx);
yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setGravity(CENTER_HORIZONTAL);
yourCode.setTextSize(14); yourCode.setTextSize(14);
yourCode.setPadding(10, 0, 10, 10); yourCode.setPadding(pad, 0, pad, pad);
yourCode.setText(R.string.your_confirmation_code); yourCode.setText(R.string.your_confirmation_code);
addView(yourCode); addView(yourCode);
TextView code = new TextView(ctx); TextView code = new TextView(ctx);
code.setGravity(CENTER_HORIZONTAL); code.setGravity(CENTER_HORIZONTAL);
code.setTextSize(50); code.setTextSize(50);
code.setPadding(10, 0, 10, 10); code.setPadding(pad, 0, pad, pad);
int localCode = container.getLocalConfirmationCode(); int localCode = container.getLocalConfirmationCode();
code.setText(String.format("%06d", localCode)); code.setText(String.format("%06d", localCode));
addView(code); addView(code);
@@ -54,7 +54,7 @@ class ContactDetailsView extends AddContactView {
ProgressBar progress = new ProgressBar(ctx); ProgressBar progress = new ProgressBar(ctx);
progress.setIndeterminate(true); progress.setIndeterminate(true);
progress.setPadding(10, 10, 10, 10); progress.setPadding(pad, pad, pad, pad);
innerLayout.addView(progress); innerLayout.addView(progress);
TextView connecting = new TextView(ctx); TextView connecting = new TextView(ctx);

View File

@@ -18,14 +18,14 @@ class InvitationCodeView extends AddContactView implements CodeEntryListener {
TextView yourCode = new TextView(ctx); TextView yourCode = new TextView(ctx);
yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setGravity(CENTER_HORIZONTAL);
yourCode.setTextSize(14); yourCode.setTextSize(14);
yourCode.setPadding(10, 10, 10, 10); yourCode.setPadding(pad, pad, pad, pad);
yourCode.setText(R.string.your_invitation_code); yourCode.setText(R.string.your_invitation_code);
addView(yourCode); addView(yourCode);
TextView code = new TextView(ctx); TextView code = new TextView(ctx);
code.setGravity(CENTER_HORIZONTAL); code.setGravity(CENTER_HORIZONTAL);
code.setTextSize(50); code.setTextSize(50);
code.setPadding(10, 0, 10, 10); code.setPadding(pad, 0, pad, pad);
int localCode = container.getLocalInvitationCode(); int localCode = container.getLocalInvitationCode();
code.setText(String.format("%06d", localCode)); code.setText(String.format("%06d", localCode));
addView(code); addView(code);

View File

@@ -44,7 +44,7 @@ implements OnItemSelectedListener, OnClickListener {
TextView yourNickname = new TextView(ctx); TextView yourNickname = new TextView(ctx);
yourNickname.setTextSize(18); yourNickname.setTextSize(18);
yourNickname.setPadding(10, 10, 10, 10); yourNickname.setPadding(pad, pad, pad, pad);
yourNickname.setText(R.string.your_nickname); yourNickname.setText(R.string.your_nickname);
innerLayout.addView(yourNickname); innerLayout.addView(yourNickname);
@@ -67,7 +67,7 @@ implements OnItemSelectedListener, OnClickListener {
TextView faceToFace = new TextView(ctx); TextView faceToFace = new TextView(ctx);
faceToFace.setGravity(CENTER); faceToFace.setGravity(CENTER);
faceToFace.setTextSize(14); faceToFace.setTextSize(14);
faceToFace.setPadding(10, 10, 10, 10); faceToFace.setPadding(pad, pad, pad, pad);
faceToFace.setText(R.string.fact_to_face); faceToFace.setText(R.string.fact_to_face);
addView(faceToFace); addView(faceToFace);

View File

@@ -28,7 +28,7 @@ class WaitForContactView extends AddContactView {
TextView connected = new TextView(ctx); TextView connected = new TextView(ctx);
connected.setTextSize(22); connected.setTextSize(22);
connected.setPadding(10, 10, 10, 10); connected.setPadding(pad, pad, pad, pad);
connected.setText(R.string.connected_to_contact); connected.setText(R.string.connected_to_contact);
innerLayout.addView(connected); innerLayout.addView(connected);
addView(innerLayout); addView(innerLayout);
@@ -36,14 +36,14 @@ class WaitForContactView extends AddContactView {
TextView yourCode = new TextView(ctx); TextView yourCode = new TextView(ctx);
yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setGravity(CENTER_HORIZONTAL);
yourCode.setTextSize(14); yourCode.setTextSize(14);
yourCode.setPadding(10, 0, 10, 10); yourCode.setPadding(pad, 0, pad, pad);
yourCode.setText(R.string.your_confirmation_code); yourCode.setText(R.string.your_confirmation_code);
addView(yourCode); addView(yourCode);
TextView code = new TextView(ctx); TextView code = new TextView(ctx);
code.setGravity(CENTER_HORIZONTAL); code.setGravity(CENTER_HORIZONTAL);
code.setTextSize(50); code.setTextSize(50);
code.setPadding(10, 0, 10, 10); code.setPadding(pad, 0, pad, pad);
int localCode = container.getLocalConfirmationCode(); int localCode = container.getLocalConfirmationCode();
code.setText(String.format("%06d", localCode)); code.setText(String.format("%06d", localCode));
addView(code); addView(code);
@@ -54,7 +54,7 @@ class WaitForContactView extends AddContactView {
ProgressBar progress = new ProgressBar(ctx); ProgressBar progress = new ProgressBar(ctx);
progress.setIndeterminate(true); progress.setIndeterminate(true);
progress.setPadding(10, 10, 10, 10); progress.setPadding(pad, pad, pad, pad);
innerLayout.addView(progress); innerLayout.addView(progress);
TextView connecting = new TextView(ctx); TextView connecting = new TextView(ctx);

View File

@@ -4,7 +4,10 @@ import static android.content.Context.WIFI_SERVICE;
import static android.provider.Settings.ACTION_WIFI_SETTINGS; import static android.provider.Settings.ACTION_WIFI_SETTINGS;
import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER;
import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1;
import org.briarproject.R; import org.briarproject.R;
import org.briarproject.android.util.LayoutUtils;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.net.wifi.WifiInfo; import android.net.wifi.WifiInfo;
@@ -18,8 +21,11 @@ import android.widget.TextView;
class WifiStatusView extends LinearLayout implements OnClickListener { class WifiStatusView extends LinearLayout implements OnClickListener {
private final int pad;
public WifiStatusView(Context ctx) { public WifiStatusView(Context ctx) {
super(ctx); super(ctx);
pad = LayoutUtils.getPadding(ctx);
} }
void init() { void init() {
@@ -33,12 +39,12 @@ class WifiStatusView extends LinearLayout implements OnClickListener {
Context ctx = getContext(); Context ctx = getContext();
TextView status = new TextView(ctx); TextView status = new TextView(ctx);
status.setTextSize(14); status.setTextSize(14);
status.setPadding(10, 10, 10, 10); status.setPadding(pad, pad, pad, pad);
status.setLayoutParams(WRAP_WRAP_1); status.setLayoutParams(WRAP_WRAP_1);
WifiManager wifi = (WifiManager) ctx.getSystemService(WIFI_SERVICE); WifiManager wifi = (WifiManager) ctx.getSystemService(WIFI_SERVICE);
if(wifi == null) { if(wifi == null) {
ImageView warning = new ImageView(ctx); ImageView warning = new ImageView(ctx);
warning.setPadding(5, 5, 5, 5); warning.setPadding(pad, pad, pad, pad);
warning.setImageResource(R.drawable.alerts_and_states_warning); warning.setImageResource(R.drawable.alerts_and_states_warning);
addView(warning); addView(warning);
status.setText(R.string.wifi_not_available); status.setText(R.string.wifi_not_available);
@@ -49,7 +55,7 @@ class WifiStatusView extends LinearLayout implements OnClickListener {
int networkId = info.getNetworkId(); int networkId = info.getNetworkId();
if(networkName == null || networkId == -1) { if(networkName == null || networkId == -1) {
ImageView warning = new ImageView(ctx); ImageView warning = new ImageView(ctx);
warning.setPadding(5, 5, 5, 5); warning.setPadding(pad, pad, pad, pad);
warning.setImageResource(R.drawable.alerts_and_states_warning); warning.setImageResource(R.drawable.alerts_and_states_warning);
addView(warning); addView(warning);
status.setText(R.string.wifi_disconnected); status.setText(R.string.wifi_disconnected);
@@ -60,7 +66,7 @@ class WifiStatusView extends LinearLayout implements OnClickListener {
addView(settings); addView(settings);
} else { } else {
ImageView ok = new ImageView(ctx); ImageView ok = new ImageView(ctx);
ok.setPadding(5, 5, 5, 5); ok.setPadding(pad, pad, pad, pad);
ok.setImageResource(R.drawable.navigation_accept); ok.setImageResource(R.drawable.navigation_accept);
addView(ok); addView(ok);
String format = getResources().getString( String format = getResources().getString(
@@ -74,7 +80,7 @@ class WifiStatusView extends LinearLayout implements OnClickListener {
} }
} else { } else {
ImageView warning = new ImageView(ctx); ImageView warning = new ImageView(ctx);
warning.setPadding(5, 5, 5, 5); warning.setPadding(pad, pad, pad, pad);
warning.setImageResource(R.drawable.alerts_and_states_warning); warning.setImageResource(R.drawable.alerts_and_states_warning);
addView(warning); addView(warning);
status.setText(R.string.wifi_disabled); status.setText(R.string.wifi_disabled);

View File

@@ -5,9 +5,9 @@ import android.content.Context;
import android.view.View; import android.view.View;
import android.widget.LinearLayout.LayoutParams; import android.widget.LinearLayout.LayoutParams;
public class HorizontalSpace extends View { public class ElasticHorizontalSpace extends View {
public HorizontalSpace(Context ctx) { public ElasticHorizontalSpace(Context ctx) {
super(ctx); super(ctx);
setLayoutParams(new LayoutParams(WRAP_CONTENT, 0, 1)); setLayoutParams(new LayoutParams(WRAP_CONTENT, 0, 1));
} }

View File

@@ -0,0 +1,15 @@
package org.briarproject.android.util;
import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import android.content.Context;
import android.view.View;
import android.widget.LinearLayout.LayoutParams;
public class FixedVerticalSpace extends View {
public FixedVerticalSpace(Context ctx) {
super(ctx);
int pad = LayoutUtils.getPadding(ctx);
setLayoutParams(new LayoutParams(WRAP_CONTENT, pad));
}
}

View File

@@ -1,9 +1,10 @@
package org.briarproject.android.util; package org.briarproject.android.util;
import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
import org.briarproject.R; import org.briarproject.R;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import android.view.View; import android.view.View;
import android.widget.LinearLayout.LayoutParams; import android.widget.LinearLayout.LayoutParams;
@@ -11,8 +12,7 @@ public class HorizontalBorder extends View {
public HorizontalBorder(Context ctx) { public HorizontalBorder(Context ctx) {
super(ctx); super(ctx);
Resources res = ctx.getResources(); int width = LayoutUtils.getSeparatorWidth(ctx);
int width = res.getInteger(R.integer.horizontal_border_width);
setLayoutParams(new LayoutParams(MATCH_PARENT, width)); setLayoutParams(new LayoutParams(MATCH_PARENT, width));
setBackgroundColor(getResources().getColor(R.color.horizontal_border)); setBackgroundColor(getResources().getColor(R.color.horizontal_border));
} }

View File

@@ -0,0 +1,24 @@
package org.briarproject.android.util;
import static android.content.Context.WINDOW_SERVICE;
import android.content.Context;
import android.util.DisplayMetrics;
import android.view.WindowManager;
public class LayoutUtils {
public static int getSeparatorWidth(Context ctx) {
return Math.max(2, getMaxDisplayDimension(ctx) / 100 - 6);
}
public static int getPadding(Context ctx) {
return getMaxDisplayDimension(ctx) / 100 + 7;
}
private static int getMaxDisplayDimension(Context ctx) {
DisplayMetrics metrics = new DisplayMetrics();
WindowManager wm = (WindowManager) ctx.getSystemService(WINDOW_SERVICE);
wm.getDefaultDisplay().getMetrics(metrics);
return Math.max(metrics.widthPixels, metrics.heightPixels);
}
}