Add talkback for long press and remove contact from starred list.

The remove button will be announced when user hovers contact onto it or
drop it.

Bug: 25559343
Change-Id: I31f51f6d074d8b1721439e7a484e1e316cb006fe
diff --git a/res/layout/lists_fragment.xml b/res/layout/lists_fragment.xml
index 1942a96..bff729c 100644
--- a/res/layout/lists_fragment.xml
+++ b/res/layout/lists_fragment.xml
@@ -58,7 +58,9 @@
         android:layout_width="match_parent"
         android:layout_height="@dimen/tab_height"
         android:layout_marginTop="@dimen/action_bar_height_large"
-        android:layout_alignParentTop="true" >
+        android:layout_alignParentTop="true"
+        android:contentDescription="@string/remove_contact"
+        android:visibility="gone" >
 
         <LinearLayout
             android:id="@+id/remove_view_content"
@@ -66,8 +68,7 @@
             android:layout_width="match_parent"
             android:background="@color/actionbar_background_color"
             android:gravity="center"
-            android:orientation="horizontal"
-            android:visibility="gone" >
+            android:orientation="horizontal">
 
             <ImageView
                 android:layout_width="wrap_content"
@@ -76,7 +77,6 @@
                 android:layout_marginBottom="8dp"
                 android:id="@+id/remove_view_icon"
                 android:src="@drawable/ic_remove"
-                android:contentDescription="@string/remove_contact"
                 android:tint="@color/remove_text_color" />
 
             <TextView
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index 5b7c950..2020934 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -80,7 +80,6 @@
     private ViewPagerTabs mViewPagerTabs;
     private ViewPagerAdapter mViewPagerAdapter;
     private RemoveView mRemoveView;
-    private View mRemoveViewContent;
 
     private SpeedDialFragment mSpeedDialFragment;
     private CallLogFragment mHistoryFragment;
@@ -230,7 +229,6 @@
         addOnPageChangeListener(mViewPagerTabs);
 
         mRemoveView = (RemoveView) parentView.findViewById(R.id.remove_view);
-        mRemoveViewContent = parentView.findViewById(R.id.remove_view_content);
 
         Trace.endSection();
         Trace.endSection();
@@ -401,7 +399,7 @@
 
 
     public void showRemoveView(boolean show) {
-        mRemoveViewContent.setVisibility(show ? View.VISIBLE : View.GONE);
+        mRemoveView.setVisibility(show ? View.VISIBLE : View.GONE);
         mRemoveView.setAlpha(show ? 0 : 1);
         mRemoveView.animate().alpha(show ? 1 : 0).start();
     }
diff --git a/src/com/android/dialer/list/RemoveView.java b/src/com/android/dialer/list/RemoveView.java
index fdb08f6..41f4175 100644
--- a/src/com/android/dialer/list/RemoveView.java
+++ b/src/com/android/dialer/list/RemoveView.java
@@ -6,6 +6,7 @@
 import android.util.AttributeSet;
 import android.util.Log;
 import android.view.DragEvent;
+import android.view.accessibility.AccessibilityEvent;
 import android.widget.FrameLayout;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
@@ -53,6 +54,9 @@
         final int action = event.getAction();
         switch (action) {
             case DragEvent.ACTION_DRAG_ENTERED:
+                // TODO: This is temporary solution and should be removed once accessibility for
+                // drag and drop is supported by framework(b/26871588).
+                sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT);
                 setAppearanceHighlighted();
                 break;
             case DragEvent.ACTION_DRAG_EXITED:
@@ -65,6 +69,7 @@
                 }
                 break;
             case DragEvent.ACTION_DROP:
+                sendAccessibilityEvent(AccessibilityEvent.TYPE_ANNOUNCEMENT);
                 if (mDragDropController != null) {
                     mDragDropController.handleDragFinished((int) event.getX(), (int) event.getY(),
                             true);