Merge "Keyboard nav fix for list in GroupDetailFragment" into jb-mr1.1-dev
diff --git a/res/layout-sw580dp/quickcontact_activity.xml b/res/layout-sw580dp/quickcontact_activity.xml
index a97d86c..129a6e5 100644
--- a/res/layout-sw580dp/quickcontact_activity.xml
+++ b/res/layout-sw580dp/quickcontact_activity.xml
@@ -42,6 +42,7 @@
             android:background="@color/quickcontact_tab_indicator" />
         <android.support.v4.view.ViewPager
             android:id="@+id/item_list_pager"
+            android:background="@color/quickcontact_list_background"
             android:layout_width="match_parent"
             android:layout_height="160dip" />
     </LinearLayout>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 4e5b215..1ac9b87 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -136,11 +136,11 @@
     <!-- Menu item that deletes the currently selected group [CHAR LIMIT=30] -->
     <string name="menu_deleteGroup">Delete</string>
 
-    <!-- Menu item (in the action bar) that creates a new contacts [CHAR LIMIT=12] -->
-    <string name="menu_new_contact_action_bar">New</string>
+    <!-- Menu item (in the action bar) that creates a new contact [CHAR LIMIT=30] -->
+    <string name="menu_new_contact_action_bar">Add Contact</string>
 
-    <!-- Menu item (in the action bar) that creates a new group [CHAR LIMIT=12] -->
-    <string name="menu_new_group_action_bar">New</string>
+    <!-- Menu item (in the action bar) that creates a new group [CHAR LIMIT=30] -->
+    <string name="menu_new_group_action_bar">Add Group</string>
 
     <!-- Title of the confirmation dialog for separating contacts into multiple instances [CHAR LIMIT=26] -->
     <string name="splitConfirmation_title">Separate contact?</string>
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index e29e488..028c01f 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -118,9 +118,6 @@
     private static final String KEY_IS_USER_PROFILE = "isUserProfile";
     private static final String KEY_UPDATED_PHOTOS = "updatedPhotos";
 
-    private static final String[] VALID_ACTIONS = {Intent.ACTION_EDIT, Intent.ACTION_INSERT,
-            ContactEditorActivity.ACTION_SAVE_COMPLETED};
-
     public static final String SAVE_MODE_EXTRA_KEY = "saveMode";
 
 
@@ -405,13 +402,13 @@
      * @throws IllegalArgumentException when the action is invalid.
      */
     private void validateAction(String action) {
-        for (String validAction : VALID_ACTIONS) {
-            if (validAction.equals(action)) {
-                return;
-            }
+        if (Intent.ACTION_EDIT.equals(action) || Intent.ACTION_INSERT.equals(action) ||
+                ContactEditorActivity.ACTION_SAVE_COMPLETED.equals(action)) {
+            return;
         }
         throw new IllegalArgumentException("Unknown Action String " + mAction +
-                ". Only support " + Intent.ACTION_EDIT + " or " + Intent.ACTION_INSERT);
+                ". Only support " + Intent.ACTION_EDIT + " or " + Intent.ACTION_INSERT + " or " +
+                ContactEditorActivity.ACTION_SAVE_COMPLETED);
     }
 
     @Override
diff --git a/src/com/android/contacts/quickcontact/QuickContactActivity.java b/src/com/android/contacts/quickcontact/QuickContactActivity.java
index 16814dc..37417c2 100644
--- a/src/com/android/contacts/quickcontact/QuickContactActivity.java
+++ b/src/com/android/contacts/quickcontact/QuickContactActivity.java
@@ -587,13 +587,18 @@
             final CheckableImageView actionView = getActionViewAt(position);
             mTrackScroller.requestChildRectangleOnScreen(actionView,
                     new Rect(0, 0, actionView.getWidth(), actionView.getHeight()), false);
+            renderSelectedRectangle(position, 0);
         }
 
         @Override
         public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
+            renderSelectedRectangle(position, positionOffset);
+        }
+
+        private void renderSelectedRectangle(int position, float positionOffset) {
             final RelativeLayout.LayoutParams layoutParams =
                     (RelativeLayout.LayoutParams) mSelectedTabRectangle.getLayoutParams();
-            final int width = mSelectedTabRectangle.getWidth();
+            final int width = layoutParams.width;
             layoutParams.leftMargin = (int) ((position + positionOffset) * width);
             mSelectedTabRectangle.setLayoutParams(layoutParams);
         }