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