am f880f3dc: Merge "Enable Talkback for long clicking contacts" into ub-contactsdialer-a-dev

* commit 'f880f3dc5ba09565b5803f3abc3277a77b62abe5':
  Enable Talkback for long clicking contacts
diff --git a/src/com/android/contacts/list/MultiSelectContactsListFragment.java b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
index bbb0d84..2465fb5 100644
--- a/src/com/android/contacts/list/MultiSelectContactsListFragment.java
+++ b/src/com/android/contacts/list/MultiSelectContactsListFragment.java
@@ -25,6 +25,7 @@
 import android.os.Bundle;
 import android.provider.ContactsContract;
 import android.text.TextUtils;
+import android.view.accessibility.AccessibilityEvent;
 
 import java.util.TreeSet;
 
@@ -125,6 +126,16 @@
                     mCheckBoxListListener.onStartDisplayingCheckBoxes();
                 }
                 getAdapter().toggleSelectionOfContactId(Long.valueOf(contactId));
+                // Sending an accessibility event of TYPE_VIEW_CLICKED and forcing Talkback to be
+                // performed on the checkbox.
+                // We need to:
+                // 1. consider the difference between position and adjPosition;
+                // 2. make sure the list item is not null before sending the event.
+                final int adjPosition = position + getListView().getHeaderViewsCount();
+                if (getListView() != null && adjPosition < getListView().getChildCount()) {
+                    getListView().getChildAt(adjPosition).sendAccessibilityEvent(AccessibilityEvent
+                            .TYPE_VIEW_CLICKED);
+                }
             }
         }
         final int nowSelectedCount = getAdapter().getSelectedContactIds().size();