Show different glowpad options for incoming video call.

- Refactor code be more flexibile/specific in specifying the targets
for the glow pad; went from "n-way" labeling of different target sets
to more explicit labeling of scenarios, such as "audio without sms".
- Add target sets and cases for showing targest in AnswerFragment.
- Added new drawable for the target to answer a video call.
- Add method to GlowPadView to allow changing the handle (now it may
be either a videocamera or phone icon, depending on the scenario).
- Add a new video handle for incoming video calls.
- TODO: Hook this up to show these glowpads if there is an incoming
video call.
- Deleted some unused resource files.

Bug: 16015750
Change-Id: I77ff08f45f57cd2817866b5d78648af8891bb675
diff --git a/InCallUI/res/drawable-hdpi/ic_in_call_touch_handle_normal.png b/InCallUI/res/drawable-hdpi/ic_in_call_touch_handle_normal.png
deleted file mode 100644
index e852534..0000000
--- a/InCallUI/res/drawable-hdpi/ic_in_call_touch_handle_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-ldrtl-hdpi/ic_in_call_touch_handle_normal.png b/InCallUI/res/drawable-ldrtl-hdpi/ic_in_call_touch_handle_normal.png
deleted file mode 100644
index 4a3628b..0000000
--- a/InCallUI/res/drawable-ldrtl-hdpi/ic_in_call_touch_handle_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-ldrtl-mdpi/ic_in_call_touch_handle_normal.png b/InCallUI/res/drawable-ldrtl-mdpi/ic_in_call_touch_handle_normal.png
deleted file mode 100644
index 13b2ecf..0000000
--- a/InCallUI/res/drawable-ldrtl-mdpi/ic_in_call_touch_handle_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-ldrtl-xhdpi/ic_in_call_touch_handle_normal.png b/InCallUI/res/drawable-ldrtl-xhdpi/ic_in_call_touch_handle_normal.png
deleted file mode 100644
index c707950..0000000
--- a/InCallUI/res/drawable-ldrtl-xhdpi/ic_in_call_touch_handle_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-mdpi/ic_in_call_touch_handle_normal.png b/InCallUI/res/drawable-mdpi/ic_in_call_touch_handle_normal.png
deleted file mode 100644
index cebdc4d..0000000
--- a/InCallUI/res/drawable-mdpi/ic_in_call_touch_handle_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xhdpi/ic_in_call_touch_handle_normal.png b/InCallUI/res/drawable-xhdpi/ic_in_call_touch_handle_normal.png
deleted file mode 100644
index 1d112f2..0000000
--- a/InCallUI/res/drawable-xhdpi/ic_in_call_touch_handle_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable-xxhdpi/ic_in_call_touch_handle_normal.png b/InCallUI/res/drawable-xxhdpi/ic_in_call_touch_handle_normal.png
deleted file mode 100644
index b41967b..0000000
--- a/InCallUI/res/drawable-xxhdpi/ic_in_call_touch_handle_normal.png
+++ /dev/null
Binary files differ
diff --git a/InCallUI/res/drawable/ic_in_call_touch_handle.xml b/InCallUI/res/drawable/ic_incall_audio_handle.xml
similarity index 95%
rename from InCallUI/res/drawable/ic_in_call_touch_handle.xml
rename to InCallUI/res/drawable/ic_incall_audio_handle.xml
index 47d902b..fd40e51 100644
--- a/InCallUI/res/drawable/ic_in_call_touch_handle.xml
+++ b/InCallUI/res/drawable/ic_incall_audio_handle.xml
@@ -17,7 +17,7 @@
 <!-- Touch handle for the GlowPadView widget on the incoming call screen -->
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 
-    <!-- Call icon on tinted floating action bar background. -->
+    <!-- Audio call icon on tinted floating action bar background. -->
     <item
         android:state_enabled="true"
         android:state_active="false"
diff --git a/InCallUI/res/drawable/ic_incall_video_handle.xml b/InCallUI/res/drawable/ic_incall_video_handle.xml
new file mode 100644
index 0000000..80636af
--- /dev/null
+++ b/InCallUI/res/drawable/ic_incall_video_handle.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+
+<!-- Touch handle for the GlowPadView widget on the incoming call screen -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <!-- Video call icon on tinted floating action bar background. -->
+    <item
+        android:state_enabled="true"
+        android:state_active="false"
+        android:state_focused="false">
+        <layer-list>
+            <item>
+                <bitmap
+                    android:src="@drawable/fab_teal_background"
+                    android:tint="@color/glowpad_incoming_widget_background_tint" />
+            </item>
+            <item>
+                <bitmap
+                    android:gravity="center"
+                    android:src="@drawable/ic_videocam"
+                    android:tint="@color/glowpad_incoming_widget_tint" />
+            </item>
+        </layer-list>
+    </item>
+
+</selector>
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer_video.xml b/InCallUI/res/drawable/ic_lockscreen_answer_video.xml
new file mode 100644
index 0000000..0557797
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_answer_video.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<!-- Used with incoming call wigdet. -->
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item
+        android:state_enabled="true" android:state_active="false" android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_answer_video_normal_layer"/>
+    <item
+        android:state_enabled="true" android:state_active="true"  android:state_focused="false"
+        android:drawable="@drawable/ic_lockscreen_answer_video_activated_layer" />
+   <item
+        android:state_enabled="true" android:state_active="false"  android:state_focused="true"
+        android:drawable="@drawable/ic_lockscreen_answer_video_activated_layer" />
+</selector>
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer_video_activated_layer.xml b/InCallUI/res/drawable/ic_lockscreen_answer_video_activated_layer.xml
new file mode 100644
index 0000000..3cb7692
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_answer_video_activated_layer.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/fab_teal_background" />
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/ic_videocam"
+            android:tint="@color/glowpad_widget_active_color" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/drawable/ic_lockscreen_answer_video_normal_layer.xml b/InCallUI/res/drawable/ic_lockscreen_answer_video_normal_layer.xml
new file mode 100644
index 0000000..708bbcc
--- /dev/null
+++ b/InCallUI/res/drawable/ic_lockscreen_answer_video_normal_layer.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2014 The Android Open Source Project
+  ~
+  ~ Licensed under the Apache License, Version 2.0 (the "License");
+  ~ you may not use this file except in compliance with the License.
+  ~ You may obtain a copy of the License at
+  ~
+  ~      http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License
+  -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- A fake circle to fix the size of this layer asset. -->
+    <item>
+        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">
+            <solid android:color="#00000000"/>
+            <size
+                android:width="@dimen/incoming_call_widget_circle_size"
+                android:height="@dimen/incoming_call_widget_circle_size" />
+        </shape>
+    </item>
+    <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@drawable/ic_videocam"
+            android:tint="@color/glowpad_call_widget_normal_tint" />
+    </item>
+</layer-list>
diff --git a/InCallUI/res/layout/answer_fragment.xml b/InCallUI/res/layout/answer_fragment.xml
index 92630b8..7026dd1 100644
--- a/InCallUI/res/layout/answer_fragment.xml
+++ b/InCallUI/res/layout/answer_fragment.xml
@@ -28,10 +28,10 @@
         android:background="@color/glowpad_background_color"
         android:visibility="gone"
 
-        dc:targetDrawables="@array/incoming_call_widget_3way_targets"
-        dc:targetDescriptions="@array/incoming_call_widget_3way_target_descriptions"
-        dc:directionDescriptions="@array/incoming_call_widget_3way_direction_descriptions"
-        dc:handleDrawable="@drawable/ic_in_call_touch_handle"
+        dc:targetDrawables="@array/incoming_call_widget_audio_with_sms_targets"
+        dc:targetDescriptions="@array/incoming_call_widget_audio_with_sms_target_descriptions"
+        dc:directionDescriptions="@array/incoming_call_widget_audio_with_sms_direction_descriptions"
+        dc:handleDrawable="@drawable/ic_incall_audio_handle"
         dc:outerRingDrawable="@drawable/ic_lockscreen_outerring"
         dc:outerRadius="@dimen/glowpadview_target_placement_radius"
         dc:innerRadius="@dimen/glowpadview_inner_radius"
@@ -40,5 +40,4 @@
         dc:vibrationDuration="20"
         dc:glowRadius="@dimen/glowpadview_glow_radius"
         dc:pointDrawable="@drawable/ic_lockscreen_glowdot"
-        dc:allowScaling="true"
-        />
+        dc:allowScaling="true" />
diff --git a/InCallUI/res/values/array.xml b/InCallUI/res/values/array.xml
index 3902e84..b741905 100644
--- a/InCallUI/res/values/array.xml
+++ b/InCallUI/res/values/array.xml
@@ -20,50 +20,95 @@
     <!-- "Target" resources for the GlowPadView widget used for incoming calls;
          see InCallTouchUi.showIncomingCallWidget() and incall_touch_ui.xml.  -->
 
-    <!-- For most incoming calls the GlowPadView widget provides 3 choices:
+    <!-- For audio calls, if respond via SMS is disabled:
          - Answer (drag right)
-         - Reject (drag left)
-         - Respond via SMS (drag up) -->
-    <array name="incoming_call_widget_3way_targets">
+         - Decline (drag left) -->
+    <array name="incoming_call_widget_audio_without_sms_targets">
+        <item>@drawable/ic_lockscreen_answer</item>
+        <item>@null</item>
+        <item>@drawable/ic_lockscreen_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_audio_without_sms_target_descriptions">
+        <item>@string/description_target_answer</item>
+        <item>@null</item>
+        <item>@string/description_target_decline</item>
+        <item>@null</item>"
+    </array>
+    <array name="incoming_call_widget_audio_without_sms_direction_descriptions">
+        <item>@string/description_direction_right</item>
+        <item>@null</item>
+        <item>@string/description_direction_left</item>
+        <item>@null</item>
+    </array>
+
+    <!-- For audio calls, if respond via SMS is enabled:
+         - Answer (drag right)
+         - Respond via SMS (drag up)
+         - Decline (drag left) -->
+    <array name="incoming_call_widget_audio_with_sms_targets">
         <item>@drawable/ic_lockscreen_answer</item>
         <item>@drawable/ic_lockscreen_text</item>
         <item>@drawable/ic_lockscreen_decline</item>
         <item>@null</item>"
     </array>
-    <array name="incoming_call_widget_3way_target_descriptions">
+    <array name="incoming_call_widget_audio_with_sms_target_descriptions">
         <item>@string/description_target_answer</item>
         <item>@string/description_target_send_sms</item>
         <item>@string/description_target_decline</item>
         <item>@null</item>"
     </array>
-    <array name="incoming_call_widget_3way_direction_descriptions">
+    <array name="incoming_call_widget_audio_with_sms_direction_descriptions">
         <item>@string/description_direction_right</item>
         <item>@string/description_direction_up</item>
         <item>@string/description_direction_left</item>
         <item>@null</item>
     </array>
 
-    <!-- But in some cases "Respond via SMS" isn't available, so there are
-         only 2 choices:
-         - Answer (drag right)
-         - Reject (drag left) -->
-    <array name="incoming_call_widget_2way_targets">
+    <!-- For video calls, if respond via SMS is disabled:
+         - Answer as video call (drag right)
+         - Decline (drag left)
+         - Answer as audio call (drag down) -->
+    <array name="incoming_call_widget_video_without_sms_targets">
         <item>@drawable/ic_lockscreen_answer</item>
         <item>@null</item>
         <item>@drawable/ic_lockscreen_decline</item>
-        <item>@null</item>"
+        <item>@drawable/ic_lockscreen_answer_video</item>
     </array>
-    <array name="incoming_call_widget_2way_target_descriptions">
-        <item>@string/description_target_answer</item>
+    <array name="incoming_call_widget_video_without_sms_target_descriptions">
+        <item>@string/description_target_answer_video_call</item>
         <item>@null</item>
         <item>@string/description_target_decline</item>
-        <item>@null</item>"
+        <item>@string/description_target_answer_audio_call</item>
     </array>
-    <array name="incoming_call_widget_2way_direction_descriptions">
+    <array name="incoming_call_widget_video_without_sms_direction_descriptions">
         <item>@string/description_direction_right</item>
         <item>@null</item>
         <item>@string/description_direction_left</item>
-        <item>@null</item>
+        <item>@string/description_direction_down</item>
     </array>
 
+    <!-- For video calls, if respond via SMS is enabled:
+         - Answer as video call (drag right)
+         - Respond via SMS (drag up)
+         - Decline (drag left)
+         - Answer as audio call (drag down) -->
+    <array name="incoming_call_widget_video_with_sms_targets">
+        <item>@drawable/ic_lockscreen_answer_video</item>
+        <item>@drawable/ic_lockscreen_text</item>
+        <item>@drawable/ic_lockscreen_decline</item>
+        <item>@drawable/ic_lockscreen_answer</item>
+    </array>
+    <array name="incoming_call_widget_video_with_sms_target_descriptions">
+        <item>@string/description_target_answer_video_call</item>
+        <item>@string/description_target_send_sms</item>
+        <item>@string/description_target_decline</item>
+        <item>@string/description_target_answer_audio_call</item>
+    </array>
+    <array name="incoming_call_widget_video_with_sms_direction_descriptions">
+        <item>@string/description_direction_right</item>
+        <item>@string/description_direction_up</item>
+        <item>@string/description_direction_left</item>
+        <item>@string/description_direction_down</item>
+    </array>
 </resources>