Merge "Add accessibility announcements for call state changes" into lmp-dev
diff --git a/InCallUI/res/layout/primary_call_info.xml b/InCallUI/res/layout/primary_call_info.xml
index 4231922..1f3b954 100644
--- a/InCallUI/res/layout/primary_call_info.xml
+++ b/InCallUI/res/layout/primary_call_info.xml
@@ -47,7 +47,7 @@
             android:layout_marginEnd="4dp"
             android:baselineAlignBottom="true"
             android:tint="@color/incall_accent_color"
-            android:alpha="0.7"
+            android:alpha="0.0"
             android:scaleType="centerInside"
             android:visibility="gone" />
 
diff --git a/InCallUI/res/layout/select_account_list_item.xml b/InCallUI/res/layout/select_account_list_item.xml
index 0b24c9b..1999fce 100644
--- a/InCallUI/res/layout/select_account_list_item.xml
+++ b/InCallUI/res/layout/select_account_list_item.xml
@@ -15,7 +15,8 @@
 -->
 
 <!-- Layout of a single item in the InCallUI Account Chooser Dialog. -->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<view class="com.android.contacts.common.widget.ActivityTouchLinearLayout"
+    xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="horizontal"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
@@ -24,6 +25,7 @@
     <ImageView android:id="@+id/icon"
                android:layout_width="48dp"
                android:layout_height="48dp"
+               android:tint="@color/dialtacts_secondary_text_color"
                android:scaleType="center" />
 
     <TextView android:id="@+id/text"
@@ -33,4 +35,4 @@
               android:layout_width="0dp"
               android:layout_weight="1"
               android:layout_height="match_parent" />
-</LinearLayout>
+</view>
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index 1319246..bd32684 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -502,6 +502,7 @@
                 mCallStateIcon.setVisibility(View.GONE);
             } else {
                 mCallStateIcon.setVisibility(View.VISIBLE);
+                mCallStateIcon.setImageAlpha(255);
                 mCallStateIcon.setImageDrawable(connectionIcon);
             }
 
@@ -515,8 +516,10 @@
 
             if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) {
                 mCallStateLabel.clearAnimation();
+                mCallStateIcon.clearAnimation();
             } else {
                 mCallStateLabel.startAnimation(mPulseAnimation);
+                mCallStateIcon.startAnimation(mPulseAnimation);
             }
         } else {
             Animation callStateAnimation = mCallStateLabel.getAnimation();
@@ -526,6 +529,8 @@
             mCallStateLabel.setText(null);
             mCallStateLabel.setAlpha(0);
             mCallStateLabel.setVisibility(View.GONE);
+            mCallStateIcon.setImageAlpha(0);
+            mCallStateIcon.setVisibility(View.GONE);
 
             mCallStateVideoCallIcon.setVisibility(View.GONE);
         }
@@ -962,6 +967,7 @@
             @Override
             public void onAnimationStart(Animator animation) {
                 assignTranslateAnimation(mCallStateLabel, 1);
+                assignTranslateAnimation(mCallStateIcon, 1);
                 assignTranslateAnimation(mPrimaryName, 2);
                 assignTranslateAnimation(mCallNumberAndLabel, 3);
                 assignTranslateAnimation(mCallTypeLabel, 4);
diff --git a/InCallUI/src/com/android/incallui/InCallActivity.java b/InCallUI/src/com/android/incallui/InCallActivity.java
index cbb2af2..02635dc 100644
--- a/InCallUI/src/com/android/incallui/InCallActivity.java
+++ b/InCallUI/src/com/android/incallui/InCallActivity.java
@@ -454,14 +454,20 @@
                 intent.removeExtra(NEW_OUTGOING_CALL);
 
                 Point touchPoint = null;
-                Call call = CallList.getInstance().getOutgoingCall();
-                if (call == null) {
-                    call = CallList.getInstance().getPendingOutgoingCall();
-                }
-                if (call != null) {
-                    Bundle extras = call.getTelecommCall().getDetails().getExtras();
-                    touchPoint = (Point) (extras == null ?
-                            null : extras.getParcelable(TouchPointManager.TOUCH_POINT));
+                if (TouchPointManager.getInstance().hasValidPoint()) {
+                    // Use the most immediate touch point in the InCallUi if available
+                    touchPoint = TouchPointManager.getInstance().getPoint();
+                } else {
+                    // Otherwise retrieve the touch point from the call intent
+                    Call call = CallList.getInstance().getOutgoingCall();
+                    if (call == null) {
+                        call = CallList.getInstance().getPendingOutgoingCall();
+                    }
+                    if (call != null) {
+                        Bundle extras = call.getTelecommCall().getDetails().getExtras();
+                        touchPoint = (Point) (extras == null ?
+                                null : extras.getParcelable(TouchPointManager.TOUCH_POINT));
+                    }
                 }
                 mCallCardFragment.animateForNewOutgoingCall(touchPoint);
             }
diff --git a/InCallUI/src/com/android/incallui/TelecommAdapter.java b/InCallUI/src/com/android/incallui/TelecommAdapter.java
index 22aff11..1f5c9c5 100644
--- a/InCallUI/src/com/android/incallui/TelecommAdapter.java
+++ b/InCallUI/src/com/android/incallui/TelecommAdapter.java
@@ -220,5 +220,9 @@
         }  else {
             Log.e(this, "error phoneAccountSelected, mAdapter is null");
         }
+
+        if (accountHandle == null) {
+            Log.e(this, "error phoneAccountSelected, accountHandle is null");
+        }
     }
 }