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