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>