Blanket copy of PhoneApp to services/Telephony.

First phase of splitting out InCallUI from PhoneApp.

Change-Id: I237341c4ff00e96c677caa4580b251ef3432931b
diff --git a/res/layout/adn_list.xml b/res/layout/adn_list.xml
new file mode 100644
index 0000000..8bb3ebb
--- /dev/null
+++ b/res/layout/adn_list.xml
@@ -0,0 +1,30 @@
+<?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.
+-->
+
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+    <ListView android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+    />
+    
+    <TextView android:id="@android:id/empty"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:text="@string/simContacts_emptyLoading"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:gravity="center"
+    />
+</merge>
diff --git a/res/layout/call_card.xml b/res/layout/call_card.xml
new file mode 100644
index 0000000..aac9c1c
--- /dev/null
+++ b/res/layout/call_card.xml
@@ -0,0 +1,53 @@
+<?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.
+-->
+
+<!-- XML resource file for the CallCard used in the Phone app.
+
+     Note that the CallCard is technically the size of the full screen (since
+     our parent container is full-screen, and the layout_width and layout_height
+     here are both "match_parent"), but we manually adjust its bottom margin
+     in CallCard.updateCallInfoLayout() to make sure it doesn't overlap with
+     the onscreen buttons from incall_touch_ui.xml. -->
+<com.android.phone.CallCard xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/call_info_container"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <!-- The main content of the CallCard is either one or two "call info"
+         blocks, depending on whether one or two lines are in use.
+
+         The call_info blocks are stacked vertically inside a CallCard (LinearLayout),
+         each with layout_weight="1".  If only one line is in use (i.e. the
+         common case) then the 2nd call info will be GONE and thus the 1st one
+         will expand to fill the full height of the CallCard.
+
+         We set a bottom margin on this element dynamically (see
+         updateCallInfoLayout()) to make sure it doesn't overlap with either
+         the bottom button cluster or the incoming-call widget. -->
+
+    <!-- Primary "Call info" block, for the foreground call. -->
+    <include android:id="@+id/primary_call_info"
+         layout="@layout/primary_call_info" />
+
+    <!-- Secondary "Call info" block , for the background ("on hold") call. -->
+    <ViewStub android:id="@+id/secondary_call_info"
+         android:layout="@layout/secondary_call_info"
+         android:layout_width="match_parent"
+         android:layout_height="0dp"
+         android:layout_weight="1" />
+
+</com.android.phone.CallCard>
diff --git a/res/layout/caller_in_conference.xml b/res/layout/caller_in_conference.xml
new file mode 100644
index 0000000..c2c68c8
--- /dev/null
+++ b/res/layout/caller_in_conference.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<LinearLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="64dp"
+    android:orientation="horizontal"
+    android:gravity="center_vertical">
+
+    <!-- Caller information -->
+    <LinearLayout
+        android:id="@+id/conferenceCallerSeparate"
+        android:layout_width="0dp"
+        android:layout_weight="1"
+        android:layout_height="match_parent"
+        android:background="?android:attr/selectableItemBackground"
+        android:paddingStart="16dp"
+        android:orientation="horizontal"
+        android:gravity="center_vertical">
+
+        <!-- "Separate" (i.e. "go private") button for this caller -->
+        <ImageView
+            android:src="@drawable/ic_split_holo_dark"
+            android:layout_width="46dp"
+            android:layout_height="46dp"
+            android:scaleType="center"
+            android:contentDescription="@string/goPrivate"/>
+
+        <LinearLayout
+             android:layout_width="match_parent"
+             android:layout_height="wrap_content"
+             android:paddingStart="8dp"
+             android:gravity="center_vertical"
+             android:orientation="vertical">
+
+            <!-- Name or number of this caller -->
+            <TextView
+                 android:id="@+id/conferenceCallerName"
+                 android:textAppearance="?android:attr/textAppearanceLarge"
+                 android:textSize="18sp"
+                 android:singleLine="true"
+                 android:layout_width="wrap_content"
+                 android:layout_height="match_parent"
+                 android:layout_marginEnd="2dp"
+                 />
+
+            <!-- Number of this caller if name is supplied above -->
+            <LinearLayout
+                 android:layout_width="wrap_content"
+                 android:layout_height="match_parent"
+                 android:orientation="horizontal"
+                 android:gravity="bottom">
+
+                <!-- Number -->
+                <TextView
+                     android:id="@+id/conferenceCallerNumber"
+                     android:layout_width="wrap_content"
+                     android:layout_height="wrap_content"
+                     android:textSize="14sp"
+                     android:ellipsize="marquee"
+                     android:textColor="@color/manage_conference_secondary_text_color"
+                     android:singleLine="true"
+                     android:layout_marginEnd="8dp" />
+
+                <!-- Number type -->
+                <TextView
+                    android:id="@+id/conferenceCallerNumberType"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:textSize="12sp"
+                    android:textColor="@color/manage_conference_secondary_text_color"
+                    android:ellipsize="marquee"
+                    android:singleLine="true"
+                    android:textAllCaps="true"
+                    android:gravity="start" />
+
+            </LinearLayout>  <!-- End of caller number -->
+
+        </LinearLayout>  <!-- End of caller information -->
+    </LinearLayout>
+
+    <!-- "End" button for this caller which should look like the
+         "end call" button in the main in-call UI screen -->
+    <ImageButton
+         android:id="@+id/conferenceCallerDisconnect"
+         android:layout_width="80dp"
+         android:layout_height="match_parent"
+         android:src="@drawable/ic_end_call_holo_dark"
+         android:background="@drawable/end_call_background"
+         android:scaleType="center"
+         android:contentDescription="@string/onscreenEndCallText" />
+
+</LinearLayout>  <!-- End of single list element -->
diff --git a/res/layout/change_sim_pin_screen.xml b/res/layout/change_sim_pin_screen.xml
new file mode 100644
index 0000000..8c943e1
--- /dev/null
+++ b/res/layout/change_sim_pin_screen.xml
@@ -0,0 +1,125 @@
+<?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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+        
+    <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/scroll"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent">
+
+        <LinearLayout
+                style="@style/info_layout"
+                android:orientation="vertical">
+
+            <TextView
+                    style="@style/info_label"
+                    android:text="@string/oldPinLabel"/>
+
+            <EditText android:id="@+id/old_pin"
+                    android:maxLines="1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:scrollHorizontally="true"
+                    android:autoText="false"
+                    android:capitalize="none"
+                    android:password="true"/>
+
+            <TextView android:id="@+id/bad_pin"
+                    android:textSize="12sp"
+                    android:textColor="#FF888888"
+                    android:visibility="gone"
+                    android:text="@string/badPin"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:paddingStart="10dip"
+                    android:paddingTop="1dip"
+                    android:paddingEnd="5dip"
+                    android:paddingBottom="1dip"/>
+
+            <TextView
+                    style="@style/info_label"
+                    android:text="@string/newPinLabel"/>
+
+            <EditText android:id="@+id/new_pin1"
+                    android:maxLines="1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:scrollHorizontally="true"
+                    android:autoText="false"
+                    android:capitalize="none"
+                    android:password="true"/>
+
+            <TextView
+                    style="@style/info_label"
+                    android:text="@string/confirmPinLabel"/>
+
+            <EditText android:id="@+id/new_pin2"
+                    android:maxLines="1"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:scrollHorizontally="true"
+                    android:autoText="false"
+                    android:capitalize="none"
+                    android:password="true"/>
+
+            <TextView android:id="@+id/mismatch"
+                    android:textSize="12sp"
+                    android:textColor="#FF888888"
+                    android:visibility="gone"
+                    android:text="@string/mismatchPin"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:paddingStart="10dip"
+                    android:paddingTop="1dip"
+                    android:paddingEnd="5dip"
+                    android:paddingBottom="1dip"/>
+
+            <Button android:id="@+id/button"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/doneButton"/>
+                    
+        </LinearLayout>
+        
+    </ScrollView>
+    
+    <LinearLayout
+            android:id="@+id/puk_panel"
+            style="@style/info_layout"
+            android:visibility="gone"
+            android:orientation="vertical">
+
+        <TextView
+                style="@style/info_label"
+                android:text="@string/label_puk2_code"/>
+
+        <EditText android:id="@+id/puk_code"
+                android:maxLines="1"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:scrollHorizontally="true"
+                android:autoText="false"
+                android:capitalize="none"
+                android:password="true"/>
+
+        <Button android:id="@+id/puk_submit"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/doneButton"/>
+    </LinearLayout>
+</RelativeLayout>
diff --git a/res/layout/delete_fdn_contact_screen.xml b/res/layout/delete_fdn_contact_screen.xml
new file mode 100644
index 0000000..ec8a2e0
--- /dev/null
+++ b/res/layout/delete_fdn_contact_screen.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    
+    <!-- Modified to remove the status field in favor of a toast.-->
+    
+</RelativeLayout>
diff --git a/res/layout/dialog_ussd_response.xml b/res/layout/dialog_ussd_response.xml
new file mode 100644
index 0000000..dabce3e
--- /dev/null
+++ b/res/layout/dialog_ussd_response.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<!-- Layout used as the dialog's content View for the USSD dialog.
+     The message field is actually contained within the AlertDialog's
+     scrollView ScrollView, in the contentPanel LinearLayout, so it
+     does not need to be replaced here.  For now, all we have is the
+     input_field EditText to display user data entry. -->
+<EditText xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/input_field"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"/>
diff --git a/res/layout/dialpad.xml b/res/layout/dialpad.xml
new file mode 100644
index 0000000..45ce513
--- /dev/null
+++ b/res/layout/dialpad.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 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.
+-->
+
+<!-- The grid of buttons used in the onscreen DTMF dialpad;
+     see dtmf_twelve_key_dialer_view.xml. -->
+<TableLayout
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/dialpad"
+    android:layout_width="match_parent"
+    android:layout_height="0px"
+    android:layout_weight="@integer/dialpad_layout_weight_dialpad"
+    android:layout_gravity="center_horizontal"
+    android:layout_marginTop="@dimen/dialpad_vertical_margin"
+    android:paddingStart="5dip"
+    android:paddingEnd="5dip"
+    android:paddingBottom="10dip"
+    android:background="@drawable/dialpad_background"
+    android:layoutDirection="ltr">
+
+    <TableRow
+         android:layout_height="0px"
+         android:layout_weight="1">
+        <ImageButton android:id="@+id/one" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_1_no_vm_wht"
+            android:contentDescription="@string/description_image_button_one" />
+        <ImageButton android:id="@+id/two" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_2_wht"
+            android:contentDescription="@string/description_image_button_two" />
+        <ImageButton android:id="@+id/three" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_3_wht"
+            android:contentDescription="@string/description_image_button_three" />
+    </TableRow>
+
+    <TableRow
+         android:layout_height="0px"
+         android:layout_weight="1">
+        <ImageButton android:id="@+id/four" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_4_wht"
+            android:contentDescription="@string/description_image_button_four" />
+        <ImageButton android:id="@+id/five" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_5_wht"
+            android:contentDescription="@string/description_image_button_five" />
+        <ImageButton android:id="@+id/six" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_6_wht"
+            android:contentDescription="@string/description_image_button_six" />
+    </TableRow>
+
+    <TableRow
+         android:layout_height="0px"
+         android:layout_weight="1">
+        <ImageButton android:id="@+id/seven" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_7_wht"
+            android:contentDescription="@string/description_image_button_seven" />
+        <ImageButton android:id="@+id/eight" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_8_wht"
+            android:contentDescription="@string/description_image_button_eight" />
+        <ImageButton android:id="@+id/nine" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_9_wht"
+            android:contentDescription="@string/description_image_button_nine" />
+    </TableRow>
+
+    <TableRow
+         android:layout_height="0px"
+         android:layout_weight="1">
+        <ImageButton android:id="@+id/star" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_star_wht"
+            android:contentDescription="@string/description_image_button_star" />
+        <ImageButton android:id="@+id/zero" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_0_no_plus_wht"
+            android:contentDescription="@string/description_image_button_zero" />
+        <ImageButton android:id="@+id/pound" style="@style/DialpadButtonStyle"
+            android:src="@drawable/dial_num_pound_wht"
+            android:contentDescription="@string/description_image_button_pound" />
+    </TableRow>
+</TableLayout>
diff --git a/res/layout/dtmf_twelve_key_dialer_view.xml b/res/layout/dtmf_twelve_key_dialer_view.xml
new file mode 100644
index 0000000..f1d7c8d
--- /dev/null
+++ b/res/layout/dtmf_twelve_key_dialer_view.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<!-- Onscreen in-call DTMF dialpad.  This element contains the grid of
+     DTMF buttons (dialpad.xml) along with a TextView showing
+     the digits you've typed.
+
+     When the user presses the "Dialpad" button, this UI appears in the
+     upper part of the in-call screen, covering up the "call card" area.
+     The regular in-call controls (i.e. the InCallTouchUi widget) are
+     still visible at the lower part of the screen.
+
+     This layout is inflated in place of dtmf_twelve_key_dialer_stub
+     in incall_touch_ui.xml. -->
+<com.android.phone.DTMFTwelveKeyDialerView
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/dtmf_twelve_key_dialer_view"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:layout_marginTop="1dip"
+    android:visibility="gone"
+    >
+
+    <!-- Display of the digits you've typed so far.
+         This widget appears completely non-interactive to the user: you
+         can't edit or "hit backspace" since these are DTMF tones you've
+         already sent over the network.  But it's still an EditText rather
+         than a TextView because it needs to receive key events from a
+         hard keyboard, if present (see mDialerKeyListener). -->
+    <EditText
+        android:id="@+id/dtmfDialerField"
+        android:layout_width="match_parent"
+        android:layout_height="32dp"
+        android:layout_marginTop="10dp"
+        android:layout_marginBottom="5dp"
+        android:layout_marginStart="32dp"
+        android:layout_marginEnd="32dp"
+        android:paddingEnd="16dp"
+        android:paddingStart="16dp"
+        android:singleLine="true"
+        android:scrollHorizontally="true"
+        android:textSize="24sp"
+        android:gravity="center"
+        android:freezesText="true"
+        android:background="@null"
+        android:textColor="@color/dtmf_dialer_display_text"
+        android:focusableInTouchMode="false"
+        android:clickable="false"/>
+
+    <!-- The dialpad itself -->
+    <include layout="@layout/dialpad" />
+
+</com.android.phone.DTMFTwelveKeyDialerView>
diff --git a/res/layout/edit_fdn_contact_screen.xml b/res/layout/edit_fdn_contact_screen.xml
new file mode 100644
index 0000000..0a99152
--- /dev/null
+++ b/res/layout/edit_fdn_contact_screen.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Keyboard Version -->
+    <!-- Modified for greater consistency with the rest of settings. -->
+    <LinearLayout android:id="@+id/pinc"
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+
+        <LinearLayout
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="15dip"
+            android:paddingBottom="5dip">
+
+            <TextView
+                android:layout_width="100dip"
+                android:layout_height="wrap_content"
+                android:paddingStart="10dip"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:text="@string/name" />
+
+            <EditText android:id="@+id/fdn_name"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="10dip"
+                android:inputType="textPersonName"
+                android:imeOptions="actionNext"
+                android:singleLine="true"
+                android:scrollHorizontally="true"
+                android:autoText="false"
+                android:capitalize="words" />
+
+        </LinearLayout>
+
+        <LinearLayout
+            android:orientation="horizontal"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:paddingTop="5dip"
+            android:paddingBottom="5dip">
+
+            <TextView
+                android:layout_width="100dip"
+                android:layout_height="wrap_content"
+                android:paddingStart="10dip"
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:text="@string/number" />
+
+            <EditText android:id="@+id/fdn_number"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginEnd="10dip"
+                android:inputType="phone"
+                android:imeOptions="actionDone"
+                android:singleLine="true"
+                android:scrollHorizontally="true"
+                android:autoText="false"
+                android:capitalize="none" />
+
+        </LinearLayout>
+
+        <Button android:id="@+id/button"
+            android:layout_marginTop="8dip"
+            android:layout_marginStart="10dip"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/save" />
+
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/res/layout/emergency_dialer.xml b/res/layout/emergency_dialer.xml
new file mode 100644
index 0000000..d98631e
--- /dev/null
+++ b/res/layout/emergency_dialer.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 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.
+-->
+
+<!-- Layout for the emergency dialer; see EmergencyDialer.java. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/top"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    android:layout_marginStart="@dimen/dialpad_horizontal_margin"
+    android:layout_marginEnd="@dimen/dialpad_horizontal_margin">
+
+    <!-- Text field above the keypad where the digits are displayed -->
+    <LinearLayout
+        android:id="@+id/digits_container"
+        android:layout_width="match_parent"
+        android:layout_height="0px"
+        android:layout_weight="@integer/dialpad_layout_weight_digits"
+        android:layout_marginTop="@dimen/dialpad_vertical_margin"
+        android:gravity="center"
+        android:background="@drawable/dialpad_background" >
+
+        <EditText
+            android:id="@+id/digits"
+            android:layout_width="0dip"
+            android:layout_weight="1"
+            android:layout_height="match_parent"
+            android:gravity="center"
+            android:scrollHorizontally="true"
+            android:textAppearance="@style/DialtactsDigitsTextAppearance"
+            android:focusableInTouchMode="false"
+            android:nextFocusRight="@+id/deleteButton"
+            android:background="@android:color/transparent" />
+
+        <ImageButton
+            android:id="@+id/deleteButton"
+            android:layout_width="56dip"
+            android:layout_height="match_parent"
+            android:layout_gravity="center_vertical"
+            android:gravity="center"
+            android:state_enabled="false"
+            android:background="?android:attr/selectableItemBackground"
+            android:contentDescription="@string/description_delete_button"
+            android:src="@drawable/ic_dial_action_delete" />
+    </LinearLayout>
+
+    <!-- Keypad section -->
+    <include layout="@layout/dialpad" />
+
+    <View
+       android:layout_width="match_parent"
+       android:layout_height="@dimen/dialpad_vertical_margin"
+       android:background="#66000000"/>
+
+    <!-- In usual dialpad we set some padding between this button and the
+         left/right edges. Here, we don't do that just for simplicitly. -->
+    <FrameLayout
+        android:id="@+id/dialButtonContainer"
+        android:layout_width="match_parent"
+        android:layout_height="0px"
+        android:layout_weight="@integer/dialpad_layout_weight_additional_buttons"
+        android:layout_gravity="center_horizontal"
+        android:background="@drawable/dialpad_background">
+
+        <ImageButton
+            android:id="@+id/dialButton"
+            android:layout_width="match_parent"
+            android:layout_height="match_parent"
+            android:layout_gravity="center"
+            android:state_enabled="false"
+            android:background="@drawable/btn_call"
+            android:contentDescription="@string/description_dial_button"
+            android:src="@drawable/ic_dial_action_call" />
+
+    </FrameLayout>
+
+</LinearLayout>
diff --git a/res/layout/enable_fdn_screen.xml b/res/layout/enable_fdn_screen.xml
new file mode 100644
index 0000000..9eb6fa5
--- /dev/null
+++ b/res/layout/enable_fdn_screen.xml
@@ -0,0 +1,51 @@
+<?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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Keyboard Version -->
+    <LinearLayout android:id="@+id/pinc"
+            style="@style/entry_layout"
+            android:orientation="vertical"
+            android:layout_centerInParent="true">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:text="@string/enter_pin2_text" />
+
+        <EditText android:id="@+id/pin"
+            android:layout_width="200dip"
+            android:layout_height="wrap_content"
+            android:maxLines="1"
+            android:scrollHorizontally="true"
+            android:autoText="false"
+            android:capitalize="none"
+            android:password="true" />
+
+    </LinearLayout>
+
+    <TextView android:id="@+id/status"
+        android:layout_centerInParent="true"
+        android:visibility="gone"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="#FF000000" />
+
+</RelativeLayout>
diff --git a/res/layout/enable_sim_pin_screen.xml b/res/layout/enable_sim_pin_screen.xml
new file mode 100644
index 0000000..417cbd9
--- /dev/null
+++ b/res/layout/enable_sim_pin_screen.xml
@@ -0,0 +1,51 @@
+<?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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Keyboard Version -->
+    <LinearLayout android:id="@+id/pinc"
+            style="@style/entry_layout"
+            android:orientation="vertical"
+            android:layout_centerInParent="true">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="#FF000000"
+            android:text="@string/enter_pin_text" />
+
+        <EditText android:id="@+id/pin"
+            android:layout_width="200dip"
+            android:layout_height="wrap_content"
+            android:maxLines="1"
+            android:scrollHorizontally="true"
+            android:autoText="false"
+            android:capitalize="none"
+            android:password="true" />
+
+    </LinearLayout>
+
+    <TextView android:id="@+id/status"
+        android:layout_centerInParent="true"
+        android:visibility="gone"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:textColor="#FF000000" />
+
+</RelativeLayout>
diff --git a/res/layout/extra_button_row.xml b/res/layout/extra_button_row.xml
new file mode 100644
index 0000000..3f7e18c
--- /dev/null
+++ b/res/layout/extra_button_row.xml
@@ -0,0 +1,70 @@
+<?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.
+-->
+
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:background="@drawable/dialpad_background_opaque">
+    <!-- The buttons here have a text label floating off to the side
+         (which is necessary because these buttons are used only in
+         a few rare states, and the meaning of the icon might not be
+         obvious.)  The entire row (button + text) is clickable. -->
+
+    <!-- "Manage conference" -->
+    <!-- This button is used only on GSM devices, during a conference call. -->
+    <LinearLayout android:id="@+id/manageConferenceButton"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="@dimen/button_cluster_side_padding"
+        android:paddingEnd="@dimen/button_cluster_side_padding"
+        android:background="?android:attr/selectableItemBackground">
+        <!-- The entire LinearLayout here is clickable, so we don't
+             care about clicks on the ImageButton itself. -->
+        <ImageButton android:id="@+id/manageConferenceButtonImage"
+            android:clickable="false"
+            style="@style/InCallExtraRowButton"
+            android:src="@drawable/ic_groups_holo_dark"
+            android:contentDescription="@string/onscreenManageConferenceText" />
+        <TextView android:id="@+id/manageConferenceButtonLabel"
+            style="@style/InCallExtraRowButtonLabel"
+            android:text="@string/onscreenManageConferenceText" />
+    </LinearLayout>
+
+    <!-- CDMA-specific "Merge" -->
+    <!-- This button is used only on CDMA devices, where we can't use
+         the Merge button in the main button row (because the "Add Call"
+         button might need to be enabled at the same time.) -->
+    <LinearLayout android:id="@+id/cdmaMergeButton"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:paddingStart="@dimen/button_cluster_side_padding"
+        android:paddingEnd="@dimen/button_cluster_side_padding"
+        android:background="?android:attr/selectableItemBackground">
+        <!-- The entire LinearLayout here is clickable, so we don't
+             care about clicks on the ImageButton itself. -->
+        <ImageButton android:id="@+id/cdmaMergeButtonImage"
+            android:clickable="false"
+            style="@style/InCallExtraRowButton"
+            android:src="@drawable/ic_merge_holo_dark"
+            android:contentDescription="@string/onscreenMergeCallsText" />
+        <TextView android:id="@+id/cdmaMergeButtonLabel"
+            style="@style/InCallExtraRowButtonLabel"
+            android:text="@string/onscreenMergeCallsText" />
+    </LinearLayout>
+
+</FrameLayout>
diff --git a/res/layout/fake_phone_activity.xml b/res/layout/fake_phone_activity.xml
new file mode 100644
index 0000000..7cb8b86
--- /dev/null
+++ b/res/layout/fake_phone_activity.xml
@@ -0,0 +1,45 @@
+<?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.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="vertical"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:padding="3dip">
+
+    <TextView android:id="@+id/infoText"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:text="@string/fake_phone_activity_infoText_text" />
+
+    <EditText android:id="@+id/phoneNumber"
+        android:layout_marginTop="2dip"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:scrollHorizontally="true"
+        android:autoText="false"
+        android:capitalize="none"
+        android:singleLine="true"
+        android:text="@string/fake_phone_activity_phoneNumber_text"
+        />
+
+    <Button android:id="@+id/placeCall"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/fake_phone_activity_placeCall_text">
+        <requestFocus />
+    </Button>
+</LinearLayout>
diff --git a/res/layout/get_pin2_screen.xml b/res/layout/get_pin2_screen.xml
new file mode 100644
index 0000000..6268335
--- /dev/null
+++ b/res/layout/get_pin2_screen.xml
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Keyboard Version -->
+    <!-- Modified for greater consistency with the rest of settings. -->
+    <LinearLayout android:id="@+id/pinc"
+        android:orientation="vertical"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginTop="15dip"
+        android:layout_marginStart="15dip">
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:paddingBottom="5dip"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:text="@string/enter_pin2_text" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="horizontal">
+            <EditText
+                android:id="@+id/pin"
+                android:layout_width="200dip"
+                android:layout_height="wrap_content"
+                android:maxLines="1"
+                android:scrollHorizontally="true"
+                android:autoText="false"
+                android:capitalize="none"
+                android:password="true"
+                android:imeOptions="actionDone" />
+
+            <Button
+                android:id="@+id/ok"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@android:string/ok"/>
+        </LinearLayout>
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/res/layout/incall_screen.xml b/res/layout/incall_screen.xml
new file mode 100644
index 0000000..64df29a
--- /dev/null
+++ b/res/layout/incall_screen.xml
@@ -0,0 +1,65 @@
+<?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 InCallScreen.java. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <!-- The "Call Card", which displays info about the currently
+         active phone call(s) on the device.  See call_card.xml.
+
+         Note that the CallCard is technically the size of the full screen
+         (since layout_width and layout_height are both "match_parent" here) but
+         we manually adjust its bottom margin in CallCard.updateCallInfoLayout()
+         to make sure it doesn't overlap with the onscreen buttons from
+         incall_touch_ui.xml. -->
+    <include
+        layout="@layout/call_card"
+        android:id="@+id/callCard"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        />
+
+    <!-- In-call onscreen touch controls; see InCallTouchUi.java.
+         This widget contains the cluster of buttons shown at the bottom
+         of the in-call screen, and also the DTMF dialpad (which, when
+         visible, covers the upper part of the screen too.) -->
+    <include layout="@layout/incall_touch_ui"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        />
+
+    <!-- ViewStub for OTASP-related UI elements (for the CDMA "activation"
+         call.)  Note that this ViewStub provides the *entire* OTASP
+         screen, including the status area at the top *and* touch controls
+         at the bottom of the screen.  The regular CallCard and the
+         InCallTouchUi widget are not used at all during an OTASP call. -->
+    <ViewStub android:id="@+id/otaCallCardStub"
+              android:layout="@layout/otacall_card"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              />
+
+    <!-- The "Manage conference" UI.  This panel is displayed (and covers up
+         the entire normal in-call UI) when the user clicks "Manage conference"
+         during a GSM conference call. -->
+    <ViewStub android:id="@+id/manageConferencePanelStub"
+              android:layout="@layout/manage_conference_panel"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              />
+
+</FrameLayout>
diff --git a/res/layout/incall_touch_ui.xml b/res/layout/incall_touch_ui.xml
new file mode 100644
index 0000000..5d3ea27
--- /dev/null
+++ b/res/layout/incall_touch_ui.xml
@@ -0,0 +1,243 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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
+    -->
+    <RelativeLayout android:id="@+id/inCallControls"
+                    android:layout_width="match_parent"
+                    android:layout_height="match_parent"
+                    android:visibility="gone"
+                    >
+        <!-- DTMF dialpad shown in the upper part of the screen
+             (above the main cluster of buttons.) -->
+        <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"
+                  android:layout_above="@+id/bottomButtons"
+                  android:layout_marginBottom="@dimen/dialpad_vertical_margin" />
+
+        <!-- Main cluster of onscreen buttons on the lower part of the screen. -->
+        <LinearLayout android:id="@+id/bottomButtons"
+                      android:orientation="vertical"
+                      android:layout_width="match_parent"
+                      android:layout_height="wrap_content"
+                      android:layout_alignParentBottom="true">
+
+            <!-- Row 1, the "extra button row": A couple of relatively rare
+                 buttons used only in certain call states.
+                 Most of the time this whole row is GONE.
+                 For now, at least, there's only ever one button visible here
+                 at a time, so this can be a simple FrameLayout. -->
+            <ViewStub android:id="@+id/extraButtonRow"
+                      android:layout="@layout/extra_button_row"
+                      android:layout_width="match_parent"
+                      android:layout_height="wrap_content" />
+
+            <!-- Row 2: The "End call" button. -->
+            <ImageButton android:id="@+id/endButton"
+                style="@style/InCallEndButton"
+                android:layout_width="match_parent"
+                android:src="@drawable/ic_dial_end_call"
+                android:background="@drawable/end_call_background"
+                android:contentDescription="@string/onscreenEndCallText" />
+
+            <!-- Row 3: The main batch of in-call buttons:
+                    Dialpad / Audio mode / Mute / Hold / Add call
+                 Visible in all states except while an incoming call is
+                 ringing. -->
+            <LinearLayout
+                android:orientation="horizontal"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:background="@drawable/dialpad_background"
+                android:paddingStart="@dimen/button_cluster_side_padding"
+                android:paddingEnd="@dimen/button_cluster_side_padding"
+                >
+
+                <!-- This row has either 4 or 5 buttons, depending on
+                     whether the device supports "Hold" (i.e. 4 buttons on
+                     CDMA devices, 5 buttons on GSM devices.)  The buttons
+                     are interspersed with 'layout_weight="1"' placeholder
+                     views so that they'll be spaced evenly in both cases.
+
+                     But note there are a couple of *pairs* of buttons that share a
+                     single "slot", namely Hold/Swap and Add/Merge.  For these, the
+                     code in InCallTouchUi is responsible for making sure that at any
+                     point exactly one of the pair is VISIBLE and the other is
+                     GONE. -->
+
+                <!-- Separator between left padding and 1st button -->
+                <View style="@style/VerticalSeparator" />
+
+                <!-- "Dialpad" -->
+                <!-- This is a "compound button": it has checked and unchecked states. -->
+                <ToggleButton android:id="@+id/dialpadButton"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_dialpad"
+                    android:contentDescription="@string/onscreenShowDialpadText"
+                    />
+
+                <!-- Separator between 1st and 2nd button -->
+                <View style="@style/VerticalSeparator" />
+
+                <!-- "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"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_audio"
+                    android:contentDescription="@string/onscreenAudioText"
+                    />
+
+                <!-- Separator between 2nd and 3rd button -->
+                <View style="@style/VerticalSeparator" />
+
+                <!-- "Mute" -->
+                <!-- This is a "compound button": it has checked and unchecked states. -->
+                <ToggleButton android:id="@+id/muteButton"
+                    style="@style/InCallCompoundButton"
+                    android:background="@drawable/btn_compound_mute"
+                    android:contentDescription="@string/onscreenMuteText"
+                    />
+
+                <!-- Separator between 3rd and 4th button -->
+                <View style="@style/VerticalSeparator" />
+
+                <!-- 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"
+                    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"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_incall_switch_holo_dark"
+                    android:contentDescription="@string/onscreenSwapCallsText"
+                    />
+
+                <!-- Separator between 4th and 5th button (if 5th exists) -->
+                <View android:id="@+id/holdSwapSpacer"
+                      style="@style/VerticalSeparator" />
+
+                <!-- 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"
+                    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"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_merge_holo_dark"
+                    android:contentDescription="@string/onscreenMergeCallsText"
+                    />
+
+                <!-- Separator between 5th and 6th button (if 6th exists) -->
+                <View android:id="@+id/videoCallSpacer"
+                    style="@style/VerticalSeparator" />
+
+                <!-- This button is use for converting an ongoing call into a video call. -->
+                <ImageButton android:id="@+id/videoCallButton"
+                    style="@style/InCallButton"
+                    android:src="@drawable/ic_videocall_holo_dark"
+                    android:contentDescription="@string/onscreenVideoCallText"
+                    />
+
+                <!-- Separator between 4th (or 5th) button and right padding -->
+                <View style="@style/VerticalSeparator" />
+
+            </LinearLayout>
+
+        </LinearLayout>
+
+    </RelativeLayout>
+
+    <!--
+        (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="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center|bottom"
+        android:layout_marginTop="20dip"
+        android:layout_marginBottom="-46dp"
+        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>
diff --git a/res/layout/manage_conference_panel.xml b/res/layout/manage_conference_panel.xml
new file mode 100644
index 0000000..f1fbfdf
--- /dev/null
+++ b/res/layout/manage_conference_panel.xml
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<!-- The "Manage conference" UI.  This panel is displayed (instead of
+     the inCallPanel) when the user clicks the "Manage conference"
+     button while on a conference call. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                android:id="@+id/manageConferencePanel"
+                android:background="#FF000000"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:visibility="gone"
+                >
+    <!-- This original header (with timer) is currently not being used,
+         but may be of use in the future. -->
+    <!-- Header, including chronometer and List divider -->
+    <Chronometer
+        android:id="@+id/manageConferencePanelHeader"
+        android:textAppearance="?android:attr/textAppearanceLarge"
+        android:textSize="24sp"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center_horizontal"
+        android:layout_alignParentTop="true"
+        android:layout_marginTop="5dip"
+        android:layout_marginBottom="5dip"
+        android:visibility="gone"/>
+
+    <ImageView
+        android:id="@+id/manageConferencePanelDivider"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:src="@android:drawable/divider_horizontal_dark"
+        android:scaleType="fitXY"
+        android:layout_below="@id/manageConferencePanelHeader"
+        android:visibility="gone"/>
+    <!-- End of the original header -->
+
+    <!-- Header which looks like ActionBar. -->
+    <FrameLayout
+        android:id="@+id/manageConferenceHeader"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@*android:drawable/ab_transparent_dark_holo">
+
+        <LinearLayout
+            android:id="@+id/manage_done"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:background="?android:attr/selectableItemBackground"
+            android:clickable="true"
+            android:orientation="horizontal">
+
+            <ImageView
+                android:src="?android:attr/homeAsUpIndicator"
+                android:layout_gravity="center_vertical|left"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content" />
+
+            <TextView
+                android:layout_width="match_parent"
+                android:layout_height="?android:attr/actionBarSize"
+                style="@*android:style/TextAppearance.Holo.Widget.ActionBar.Title"
+                android:gravity="center_vertical"
+                android:text="@string/manageConferenceLabel"/>
+        </LinearLayout>
+
+    </FrameLayout>  <!-- End of header -->
+
+    <!-- The scrollview wrapper for the list of callers on
+         the conference call (in case the list gets too long). -->
+    <ScrollView
+        android:id="@+id/conferenceList"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_below="@id/manageConferenceHeader">
+
+        <!-- The actual list of callers; this embedded LinearLayout
+             required since scrollview only supports a single child. -->
+        <LinearLayout
+            android:orientation="vertical"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:showDividers="middle|end"
+            android:divider="?android:attr/listDivider">
+
+            <!-- A conference can have at most MAX_CALLERS_IN_CONFERENCE (= 5) callers,
+                 so just define all those UI elements here. -->
+
+            <!-- Caller 0 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller0"/>
+
+            <!-- Caller 1 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller1"/>
+
+            <!-- Caller 2 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller2"/>
+
+            <!-- Caller 3 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller3"/>
+
+            <!-- Caller 4 -->
+            <include
+                layout="@layout/caller_in_conference"
+                android:id="@+id/caller4"/>
+
+        </LinearLayout>  <!-- End of "list of callers on conference call" -->
+
+    </ScrollView>  <!-- End of scrolling list wrapper for the linear layout -->
+
+</RelativeLayout>
diff --git a/res/layout/otacall_card.xml b/res/layout/otacall_card.xml
new file mode 100644
index 0000000..d90e940
--- /dev/null
+++ b/res/layout/otacall_card.xml
@@ -0,0 +1,195 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<!-- Top-level container for UI elements used during the OTASP call;
+     see OtaUtils.java.
+
+     This layout file contains the entire OTASP screen, including the
+     status area at the top and touch controls at the bottom of the
+     screen.  The regular CallCard and the InCallTouchUi widget are not
+     used at all during an OTASP call.
+
+     The OTASP screen contains (in order, from top to bottom):
+     - Title and explanatory text
+     - Progress status message
+     - Progress bar
+     - Success / failure message
+     - DTMF dialpad
+     [ Separator / placeholder view between the "upper widgets" above and the buttons below ]
+     - Speaker button
+     - Action buttons like "Activate"/"Skip", or "End", or "Next"
+       (depending on whether we're in the listen/progress state
+       of the final success/failure state.
+
+     Only some of these elements are visible in any given state.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/otaTopLevel"
+    android:orientation="vertical"
+    android:gravity="center_horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    >
+
+    <LinearLayout android:id="@+id/otaUpperWidgets"
+                  android:orientation="vertical"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content" >
+
+        <!-- Title: "Activate your phone" -->
+        <TextView android:id="@+id/otaTitle"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:textAppearance="@style/ccOtaWizardTitle"
+                  android:text="@string/ota_title_activate"
+        />
+
+        <View
+                  android:layout_width="wrap_content"
+                  android:layout_height="1dip"
+                  android:layout_gravity="center"
+                  android:background="@drawable/green_divider"
+                  android:layout_marginTop="10dip"
+                  android:focusable="false"
+                  android:clickable="false"
+        />
+
+        <!-- Explanatory text: "A special call needs to be made to activate
+             your phone service"... -->
+        <TextView android:id="@+id/otaActivate"
+                  android:layout_marginTop="@dimen/otaactivate_layout_marginTop"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:textAppearance="@style/ccOtaTextPrimary"
+                  android:visibility="gone"
+                  android:text="@string/ota_touch_activate"
+                  />
+
+        <!-- Progress status message, e.g. "Please wait while your phone
+             is being programmed" (in some states) -->
+        <TextView android:id="@+id/otaListenProgress"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:layout_marginTop="@dimen/otalistenprogress_layout_marginTop"
+                  android:textAppearance="@style/ccOtaTextPrimary"
+                  android:visibility="gone"
+                  />
+
+        <!-- Progress bar -->
+        <ProgressBar android:id="@+android:id/progress_large"
+                     style="?android:attr/progressBarStyleHorizontal"
+                     android:layout_marginTop="20dip"
+                     android:layout_width="match_parent"
+                     android:layout_height="wrap_content"
+                     android:visibility="gone"/>
+
+        <!-- Success or failure message (in some states) -->
+        <TextView android:id="@+id/otaSuccessFailStatus"
+                  android:gravity="start"
+                  android:layout_marginTop="@dimen/otasuccessfail_layout_marginTop"
+                  android:layout_marginStart="5dip"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:textAppearance="@style/ccOtaTextPrimary"
+                  android:visibility="gone"
+                  />
+
+        <!-- DTMF dialpad -->
+        <com.android.phone.DTMFTwelveKeyDialerView
+                xmlns:android="http://schemas.android.com/apk/res/android"
+                android:id="@+id/otaDtmfDialerView"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="vertical"
+                android:layout_marginTop="1dip"
+                android:visibility="gone" >
+
+            <!-- Note there's no "dtmfDialerField" EditText here;
+                 in the OTA UI there's no visible "digits" display
+                 attached to the dialpad. -->
+
+            <!-- Keypad section -->
+            <include layout="@layout/dialpad" />
+
+        </com.android.phone.DTMFTwelveKeyDialerView>
+
+    </LinearLayout>
+
+    <!-- Separator / placeholder view between the widgets at the upper
+         part of the screen and the buttons at the bottom.  This view sets
+         layout_weight="1" to ensure that the buttons will be positioned
+         at the very bottom of the screen. -->
+    <View android:id="@+id/otaSeparator"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+    />
+
+    <!-- "Speaker" button -->
+    <ToggleButton android:id="@+id/otaSpeakerButton"
+              android:layout_gravity="center"
+              android:textOn="@string/ota_speaker"
+              android:textOff="@string/ota_speaker"
+              style="@style/ccOtaButton" />
+
+    <!-- (2) Activate/cancel buttons -->
+    <RelativeLayout android:id="@+id/callCardOtaActivate"
+                    android:visibility="gone"
+                    style="@style/ccOtaButtonBar" >
+
+        <!-- "Activate" button -->
+        <Button android:id="@+id/otaActivateButton"
+                android:text="@string/ota_activate"
+                style="@style/ccOtaNextButton" />
+
+        <!-- "Skip" button -->   <!--  TODO: borrowing another button's label for now because I missed the localization deadline for adding a @string/ota_skip -->
+        <Button android:id="@+id/otaSkipButton"
+                android:text="@string/ota_skip_activation_dialog_skip_label"
+                style="@style/ccOtaSkipButton" />
+
+    </RelativeLayout>
+
+    <!-- (3) OTA listen/progress buttons -->
+    <RelativeLayout android:id="@+id/callCardOtaListenProgress"
+                    android:visibility="gone"
+                    style="@style/ccOtaButtonBar" >
+
+        <!-- "End" button -->
+        <Button android:id="@+id/otaEndButton"
+                android:text="@string/ota_call_end"
+                android:drawableStart="@drawable/ic_btn_back"
+                android:drawablePadding="3dip"
+                style="@style/ccOtaSkipButton" />
+    </RelativeLayout>
+
+    <!-- (4) OTA Success/Failure button -->
+    <RelativeLayout android:id="@+id/callCardOtaFailOrSuccessful"
+                    android:visibility="gone"
+                    style="@style/ccOtaButtonBar" >
+
+        <!-- "Next" button -->
+        <Button android:id="@+id/otaNextButton"
+                android:text="@string/ota_next"
+                android:drawableEnd="@drawable/ic_btn_next"
+                android:drawablePadding="10dip"
+                style="@style/ccOtaNextButton" />
+
+        <!-- "Try Again" button -->
+        <Button android:id="@+id/otaTryAgainButton"
+                android:text="@string/ota_try_again"
+                style="@style/ccOtaSkipButton" />
+    </RelativeLayout>
+</LinearLayout>
diff --git a/res/layout/outgoing_call_broadcaster.xml b/res/layout/outgoing_call_broadcaster.xml
new file mode 100644
index 0000000..eb14647
--- /dev/null
+++ b/res/layout/outgoing_call_broadcaster.xml
@@ -0,0 +1,31 @@
+<?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.
+-->
+
+<!-- The screen shown during CALL intent being handled. If the process is
+     unexpectedly slow, we'll make the spinner VISIBLE, to notify users
+     the black screen is intentional. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/outgoing_call_broadcaster"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <ProgressBar
+        android:id="@+id/spinner"
+        style="@android:style/Widget.ProgressBar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_gravity="center"
+        android:visibility="gone"/>
+</FrameLayout>
diff --git a/res/layout/pref_dialog_editphonenumber.xml b/res/layout/pref_dialog_editphonenumber.xml
new file mode 100644
index 0000000..b1d96f8
--- /dev/null
+++ b/res/layout/pref_dialog_editphonenumber.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2006 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.
+-->
+
+<!-- Layout used as the dialog's content View for EditPhoneNumberPreference. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:padding="5dip"
+    android:orientation="vertical">
+    
+    <TextView android:id="@+android:id/message"
+        style="?android:attr/textAppearanceMedium"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textColor="?android:attr/textColorPrimary"
+        android:paddingStart="10dip"
+        android:paddingEnd="10dip"/>
+        
+    <LinearLayout
+        android:id="@+id/number_field"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1.0"
+        android:addStatesFromChildren="true"
+        android:gravity="center_vertical"
+        android:baselineAligned="false"
+        android:paddingStart="10dip"
+        android:paddingEnd="10dip">
+
+        <!-- The EditText field in the dialog is now created programmatically.
+             We're replacing the field in this layout with a container to 
+             attach the EditText field. -->
+        <LinearLayout android:id="@+id/edit_container"
+            android:layout_width="0dip"
+            android:layout_weight="1"
+            android:layout_height="wrap_content"/>
+
+        <ImageButton android:id="@+id/select_contact"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:padding="10dip"
+            android:src="@drawable/ic_see_contacts_holo_dark"
+            android:contentDescription="@string/selectContact" />
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/res/layout/pref_dialog_editpin.xml b/res/layout/pref_dialog_editpin.xml
new file mode 100644
index 0000000..a5376a8
--- /dev/null
+++ b/res/layout/pref_dialog_editpin.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2008 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.
+-->
+
+<!-- Layout used as the dialog's content View for EditTextPreference. -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@*android:id/edittext_container"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:padding="5dip"
+    android:orientation="vertical">
+    
+    <TextView android:id="@+android:id/message"
+        style="?android:attr/textAppearanceSmall"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:textColor="?android:attr/textColorSecondary" />
+        
+</LinearLayout>
diff --git a/res/layout/primary_call_info.xml b/res/layout/primary_call_info.xml
new file mode 100644
index 0000000..aeeeec5
--- /dev/null
+++ b/res/layout/primary_call_info.xml
@@ -0,0 +1,212 @@
+<?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.
+-->
+
+<!-- XML resource file for primary call info, which will be used by CallCard.
+     See also call_card.xml. -->
+<RelativeLayout 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"
+              /> -->
+</RelativeLayout>
diff --git a/res/layout/secondary_call_info.xml b/res/layout/secondary_call_info.xml
new file mode 100644
index 0000000..b84ba82
--- /dev/null
+++ b/res/layout/secondary_call_info.xml
@@ -0,0 +1,73 @@
+<?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.
+-->
+
+<!-- XML resource file for secondary call info, which will be used by CallCard.
+     See also call_card.xml.
+
+     This should look similar to primary call info (primary_call_info.xml), but
+     to optimize the view usage, the structure is different. -->
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+
+    <!-- Contact photo for call_info #2 -->
+    <ImageView android:id="@+id/secondaryCallPhoto"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="top|center_horizontal"
+        android:scaleType="centerCrop"
+        android:contentDescription="@string/onHold" />
+
+    <!-- Overlaps secondary photo when the secondary call is in HOLD state.
+
+         TODO: We could do better. See equivalent in primary xml. -->
+    <View android:id="@+id/dim_effect_for_secondary_photo"
+         android:layout_width="match_parent"
+         android:layout_height="match_parent"
+         android:background="@drawable/clickable_dim_effect"
+         android:visibility="gone" />
+
+    <!-- Name (or the phone number, if we don't have a name to display). -->
+    <TextView android:id="@+id/secondaryCallName"
+        style="@style/SecondaryCallInfoSecondaryCallName"
+        android:layout_width="match_parent"
+        android:layout_height="@dimen/call_banner_height"
+        android:gravity="top|start"
+        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:textAppearance="?android:attr/textAppearanceMedium"
+        android:textColor="@color/incall_call_banner_text_color"
+        android:singleLine="true"
+        android:background="@color/incall_call_banner_background" />
+
+    <!-- Call status of the background call, usually the string "On hold". -->
+    <TextView android:id="@+id/secondaryCallStatus"
+        style="@style/SecondaryCallInfoSecondaryCallStatus"
+        android:layout_width="wrap_content"
+        android:layout_height="@dimen/call_banner_height"
+        android:gravity="top|end"
+        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:text="@string/onHold"
+        android:textAppearance="?android:attr/textAppearanceSmall"
+        android:textColor="@color/incall_call_banner_text_color"
+        android:textAllCaps="true"
+        android:singleLine="true" />
+</FrameLayout>
diff --git a/res/layout/sim_import_list_entry.xml b/res/layout/sim_import_list_entry.xml
new file mode 100644
index 0000000..0c89cfe
--- /dev/null
+++ b/res/layout/sim_import_list_entry.xml
@@ -0,0 +1,24 @@
+<?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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@android:id/text1"
+    android:layout_width="match_parent"
+    android:layout_height="?android:attr/listPreferredItemHeight"
+    android:textAppearance="?android:attr/textAppearanceLarge"
+    android:paddingStart="16dip"
+    android:gravity="center_vertical"
+/>
diff --git a/res/layout/sim_ndp.xml b/res/layout/sim_ndp.xml
new file mode 100644
index 0000000..5e98cff
--- /dev/null
+++ b/res/layout/sim_ndp.xml
@@ -0,0 +1,83 @@
+<?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.
+-->
+
+<!-- Layout for the Phone app's IccNetworkDepersonalizationPanel. -->
+<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:paddingStart="20dip"
+        android:paddingEnd="20dip">
+
+    <LinearLayout
+            android:id="@+id/entry_panel"
+            android:orientation="vertical"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true">
+
+        <TextView
+                android:textAppearance="?android:attr/textAppearanceMedium"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="@string/label_ndp"/>
+
+        <EditText android:id="@+id/pin_entry"
+                android:inputType="textPassword"
+                android:imeOptions="actionDone"
+                android:layout_marginTop="8dip"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:scrollHorizontally="true" />
+
+        <Button android:id="@+id/ndp_unlock"
+                android:layout_gravity="center_horizontal"
+                android:text="@string/sim_ndp_unlock_text"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingStart="20dip"
+                android:paddingEnd="20dip" />
+
+        <!-- Dismiss button.  (Not present in some products; see
+             sim_network_unlock_allow_dismiss in config.xml.) -->
+        <Button android:id="@+id/ndp_dismiss"
+                android:layout_gravity="center_horizontal"
+                android:text="@string/sim_ndp_dismiss_text"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:paddingStart="20dip"
+                android:paddingEnd="20dip" />
+
+    </LinearLayout>
+
+    <LinearLayout android:id="@+id/status_panel"
+            android:orientation="vertical"
+            android:visibility="gone"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerInParent="true"
+            android:colorBackground="#80808080"
+            android:panelColorBackground="#fff">
+
+        <TextView android:id="@+id/status_text"
+            android:textAppearance="?android:attr/textAppearanceMedium"
+            android:textStyle="bold"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:colorBackground="#80808080"
+            android:text="@string/requesting_unlock" />
+    </LinearLayout>
+
+</RelativeLayout>
diff --git a/res/layout/sip_settings_ui.xml b/res/layout/sip_settings_ui.xml
new file mode 100644
index 0000000..872c4b5
--- /dev/null
+++ b/res/layout/sip_settings_ui.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+**
+** Copyright 2010, 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.
+*/
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <ListView xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@android:id/list"
+        android:layout_width="match_parent"
+        android:layout_height="0dip"
+        android:layout_weight="1"
+        android:drawSelectorOnTop="false"
+        android:scrollbarAlwaysDrawVerticalTrack="true"
+    />
+
+</LinearLayout>