Merge "Let tts read the contact's name on detail screen show up"
diff --git a/res/layout-sw580dp-w1000dp/contact_detail_fragment.xml b/res/layout-sw580dp-w1000dp/contact_detail_fragment.xml
index a15d98f2..1623e84 100644
--- a/res/layout-sw580dp-w1000dp/contact_detail_fragment.xml
+++ b/res/layout-sw580dp-w1000dp/contact_detail_fragment.xml
@@ -58,8 +58,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:visibility="gone"
-        android:layout_gravity="right"
-        android:layout_marginRight="40dip"
+        android:layout_gravity="center"
         android:layout_marginTop="10dip"
         android:layout_marginBottom="10dip" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/res/layout-sw580dp/contact_detail_fragment.xml b/res/layout-sw580dp/contact_detail_fragment.xml
index 9b997e1..28a6bb9 100644
--- a/res/layout-sw580dp/contact_detail_fragment.xml
+++ b/res/layout-sw580dp/contact_detail_fragment.xml
@@ -44,8 +44,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:visibility="gone"
-        android:layout_gravity="right"
-        android:layout_marginRight="40dip"
+        android:layout_gravity="center"
         android:layout_marginTop="10dip"
         android:layout_marginBottom="10dip" />
-</LinearLayout>
\ No newline at end of file
+</LinearLayout>
diff --git a/res/layout/contact_detail_fragment.xml b/res/layout/contact_detail_fragment.xml
index a7b509d..873d8ca 100644
--- a/res/layout/contact_detail_fragment.xml
+++ b/res/layout/contact_detail_fragment.xml
@@ -54,8 +54,7 @@
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:visibility="gone"
-        android:layout_gravity="right"
-        android:layout_marginRight="40dip"
+        android:layout_gravity="center"
         android:layout_marginTop="20dip"
         android:layout_marginBottom="20dip" />
 </LinearLayout>
diff --git a/res/layout/edit_delete_button.xml b/res/layout/edit_delete_button.xml
index 32b0580..9a9a377 100644
--- a/res/layout/edit_delete_button.xml
+++ b/res/layout/edit_delete_button.xml
@@ -21,7 +21,7 @@
     android:layout_width="wrap_content"
     android:layout_height="@dimen/editor_min_line_item_height"
     android:layout_marginRight="2dip"
-    android:layout_gravity="top">
+    android:layout_gravity="bottom">
     <ImageView
         android:id="@+id/delete_button"
         android:layout_width="wrap_content"
diff --git a/res/layout/edit_spinner.xml b/res/layout/edit_spinner.xml
index b986913..99764da 100644
--- a/res/layout/edit_spinner.xml
+++ b/res/layout/edit_spinner.xml
@@ -20,7 +20,7 @@
 <Spinner
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/spinner"
-    android:layout_gravity="top"
+    android:layout_gravity="bottom"
     android:layout_width="@dimen/editor_type_label_width"
     android:layout_height="@dimen/editor_min_line_item_height"
     android:paddingLeft="0dip"
diff --git a/res/layout/item_group_membership.xml b/res/layout/item_group_membership.xml
index 57eda71..47f99b2 100644
--- a/res/layout/item_group_membership.xml
+++ b/res/layout/item_group_membership.xml
@@ -27,12 +27,12 @@
         style="?android:attr/spinnerStyle"
         android:id="@+id/group_list"
         android:layout_width="match_parent"
-        android:layout_height="@dimen/editor_min_line_item_height"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/editor_min_line_item_height"
         android:layout_marginLeft="@dimen/editor_field_left_padding"
         android:layout_marginRight="@dimen/editor_field_left_padding"
         android:textAppearance="?android:attr/textAppearanceMedium"
         android:gravity="left|center_vertical"
-        android:ellipsize="end"
         android:focusable="true"
         android:paddingLeft="12dip" />
 
diff --git a/res/menu/actions.xml b/res/menu/actions.xml
index 852bfa9..8288f9d 100644
--- a/res/menu/actions.xml
+++ b/res/menu/actions.xml
@@ -16,7 +16,7 @@
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
         android:id="@+id/menu_search"
-        android:icon="@android:drawable/ic_menu_search"
+        android:icon="@drawable/ic_ab_search_holo_dark"
         android:title="@string/menu_search"
         android:showAsAction="ifRoom" />
 
diff --git a/res/values-sw580dp/dimens.xml b/res/values-sw580dp/dimens.xml
index 3824248..77315fc 100644
--- a/res/values-sw580dp/dimens.xml
+++ b/res/values-sw580dp/dimens.xml
@@ -18,7 +18,7 @@
     <dimen name="editor_type_label_width">122dip</dimen>
     <dimen name="editor_round_button_padding_left">16dip</dimen>
     <dimen name="editor_round_button_padding_right">16dip</dimen>
-    <dimen name="editor_add_field_label_left_padding">24dip</dimen>
+    <dimen name="editor_add_field_label_left_padding">16dip</dimen>
     <dimen name="detail_item_side_margin">0dip</dimen>
     <dimen name="detail_item_vertical_margin">16dip</dimen>
     <dimen name="detail_item_icon_margin">8dip</dimen>
diff --git a/res/values-w470dp/dimens.xml b/res/values-w470dp/dimens.xml
index 7da25d7..c457147 100644
--- a/res/values-w470dp/dimens.xml
+++ b/res/values-w470dp/dimens.xml
@@ -16,4 +16,5 @@
 <resources>
     <!-- Center vertically -->
     <dimen name="quick_contact_top_position">-1px</dimen>
+    <dimen name="editor_type_label_width">120dip</dimen>
 </resources>
diff --git a/src/com/android/contacts/calllog/CallLogAdapter.java b/src/com/android/contacts/calllog/CallLogAdapter.java
index bf1f857..0dc5e35 100644
--- a/src/com/android/contacts/calllog/CallLogAdapter.java
+++ b/src/com/android/contacts/calllog/CallLogAdapter.java
@@ -54,7 +54,7 @@
         implements Runnable, ViewTreeObserver.OnPreDrawListener, CallLogGroupBuilder.GroupCreator {
     /** Interface used to initiate a refresh of the content. */
     public interface CallFetcher {
-        public void startCallsQuery();
+        public void fetchCalls();
     }
 
     /** The time in millis to delay starting the thread processing requests. */
@@ -183,9 +183,7 @@
      */
     @Override
     protected void onContentChanged() {
-        // When the content changes, always fetch all the calls, in case a new missed call came
-        // in and we were filtering over voicemail only, so that we see the missed call.
-        mCallFetcher.startCallsQuery();
+        mCallFetcher.fetchCalls();
     }
 
     void setLoading(boolean loading) {
diff --git a/src/com/android/contacts/calllog/CallLogFragment.java b/src/com/android/contacts/calllog/CallLogFragment.java
index df52395..6ccf7bb 100644
--- a/src/com/android/contacts/calllog/CallLogFragment.java
+++ b/src/com/android/contacts/calllog/CallLogFragment.java
@@ -220,6 +220,14 @@
     }
 
     @Override
+    public void fetchCalls() {
+        if (mShowingVoicemailOnly) {
+            mCallLogQueryHandler.fetchVoicemailOnly();
+        } else {
+            mCallLogQueryHandler.fetchAllCalls();
+        }
+    }
+
     public void startCallsQuery() {
         mAdapter.setLoading(true);
         mCallLogQueryHandler.fetchAllCalls();
diff --git a/src/com/android/contacts/editor/TextFieldsEditorView.java b/src/com/android/contacts/editor/TextFieldsEditorView.java
index a4ad53a..062c25d 100644
--- a/src/com/android/contacts/editor/TextFieldsEditorView.java
+++ b/src/com/android/contacts/editor/TextFieldsEditorView.java
@@ -176,6 +176,13 @@
             final EditText fieldView = new EditText(mContext);
             fieldView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT,
                     field.isMultiLine() ? LayoutParams.WRAP_CONTENT : mMinFieldHeight));
+            // Set either a minimum line requirement or a minimum height (because {@link TextView}
+            // only takes one or the other at a single time).
+            if (field.minLines != 0) {
+                fieldView.setMinLines(field.minLines);
+            } else {
+                fieldView.setMinHeight(mMinFieldHeight);
+            }
             fieldView.setTextAppearance(getContext(), kind.textAppearanceResourceId);
             fieldView.setGravity(Gravity.TOP);
             mFieldEditTexts[index] = fieldView;
@@ -188,7 +195,6 @@
             if (inputType == InputType.TYPE_CLASS_PHONE) {
                 PhoneNumberFormatter.setPhoneNumberFormattingTextWatcher(mContext, fieldView);
             }
-            fieldView.setMinLines(field.minLines);
 
             // Read current value from state
             final String column = field.column;
diff --git a/src/com/android/contacts/model/BaseAccountType.java b/src/com/android/contacts/model/BaseAccountType.java
index dae09b2..e6c0400 100644
--- a/src/com/android/contacts/model/BaseAccountType.java
+++ b/src/com/android/contacts/model/BaseAccountType.java
@@ -279,7 +279,7 @@
         kind.fieldList = Lists.newArrayList();
         kind.fieldList.add(
                 new EditField(StructuredPostal.FORMATTED_ADDRESS, R.string.postal_address,
-                        FLAGS_POSTAL).setMinLines(1));
+                        FLAGS_POSTAL));
 
         return kind;
     }
diff --git a/tests/src/com/android/contacts/calllog/CallLogAdapterTest.java b/tests/src/com/android/contacts/calllog/CallLogAdapterTest.java
index 42733c9..25a0ae3 100644
--- a/tests/src/com/android/contacts/calllog/CallLogAdapterTest.java
+++ b/tests/src/com/android/contacts/calllog/CallLogAdapterTest.java
@@ -50,7 +50,7 @@
         // Use a call fetcher that does not do anything.
         CallLogAdapter.CallFetcher fakeCallFetcher = new CallLogAdapter.CallFetcher() {
             @Override
-            public void startCallsQuery() {}
+            public void fetchCalls() {}
         };
 
         mAdapter = new TestCallLogAdapter(getContext(), fakeCallFetcher, TEST_COUNTRY_ISO,