Merge "Fix issue with extra padding int groups list view." into klp-dev
diff --git a/src/com/android/contacts/activities/PeopleActivity.java b/src/com/android/contacts/activities/PeopleActivity.java
index f26fb96..2d69917 100644
--- a/src/com/android/contacts/activities/PeopleActivity.java
+++ b/src/com/android/contacts/activities/PeopleActivity.java
@@ -195,6 +195,11 @@
      */
     private boolean mCurrentFilterIsValid;
 
+    /**
+     * This is to disable {@link #onOptionsItemSelected} when we trying to stop the activity.
+     */
+    private boolean mDisableOptionItemSelected;
+
     /** Sequential ID assigned to each instance; used for logging */
     private final int mInstanceId;
     private static final AtomicInteger sNextInstanceId = new AtomicInteger();
@@ -500,6 +505,7 @@
         // Re-register the listener, which may have been cleared when onSaveInstanceState was
         // called.  See also: onSaveInstanceState
         mActionBarAdapter.setListener(this);
+        mDisableOptionItemSelected = false;
         if (mTabPager != null) {
             mTabPager.setOnPageChangeListener(mTabPagerListener);
         }
@@ -1488,6 +1494,10 @@
 
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
+        if (mDisableOptionItemSelected) {
+            return false;
+        }
+
         switch (item.getItemId()) {
             case android.R.id.home: {
                 // The home icon on the action bar is pressed
@@ -1706,6 +1716,7 @@
         // Clear the listener to make sure we don't get callbacks after onSaveInstanceState,
         // in order to avoid doing fragment transactions after it.
         // TODO Figure out a better way to deal with the issue.
+        mDisableOptionItemSelected = true;
         mActionBarAdapter.setListener(null);
         if (mTabPager != null) {
             mTabPager.setOnPageChangeListener(null);
diff --git a/src/com/android/contacts/model/ContactLoader.java b/src/com/android/contacts/model/ContactLoader.java
index 4c0e70a..8583f14 100644
--- a/src/com/android/contacts/model/ContactLoader.java
+++ b/src/com/android/contacts/model/ContactLoader.java
@@ -389,10 +389,11 @@
         if (accountName != null) {
             final String accountType = json.getString(RawContacts.ACCOUNT_TYPE);
             contact.setDirectoryMetaData(directoryName, null, accountName, accountType,
-                    Directory.EXPORT_SUPPORT_SAME_ACCOUNT_ONLY);
+                    json.optInt(Directory.EXPORT_SUPPORT,
+                            Directory.EXPORT_SUPPORT_SAME_ACCOUNT_ONLY));
         } else {
             contact.setDirectoryMetaData(directoryName, null, null, null,
-                    Directory.EXPORT_SUPPORT_ANY_ACCOUNT);
+                    json.optInt(Directory.EXPORT_SUPPORT, Directory.EXPORT_SUPPORT_ANY_ACCOUNT));
         }
 
         final ContentValues values = new ContentValues();