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);