Adding in call screen template.

Along with glow pad for incoming call interaction..

Change-Id: I8d518b5247bee4a10c8fd06763a7e3fe6cff5652
diff --git a/res/layout/incall_screen.xml b/res/layout/incall_screen.xml
new file mode 100644
index 0000000..32159a6
--- /dev/null
+++ b/res/layout/incall_screen.xml
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2007 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.
+-->
+
+<!-- In-call Phone UI; see InCallActivity.java. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              xmlns:dc="http://schemas.android.com/apk/res-auto"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical">
+
+    <View android:layout_width="wrap_content"
+          android:layout_height="0dp"
+          android:layout_weight="1"
+          android:background="#ddd"/>
+
+    <!-- TODO(klp): move out to separate file -->
+    <com.android.incallui.widget.multiwaveview.GlowPadView
+            android:id="@+id/glow_pad_view"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="@dimen/glowpadview_margin_bottom"
+            android:focusable="true"
+            android:layout_alignParentBottom="true"
+            android:layout_centerHorizontal="true"
+            android:gravity="center"
+            android:layout_gravity="center_vertical"
+
+            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:outerRingDrawable="@*android:drawable/ic_lockscreen_outerring"
+            dc:outerRadius="@dimen/glowpadview_target_placement_radius"
+            dc:innerRadius="@dimen/glowpadview_inner_radius"
+            dc:snapMargin="@dimen/glowpadview_snap_margin"
+            dc:feedbackCount="1"
+            dc:vibrationDuration="20"
+            dc:glowRadius="@dimen/glowpadview_glow_radius"
+            dc:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"
+            />
+
+</LinearLayout>
diff --git a/res/layout/primary_call_info.xml b/res/layout/primary_call_info.xml
new file mode 100644
index 0000000..39c3873
--- /dev/null
+++ b/res/layout/primary_call_info.xml
@@ -0,0 +1,213 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2013 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
+  -->
+
+<!-- XML resource file for primary call info, which will be used by CallCard.
+     See also call_card.xml. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="0dp"
+    android:layout_weight="1">
+
+    <!-- Contact photo for primary call info -->
+    <ImageView android:id="@+id/photo"
+         android:layout_alignParentStart="true"
+         android:layout_alignParentTop="true"
+         android:layout_width="match_parent"
+         android:layout_height="match_parent"
+         android:gravity="top|center_horizontal"
+         android:scaleType="centerCrop"
+         android:contentDescription="@string/contactPhoto" />
+
+    <!-- Used when the phone call is on hold, dimming the primary photo
+
+         Note: Theoretically it is possible to achieve this effect using
+         Drawable#setColorFilter().
+
+         But watch out: we also use cross fade between primary and
+         secondary photo, which may interfere with the dim effect with
+         setColorFilter(). To try it out, use GSM phones and do multiple
+         calls.
+
+         Detail: during the cross-fade effect we are currently using
+         TransitionDrawable. TransitionDrawable#setColorFilter() will call
+         the equivalent method for *both* drawables which are shared by
+         the two ImageViews. If we set setColorFilter() for "on hold" effect
+         during the cross-fade, *both* primary and secondary photos become
+         dim.
+
+         Theoretically it can be avoided (by copying drawable, or carefully
+         calling setColorFilter() conditionally. But it doesn't bang for the
+         buck for now.
+
+         TODO: try that. It may be smoother with slower devices.
+      -->
+    <View android:id="@+id/dim_effect_for_primary_photo"
+         android:layout_alignParentStart="true"
+         android:layout_alignParentTop="true"
+         android:layout_width="match_parent"
+         android:layout_height="match_parent"
+         android:background="@color/on_hold_dim_effect"
+         android:visibility="gone" />
+
+    <!-- "Call Banner" for primary call, the foregound or ringing call.
+         The "call banner" is a block of info about a single call,
+         including the contact name, phone number, call time counter,
+         and other status info.  This info is shown as a "banner"
+         overlaid across the top of contact photo. -->
+    <RelativeLayout android:id="@+id/primary_call_banner"
+        style="@style/PrimaryCallInfoPrimaryCallBanner"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:minHeight="@dimen/call_banner_height"
+        android:paddingStart="@dimen/call_banner_side_padding"
+        android:paddingEnd="@dimen/call_banner_side_padding"
+        android:paddingTop="@dimen/call_banner_top_bottom_padding"
+        android:paddingBottom="@dimen/call_banner_top_bottom_padding"
+        android:background="@color/incall_call_banner_background">
+
+        <!-- Name (or the phone number, if we don't have a name to display). -->
+        <TextView android:id="@+id/name"
+            android:layout_alignParentTop="true"
+            android:layout_alignParentStart="true"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingEnd="@dimen/call_banner_name_number_right_padding"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textColor="@color/incall_call_banner_text_color"
+            android:singleLine="true"
+            android:textAlignment="viewStart"/>
+
+        <!-- Label (like "Mobile" or "Work", if present) and phone number, side by side -->
+        <LinearLayout android:id="@+id/labelAndNumber"
+            android:layout_below="@id/name"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:paddingEnd="@dimen/call_banner_name_number_right_padding"
+            android:orientation="horizontal">
+            <TextView android:id="@+id/phoneNumber"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textColor="@color/incall_call_banner_text_color"
+                android:singleLine="true"
+                android:textDirection="ltr" />
+            <TextView android:id="@+id/label"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textColor="@color/incall_call_banner_text_color"
+                android:textAllCaps="true"
+                android:singleLine="true"
+                android:layout_marginStart="6dp" />
+        </LinearLayout>
+
+        <!-- Elapsed time indication for a call in progress. -->
+        <TextView android:id="@+id/elapsedTime"
+            android:layout_alignParentEnd="true"
+            android:layout_centerVertical="true"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textColor="@color/incall_call_banner_text_color"
+            android:singleLine="true"
+            android:visibility="invisible" />
+
+        <!-- Call type indication: a special label and/or branding
+             for certain kinds of calls (like "Internet call" for a SIP call.) -->
+        <TextView android:id="@+id/callTypeLabel"
+            android:layout_below="@id/labelAndNumber"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="@color/incall_call_banner_text_color"
+            android:maxLines="1"
+            android:ellipsize="end" />
+
+    </RelativeLayout>  <!-- End of call_banner -->
+
+    <LinearLayout android:id="@+id/secondary_info_container"
+        style="@style/PrimaryCallInfoSecondaryInfoContainer"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center_vertical|right"
+        android:orientation="vertical"
+        android:background="@color/incall_secondary_info_background"
+        android:animateLayoutChanges="true">
+
+        <!-- Shown when a gateway provider is used during any outgoing call. -->
+        <LinearLayout android:id="@+id/providerInfo"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="@dimen/provider_info_top_bottom_padding"
+            android:paddingBottom="@dimen/provider_info_top_bottom_padding"
+            android:paddingStart="@dimen/call_banner_side_padding"
+            android:paddingEnd="@dimen/call_banner_side_padding"
+            android:gravity="end"
+            android:orientation="horizontal"
+            android:background="@android:color/transparent">
+            <TextView android:id="@+id/providerLabel"
+                android:layout_width="0px"
+                android:layout_height="wrap_content"
+                android:layout_weight="6"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textAllCaps="true"
+                android:textColor="@color/incall_call_banner_text_color"
+                android:singleLine="true"
+                android:ellipsize="marquee" />
+            <TextView android:id="@+id/providerAddress"
+                android:layout_width="0px"
+                android:layout_height="wrap_content"
+                android:layout_weight="4"
+                android:gravity="end"
+                android:paddingStart="8dp"
+                android:textAppearance="?android:attr/textAppearanceSmall"
+                android:textAllCaps="true"
+                android:textColor="@color/incall_call_banner_text_color"
+                android:singleLine="true"
+                android:ellipsize="middle" />
+        </LinearLayout>
+
+        <!-- The "call state label": In some states, this shows a special
+             indication like "Dialing" or "Incoming call" or "Call ended".
+             It's unused for the normal case of an active ongoing call. -->
+        <TextView android:id="@+id/callStateLabel"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="@dimen/provider_info_top_bottom_padding"
+            android:paddingBottom="@dimen/provider_info_top_bottom_padding"
+            android:paddingStart="@dimen/call_banner_side_padding"
+            android:paddingEnd="@dimen/call_banner_side_padding"
+            android:gravity="end"
+            android:textAppearance="?android:attr/textAppearanceSmall"
+            android:textColor="@color/incall_call_banner_text_color"
+            android:textAllCaps="true"
+            android:background="@android:color/transparent"
+            android:singleLine="true"
+            android:ellipsize="end" />
+    </LinearLayout>
+
+    <!-- Social status (currently unused) -->
+    <!-- <TextView android:id="@+id/socialStatus"
+              android:layout_below="@id/callTypeLabel"
+              android:layout_width="wrap_content"
+              android:layout_height="wrap_content"
+              android:textAppearance="?android:attr/textAppearanceSmall"
+              android:textColor="@color/incall_call_banner_text_color"
+              android:maxLines="2"
+              android:ellipsize="end"
+              /> -->
+</LinearLayout>