235 lines
11 KiB
XML
235 lines
11 KiB
XML
<?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="fill_parent"
|
|
android:layout_height="fill_parent"
|
|
>
|
|
|
|
<!-- (1) incomingCallWidget: the UI displayed while an incoming call is ringing. -->
|
|
<com.android.internal.widget.SlidingTab
|
|
android:id="@+id/incomingSlidingTabCallWidget"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:visibility="gone"
|
|
android:layout_alignParentBottom="true"
|
|
android:layout_marginBottom="40dip"
|
|
/>
|
|
|
|
<!-- (1) incomingCallWidget: the UI displayed while an incoming call is ringing. -->
|
|
<com.android.internal.widget.RotarySelector
|
|
android:id="@+id/incomingRotarySelectorCallWidget"
|
|
android:layout_width="match_parent"
|
|
android:layout_height="wrap_content"
|
|
android:visibility="gone"
|
|
android:layout_alignParentBottom="true"
|
|
/>
|
|
|
|
<!--
|
|
(2) inCallControls: the widgets visible while a regular call
|
|
(or calls) is in progress
|
|
-->
|
|
<RelativeLayout android:id="@+id/inCallControls"
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="fill_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" />
|
|
<TextView android:id="@+id/holdButtonLabel"
|
|
style="@style/InCallRoundButtonLabel" />
|
|
</LinearLayout>
|
|
|
|
<!-- "Swap" (upper left) -->
|
|
<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" />
|
|
<TextView android:id="@+id/swapButtonLabel"
|
|
style="@style/InCallRoundButtonLabel" />
|
|
</LinearLayout>
|
|
|
|
<!-- "Merge" (upper left) CDMA specific -->
|
|
<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" />
|
|
<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.) -->
|
|
<!-- TODO: this should be a ViewStub, and should only get inflated
|
|
when first needed. -->
|
|
<include layout="@layout/non_drawer_dialpad"/>
|
|
|
|
<!-- Main cluster of onscreen buttons on the lower part of the screen. -->
|
|
<LinearLayout android:id="@+id/bottomButtons"
|
|
android:orientation="vertical"
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_alignParentBottom="true"
|
|
android:paddingLeft="4dip"
|
|
android:paddingRight="4dip"
|
|
android:paddingBottom="0dip"
|
|
>
|
|
|
|
<LinearLayout android:id="@+id/inCallControlsRow1"
|
|
android:orientation="horizontal"
|
|
android:layout_width="fill_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginBottom="-5dip"
|
|
>
|
|
<!-- 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="fill_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". GSM specific -->
|
|
<Button android:id="@+id/mergeButton"
|
|
style="@style/InCallTouchButton"
|
|
android:layout_width="fill_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/incall_endButtonLabel"
|
|
/>
|
|
|
|
<!-- "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="fill_parent"
|
|
android:layout_height="wrap_content"
|
|
android:layout_marginBottom="-5dip"
|
|
>
|
|
<!-- "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>
|