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