From 0cebc42ddbb5b6651651c6c3d84be48259410f48 Mon Sep 17 00:00:00 2001 From: akwizgran <akwizgran@users.sourceforge.net> Date: Thu, 9 Jan 2014 12:42:19 +0000 Subject: [PATCH] Padding now depends on screen size. Closes dev task #57. --- briar-android/res/values-v11/styles.xml | 1 - briar-android/res/values/styles.xml | 1 - .../android/HomeScreenActivity.java | 20 ++++++++++++---- .../briarproject/android/SetupActivity.java | 14 ++++++----- .../android/contact/ContactListAdapter.java | 11 ++++++--- .../android/contact/ConversationAdapter.java | 9 +++++-- .../contact/ReadPrivateMessageActivity.java | 18 ++++++++------ .../contact/WritePrivateMessageActivity.java | 12 ++++++---- .../android/groups/CreateGroupActivity.java | 6 ++++- .../android/groups/GroupAdapter.java | 9 +++++-- .../android/groups/GroupListActivity.java | 8 +++---- .../android/groups/GroupListAdapter.java | 12 ++++++---- .../android/groups/ManageGroupsAdapter.java | 12 ++++++---- .../android/groups/ReadGroupPostActivity.java | 18 ++++++++------ .../groups/WriteGroupPostActivity.java | 12 ++++++---- .../identity/CreateIdentityActivity.java | 6 ++++- .../identity/LocalAuthorSpinnerAdapter.java | 1 + .../android/invitation/AddContactView.java | 6 +++++ .../invitation/BluetoothStatusView.java | 16 +++++++++---- .../android/invitation/CodeEntryView.java | 8 ++++++- .../invitation/CodesDoNotMatchView.java | 6 +++-- .../invitation/ConfirmationCodeView.java | 8 ++++--- .../android/invitation/ConnectedView.java | 4 ++-- .../invitation/ConnectionFailedView.java | 6 +++-- .../android/invitation/ConnectionView.java | 10 ++++---- .../invitation/ContactDetailsView.java | 8 +++---- .../invitation/InvitationCodeView.java | 4 ++-- .../android/invitation/NetworkSetupView.java | 4 ++-- .../invitation/WaitForContactView.java | 8 +++---- .../android/invitation/WifiStatusView.java | 16 +++++++++---- ...Space.java => ElasticHorizontalSpace.java} | 4 ++-- .../android/util/FixedVerticalSpace.java | 15 ++++++++++++ .../android/util/HorizontalBorder.java | 6 ++--- .../android/util/LayoutUtils.java | 24 +++++++++++++++++++ 34 files changed, 227 insertions(+), 96 deletions(-) rename briar-android/src/org/briarproject/android/util/{HorizontalSpace.java => ElasticHorizontalSpace.java} (74%) create mode 100644 briar-android/src/org/briarproject/android/util/FixedVerticalSpace.java create mode 100644 briar-android/src/org/briarproject/android/util/LayoutUtils.java diff --git a/briar-android/res/values-v11/styles.xml b/briar-android/res/values-v11/styles.xml index dbc0841459..12c9ddd648 100644 --- a/briar-android/res/values-v11/styles.xml +++ b/briar-android/res/values-v11/styles.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <style name="LightTheme" parent="android:Theme.Holo.Light" /> - <integer name="horizontal_border_width">5</integer> <integer name="spinner_padding">10</integer> </resources> \ No newline at end of file diff --git a/briar-android/res/values/styles.xml b/briar-android/res/values/styles.xml index a65656192c..07556eda81 100644 --- a/briar-android/res/values/styles.xml +++ b/briar-android/res/values/styles.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <resources> <style name="LightTheme" parent="android:Theme.Light" /> - <integer name="horizontal_border_width">2</integer> <integer name="spinner_padding">0</integer> </resources> \ No newline at end of file diff --git a/briar-android/src/org/briarproject/android/HomeScreenActivity.java b/briar-android/src/org/briarproject/android/HomeScreenActivity.java index 909b948e45..7024486e5b 100644 --- a/briar-android/src/org/briarproject/android/HomeScreenActivity.java +++ b/briar-android/src/org/briarproject/android/HomeScreenActivity.java @@ -27,6 +27,8 @@ import org.briarproject.android.BriarService.BriarBinder; import org.briarproject.android.BriarService.BriarServiceConnection; import org.briarproject.android.contact.ContactListActivity; 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.android.DatabaseUiExecutor; import org.briarproject.api.android.ReferenceManager; @@ -198,10 +200,12 @@ public class HomeScreenActivity extends RoboActivity { layout.setOrientation(VERTICAL); layout.setGravity(CENTER_HORIZONTAL); + int pad = LayoutUtils.getPadding(this); + enterPassword = new TextView(this); enterPassword.setGravity(CENTER); enterPassword.setTextSize(18); - enterPassword.setPadding(10, 10, 10, 0); + enterPassword.setPadding(pad, pad, pad, 0); enterPassword.setText(R.string.enter_password); layout.addView(enterPassword); @@ -218,6 +222,9 @@ public class HomeScreenActivity extends RoboActivity { }); layout.addView(passwordEntry); + // Adjusting the padding of buttons and EditTexts has the wrong results + layout.addView(new FixedVerticalSpace(this)); + continueButton = new Button(this); continueButton.setLayoutParams(WRAP_WRAP); continueButton.setText(R.string.continue_button); @@ -230,7 +237,6 @@ public class HomeScreenActivity extends RoboActivity { progress = new ProgressBar(this); progress.setLayoutParams(WRAP_WRAP); - progress.setPadding(0, 10, 0, 0); progress.setIndeterminate(true); progress.setVisibility(GONE); layout.addView(progress); @@ -288,12 +294,16 @@ public class HomeScreenActivity extends RoboActivity { LinearLayout layout = new LinearLayout(this); layout.setLayoutParams(MATCH_MATCH); layout.setGravity(CENTER); + + int pad = LayoutUtils.getPadding(this); + TextView warning = new TextView(this); warning.setGravity(CENTER); warning.setTextSize(18); - warning.setPadding(10, 10, 10, 10); + warning.setPadding(pad, pad, pad, pad); warning.setText(R.string.expiry_warning); layout.addView(warning); + setContentView(layout); } @@ -359,10 +369,12 @@ public class HomeScreenActivity extends RoboActivity { }); buttons.add(quitButton); + int pad = LayoutUtils.getPadding(this); + GridView grid = new GridView(this); grid.setLayoutParams(matchMatch); grid.setGravity(CENTER); - grid.setPadding(5, 5, 5, 5); + grid.setPadding(pad, pad, pad, pad); grid.setBackgroundColor(getResources().getColor( R.color.home_screen_background)); grid.setNumColumns(2); diff --git a/briar-android/src/org/briarproject/android/SetupActivity.java b/briar-android/src/org/briarproject/android/SetupActivity.java index a9e5681904..5aef39a828 100644 --- a/briar-android/src/org/briarproject/android/SetupActivity.java +++ b/briar-android/src/org/briarproject/android/SetupActivity.java @@ -19,6 +19,7 @@ import java.util.concurrent.Executor; import javax.inject.Inject; import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; import org.briarproject.android.util.StrengthMeter; import org.briarproject.api.AuthorFactory; import org.briarproject.api.LocalAuthor; @@ -70,10 +71,12 @@ public class SetupActivity extends RoboActivity implements OnClickListener { layout.setOrientation(VERTICAL); layout.setGravity(CENTER_HORIZONTAL); + int pad = LayoutUtils.getPadding(this); + TextView chooseNickname = new TextView(this); chooseNickname.setGravity(CENTER); chooseNickname.setTextSize(18); - chooseNickname.setPadding(10, 10, 10, 0); + chooseNickname.setPadding(pad, pad, pad, 0); chooseNickname.setText(R.string.choose_nickname); layout.addView(chooseNickname); @@ -93,7 +96,7 @@ public class SetupActivity extends RoboActivity implements OnClickListener { TextView choosePassword = new TextView(this); choosePassword.setGravity(CENTER); choosePassword.setTextSize(18); - choosePassword.setPadding(10, 10, 10, 0); + choosePassword.setPadding(pad, pad, pad, 0); choosePassword.setText(R.string.choose_password); layout.addView(choosePassword); @@ -113,7 +116,7 @@ public class SetupActivity extends RoboActivity implements OnClickListener { TextView confirmPassword = new TextView(this); confirmPassword.setGravity(CENTER); confirmPassword.setTextSize(18); - confirmPassword.setPadding(10, 10, 10, 0); + confirmPassword.setPadding(pad, pad, pad, 0); confirmPassword.setText(R.string.confirm_password); layout.addView(confirmPassword); @@ -131,13 +134,13 @@ public class SetupActivity extends RoboActivity implements OnClickListener { layout.addView(passwordConfirmation); strengthMeter = new StrengthMeter(this); - strengthMeter.setPadding(30, 10, 30, 0); + strengthMeter.setPadding(5 * pad, pad, 5 * pad, 0); layout.addView(strengthMeter); feedback = new TextView(this); feedback.setGravity(CENTER); feedback.setTextSize(14); - feedback.setPadding(10, 10, 10, 10); + feedback.setPadding(pad, pad, pad, pad); feedback.setText(""); layout.addView(feedback); @@ -150,7 +153,6 @@ public class SetupActivity extends RoboActivity implements OnClickListener { progress = new ProgressBar(this); progress.setLayoutParams(WRAP_WRAP); - progress.setPadding(0, 10, 0, 0); progress.setIndeterminate(true); progress.setVisibility(GONE); layout.addView(progress); diff --git a/briar-android/src/org/briarproject/android/contact/ContactListAdapter.java b/briar-android/src/org/briarproject/android/contact/ContactListAdapter.java index 83f1ae127c..e02799b6e4 100644 --- a/briar-android/src/org/briarproject/android/contact/ContactListAdapter.java +++ b/briar-android/src/org/briarproject/android/contact/ContactListAdapter.java @@ -7,6 +7,8 @@ import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1; import java.util.ArrayList; import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; + import android.content.Context; import android.content.res.Resources; import android.text.Html; @@ -20,9 +22,12 @@ import android.widget.TextView; class ContactListAdapter extends ArrayAdapter<ContactListItem> { + private final int pad; + ContactListAdapter(Context ctx) { super(ctx, android.R.layout.simple_expandable_list_item_1, new ArrayList<ContactListItem>()); + pad = LayoutUtils.getPadding(ctx); } @Override @@ -37,7 +42,7 @@ class ContactListAdapter extends ArrayAdapter<ContactListItem> { layout.setBackgroundColor(res.getColor(R.color.unread_background)); ImageView bulb = new ImageView(ctx); - bulb.setPadding(5, 5, 5, 5); + bulb.setPadding(pad, pad, pad, pad); if(item.isConnected()) bulb.setImageResource(R.drawable.contact_connected); else bulb.setImageResource(R.drawable.contact_disconnected); @@ -48,7 +53,7 @@ class ContactListAdapter extends ArrayAdapter<ContactListItem> { name.setLayoutParams(WRAP_WRAP_1); name.setTextSize(18); name.setMaxLines(1); - name.setPadding(0, 10, 10, 10); + name.setPadding(0, pad, pad, pad); int unread = item.getUnreadCount(); String contactName = item.getContact().getAuthor().getName(); if(unread > 0) name.setText(contactName + " (" + unread + ")"); @@ -57,7 +62,7 @@ class ContactListAdapter extends ArrayAdapter<ContactListItem> { TextView connected = new TextView(ctx); connected.setTextSize(14); - connected.setPadding(0, 10, 10, 10); + connected.setPadding(0, pad, pad, pad); if(item.isConnected()) { connected.setText(R.string.contact_connected); } else { diff --git a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java index 4d08434ce4..d36a862bdc 100644 --- a/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java +++ b/briar-android/src/org/briarproject/android/contact/ConversationAdapter.java @@ -7,7 +7,9 @@ import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1; import java.util.ArrayList; import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; import org.briarproject.api.db.MessageHeader; + import android.content.Context; import android.content.res.Resources; import android.text.format.DateUtils; @@ -19,9 +21,12 @@ import android.widget.TextView; class ConversationAdapter extends ArrayAdapter<ConversationItem> { + private final int pad; + ConversationAdapter(Context ctx) { super(ctx, android.R.layout.simple_expandable_list_item_1, new ArrayList<ConversationItem>()); + pad = LayoutUtils.getPadding(ctx); } @Override @@ -41,13 +46,13 @@ class ConversationAdapter extends ArrayAdapter<ConversationItem> { name.setLayoutParams(WRAP_WRAP_1); name.setTextSize(18); name.setMaxLines(1); - name.setPadding(10, 10, 10, 10); + name.setPadding(pad, pad, pad, pad); name.setText(header.getAuthor().getName()); layout.addView(name); TextView date = new TextView(ctx); date.setTextSize(14); - date.setPadding(0, 10, 10, 10); + date.setPadding(0, pad, pad, pad); long then = header.getTimestamp(), now = System.currentTimeMillis(); date.setText(DateUtils.formatSameDayTime(then, now, SHORT, SHORT)); layout.addView(date); diff --git a/briar-android/src/org/briarproject/android/contact/ReadPrivateMessageActivity.java b/briar-android/src/org/briarproject/android/contact/ReadPrivateMessageActivity.java index 5745d4a9b8..ee27a2d850 100644 --- a/briar-android/src/org/briarproject/android/contact/ReadPrivateMessageActivity.java +++ b/briar-android/src/org/briarproject/android/contact/ReadPrivateMessageActivity.java @@ -19,7 +19,8 @@ import javax.inject.Inject; import org.briarproject.R; 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.android.DatabaseUiExecutor; 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.messaging.GroupId; import org.briarproject.api.messaging.MessageId; + import roboguice.activity.RoboActivity; import android.content.Intent; import android.content.res.Resources; @@ -114,18 +116,20 @@ implements OnClickListener { header.setOrientation(HORIZONTAL); header.setGravity(CENTER_VERTICAL); + int pad = LayoutUtils.getPadding(this); + TextView name = new TextView(this); // Give me all the unused width name.setLayoutParams(WRAP_WRAP_1); name.setTextSize(18); name.setMaxLines(1); - name.setPadding(10, 10, 10, 10); + name.setPadding(pad, pad, pad, pad); name.setText(authorName); header.addView(name); TextView date = new TextView(this); date.setTextSize(14); - date.setPadding(0, 10, 10, 10); + date.setPadding(0, pad, pad, pad); long now = System.currentTimeMillis(); date.setText(DateUtils.formatSameDayTime(timestamp, now, SHORT, SHORT)); header.addView(date); @@ -134,7 +138,7 @@ implements OnClickListener { if(contentType.equals("text/plain")) { // Load and display the message body content = new TextView(this); - content.setPadding(10, 0, 10, 10); + content.setPadding(pad, 0, pad, pad); message.addView(content); loadMessageBody(); } @@ -154,21 +158,21 @@ implements OnClickListener { else readButton.setImageResource(R.drawable.content_read); readButton.setOnClickListener(this); footer.addView(readButton); - footer.addView(new HorizontalSpace(this)); + footer.addView(new ElasticHorizontalSpace(this)); prevButton = new ImageButton(this); prevButton.setBackgroundResource(0); prevButton.setImageResource(R.drawable.navigation_previous_item); prevButton.setOnClickListener(this); footer.addView(prevButton); - footer.addView(new HorizontalSpace(this)); + footer.addView(new ElasticHorizontalSpace(this)); nextButton = new ImageButton(this); nextButton.setBackgroundResource(0); nextButton.setImageResource(R.drawable.navigation_next_item); nextButton.setOnClickListener(this); footer.addView(nextButton); - footer.addView(new HorizontalSpace(this)); + footer.addView(new ElasticHorizontalSpace(this)); replyButton = new ImageButton(this); replyButton.setBackgroundResource(0); diff --git a/briar-android/src/org/briarproject/android/contact/WritePrivateMessageActivity.java b/briar-android/src/org/briarproject/android/contact/WritePrivateMessageActivity.java index bf671b63ed..847a472ff0 100644 --- a/briar-android/src/org/briarproject/android/contact/WritePrivateMessageActivity.java +++ b/briar-android/src/org/briarproject/android/contact/WritePrivateMessageActivity.java @@ -19,7 +19,8 @@ import java.util.logging.Logger; import javax.inject.Inject; 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.LocalAuthor; 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.MessageFactory; import org.briarproject.api.messaging.MessageId; + import roboguice.activity.RoboActivity; import android.content.Intent; import android.content.res.Resources; @@ -97,13 +99,15 @@ implements OnClickListener { header.setOrientation(HORIZONTAL); header.setGravity(CENTER_VERTICAL); + int pad = LayoutUtils.getPadding(this); + from = new TextView(this); from.setTextSize(18); - from.setPadding(10, 10, 10, 10); + from.setPadding(pad, pad, pad, pad); from.setText(R.string.from); header.addView(from); - header.addView(new HorizontalSpace(this)); + header.addView(new ElasticHorizontalSpace(this)); sendButton = new ImageButton(this); sendButton.setBackgroundResource(0); @@ -115,7 +119,7 @@ implements OnClickListener { to = new TextView(this); to.setTextSize(18); - to.setPadding(10, 0, 10, 10); + to.setPadding(pad, 0, pad, pad); String format = getResources().getString(R.string.format_to); to.setText(String.format(format, contactName)); layout.addView(to); diff --git a/briar-android/src/org/briarproject/android/groups/CreateGroupActivity.java b/briar-android/src/org/briarproject/android/groups/CreateGroupActivity.java index d227059f07..5474b05a19 100644 --- a/briar-android/src/org/briarproject/android/groups/CreateGroupActivity.java +++ b/briar-android/src/org/briarproject/android/groups/CreateGroupActivity.java @@ -23,6 +23,7 @@ import javax.inject.Inject; import org.briarproject.R; import org.briarproject.android.contact.SelectContactsDialog; import org.briarproject.android.invitation.AddContactActivity; +import org.briarproject.android.util.LayoutUtils; import org.briarproject.api.Contact; import org.briarproject.api.ContactId; 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.messaging.Group; import org.briarproject.api.messaging.GroupFactory; + import roboguice.activity.RoboFragmentActivity; import android.content.Intent; import android.os.Bundle; @@ -79,10 +81,12 @@ SelectContactsDialog.Listener { layout.setOrientation(VERTICAL); layout.setGravity(CENTER_HORIZONTAL); + int pad = LayoutUtils.getPadding(this); + TextView chooseName = new TextView(this); chooseName.setGravity(CENTER); chooseName.setTextSize(18); - chooseName.setPadding(10, 10, 10, 0); + chooseName.setPadding(pad, pad, pad, 0); chooseName.setText(R.string.choose_forum_name); layout.addView(chooseName); diff --git a/briar-android/src/org/briarproject/android/groups/GroupAdapter.java b/briar-android/src/org/briarproject/android/groups/GroupAdapter.java index 1b9b446ef6..4900e2f3e1 100644 --- a/briar-android/src/org/briarproject/android/groups/GroupAdapter.java +++ b/briar-android/src/org/briarproject/android/groups/GroupAdapter.java @@ -7,8 +7,10 @@ import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1; import java.util.ArrayList; import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; import org.briarproject.api.Author; import org.briarproject.api.db.MessageHeader; + import android.content.Context; import android.content.res.Resources; import android.text.format.DateUtils; @@ -20,9 +22,12 @@ import android.widget.TextView; class GroupAdapter extends ArrayAdapter<MessageHeader> { + private final int pad; + GroupAdapter(Context ctx) { super(ctx, android.R.layout.simple_expandable_list_item_1, new ArrayList<MessageHeader>()); + pad = LayoutUtils.getPadding(ctx); } @Override @@ -41,7 +46,7 @@ class GroupAdapter extends ArrayAdapter<MessageHeader> { name.setLayoutParams(WRAP_WRAP_1); name.setTextSize(18); name.setMaxLines(1); - name.setPadding(10, 10, 10, 10); + name.setPadding(pad, pad, pad, pad); Author author = item.getAuthor(); if(author == null) { name.setTextColor(res.getColor(R.color.anonymous_author)); @@ -53,7 +58,7 @@ class GroupAdapter extends ArrayAdapter<MessageHeader> { TextView date = new TextView(ctx); date.setTextSize(14); - date.setPadding(10, 10, 10, 10); + date.setPadding(pad, pad, pad, pad); long then = item.getTimestamp(), now = System.currentTimeMillis(); date.setText(DateUtils.formatSameDayTime(then, now, SHORT, SHORT)); layout.addView(date); diff --git a/briar-android/src/org/briarproject/android/groups/GroupListActivity.java b/briar-android/src/org/briarproject/android/groups/GroupListActivity.java index 6dbd585f67..d61c4148e8 100644 --- a/briar-android/src/org/briarproject/android/groups/GroupListActivity.java +++ b/briar-android/src/org/briarproject/android/groups/GroupListActivity.java @@ -24,7 +24,7 @@ import javax.inject.Inject; import org.briarproject.R; 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.api.android.DatabaseUiExecutor; import org.briarproject.api.db.DatabaseComponent; @@ -99,21 +99,21 @@ implements EventListener, OnClickListener, OnItemClickListener { footer.setLayoutParams(MATCH_WRAP); footer.setOrientation(HORIZONTAL); footer.setGravity(CENTER); - footer.addView(new HorizontalSpace(this)); + footer.addView(new ElasticHorizontalSpace(this)); newGroupButton = new ImageButton(this); newGroupButton.setBackgroundResource(0); newGroupButton.setImageResource(R.drawable.social_new_chat); newGroupButton.setOnClickListener(this); footer.addView(newGroupButton); - footer.addView(new HorizontalSpace(this)); + footer.addView(new ElasticHorizontalSpace(this)); manageGroupsButton = new ImageButton(this); manageGroupsButton.setBackgroundResource(0); manageGroupsButton.setImageResource(R.drawable.action_settings); manageGroupsButton.setOnClickListener(this); footer.addView(manageGroupsButton); - footer.addView(new HorizontalSpace(this)); + footer.addView(new ElasticHorizontalSpace(this)); layout.addView(footer); setContentView(layout); diff --git a/briar-android/src/org/briarproject/android/groups/GroupListAdapter.java b/briar-android/src/org/briarproject/android/groups/GroupListAdapter.java index 7bcb6ad56d..e9ee80b986 100644 --- a/briar-android/src/org/briarproject/android/groups/GroupListAdapter.java +++ b/briar-android/src/org/briarproject/android/groups/GroupListAdapter.java @@ -12,6 +12,8 @@ import java.util.Comparator; import java.util.List; import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; + import android.content.Context; import android.content.res.Resources; import android.text.format.DateUtils; @@ -24,11 +26,13 @@ import android.widget.TextView; class GroupListAdapter extends BaseAdapter { private final Context ctx; + private final int pad; private final List<GroupListItem> list = new ArrayList<GroupListItem>(); private int available = 0; GroupListAdapter(Context ctx) { this.ctx = ctx; + pad = LayoutUtils.getPadding(ctx); } public void setAvailable(int available) { @@ -63,7 +67,7 @@ class GroupListAdapter extends BaseAdapter { TextView manage = new TextView(ctx); manage.setGravity(CENTER); manage.setTextSize(18); - manage.setPadding(10, 10, 10, 10); + manage.setPadding(pad, pad, pad, pad); String format = res.getQuantityString(R.plurals.forums_available, available); manage.setText(String.format(format, available)); @@ -80,7 +84,7 @@ class GroupListAdapter extends BaseAdapter { name.setLayoutParams(WRAP_WRAP_1); name.setTextSize(18); name.setMaxLines(1); - name.setPadding(10, 10, 10, 10); + name.setPadding(pad, pad, pad, pad); int unread = item.getUnreadCount(); String groupName = item.getGroup().getName(); if(unread > 0) name.setText(groupName + " (" + unread + ")"); @@ -90,14 +94,14 @@ class GroupListAdapter extends BaseAdapter { if(item.isEmpty()) { TextView noPosts = new TextView(ctx); noPosts.setTextSize(14); - noPosts.setPadding(10, 0, 10, 10); + noPosts.setPadding(pad, 0, pad, pad); noPosts.setTextColor(res.getColor(R.color.no_posts)); noPosts.setText(R.string.no_posts); layout.addView(noPosts); } else { TextView date = new TextView(ctx); date.setTextSize(14); - date.setPadding(10, 0, 10, 10); + date.setPadding(pad, 0, pad, pad); long then = item.getTimestamp(), now = System.currentTimeMillis(); date.setText(DateUtils.formatSameDayTime(then, now, SHORT, SHORT)); layout.addView(date); diff --git a/briar-android/src/org/briarproject/android/groups/ManageGroupsAdapter.java b/briar-android/src/org/briarproject/android/groups/ManageGroupsAdapter.java index a3c115e385..f6dd5eade9 100644 --- a/briar-android/src/org/briarproject/android/groups/ManageGroupsAdapter.java +++ b/briar-android/src/org/briarproject/android/groups/ManageGroupsAdapter.java @@ -12,7 +12,9 @@ import java.util.Comparator; import java.util.List; import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; import org.briarproject.api.messaging.GroupStatus; + import android.content.Context; import android.view.View; import android.view.ViewGroup; @@ -24,11 +26,13 @@ import android.widget.TextView; class ManageGroupsAdapter extends BaseAdapter { private final Context ctx; + private final int pad; private final List<ManageGroupsItem> list = new ArrayList<ManageGroupsItem>(); ManageGroupsAdapter(Context ctx) { this.ctx = ctx; + pad = LayoutUtils.getPadding(ctx); } public void add(ManageGroupsItem item) { @@ -58,7 +62,7 @@ class ManageGroupsAdapter extends BaseAdapter { TextView none = new TextView(ctx); none.setGravity(CENTER); none.setTextSize(18); - none.setPadding(10, 10, 10, 10); + none.setPadding(pad, pad, pad, pad); none.setText(R.string.no_forums_available); return none; } @@ -68,7 +72,7 @@ class ManageGroupsAdapter extends BaseAdapter { layout.setOrientation(HORIZONTAL); ImageView subscribed = new ImageView(ctx); - subscribed.setPadding(5, 5, 5, 5); + subscribed.setPadding(pad, pad, pad, pad); subscribed.setImageResource(R.drawable.navigation_accept); if(!s.isSubscribed()) subscribed.setVisibility(INVISIBLE); layout.addView(subscribed); @@ -79,13 +83,13 @@ class ManageGroupsAdapter extends BaseAdapter { TextView name = new TextView(ctx); name.setTextSize(18); name.setMaxLines(1); - name.setPadding(0, 10, 10, 10); + name.setPadding(0, pad, pad, pad); name.setText(s.getGroup().getName()); innerLayout.addView(name); TextView status = new TextView(ctx); status.setTextSize(14); - status.setPadding(0, 0, 10, 10); + status.setPadding(0, 0, pad, pad); if(s.isSubscribed()) { if(s.isVisibleToAll()) status.setText(R.string.subscribed_all); else status.setText(R.string.subscribed_some); diff --git a/briar-android/src/org/briarproject/android/groups/ReadGroupPostActivity.java b/briar-android/src/org/briarproject/android/groups/ReadGroupPostActivity.java index 00910319f1..6284aab728 100644 --- a/briar-android/src/org/briarproject/android/groups/ReadGroupPostActivity.java +++ b/briar-android/src/org/briarproject/android/groups/ReadGroupPostActivity.java @@ -19,7 +19,8 @@ import javax.inject.Inject; import org.briarproject.R; 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.db.DatabaseComponent; 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.messaging.GroupId; import org.briarproject.api.messaging.MessageId; + import roboguice.activity.RoboActivity; import android.content.Intent; import android.content.res.Resources; @@ -107,12 +109,14 @@ implements OnClickListener { header.setOrientation(HORIZONTAL); header.setGravity(CENTER_VERTICAL); + int pad = LayoutUtils.getPadding(this); + TextView name = new TextView(this); // Give me all the unused width name.setLayoutParams(WRAP_WRAP_1); name.setTextSize(18); name.setMaxLines(1); - name.setPadding(10, 10, 10, 10); + name.setPadding(pad, pad, pad, pad); if(authorName == null) { name.setTextColor(res.getColor(R.color.anonymous_author)); name.setText(R.string.anonymous); @@ -123,7 +127,7 @@ implements OnClickListener { TextView date = new TextView(this); date.setTextSize(14); - date.setPadding(0, 10, 10, 10); + date.setPadding(0, pad, pad, pad); long now = System.currentTimeMillis(); date.setText(DateUtils.formatSameDayTime(timestamp, now, SHORT, SHORT)); header.addView(date); @@ -132,7 +136,7 @@ implements OnClickListener { if(contentType.equals("text/plain")) { // Load and display the message body content = new TextView(this); - content.setPadding(10, 0, 10, 10); + content.setPadding(pad, 0, pad, pad); message.addView(content); loadMessageBody(); } @@ -152,21 +156,21 @@ implements OnClickListener { else readButton.setImageResource(R.drawable.content_read); readButton.setOnClickListener(this); footer.addView(readButton); - footer.addView(new HorizontalSpace(this)); + footer.addView(new ElasticHorizontalSpace(this)); prevButton = new ImageButton(this); prevButton.setBackgroundResource(0); prevButton.setImageResource(R.drawable.navigation_previous_item); prevButton.setOnClickListener(this); footer.addView(prevButton); - footer.addView(new HorizontalSpace(this)); + footer.addView(new ElasticHorizontalSpace(this)); nextButton = new ImageButton(this); nextButton.setBackgroundResource(0); nextButton.setImageResource(R.drawable.navigation_next_item); nextButton.setOnClickListener(this); footer.addView(nextButton); - footer.addView(new HorizontalSpace(this)); + footer.addView(new ElasticHorizontalSpace(this)); replyButton = new ImageButton(this); replyButton.setBackgroundResource(0); diff --git a/briar-android/src/org/briarproject/android/groups/WriteGroupPostActivity.java b/briar-android/src/org/briarproject/android/groups/WriteGroupPostActivity.java index 47d6a701aa..b46e488a36 100644 --- a/briar-android/src/org/briarproject/android/groups/WriteGroupPostActivity.java +++ b/briar-android/src/org/briarproject/android/groups/WriteGroupPostActivity.java @@ -24,7 +24,8 @@ import org.briarproject.android.identity.CreateIdentityActivity; import org.briarproject.android.identity.LocalAuthorItem; import org.briarproject.android.identity.LocalAuthorItemComparator; 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.LocalAuthor; 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.MessageFactory; import org.briarproject.api.messaging.MessageId; + import roboguice.activity.RoboActivity; import android.content.Intent; import android.content.res.Resources; @@ -109,9 +111,11 @@ implements OnItemSelectedListener, OnClickListener { header.setOrientation(HORIZONTAL); header.setGravity(CENTER_VERTICAL); + int pad = LayoutUtils.getPadding(this); + TextView from = new TextView(this); from.setTextSize(18); - from.setPadding(10, 10, 0, 10); + from.setPadding(pad, pad, 0, pad); from.setText(R.string.from); header.addView(from); @@ -121,7 +125,7 @@ implements OnItemSelectedListener, OnClickListener { spinner.setOnItemSelectedListener(this); header.addView(spinner); - header.addView(new HorizontalSpace(this)); + header.addView(new ElasticHorizontalSpace(this)); sendButton = new ImageButton(this); sendButton.setBackgroundResource(0); @@ -133,7 +137,7 @@ implements OnItemSelectedListener, OnClickListener { to = new TextView(this); to.setTextSize(18); - to.setPadding(10, 0, 10, 10); + to.setPadding(pad, 0, pad, pad); to.setText(R.string.to); layout.addView(to); diff --git a/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java b/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java index d2f48d9fbc..2ae410790d 100644 --- a/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java +++ b/briar-android/src/org/briarproject/android/identity/CreateIdentityActivity.java @@ -19,6 +19,7 @@ import java.util.logging.Logger; import javax.inject.Inject; import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; import org.briarproject.api.AuthorFactory; import org.briarproject.api.LocalAuthor; 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.DbException; import org.briarproject.api.lifecycle.LifecycleManager; + import roboguice.activity.RoboActivity; import android.os.Bundle; import android.view.KeyEvent; @@ -67,10 +69,12 @@ implements OnEditorActionListener, OnClickListener { layout.setOrientation(VERTICAL); layout.setGravity(CENTER_HORIZONTAL); + int pad = LayoutUtils.getPadding(this); + TextView chooseNickname = new TextView(this); chooseNickname.setGravity(CENTER); chooseNickname.setTextSize(18); - chooseNickname.setPadding(10, 10, 10, 0); + chooseNickname.setPadding(pad, pad, pad, 0); chooseNickname.setText(R.string.choose_nickname); layout.addView(chooseNickname); diff --git a/briar-android/src/org/briarproject/android/identity/LocalAuthorSpinnerAdapter.java b/briar-android/src/org/briarproject/android/identity/LocalAuthorSpinnerAdapter.java index 186999fc0c..09f535c629 100644 --- a/briar-android/src/org/briarproject/android/identity/LocalAuthorSpinnerAdapter.java +++ b/briar-android/src/org/briarproject/android/identity/LocalAuthorSpinnerAdapter.java @@ -68,6 +68,7 @@ implements SpinnerAdapter { name.setTextSize(18); name.setMaxLines(1); Resources res = ctx.getResources(); + // FIXME: Use LayoutUtils.getPadding() here? int pad = res.getInteger(R.integer.spinner_padding); name.setPadding(pad, pad, pad, pad); LocalAuthorItem item = getItem(position); diff --git a/briar-android/src/org/briarproject/android/invitation/AddContactView.java b/briar-android/src/org/briarproject/android/invitation/AddContactView.java index 5fdcb3059c..bd5cd38115 100644 --- a/briar-android/src/org/briarproject/android/invitation/AddContactView.java +++ b/briar-android/src/org/briarproject/android/invitation/AddContactView.java @@ -2,15 +2,21 @@ package org.briarproject.android.invitation; import static android.view.Gravity.CENTER_HORIZONTAL; import static org.briarproject.android.util.CommonLayoutParams.MATCH_MATCH; + +import org.briarproject.android.util.LayoutUtils; + import android.content.Context; import android.widget.LinearLayout; abstract class AddContactView extends LinearLayout { + protected final int pad; + protected AddContactActivity container = null; AddContactView(Context ctx) { super(ctx); + pad = LayoutUtils.getPadding(ctx); } void init(AddContactActivity container) { diff --git a/briar-android/src/org/briarproject/android/invitation/BluetoothStatusView.java b/briar-android/src/org/briarproject/android/invitation/BluetoothStatusView.java index 28ecd6e1da..a91110e5ea 100644 --- a/briar-android/src/org/briarproject/android/invitation/BluetoothStatusView.java +++ b/briar-android/src/org/briarproject/android/invitation/BluetoothStatusView.java @@ -4,7 +4,10 @@ import static android.bluetooth.BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERA import static android.provider.Settings.ACTION_BLUETOOTH_SETTINGS; import static android.view.Gravity.CENTER; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1; + import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; + import android.bluetooth.BluetoothAdapter; import android.content.Context; import android.content.Intent; @@ -17,8 +20,11 @@ import android.widget.TextView; class BluetoothStatusView extends LinearLayout implements OnClickListener { + private final int pad; + public BluetoothStatusView(Context ctx) { super(ctx); + pad = LayoutUtils.getPadding(ctx); } void init() { @@ -33,18 +39,18 @@ class BluetoothStatusView extends LinearLayout implements OnClickListener { TextView status = new TextView(ctx); status.setLayoutParams(WRAP_WRAP_1); status.setTextSize(14); - status.setPadding(10, 10, 10, 10); + status.setPadding(pad, pad, pad, pad); BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); if(adapter == null) { 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); addView(warning); status.setText(R.string.bluetooth_not_available); addView(status); } else if(adapter.getScanMode() == SCAN_MODE_CONNECTABLE_DISCOVERABLE) { ImageView ok = new ImageView(ctx); - ok.setPadding(5, 5, 5, 5); + ok.setPadding(pad, pad, pad, pad); ok.setImageResource(R.drawable.navigation_accept); addView(ok); status.setText(R.string.bluetooth_discoverable); @@ -55,7 +61,7 @@ class BluetoothStatusView extends LinearLayout implements OnClickListener { addView(settings); } else if(adapter.isEnabled()) { 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); addView(warning); status.setText(R.string.bluetooth_not_discoverable); @@ -66,7 +72,7 @@ class BluetoothStatusView extends LinearLayout implements OnClickListener { addView(settings); } else { 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); addView(warning); status.setText(R.string.bluetooth_disabled); diff --git a/briar-android/src/org/briarproject/android/invitation/CodeEntryView.java b/briar-android/src/org/briarproject/android/invitation/CodeEntryView.java index 26f28c6101..6b330a0f41 100644 --- a/briar-android/src/org/briarproject/android/invitation/CodeEntryView.java +++ b/briar-android/src/org/briarproject/android/invitation/CodeEntryView.java @@ -6,7 +6,10 @@ import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER_HORIZONTAL; import static android.view.inputmethod.InputMethodManager.HIDE_IMPLICIT_ONLY; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP; + import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; + import android.content.Context; import android.view.KeyEvent; import android.view.View; @@ -21,12 +24,15 @@ import android.widget.TextView.OnEditorActionListener; class CodeEntryView extends LinearLayout implements OnEditorActionListener, OnClickListener { + private final int pad; + private CodeEntryListener listener = null; private EditText codeEntry = null; private Button continueButton = null; public CodeEntryView(Context ctx) { super(ctx); + pad = LayoutUtils.getPadding(ctx); } void init(CodeEntryListener listener, String prompt) { @@ -38,7 +44,7 @@ implements OnEditorActionListener, OnClickListener { TextView enterCode = new TextView(ctx); enterCode.setGravity(CENTER_HORIZONTAL); enterCode.setTextSize(14); - enterCode.setPadding(10, 10, 10, 0); + enterCode.setPadding(pad, pad, pad, 0); enterCode.setText(prompt); addView(enterCode); diff --git a/briar-android/src/org/briarproject/android/invitation/CodesDoNotMatchView.java b/briar-android/src/org/briarproject/android/invitation/CodesDoNotMatchView.java index c6399dd916..c62aa97479 100644 --- a/briar-android/src/org/briarproject/android/invitation/CodesDoNotMatchView.java +++ b/briar-android/src/org/briarproject/android/invitation/CodesDoNotMatchView.java @@ -2,7 +2,9 @@ package org.briarproject.android.invitation; import static android.view.Gravity.CENTER; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP; + import org.briarproject.R; + import android.content.Context; import android.view.View; import android.view.View.OnClickListener; @@ -30,14 +32,14 @@ class CodesDoNotMatchView extends AddContactView implements OnClickListener { TextView failed = new TextView(ctx); failed.setTextSize(22); - failed.setPadding(10, 10, 10, 10); + failed.setPadding(pad, pad, pad, pad); failed.setText(R.string.codes_do_not_match); innerLayout.addView(failed); addView(innerLayout); TextView interfering = new TextView(ctx); interfering.setTextSize(14); - interfering.setPadding(10, 0, 10, 10); + interfering.setPadding(pad, 0, pad, pad); interfering.setText(R.string.interfering); addView(interfering); diff --git a/briar-android/src/org/briarproject/android/invitation/ConfirmationCodeView.java b/briar-android/src/org/briarproject/android/invitation/ConfirmationCodeView.java index 78b886cfc0..b19ba409c6 100644 --- a/briar-android/src/org/briarproject/android/invitation/ConfirmationCodeView.java +++ b/briar-android/src/org/briarproject/android/invitation/ConfirmationCodeView.java @@ -2,7 +2,9 @@ package org.briarproject.android.invitation; import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER_HORIZONTAL; + import org.briarproject.R; + import android.content.Context; import android.content.res.Resources; import android.widget.ImageView; @@ -28,7 +30,7 @@ class ConfirmationCodeView extends AddContactView implements CodeEntryListener { TextView connected = new TextView(ctx); connected.setTextSize(22); - connected.setPadding(10, 10, 10, 10); + connected.setPadding(pad, pad, pad, pad); connected.setText(R.string.connected_to_contact); innerLayout.addView(connected); addView(innerLayout); @@ -36,14 +38,14 @@ class ConfirmationCodeView extends AddContactView implements CodeEntryListener { TextView yourCode = new TextView(ctx); yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setTextSize(14); - yourCode.setPadding(10, 10, 10, 10); + yourCode.setPadding(pad, pad, pad, pad); yourCode.setText(R.string.your_confirmation_code); addView(yourCode); TextView code = new TextView(ctx); code.setGravity(CENTER_HORIZONTAL); code.setTextSize(50); - code.setPadding(10, 0, 10, 10); + code.setPadding(pad, 0, pad, pad); int localCode = container.getLocalConfirmationCode(); code.setText(String.format("%06d", localCode)); addView(code); diff --git a/briar-android/src/org/briarproject/android/invitation/ConnectedView.java b/briar-android/src/org/briarproject/android/invitation/ConnectedView.java index c31452002b..d91b7ca410 100644 --- a/briar-android/src/org/briarproject/android/invitation/ConnectedView.java +++ b/briar-android/src/org/briarproject/android/invitation/ConnectedView.java @@ -27,7 +27,7 @@ class ConnectedView extends AddContactView { TextView connected = new TextView(ctx); connected.setTextSize(22); - connected.setPadding(10, 10, 10, 10); + connected.setPadding(pad, pad, pad, pad); connected.setText(R.string.connected_to_contact); innerLayout.addView(connected); addView(innerLayout); @@ -38,7 +38,7 @@ class ConnectedView extends AddContactView { ProgressBar progress = new ProgressBar(ctx); progress.setIndeterminate(true); - progress.setPadding(10, 10, 10, 10); + progress.setPadding(pad, pad, pad, pad); innerLayout.addView(progress); TextView connecting = new TextView(ctx); diff --git a/briar-android/src/org/briarproject/android/invitation/ConnectionFailedView.java b/briar-android/src/org/briarproject/android/invitation/ConnectionFailedView.java index dc3efb8e2f..768ca91bf7 100644 --- a/briar-android/src/org/briarproject/android/invitation/ConnectionFailedView.java +++ b/briar-android/src/org/briarproject/android/invitation/ConnectionFailedView.java @@ -2,7 +2,9 @@ package org.briarproject.android.invitation; import static android.view.Gravity.CENTER; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP; + import org.briarproject.R; + import android.content.Context; import android.view.View; import android.view.View.OnClickListener; @@ -34,14 +36,14 @@ class ConnectionFailedView extends AddContactView implements OnClickListener { TextView failed = new TextView(ctx); failed.setTextSize(22); - failed.setPadding(10, 10, 10, 10); + failed.setPadding(pad, pad, pad, pad); failed.setText(R.string.connection_failed); innerLayout.addView(failed); addView(innerLayout); TextView checkNetwork = new TextView(ctx); checkNetwork.setTextSize(14); - checkNetwork.setPadding(10, 0, 10, 10); + checkNetwork.setPadding(pad, 0, pad, pad); checkNetwork.setText(R.string.check_same_network); addView(checkNetwork); diff --git a/briar-android/src/org/briarproject/android/invitation/ConnectionView.java b/briar-android/src/org/briarproject/android/invitation/ConnectionView.java index 7dae72eef4..0762f200b1 100644 --- a/briar-android/src/org/briarproject/android/invitation/ConnectionView.java +++ b/briar-android/src/org/briarproject/android/invitation/ConnectionView.java @@ -2,7 +2,9 @@ package org.briarproject.android.invitation; import static android.view.Gravity.CENTER; import static android.view.Gravity.CENTER_HORIZONTAL; + import org.briarproject.R; + import android.content.Context; import android.widget.LinearLayout; import android.widget.ProgressBar; @@ -20,14 +22,14 @@ class ConnectionView extends AddContactView { TextView yourCode = new TextView(ctx); yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setTextSize(14); - yourCode.setPadding(10, 10, 10, 10); + yourCode.setPadding(pad, pad, pad, pad); yourCode.setText(R.string.your_invitation_code); addView(yourCode); TextView code = new TextView(ctx); code.setGravity(CENTER_HORIZONTAL); code.setTextSize(50); - code.setPadding(10, 0, 10, 10); + code.setPadding(pad, 0, pad, pad); int localCode = container.getLocalInvitationCode(); code.setText(String.format("%06d", localCode)); addView(code); @@ -40,7 +42,7 @@ class ConnectionView extends AddContactView { ProgressBar progress = new ProgressBar(ctx); progress.setIndeterminate(true); - progress.setPadding(10, 10, 10, 10); + progress.setPadding(pad, pad, pad, pad); innerLayout.addView(progress); TextView connecting = new TextView(ctx); @@ -58,7 +60,7 @@ class ConnectionView extends AddContactView { innerLayout.setGravity(CENTER); ProgressBar progress = new ProgressBar(ctx); - progress.setPadding(10, 10, 10, 10); + progress.setPadding(pad, pad, pad, pad); progress.setIndeterminate(true); innerLayout.addView(progress); diff --git a/briar-android/src/org/briarproject/android/invitation/ContactDetailsView.java b/briar-android/src/org/briarproject/android/invitation/ContactDetailsView.java index f961669760..0a0da9a402 100644 --- a/briar-android/src/org/briarproject/android/invitation/ContactDetailsView.java +++ b/briar-android/src/org/briarproject/android/invitation/ContactDetailsView.java @@ -28,7 +28,7 @@ class ContactDetailsView extends AddContactView { TextView connected = new TextView(ctx); connected.setTextSize(22); - connected.setPadding(10, 10, 10, 10); + connected.setPadding(pad, pad, pad, pad); connected.setText(R.string.connected_to_contact); innerLayout.addView(connected); addView(innerLayout); @@ -36,14 +36,14 @@ class ContactDetailsView extends AddContactView { TextView yourCode = new TextView(ctx); yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setTextSize(14); - yourCode.setPadding(10, 0, 10, 10); + yourCode.setPadding(pad, 0, pad, pad); yourCode.setText(R.string.your_confirmation_code); addView(yourCode); TextView code = new TextView(ctx); code.setGravity(CENTER_HORIZONTAL); code.setTextSize(50); - code.setPadding(10, 0, 10, 10); + code.setPadding(pad, 0, pad, pad); int localCode = container.getLocalConfirmationCode(); code.setText(String.format("%06d", localCode)); addView(code); @@ -54,7 +54,7 @@ class ContactDetailsView extends AddContactView { ProgressBar progress = new ProgressBar(ctx); progress.setIndeterminate(true); - progress.setPadding(10, 10, 10, 10); + progress.setPadding(pad, pad, pad, pad); innerLayout.addView(progress); TextView connecting = new TextView(ctx); diff --git a/briar-android/src/org/briarproject/android/invitation/InvitationCodeView.java b/briar-android/src/org/briarproject/android/invitation/InvitationCodeView.java index fba3a0c8c0..795eb529d8 100644 --- a/briar-android/src/org/briarproject/android/invitation/InvitationCodeView.java +++ b/briar-android/src/org/briarproject/android/invitation/InvitationCodeView.java @@ -18,14 +18,14 @@ class InvitationCodeView extends AddContactView implements CodeEntryListener { TextView yourCode = new TextView(ctx); yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setTextSize(14); - yourCode.setPadding(10, 10, 10, 10); + yourCode.setPadding(pad, pad, pad, pad); yourCode.setText(R.string.your_invitation_code); addView(yourCode); TextView code = new TextView(ctx); code.setGravity(CENTER_HORIZONTAL); code.setTextSize(50); - code.setPadding(10, 0, 10, 10); + code.setPadding(pad, 0, pad, pad); int localCode = container.getLocalInvitationCode(); code.setText(String.format("%06d", localCode)); addView(code); diff --git a/briar-android/src/org/briarproject/android/invitation/NetworkSetupView.java b/briar-android/src/org/briarproject/android/invitation/NetworkSetupView.java index 0e4ecde983..9fc38961bf 100644 --- a/briar-android/src/org/briarproject/android/invitation/NetworkSetupView.java +++ b/briar-android/src/org/briarproject/android/invitation/NetworkSetupView.java @@ -44,7 +44,7 @@ implements OnItemSelectedListener, OnClickListener { TextView yourNickname = new TextView(ctx); yourNickname.setTextSize(18); - yourNickname.setPadding(10, 10, 10, 10); + yourNickname.setPadding(pad, pad, pad, pad); yourNickname.setText(R.string.your_nickname); innerLayout.addView(yourNickname); @@ -67,7 +67,7 @@ implements OnItemSelectedListener, OnClickListener { TextView faceToFace = new TextView(ctx); faceToFace.setGravity(CENTER); faceToFace.setTextSize(14); - faceToFace.setPadding(10, 10, 10, 10); + faceToFace.setPadding(pad, pad, pad, pad); faceToFace.setText(R.string.fact_to_face); addView(faceToFace); diff --git a/briar-android/src/org/briarproject/android/invitation/WaitForContactView.java b/briar-android/src/org/briarproject/android/invitation/WaitForContactView.java index bcf5cc2334..625c4576cd 100644 --- a/briar-android/src/org/briarproject/android/invitation/WaitForContactView.java +++ b/briar-android/src/org/briarproject/android/invitation/WaitForContactView.java @@ -28,7 +28,7 @@ class WaitForContactView extends AddContactView { TextView connected = new TextView(ctx); connected.setTextSize(22); - connected.setPadding(10, 10, 10, 10); + connected.setPadding(pad, pad, pad, pad); connected.setText(R.string.connected_to_contact); innerLayout.addView(connected); addView(innerLayout); @@ -36,14 +36,14 @@ class WaitForContactView extends AddContactView { TextView yourCode = new TextView(ctx); yourCode.setGravity(CENTER_HORIZONTAL); yourCode.setTextSize(14); - yourCode.setPadding(10, 0, 10, 10); + yourCode.setPadding(pad, 0, pad, pad); yourCode.setText(R.string.your_confirmation_code); addView(yourCode); TextView code = new TextView(ctx); code.setGravity(CENTER_HORIZONTAL); code.setTextSize(50); - code.setPadding(10, 0, 10, 10); + code.setPadding(pad, 0, pad, pad); int localCode = container.getLocalConfirmationCode(); code.setText(String.format("%06d", localCode)); addView(code); @@ -54,7 +54,7 @@ class WaitForContactView extends AddContactView { ProgressBar progress = new ProgressBar(ctx); progress.setIndeterminate(true); - progress.setPadding(10, 10, 10, 10); + progress.setPadding(pad, pad, pad, pad); innerLayout.addView(progress); TextView connecting = new TextView(ctx); diff --git a/briar-android/src/org/briarproject/android/invitation/WifiStatusView.java b/briar-android/src/org/briarproject/android/invitation/WifiStatusView.java index 3d5b286afd..c55f48fa0b 100644 --- a/briar-android/src/org/briarproject/android/invitation/WifiStatusView.java +++ b/briar-android/src/org/briarproject/android/invitation/WifiStatusView.java @@ -4,7 +4,10 @@ import static android.content.Context.WIFI_SERVICE; import static android.provider.Settings.ACTION_WIFI_SETTINGS; import static android.view.Gravity.CENTER; import static org.briarproject.android.util.CommonLayoutParams.WRAP_WRAP_1; + import org.briarproject.R; +import org.briarproject.android.util.LayoutUtils; + import android.content.Context; import android.content.Intent; import android.net.wifi.WifiInfo; @@ -18,8 +21,11 @@ import android.widget.TextView; class WifiStatusView extends LinearLayout implements OnClickListener { + private final int pad; + public WifiStatusView(Context ctx) { super(ctx); + pad = LayoutUtils.getPadding(ctx); } void init() { @@ -33,12 +39,12 @@ class WifiStatusView extends LinearLayout implements OnClickListener { Context ctx = getContext(); TextView status = new TextView(ctx); status.setTextSize(14); - status.setPadding(10, 10, 10, 10); + status.setPadding(pad, pad, pad, pad); status.setLayoutParams(WRAP_WRAP_1); WifiManager wifi = (WifiManager) ctx.getSystemService(WIFI_SERVICE); if(wifi == null) { 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); addView(warning); status.setText(R.string.wifi_not_available); @@ -49,7 +55,7 @@ class WifiStatusView extends LinearLayout implements OnClickListener { int networkId = info.getNetworkId(); if(networkName == null || networkId == -1) { 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); addView(warning); status.setText(R.string.wifi_disconnected); @@ -60,7 +66,7 @@ class WifiStatusView extends LinearLayout implements OnClickListener { addView(settings); } else { ImageView ok = new ImageView(ctx); - ok.setPadding(5, 5, 5, 5); + ok.setPadding(pad, pad, pad, pad); ok.setImageResource(R.drawable.navigation_accept); addView(ok); String format = getResources().getString( @@ -74,7 +80,7 @@ class WifiStatusView extends LinearLayout implements OnClickListener { } } else { 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); addView(warning); status.setText(R.string.wifi_disabled); diff --git a/briar-android/src/org/briarproject/android/util/HorizontalSpace.java b/briar-android/src/org/briarproject/android/util/ElasticHorizontalSpace.java similarity index 74% rename from briar-android/src/org/briarproject/android/util/HorizontalSpace.java rename to briar-android/src/org/briarproject/android/util/ElasticHorizontalSpace.java index b04db1898f..2a4ec2fa97 100644 --- a/briar-android/src/org/briarproject/android/util/HorizontalSpace.java +++ b/briar-android/src/org/briarproject/android/util/ElasticHorizontalSpace.java @@ -5,9 +5,9 @@ import android.content.Context; import android.view.View; 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); setLayoutParams(new LayoutParams(WRAP_CONTENT, 0, 1)); } diff --git a/briar-android/src/org/briarproject/android/util/FixedVerticalSpace.java b/briar-android/src/org/briarproject/android/util/FixedVerticalSpace.java new file mode 100644 index 0000000000..7a3bb9ee7c --- /dev/null +++ b/briar-android/src/org/briarproject/android/util/FixedVerticalSpace.java @@ -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)); + } +} diff --git a/briar-android/src/org/briarproject/android/util/HorizontalBorder.java b/briar-android/src/org/briarproject/android/util/HorizontalBorder.java index 2ed3fddf10..6911e371e0 100644 --- a/briar-android/src/org/briarproject/android/util/HorizontalBorder.java +++ b/briar-android/src/org/briarproject/android/util/HorizontalBorder.java @@ -1,9 +1,10 @@ package org.briarproject.android.util; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; + import org.briarproject.R; + import android.content.Context; -import android.content.res.Resources; import android.view.View; import android.widget.LinearLayout.LayoutParams; @@ -11,8 +12,7 @@ public class HorizontalBorder extends View { public HorizontalBorder(Context ctx) { super(ctx); - Resources res = ctx.getResources(); - int width = res.getInteger(R.integer.horizontal_border_width); + int width = LayoutUtils.getSeparatorWidth(ctx); setLayoutParams(new LayoutParams(MATCH_PARENT, width)); setBackgroundColor(getResources().getColor(R.color.horizontal_border)); } diff --git a/briar-android/src/org/briarproject/android/util/LayoutUtils.java b/briar-android/src/org/briarproject/android/util/LayoutUtils.java new file mode 100644 index 0000000000..6a14c9807e --- /dev/null +++ b/briar-android/src/org/briarproject/android/util/LayoutUtils.java @@ -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); + } +} -- GitLab