Blanket copy of PhoneApp to services/Telephony.

First phase of splitting out InCallUI from PhoneApp.

Change-Id: I237341c4ff00e96c677caa4580b251ef3432931b
diff --git a/res/layout-land/incall_touch_ui.xml b/res/layout-land/incall_touch_ui.xml
new file mode 100644
index 0000000..c6bbe5c
--- /dev/null
+++ b/res/layout-land/incall_touch_ui.xml
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2012 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 onscreen touch UI elements, used on some platforms.
+
+     This layout is a fullscreen overlay, drawn on top of the
+     non-touch-sensitive parts of the in-call UI (i.e. the call card).
+
+     The top-level View here is a InCallTouchUi (FrameLayout) with 2 children:
+       (1) inCallControls: the widgets visible while a regular call (or calls) is in progress
+       (2) incomingCallWidget: the UI displayed while an incoming call is ringing
+     In usual cases, one of these is visible at any given moment.
+     One exception is when incomingCallWidget is fading-out. At that moment, we show
+     inCallControls beneath incomingCallWidget for smoother transition.
+     -->
+<com.android.phone.InCallTouchUi xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:prvandroid="http://schemas.android.com/apk/prv/res/android"
+    android:id="@+id/inCallTouchUi"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!--
+        (1) inCallControls: the widgets visible while a regular call
+        (or calls) is in progress
+    -->
+    <LinearLayout
+        android:id="@+id/inCallControls"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:visibility="gone">
+
+        <!-- DTMF dialpad shown in the left part of the screen.
+             This is wrapped in a FrameLayout because otherwise the ViewStub has no width,
+             causing the other buttons to span the full width of the screen -->
+        <FrameLayout
+            android:layout_width="0dp"
+            android:layout_weight="3"
+            android:layout_height="match_parent">
+            <ViewStub
+                android:id="@+id/dtmf_twelve_key_dialer_stub"
+                android:layout="@layout/dtmf_twelve_key_dialer_view"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent" />
+
+            <!-- The "extra button row": Rare button used for statues such as conference
+                 calls (GSM). Refer to layout(portrait)/incall_touch_ui for more details.
+                 When shown, this extra button row hovers over the call card, just above
+                 the primary_call_banner of layout-land/primary_call_info. -->
+            <ViewStub
+                android:id="@+id/extraButtonRow"
+                android:layout_gravity="bottom"
+                android:layout_marginBottom="@dimen/call_banner_height"
+                android:layout="@layout/extra_button_row"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content" />
+        </FrameLayout>
+
+        <!-- Note: This center margin is repeated in layout-land/incall_screen -->
+        <View
+            android:layout_width="@dimen/dialpad_center_margin"
+            android:layout_height="match_parent"
+            android:background="#66000000" />
+
+        <!-- Cluster of buttons on the right part of the screen.
+             It is named id/bottomButtons from the naming when in portrait layout. -->
+        <LinearLayout
+            android:id="@+id/bottomButtons"
+            android:background="@drawable/dialpad_background"
+            android:orientation="vertical"
+            android:layout_width="0dp"
+            android:layout_weight="2"
+            android:layout_height="match_parent">
+
+            <LinearLayout
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:layout_width="match_parent">
+                <!-- "Audio mode" -->
+                <!-- This is a multi-mode button that can behave either like a
+                     simple "compound button" with two states *or* like an
+                     action button that brings up a popup menu; see
+                     btn_compound_audio.xml and InCallTouchUi.updateAudioButton()
+                     for the full details. -->
+                <ToggleButton
+                    android:id="@+id/audioButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_audio"
+                    android:contentDescription="@string/onscreenAudioText" />
+
+                <View
+                    android:layout_width="@dimen/dialpad_button_margin"
+                    android:layout_height="match_parent"
+                    android:background="#66000000" />
+
+                <!-- This slot is either "Hold" or "Swap", depending on
+                     the state of the call.   One or the other of these
+                     must always be set to GONE. -->
+                <!-- "Hold" -->
+                <!-- This is a "compound button": it has checked and unchecked states. -->
+                <ToggleButton
+                    android:id="@+id/holdButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_hold"
+                    android:contentDescription="@string/onscreenHoldText" />
+                <!-- "Swap" (or "Manage calls" in some CDMA states) -->
+                <ImageButton
+                    android:id="@+id/swapButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_incall_switch_holo_dark"
+                    android:contentDescription="@string/onscreenSwapCallsText" />
+            </LinearLayout>
+
+            <View
+                android:layout_height="@dimen/dialpad_button_margin"
+                android:layout_width="match_parent"
+                android:background="#66000000" />
+
+            <LinearLayout
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:layout_width="match_parent">
+                <ToggleButton
+                    android:id="@+id/muteButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_mute"
+                    android:contentDescription="@string/onscreenMuteText" />
+                <View
+                    android:layout_width="@dimen/dialpad_button_margin"
+                    android:layout_height="match_parent"
+                    android:background="#66000000" />
+
+                <!-- "Video call" -->
+                <ImageButton
+                    android:id="@+id/videoCallButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_videocall_holo_dark"
+                    android:contentDescription="@string/onscreenVideoCallText" />
+            </LinearLayout>
+
+            <View
+                android:layout_height="@dimen/dialpad_button_margin"
+                android:layout_width="match_parent"
+                android:background="#66000000" />
+
+            <LinearLayout
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:layout_width="match_parent">
+                <ToggleButton
+                    android:id="@+id/dialpadButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_dialpad"
+                    android:contentDescription="@string/onscreenShowDialpadText" />
+                <View
+                    android:layout_width="@dimen/dialpad_button_margin"
+                    android:layout_height="match_parent"
+                    android:background="#66000000" />
+                <!-- This slot is either "Add" or "Merge", depending on
+                     the state of the call.  One or the other of these
+                     must always be set to GONE. -->
+                <!-- "Add Call" -->
+                <ImageButton
+                    android:id="@+id/addButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_add_contact_holo_dark"
+                    android:contentDescription="@string/onscreenAddCallText" />
+                <!-- "Merge calls" -->
+                <!-- This button is used only on GSM devices, where we know
+                     that "Add" and "Merge" are never available at the same time.
+                     The "Merge" button for CDMA devices is "cdmaMergeButton" above. -->
+                <ImageButton
+                    android:id="@+id/mergeButton"
+                    android:layout_width="0dp"
+                    android:layout_weight="1"
+                    android:layout_height="match_parent"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_merge_holo_dark"
+                    android:contentDescription="@string/onscreenMergeCallsText" />
+            </LinearLayout>
+
+            <!-- This spacer is not used in GSM, so it has 0 width and height. The CDMA
+                 incall_touch_ui_cdma uses it as a spacer when a 5th button is shown. -->
+            <View
+                android:id="@+id/holdSwapSpacer"
+                android:layout_width="0dp"
+                android:layout_height="0dp" />
+            <View
+                android:layout_height="@dimen/dialpad_button_margin"
+                android:layout_width="match_parent"
+                android:background="#66000000" />
+            <ImageButton
+                android:id="@+id/endButton"
+                android:layout_height="@dimen/in_call_end_button_height"
+                android:layout_width="match_parent"
+                android:src="@drawable/ic_dial_end_call"
+                android:background="@drawable/end_call_background"
+                android:contentDescription="@string/onscreenEndCallText" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <!--
+        (2) incomingCallWidget: the UI displayed while an incoming call is ringing.
+            See InCallTouchUi.showIncomingCallWidget().
+
+            Layout notes:
+            - Use an opaque black background since we need to cover up
+              a bit of the bottom of the contact photo
+            - The verticalOffset value gets us a little extra space above
+              the topmost "Respond by SMS" icon
+            - The negative layout_marginBottom shifts us slightly downward;
+              we're already aligned with the bottom of the screen, but we
+              don't have an icon in the downward direction so the whole
+              bottom area of this widget is just wasted space.
+    -->
+    <com.android.internal.widget.multiwaveview.GlowPadView
+        android:id="@+id/incomingCallWidget"
+        android:layout_width="wrap_content"
+        android:layout_height="match_parent"
+        android:layout_gravity="right"
+        android:background="@android:color/black"
+        android:visibility="gone"
+        android:gravity="top"
+
+        prvandroid:targetDrawables="@array/incoming_call_widget_3way_targets"
+        prvandroid:targetDescriptions="@array/incoming_call_widget_3way_target_descriptions"
+        prvandroid:directionDescriptions="@array/incoming_call_widget_3way_direction_descriptions"
+        prvandroid:handleDrawable="@drawable/ic_in_call_touch_handle"
+        prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius"
+        prvandroid:outerRadius="@*android:dimen/glowpadview_target_placement_radius"
+        prvandroid:outerRingDrawable="@*android:drawable/ic_lockscreen_outerring"
+        prvandroid:snapMargin="@*android:dimen/glowpadview_snap_margin"
+        prvandroid:vibrationDuration="20"
+        prvandroid:feedbackCount="1"
+        prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius"
+        prvandroid:pointDrawable="@*android:drawable/ic_lockscreen_glowdot"
+        />
+
+</com.android.phone.InCallTouchUi>