Merge "Fix app breakage on tablet"
diff --git a/res/layout/contact_editor_custom_action_bar.xml b/res/layout/editor_custom_action_bar.xml
similarity index 97%
rename from res/layout/contact_editor_custom_action_bar.xml
rename to res/layout/editor_custom_action_bar.xml
index ba09929..0f42213 100644
--- a/res/layout/contact_editor_custom_action_bar.xml
+++ b/res/layout/editor_custom_action_bar.xml
@@ -49,6 +49,7 @@
                 android:layout_gravity="center_vertical"
                 android:layout_marginRight="20dip"
                 android:textAppearance="?android:attr/textAppearanceMedium"
+                android:textColor="@android:color/white"
                 android:text="@string/menu_done"
                 style="@android:style/Widget.Holo.ActionBar.TabText" />
 
diff --git a/res/menu/edit_group.xml b/res/menu/edit_group.xml
index d207317..a3387ca 100644
--- a/res/menu/edit_group.xml
+++ b/res/menu/edit_group.xml
@@ -16,15 +16,8 @@
 
 <menu xmlns:android="http://schemas.android.com/apk/res/android">
     <item
-        android:id="@+id/menu_done"
-        android:alphabeticShortcut="\n"
-        android:icon="@drawable/ic_menu_done_holo_light"
-        android:title="@string/menu_done"
-        android:showAsAction="always|withText" />
-
-    <item
         android:id="@+id/menu_discard"
         android:alphabeticShortcut="q"
-        android:title="@string/menu_doNotSave"
-        android:showAsAction="always|withText" />
+        android:title="@string/menu_discard"
+        android:showAsAction="withText" />
 </menu>
diff --git a/res/values-sw580dp/styles.xml b/res/values-sw580dp/styles.xml
index 240e9af..cf4c4ee 100644
--- a/res/values-sw580dp/styles.xml
+++ b/res/values-sw580dp/styles.xml
@@ -85,15 +85,6 @@
         <item name="android:windowContentOverlay">@null</item>
     </style>
 
-    <style name="ContactEditorActivityTheme" parent="@android:Theme.Holo.Light">
-        <item name="android:actionBarStyle">@style/TransparentActionBarStyle</item>
-        <item name="android:windowContentOverlay">@null</item>
-    </style>
-
-    <style name="TransparentActionBarStyle" parent="android:Widget.Holo.Light.ActionBar">
-        <item name="android:background">@null</item>
-    </style>
-
     <style name="DirectoryHeader" parent="PeopleTheme">
         <item name="android:background">@drawable/directory_bg_holo</item>
     </style>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ebf26d7..1ca7158 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -203,7 +203,7 @@
     <!-- Menu item to indicate you are done editing a contact and want to save the changes you've made -->
     <string name="menu_done">Done</string>
 
-    <!-- Menu item to indicate you want to stop editing a group and NOT save the changes you've made [CHAR LIMIT=12] -->
+    <!-- Menu item to indicate you want to cancel the current editing process and NOT save the changes you've made [CHAR LIMIT=12] -->
     <string name="menu_doNotSave">Cancel</string>
 
     <!-- Menu item to indicate you want to stop editing a contact and NOT save the changes you've made [CHAR LIMIT=12] -->
diff --git a/src/com/android/contacts/activities/ContactEditorActivity.java b/src/com/android/contacts/activities/ContactEditorActivity.java
index 10be943..a5b3aab 100644
--- a/src/com/android/contacts/activities/ContactEditorActivity.java
+++ b/src/com/android/contacts/activities/ContactEditorActivity.java
@@ -84,8 +84,7 @@
             // to the contact
             LayoutInflater inflater = (LayoutInflater) getSystemService
                     (Context.LAYOUT_INFLATER_SERVICE);
-            View customActionBarView = inflater.inflate(R.layout.contact_editor_custom_action_bar,
-                    null);
+            View customActionBarView = inflater.inflate(R.layout.editor_custom_action_bar, null);
             View saveMenuItem = customActionBarView.findViewById(R.id.save_menu_item);
             saveMenuItem.setOnClickListener(new OnClickListener() {
                 @Override
diff --git a/src/com/android/contacts/activities/GroupDetailActivity.java b/src/com/android/contacts/activities/GroupDetailActivity.java
index c7cf47c..b56f182 100644
--- a/src/com/android/contacts/activities/GroupDetailActivity.java
+++ b/src/com/android/contacts/activities/GroupDetailActivity.java
@@ -61,9 +61,12 @@
         fragment.loadGroup(getIntent().getData());
         fragment.closeActivityAfterDelete(true);
 
-        ActionBar actionBar =  getActionBar();
+        // We want the UP affordance but no app icon.
+        ActionBar actionBar = getActionBar();
         if (actionBar != null) {
-            actionBar.setDisplayHomeAsUpEnabled(true);
+            actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE,
+                    ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_SHOW_TITLE
+                    | ActionBar.DISPLAY_SHOW_HOME);
         }
     }
 
diff --git a/src/com/android/contacts/activities/GroupEditorActivity.java b/src/com/android/contacts/activities/GroupEditorActivity.java
index 814595c..d61b6c3 100644
--- a/src/com/android/contacts/activities/GroupEditorActivity.java
+++ b/src/com/android/contacts/activities/GroupEditorActivity.java
@@ -17,7 +17,6 @@
 package com.android.contacts.activities;
 
 import com.android.contacts.ContactsActivity;
-import com.android.contacts.ContactsSearchManager;
 import com.android.contacts.R;
 import com.android.contacts.editor.ContactEditorFragment.SaveMode;
 import com.android.contacts.group.GroupEditorFragment;
@@ -26,11 +25,14 @@
 
 import android.app.ActionBar;
 import android.app.Dialog;
+import android.content.Context;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
 import android.util.Log;
-import android.view.MenuItem;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.View.OnClickListener;
 
 public class GroupEditorActivity extends ContactsActivity
         implements DialogManager.DialogShowingViewActivity {
@@ -57,11 +59,26 @@
 
         setContentView(R.layout.group_editor_activity);
 
-        // This Activity will always fall back to the "top" Contacts screen when touched on the
-        // app up icon, regardless of launch context.
         ActionBar actionBar = getActionBar();
         if (actionBar != null) {
-            actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);
+            // Inflate a custom action bar that contains the "done" button for saving changes
+            // to the group
+            LayoutInflater inflater = (LayoutInflater) getSystemService
+                    (Context.LAYOUT_INFLATER_SERVICE);
+            View customActionBarView = inflater.inflate(R.layout.editor_custom_action_bar,
+                    null);
+            View saveMenuItem = customActionBarView.findViewById(R.id.save_menu_item);
+            saveMenuItem.setOnClickListener(new OnClickListener() {
+                @Override
+                public void onClick(View v) {
+                    mFragment.doSaveAction();
+                }
+            });
+            // Show the custom action bar but hide the home icon and title
+            actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM,
+                    ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME |
+                    ActionBar.DISPLAY_SHOW_TITLE);
+            actionBar.setCustomView(customActionBarView);
         }
 
         mFragment = (GroupEditorFragment) getFragmentManager().findFragmentById(
@@ -109,17 +126,6 @@
         }
     }
 
-    @Override
-    public boolean onOptionsItemSelected(MenuItem item) {
-        switch (item.getItemId()) {
-            case android.R.id.home: {
-                mFragment.save(SaveMode.HOME);
-                return true;
-            }
-        }
-        return false;
-    }
-
     private final GroupEditorFragment.Listener mFragmentListener =
             new GroupEditorFragment.Listener() {
         @Override
diff --git a/src/com/android/contacts/group/GroupEditorFragment.java b/src/com/android/contacts/group/GroupEditorFragment.java
index f17ac60..bc9e5ba 100644
--- a/src/com/android/contacts/group/GroupEditorFragment.java
+++ b/src/com/android/contacts/group/GroupEditorFragment.java
@@ -388,6 +388,10 @@
         mListener = value;
     }
 
+    public void doSaveAction() {
+        save(SaveMode.CLOSE);
+    }
+
     @Override
     public void onCreateOptionsMenu(Menu menu, final MenuInflater inflater) {
         inflater.inflate(R.menu.edit_group, menu);
@@ -396,8 +400,6 @@
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         switch (item.getItemId()) {
-            case R.id.menu_done:
-                return save(SaveMode.CLOSE);
             case R.id.menu_discard:
                 return revert();
         }