diff --git a/res/drawable-hdpi/ic_menu_add_field_holo_light.png b/res/drawable-hdpi/ic_menu_add_field_holo_light.png
new file mode 100644
index 000000000..4ef604aa3
Binary files /dev/null and b/res/drawable-hdpi/ic_menu_add_field_holo_light.png differ
diff --git a/res/drawable-mdpi/ic_menu_add_field_holo_light.png b/res/drawable-mdpi/ic_menu_add_field_holo_light.png
new file mode 100644
index 000000000..fbb1a7a95
Binary files /dev/null and b/res/drawable-mdpi/ic_menu_add_field_holo_light.png differ
diff --git a/res/drawable-xhdpi/ic_menu_add_field_holo_light.png b/res/drawable-xhdpi/ic_menu_add_field_holo_light.png
new file mode 100644
index 000000000..13282900c
Binary files /dev/null and b/res/drawable-xhdpi/ic_menu_add_field_holo_light.png differ
diff --git a/res/layout/recipients_panel.xml b/res/layout/recipients_panel.xml
index 148db3d79..d20023967 100644
--- a/res/layout/recipients_panel.xml
+++ b/res/layout/recipients_panel.xml
@@ -10,7 +10,7 @@
android:paddingRight="5dip"
android:background="@drawable/white_background"
android:orientation="vertical" >
-
+
-
+ android:layout_width="fill_parent"/>
+
-
+
\ No newline at end of file
diff --git a/src/org/thoughtcrime/securesms/components/RecipientsPanel.java b/src/org/thoughtcrime/securesms/components/RecipientsPanel.java
index 23a46ac91..a9f1c49f8 100644
--- a/src/org/thoughtcrime/securesms/components/RecipientsPanel.java
+++ b/src/org/thoughtcrime/securesms/components/RecipientsPanel.java
@@ -1,6 +1,6 @@
-/**
+/**
* Copyright (C) 2011 Whisper Systems
- *
+ *
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
@@ -10,15 +10,18 @@
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
- *
+ *
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
package org.thoughtcrime.securesms.components;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
+import android.content.Context;
+import android.os.Build;
+import android.util.AttributeSet;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.widget.RelativeLayout;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.contacts.RecipientsAdapter;
@@ -28,27 +31,24 @@ import org.thoughtcrime.securesms.recipients.RecipientFactory;
import org.thoughtcrime.securesms.recipients.RecipientFormattingException;
import org.thoughtcrime.securesms.recipients.Recipients;
-import android.content.Context;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.widget.RelativeLayout;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
/**
- * Panel component combining both an editable field with a button for
+ * Panel component combining both an editable field with a button for
* a list-based contact selector.
- *
+ *
* @author Moxie Marlinspike
*/
-public class RecipientsPanel extends RelativeLayout {
-
+public class RecipientsPanel extends RelativeLayout {
+
private RecipientsPanelChangedListener panelChangeListener;
private RecipientsEditor recipientsText;
private View panel;
private static final int RECIPIENTS_MAX_LENGTH = 312;
-
+
public RecipientsPanel(Context context) {
super(context);
initialize();
@@ -63,37 +63,37 @@ public class RecipientsPanel extends RelativeLayout {
super(context, attrs, defStyle);
initialize();
}
-
+
public void addRecipient(String name, String number) {
if (name != null) recipientsText.append(name + "< " + number + ">, ");
else recipientsText.append(number + ", ");
}
-
+
public void addRecipients(Recipients recipients) {
List recipientList = recipients.getRecipientsList();
Iterator iterator = recipientList.iterator();
-
+
while (iterator.hasNext()) {
Recipient recipient = iterator.next();
addRecipient(recipient.getName(), recipient.getNumber());
}
}
-
+
public Recipients getRecipients() throws RecipientFormattingException {
String rawText = recipientsText.getText().toString();
Recipients recipients = RecipientFactory.getRecipientsFromString(getContext(), rawText);
-
+
if (recipients.isEmpty())
throw new RecipientFormattingException("Recipient List Is Empty!");
-
- return recipients;
+
+ return recipients;
}
-
+
public void disable() {
recipientsText.setText("");
- panel.setVisibility(View.GONE);
+ panel.setVisibility(View.GONE);
}
-
+
public void setPanelChangeListener(RecipientsPanelChangedListener panelChangeListener) {
this.panelChangeListener = panelChangeListener;
}
@@ -101,15 +101,20 @@ public class RecipientsPanel extends RelativeLayout {
private void initialize() {
LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.recipients_panel, this, true);
-
- panel = findViewById(R.id.recipients_panel);
- initRecipientsEditor();
+
+ View imageButton = findViewById(R.id.contacts_button);
+
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH)
+ ((MarginLayoutParams) imageButton.getLayoutParams()).topMargin = 0;
+
+ panel = findViewById(R.id.recipients_panel);
+ initRecipientsEditor();
}
-
+
private void initRecipientsEditor() {
Recipients recipients = null;
recipientsText = (RecipientsEditor)findViewById(R.id.recipients_text);
-
+
try {
recipients = getRecipients();
} catch (RecipientFormattingException e) {
@@ -120,7 +125,7 @@ public class RecipientsPanel extends RelativeLayout {
recipientsText.populate(recipients);
recipientsText.setOnFocusChangeListener(new FocusChangedListener());
}
-
+
private class FocusChangedListener implements View.OnFocusChangeListener {
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus && (panelChangeListener != null)) {
@@ -132,7 +137,7 @@ public class RecipientsPanel extends RelativeLayout {
}
}
}
-
+
public interface RecipientsPanelChangedListener {
public void onRecipientsPanelUpdate(Recipients recipients);
}