summaryrefslogtreecommitdiffstats
path: root/res/layout-land/call_button_fragment.xml
blob: 5b9c4c125991cf97942e3cacfa60344110d27c5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
<?xml version="1.0" encoding="utf-8"?>
<!--Copyright (c) 2013, The Linux Foundation. All rights reserved.
  ~ Not a Contribution, Apache license notifications and license are retained
  ~ for attribution purposes only.

  ~ Copyright (C) 2013 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.
     -->

<!-- Main cluster of onscreen buttons on the lower part of the screen. -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:id="@+id/bottomButtons"
              android:orientation="horizontal"
              android:layout_width="wrap_content"
              android:layout_height="match_parent"
              android:visibility="gone">

    <!-- 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. -->
    <include android:id="@+id/extraButtonRow"
          layout="@layout/extra_button_row"
          android:layout_width="wrap_content"
          android:layout_height="match_parent"/>

    <!-- Row 2: The "End call" button. -->
    <ImageButton android:id="@+id/endButton"
                 style="@style/InCallEndButton"
                 android:layout_height="match_parent"
                 android:layout_marginLeft="2dp"
                 android:src="@drawable/ic_in_call_phone_hangup"
                 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="vertical"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:paddingTop="@dimen/button_cluster_side_padding"
            android:paddingBottom="@dimen/button_cluster_side_padding"
            android:background="@color/button_background"
            >

        <!-- 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 4th (or 5th) button and right padding -->
        <View style="@style/VerticalSeparator" />

        <com.android.incallui.CallRecordingButton
                     android:id="@+id/recordButton"
                     style="@style/InCallButton"
                     android:src="@drawable/ic_record_holo_dark"
                     android:contentDescription="@string/onscreenRecordText"
                     android:visibility="gone"
                     />

        <View android:id="@+id/recordSpacer"
              style="@style/VerticalSeparator"
              android:visibility="gone" />

        <!-- "Blacklist" -->
        <!-- The button used for toggling blackist. -->
        <ImageButton android:id="@+id/addBlacklistButton"
                    style="@style/InCallButton"
                    android:src="@drawable/ic_block_contact_holo_dark"
                    android:contentDescription="@string/onscreenBlacklistText"
                />

        <!-- Separator between 3rd (or 4th) and 4th (or 6th) button -->
        <View android:id="@+id/blacklistSpacer"
              style="@style/VerticalSeparator" />

        <ImageButton android:id="@+id/modifyCallButton"
                     style="@style/InCallButton"
                     android:src="@drawable/ic_switch_video_holo_dark"
                     android:contentDescription="@string/onscreenModifyCallText"
                />

        <View style="@style/VerticalSeparator" />

        <ImageButton android:id="@+id/addParticipant"
                     style="@style/InCallButton"
                     android:src="@drawable/ic_add_group_holo_dark"
                     android:contentDescription="@string/onscreenAddParticipant"
                />

        <!-- Separator between 5th (or 6th) button and right padding -->
        <View 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"
                     android:visibility="gone"
                />
        <!-- "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"
                     android:visibility="gone"
                />

        <!-- Separator between 4th and 5th button (if 5th exists) -->
        <View android:id="@+id/holdSwapSpacer"
              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. -->
        <ImageButton android:id="@+id/holdButton"
                      style="@style/InCallButton"
                      android:background="@drawable/btn_fake_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"
                     android:visibility="gone"
                />

        <!-- Separator between 3rd and 4th button -->
        <View style="@style/VerticalSeparator"/>

        <!-- "Mute" -->
        <!-- This is a "compound button": it has checked and unchecked states. -->
        <ImageButton android:id="@+id/muteButton"
                      style="@style/InCallButton"
                      android:background="@drawable/btn_fake_compound_mute"
                      android:contentDescription="@string/onscreenMuteText"
                />

        <!-- Separator between 2nd and 3rd 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. -->
        <ImageButton android:id="@+id/audioButton"
                      style="@style/InCallButton"
                      android:background="@drawable/btn_compound_audio"
                      android:contentDescription="@string/onscreenAudioText"
                />

        <!-- Separator between 1st and 2nd 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 left padding and 1st button -->
        <View style="@style/VerticalSeparator"/>

    </LinearLayout>

</LinearLayout>