| <?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 FrameLayout with 2 children: |
| (1) incomingCallWidget: the UI displayed while an incoming call is ringing |
| (2) inCallControls: the widgets visible while a regular call (or calls) is in progress |
| Exactly one of these is visible at any given moment. |
| --> |
| <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" |
| android:layout_width="match_parent" |
| android:layout_height="match_parent" |
| > |
| |
| <!-- (1) incomingCallWidget: the UI displayed while an incoming call is ringing. --> |
| <com.android.internal.widget.SlidingTab |
| android:id="@+id/incomingCallWidget" |
| android:layout_width="match_parent" |
| android:layout_height="wrap_content" |
| android:visibility="gone" |
| android:layout_alignParentBottom="true" |
| android:layout_marginBottom="80dip" |
| /> |
| |
| <!-- |
| (2) 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:layout_alignParentTop="true" |
| android:visibility="gone" |
| > |
| <!-- Buttons visible in the upper corners of the screen (in some states). --> |
| <!-- These are small round ImageButtons with a text label floating |
| off to the side. --> |
| |
| <!-- "Hold" (upper left) --> |
| <!-- (Note "Hold", "Swap" and "Merge" are never available at |
| the same time. That's why it's OK for them to be in the |
| same position onscreen.) --> |
| <LinearLayout android:id="@+id/holdButtonContainer" |
| style="@style/InCallRoundButtonContainer" |
| android:layout_alignParentLeft="true" |
| android:layout_marginLeft="10dip" |
| android:visibility="gone"> |
| <ImageButton android:id="@+id/holdButton" |
| style="@style/InCallRoundTouchButton" |
| android:src="@drawable/ic_in_call_touch_round_hold" |
| android:contentDescription="@string/onscreenHoldText" /> |
| <TextView android:id="@+id/holdButtonLabel" |
| style="@style/InCallRoundButtonLabel" /> |
| </LinearLayout> |
| |
| <!-- "Swap" (upper left) --> |
| <!-- This button's label changes to "Manage calls" in some CDMA states. --> |
| <LinearLayout android:id="@+id/swapButtonContainer" |
| style="@style/InCallRoundButtonContainer" |
| android:layout_alignParentLeft="true" |
| android:layout_marginLeft="10dip" |
| android:visibility="gone"> |
| <ImageButton android:id="@+id/swapButton" |
| style="@style/InCallRoundTouchButton" |
| android:src="@drawable/ic_in_call_touch_round_swap" |
| android:contentDescription="@string/onscreenSwapCallsText"/> |
| <TextView android:id="@+id/swapButtonLabel" |
| style="@style/InCallRoundButtonLabel" /> |
| </LinearLayout> |
| |
| <!-- CDMA-specific "Merge" (upper left) --> |
| <!-- This button is used only on CDMA devices, where we can't use |
| the Merge button in the main cluster (because the "Add Call" |
| button might need to be enabled at the same time.) --> |
| <LinearLayout android:id="@+id/cdmaMergeButtonContainer" |
| style="@style/InCallRoundButtonContainer" |
| android:layout_alignParentLeft="true" |
| android:layout_marginLeft="10dip" |
| android:visibility="gone"> |
| <ImageButton android:id="@+id/cdmaMergeButton" |
| style="@style/InCallRoundTouchButton" |
| android:src="@drawable/ic_in_call_touch_round_merge_call" |
| android:contentDescription="@string/onscreenMergeCallsText" /> |
| <TextView |
| style="@style/InCallRoundButtonLabel" |
| android:text="@string/onscreenMergeCallsText" /> |
| </LinearLayout> |
| |
| <!-- DTMF dialpad shown in the upper part of the screen |
| (above the main cluster of buttons.) --> |
| <ViewStub android:id="@+id/non_drawer_dialpad_stub" |
| android:layout="@layout/non_drawer_dialpad" |
| android:layout_width="match_parent" |
| android:layout_height="match_parent" |
| /> |
| |
| <!-- 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" |
| android:paddingLeft="4dip" |
| android:paddingRight="4dip" |
| android:paddingBottom="4dip" |
| > |
| |
| <LinearLayout android:id="@+id/inCallControlsRow1" |
| android:orientation="horizontal" |
| android:layout_width="match_parent" |
| android:layout_height="wrap_content" |
| > |
| <!-- The buttons in the top row all have an icon *and* a |
| text label, so we use a <Button> with a "top" |
| compound drawable (rather than an ImageButton, which |
| can't have a label.) Some buttons set the icon image |
| here; others do it from Java if the image depends on |
| the current state of the call. --> |
| |
| <!-- The upper-left button in the main cluster is either |
| "Add" or "Merge", depending on the state of the call. --> |
| <FrameLayout |
| android:layout_width="1dip" |
| android:layout_weight="1" |
| android:layout_height="wrap_content" |
| android:layout_marginTop="8dip" |
| android:layout_marginBottom="8dip" |
| android:layout_marginLeft="8dip" |
| android:layout_marginRight="8dip" |
| > |
| <!-- "Add Call" --> |
| <Button android:id="@+id/addButton" |
| style="@style/InCallTouchButton" |
| android:layout_width="match_parent" |
| android:layout_height="wrap_content" |
| android:layout_marginTop="0dip" |
| android:layout_marginBottom="0dip" |
| android:layout_marginLeft="0dip" |
| android:layout_marginRight="0dip" |
| android:text="@string/onscreenAddCallText" |
| android:drawableTop="@drawable/ic_in_call_touch_add_call" |
| /> |
| <!-- "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. --> |
| <Button android:id="@+id/mergeButton" |
| style="@style/InCallTouchButton" |
| android:layout_width="match_parent" |
| android:layout_height="wrap_content" |
| android:layout_marginTop="0dip" |
| android:layout_marginBottom="0dip" |
| android:layout_marginLeft="0dip" |
| android:layout_marginRight="0dip" |
| android:text="@string/onscreenMergeCallsText" |
| android:drawableTop="@drawable/ic_in_call_touch_merge_call" |
| /> |
| </FrameLayout> |
| |
| <!-- "End call" --> |
| <Button android:id="@+id/endButton" |
| style="@style/InCallTouchButton" |
| android:layout_width="1dip" |
| android:layout_weight="1" |
| android:layout_height="wrap_content" |
| android:text="@string/onscreenEndCallText" |
| android:drawableTop="@drawable/ic_in_call_touch_end" |
| android:textColor="@color/end_call_button_text" |
| /> |
| |
| <!-- "Dialpad" --> |
| <Button android:id="@+id/dialpadButton" |
| style="@style/InCallTouchButton" |
| android:layout_width="1dip" |
| android:layout_weight="1" |
| android:layout_height="wrap_content" |
| android:text="@string/onscreenShowDialpadText" |
| /> |
| </LinearLayout> |
| <LinearLayout android:id="@+id/inCallControlsRow2" |
| android:orientation="horizontal" |
| android:layout_width="match_parent" |
| android:layout_height="wrap_content" |
| > |
| <!-- "Bluetooth" --> |
| <ToggleButton android:id="@+id/bluetoothButton" |
| style="@style/InCallTouchToggleButton" |
| android:layout_width="1dip" |
| android:layout_weight="1" |
| android:layout_height="wrap_content" |
| android:textOn="@string/onscreenBluetoothText" |
| android:textOff="@string/onscreenBluetoothText" |
| /> |
| <!-- "Mute" --> |
| <ToggleButton android:id="@+id/muteButton" |
| style="@style/InCallTouchToggleButton" |
| android:layout_width="1dip" |
| android:layout_weight="1" |
| android:layout_height="wrap_content" |
| android:textOn="@string/onscreenMuteText" |
| android:textOff="@string/onscreenMuteText" |
| /> |
| <!-- "Speaker" --> |
| <ToggleButton android:id="@+id/speakerButton" |
| style="@style/InCallTouchToggleButton" |
| android:layout_width="1dip" |
| android:layout_weight="1" |
| android:layout_height="wrap_content" |
| android:textOn="@string/onscreenSpeakerText" |
| android:textOff="@string/onscreenSpeakerText" |
| /> |
| </LinearLayout> |
| |
| </LinearLayout> |
| |
| </RelativeLayout> |
| |
| </RelativeLayout> |