• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<!--
3    Copyright 2020, The Android Open Source Project
4
5    Licensed under the Apache License, Version 2.0 (the "License");
6    you may not use this file except in compliance with the License.
7    You may obtain a copy of the License at
8
9        http://www.apache.org/licenses/LICENSE-2.0
10
11    Unless required by applicable law or agreed to in writing, software
12    distributed under the License is distributed on an "AS IS" BASIS,
13    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14    See the License for the specific language governing permissions and
15    limitations under the License.
16-->
17
18<com.android.systemui.statusbar.notification.row.NotificationConversationInfo
19    xmlns:android="http://schemas.android.com/apk/res/android"
20    android:id="@+id/notification_guts"
21    android:layout_width="match_parent"
22    android:layout_height="wrap_content"
23    android:focusable="true"
24    android:clipChildren="true"
25    android:clipToPadding="true"
26    android:orientation="vertical"
27    android:paddingStart="@dimen/notification_shade_content_margin_horizontal">
28
29    <!-- Package Info -->
30    <LinearLayout
31        android:id="@+id/header"
32        android:layout_width="match_parent"
33        android:layout_height="wrap_content"
34        android:gravity="center_vertical"
35        android:clipChildren="false"
36        android:paddingTop="@dimen/notification_guts_header_top_padding"
37        android:clipToPadding="true">
38        <FrameLayout
39            android:layout_width="wrap_content"
40            android:layout_height="wrap_content"
41            android:clipChildren="false"
42            android:clipToPadding="false"
43            android:layout_centerVertical="false"
44            android:layout_alignParentStart="true"
45            android:layout_marginEnd="12dp"
46        >
47
48            <!-- Big icon: 48x48, 12dp padding top, 16dp padding sides -->
49            <ImageView
50                android:id="@+id/conversation_icon"
51                android:layout_width="@*android:dimen/conversation_avatar_size"
52                android:layout_height="@*android:dimen/conversation_avatar_size"
53                android:layout_marginLeft="@*android:dimen/conversation_badge_protrusion"
54                android:layout_marginRight="@*android:dimen/conversation_badge_protrusion"
55                android:layout_marginBottom="@*android:dimen/conversation_badge_protrusion"
56                android:scaleType="centerCrop"
57                android:importantForAccessibility="no"
58            />
59
60            <FrameLayout
61                android:id="@+id/conversation_icon_badge"
62                android:layout_width="@*android:dimen/conversation_icon_size_badged"
63                android:layout_height="@*android:dimen/conversation_icon_size_badged"
64                android:layout_gravity="end|bottom"
65                android:clipChildren="false"
66                android:clipToPadding="false"
67            >
68                <ImageView
69                    android:id="@+id/conversation_icon_badge_bg"
70                    android:layout_width="match_parent"
71                    android:layout_height="match_parent"
72                    android:layout_gravity="center"
73                    android:src="@*android:drawable/conversation_badge_background"
74                    android:forceHasOverlappingRendering="false"
75                />
76                <ImageView
77                    android:id="@+id/conversation_icon_badge_icon"
78                    android:layout_width="match_parent"
79                    android:layout_height="match_parent"
80                    android:layout_margin="4dp"
81                    android:layout_gravity="center"
82                    android:forceHasOverlappingRendering="false"
83                />
84                <ImageView
85                    android:id="@+id/conversation_icon_badge_ring"
86                    android:layout_width="wrap_content"
87                    android:layout_height="wrap_content"
88                    android:layout_gravity="center"
89                    android:src="@*android:drawable/conversation_badge_ring"
90                    android:forceHasOverlappingRendering="false"
91                    android:clipToPadding="false"
92                    android:scaleType="center"
93                />
94            </FrameLayout>
95        </FrameLayout>
96        <LinearLayout
97            android:id="@+id/names"
98            android:layout_weight="1"
99            android:layout_width="0dp"
100            android:orientation="vertical"
101            android:layout_height="wrap_content"
102            android:minHeight="@dimen/notification_guts_conversation_icon_size"
103            android:layout_centerVertical="true"
104            android:gravity="center_vertical"
105            android:layout_alignEnd="@id/conversation_icon"
106            android:layout_toEndOf="@id/conversation_icon">
107            <LinearLayout
108                android:layout_width="match_parent"
109                android:layout_height="wrap_content"
110                android:gravity="start"
111                android:orientation="horizontal">
112                <TextView
113                    android:id="@+id/parent_channel_name"
114                    android:layout_width="wrap_content"
115                    android:layout_height="wrap_content"
116                    android:ellipsize="end"
117                    android:textDirection="locale"
118                    android:layout_weight="1"
119                    style="@style/TextAppearance.NotificationImportanceChannel"/>
120                <TextView
121                    android:layout_width="wrap_content"
122                    android:layout_height="wrap_content"
123                    android:layout_centerVertical="true"
124                    style="@style/TextAppearance.NotificationImportanceHeader"
125                    android:visibility="gone"
126                    android:layout_marginStart="2dp"
127                    android:layout_marginEnd="2dp"
128                    android:text="@*android:string/notification_header_divider_symbol" />
129                <TextView
130                    android:id="@+id/name"
131                    android:visibility="gone"
132                    android:layout_width="wrap_content"
133                    android:layout_height="wrap_content"
134                    android:layout_weight="1"
135                    style="@style/TextAppearance.NotificationImportanceChannel"/>
136            </LinearLayout>
137            <TextView
138                android:id="@+id/group_name"
139                android:layout_width="match_parent"
140                android:layout_height="wrap_content"
141                android:ellipsize="end"
142                android:textDirection="locale"
143                style="@style/TextAppearance.NotificationImportanceChannelGroup"/>
144            <TextView
145                android:id="@+id/pkg_name"
146                android:layout_width="match_parent"
147                android:layout_height="wrap_content"
148                style="@style/TextAppearance.NotificationImportanceApp"
149                android:ellipsize="end"
150                android:textDirection="locale"
151                android:maxLines="1"/>
152            <TextView
153                android:id="@+id/delegate_name"
154                android:layout_width="match_parent"
155                android:layout_height="wrap_content"
156                android:layout_centerVertical="true"
157                style="@style/TextAppearance.NotificationImportanceHeader"
158                android:layout_marginStart="2dp"
159                android:layout_marginEnd="2dp"
160                android:ellipsize="end"
161                android:textDirection="locale"
162                android:text="@string/notification_delegate_header"
163                android:maxLines="1" />
164
165        </LinearLayout>
166
167        <!-- end aligned fields -->
168        <ImageButton
169            android:id="@+id/info"
170            android:layout_width="@dimen/notification_importance_toggle_size"
171            android:layout_height="@dimen/notification_importance_toggle_size"
172            android:layout_centerVertical="true"
173            android:background="@drawable/ripple_drawable"
174            android:contentDescription="@string/notification_more_settings"
175            android:src="@drawable/ic_settings"
176            android:layout_alignParentEnd="true"
177            android:tint="@color/notification_guts_link_icon_tint"/>
178
179    </LinearLayout>
180
181    <LinearLayout
182        android:id="@+id/inline_controls"
183        android:layout_width="match_parent"
184        android:layout_height="wrap_content"
185        android:paddingEnd="@*android:dimen/notification_content_margin_end"
186        android:layout_marginTop="@dimen/notification_guts_option_vertical_padding"
187        android:clipChildren="false"
188        android:clipToPadding="false"
189        android:orientation="vertical">
190
191        <!-- Non configurable app/channel text. appears instead of @+id/interruptiveness_settings-->
192        <TextView
193            android:id="@+id/non_configurable_text"
194            android:text="@string/notification_unblockable_desc"
195            android:visibility="gone"
196            android:layout_width="match_parent"
197            android:layout_height="wrap_content"
198            style="@*android:style/TextAppearance.DeviceDefault.Notification" />
199
200        <!-- Non configurable multichannel text. appears instead of @+id/interruptiveness_settings-->
201        <TextView
202            android:id="@+id/non_configurable_multichannel_text"
203            android:text="@string/notification_multichannel_desc"
204            android:visibility="gone"
205            android:layout_width="match_parent"
206            android:layout_height="wrap_content"
207            style="@*android:style/TextAppearance.DeviceDefault.Notification" />
208
209        <LinearLayout
210            android:id="@+id/interruptiveness_settings"
211            android:layout_width="match_parent"
212            android:layout_height="wrap_content"
213            android:gravity="center"
214            android:orientation="vertical">
215
216            <com.android.systemui.statusbar.notification.row.ButtonLinearLayout
217                android:id="@+id/priority"
218                android:layout_width="match_parent"
219                android:layout_height="wrap_content"
220                android:padding="@dimen/notification_importance_button_padding"
221                android:clickable="true"
222                android:focusable="true"
223                android:background="@drawable/notification_guts_priority_button_bg"
224                android:orientation="vertical">
225                <LinearLayout
226                    android:layout_width="match_parent"
227                    android:layout_height="wrap_content"
228                    android:orientation="horizontal"
229                    android:gravity="center"
230                >
231                    <ImageView
232                        android:id="@+id/priority_icon"
233                        android:layout_width="wrap_content"
234                        android:layout_height="wrap_content"
235                        android:src="@drawable/ic_important_outline"
236                        android:background="@android:color/transparent"
237                        android:tint="@color/notification_guts_priority_contents"
238                        android:clickable="false"
239                        android:focusable="false"/>
240                    <TextView
241                        android:id="@+id/priority_label"
242                        android:layout_width="0dp"
243                        android:layout_height="wrap_content"
244                        android:layout_marginStart="@dimen/notification_importance_drawable_padding"
245                        android:layout_weight="1"
246                        android:ellipsize="end"
247                        android:maxLines="1"
248                        android:clickable="false"
249                        android:focusable="false"
250                        android:textAppearance="@style/TextAppearance.NotificationImportanceButton"
251                        android:text="@string/notification_priority_title"/>
252                </LinearLayout>
253                <TextView
254                    android:id="@+id/priority_summary"
255                    android:layout_width="match_parent"
256                    android:layout_height="wrap_content"
257                    android:layout_marginTop="@dimen/notification_importance_button_description_top_margin"
258                    android:visibility="gone"
259                    android:clickable="false"
260                    android:focusable="false"
261                    android:ellipsize="end"
262                    android:maxLines="4"
263                    android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
264            </com.android.systemui.statusbar.notification.row.ButtonLinearLayout>
265
266            <com.android.systemui.statusbar.notification.row.ButtonLinearLayout
267                android:id="@+id/default_behavior"
268                android:layout_width="match_parent"
269                android:layout_height="wrap_content"
270                android:layout_marginTop="@dimen/notification_importance_button_separation"
271                android:padding="@dimen/notification_importance_button_padding"
272                android:clickable="true"
273                android:focusable="true"
274                android:background="@drawable/notification_guts_priority_button_bg"
275                android:orientation="vertical">
276                <LinearLayout
277                    android:layout_width="match_parent"
278                    android:layout_height="wrap_content"
279                    android:orientation="horizontal"
280                    android:gravity="center"
281                >
282                    <ImageView
283                        android:id="@+id/default_icon"
284                        android:layout_width="wrap_content"
285                        android:layout_height="wrap_content"
286                        android:src="@drawable/ic_notifications_alert"
287                        android:background="@android:color/transparent"
288                        android:tint="@color/notification_guts_priority_contents"
289                        android:clickable="false"
290                        android:focusable="false"/>
291                    <TextView
292                        android:id="@+id/default_label"
293                        android:layout_width="0dp"
294                        android:layout_height="wrap_content"
295                        android:layout_marginStart="@dimen/notification_importance_drawable_padding"
296                        android:layout_weight="1"
297                        android:ellipsize="end"
298                        android:maxLines="1"
299                        android:clickable="false"
300                        android:focusable="false"
301                        android:textAppearance="@style/TextAppearance.NotificationImportanceButton"
302                        android:text="@string/notification_alert_title"/>
303                </LinearLayout>
304                <TextView
305                    android:id="@+id/default_summary"
306                    android:layout_width="match_parent"
307                    android:layout_height="wrap_content"
308                    android:layout_marginTop="@dimen/notification_importance_button_description_top_margin"
309                    android:visibility="gone"
310                    android:text="@string/notification_channel_summary_default"
311                    android:clickable="false"
312                    android:focusable="false"
313                    android:ellipsize="end"
314                    android:maxLines="3"
315                    android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
316            </com.android.systemui.statusbar.notification.row.ButtonLinearLayout>
317
318            <com.android.systemui.statusbar.notification.row.ButtonLinearLayout
319                android:id="@+id/silence"
320                android:layout_width="match_parent"
321                android:layout_height="wrap_content"
322                android:layout_marginTop="@dimen/notification_importance_button_separation"
323                android:padding="@dimen/notification_importance_button_padding"
324                android:clickable="true"
325                android:focusable="true"
326                android:background="@drawable/notification_guts_priority_button_bg"
327                android:orientation="vertical">
328                <LinearLayout
329                    android:layout_width="match_parent"
330                    android:layout_height="wrap_content"
331                    android:orientation="horizontal"
332                    android:gravity="center"
333                >
334                    <ImageView
335                        android:id="@+id/silence_icon"
336                        android:src="@drawable/ic_notifications_silence"
337                        android:background="@android:color/transparent"
338                        android:tint="@color/notification_guts_priority_contents"
339                        android:layout_gravity="center"
340                        android:layout_width="wrap_content"
341                        android:layout_height="wrap_content"
342                        android:clickable="false"
343                        android:focusable="false"/>
344                    <TextView
345                        android:id="@+id/silence_label"
346                        android:layout_width="match_parent"
347                        android:layout_height="wrap_content"
348                        android:ellipsize="end"
349                        android:maxLines="1"
350                        android:clickable="false"
351                        android:focusable="false"
352                        android:layout_toEndOf="@id/silence_icon"
353                        android:layout_marginStart="@dimen/notification_importance_drawable_padding"
354                        android:textAppearance="@style/TextAppearance.NotificationImportanceButton"
355                        android:text="@string/notification_silence_title"/>
356                </LinearLayout>
357                <TextView
358                    android:id="@+id/silence_summary"
359                    android:layout_width="match_parent"
360                    android:layout_height="wrap_content"
361                    android:layout_marginTop="@dimen/notification_importance_button_description_top_margin"
362                    android:visibility="gone"
363                    android:text="@string/notification_conversation_summary_low"
364                    android:clickable="false"
365                    android:focusable="false"
366                    android:ellipsize="end"
367                    android:maxLines="3"
368                    android:textAppearance="@style/TextAppearance.NotificationImportanceDetail"/>
369            </com.android.systemui.statusbar.notification.row.ButtonLinearLayout>
370
371        </LinearLayout>
372
373        <RelativeLayout
374            android:id="@+id/bottom_buttons"
375            android:layout_width="match_parent"
376            android:layout_height="60dp"
377            android:gravity="center_vertical"
378            android:paddingStart="4dp"
379            android:paddingEnd="4dp"
380        >
381            <TextView
382                android:id="@+id/done"
383                android:text="@string/inline_ok_button"
384                android:layout_width="wrap_content"
385                android:layout_height="wrap_content"
386                android:layout_alignParentEnd="true"
387                android:gravity="end|center_vertical"
388                android:minWidth="@dimen/notification_importance_toggle_size"
389                android:minHeight="@dimen/notification_importance_toggle_size"
390                style="@style/TextAppearance.NotificationInfo.Button"/>
391        </RelativeLayout>
392    </LinearLayout>
393
394</com.android.systemui.statusbar.notification.row.NotificationConversationInfo>
395