Merge "Rename landscape version of editor fragment" into ub-contactsdialer-h-dev
diff --git a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
index c9c5915..25315e8 100644
--- a/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/DefaultContactBrowseListFragment.java
@@ -43,6 +43,7 @@
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.accessibility.AccessibilityEvent;
+import android.view.accessibility.AccessibilityManager;
 import android.widget.Button;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
@@ -55,6 +56,7 @@
 import com.android.contacts.R;
 import com.android.contacts.activities.ActionBarAdapter;
 import com.android.contacts.common.Experiments;
+import com.android.contacts.common.compat.CompatUtils;
 import com.android.contacts.common.list.ContactEntryListFragment;
 import com.android.contacts.common.list.ContactListAdapter;
 import com.android.contacts.common.list.ContactListFilter;
@@ -245,6 +247,7 @@
     private void maybeShowHamburgerFeatureHighlight() {
         if (mActionBarAdapter!= null && !mActionBarAdapter.isSearchMode()
                 && !mActionBarAdapter.isSelectionMode()
+                && !isTalkbackOnAndOnPreLollipopMr1()
                 && SharedPreferenceUtil.getShouldShowHamburgerPromo(getContext())) {
             if (FeatureHighlightHelper.showHamburgerFeatureHighlight(mActivity)) {
                 SharedPreferenceUtil.setHamburgerPromoDisplayedBefore(getContext());
@@ -252,6 +255,14 @@
         }
     }
 
+    // There's a crash if we show feature highlight when Talkback is on, on API 21 and below.
+    // See b/31180524.
+    private boolean isTalkbackOnAndOnPreLollipopMr1(){
+        return ((AccessibilityManager) getContext().getSystemService(Context.ACCESSIBILITY_SERVICE))
+                .isTouchExplorationEnabled()
+                    && !CompatUtils.isLollipopMr1Compatible();
+    }
+
     private void bindListHeader(int numberOfContacts) {
         final ContactListFilter filter = getFilter();
         // If the phone has at least one Google account whose sync status is unsyncable or pending