1<?xml version="1.0" encoding="utf-8"?>
2<!--
3/*
4** Copyright 2009, The Android Open Source Project
5**
6** Licensed under the Apache License, Version 2.0 (the "License");
7** you may not use this file except in compliance with the License.
8** You may obtain a copy of the License at
9**
10**     http://www.apache.org/licenses/LICENSE-2.0
11**
12** Unless required by applicable law or agreed to in writing, software
13** distributed under the License is distributed on an "AS IS" BASIS,
14** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15** See the License for the specific language governing permissions and
16** limitations under the License.
17*/
18-->
19
20<!-- These resources are around just to allow their values to be customized
21     for different hardware and product builds. -->
22<resources>
23    <!-- Component to be used as the recents implementation.  Must implement the
24     RecentsImplementation interface.  This name is in the ComponentName flattened format
25     (package/class)  -->
26    <string name="config_recentsComponent" translatable="false">com.android.systemui.recents.OverviewProxyRecentsImpl</string>
27
28    <!-- Whether or not we show the number in the bar. -->
29    <bool name="config_statusBarShowNumber">false</bool>
30
31    <!-- For how long the lock screen can be on before the display turns off. -->
32    <integer name="config_lockScreenDisplayTimeout">10000</integer>
33
34    <!-- Vibrator pattern for camera gesture launch. -->
35    <integer-array translatable="false" name="config_cameraLaunchGestureVibePattern">
36        <item>0</item>
37        <item>400</item>
38    </integer-array>
39
40    <!-- decay duration (from size_max -> size), in ms -->
41    <integer name="navigation_bar_deadzone_hold">333</integer>
42    <integer name="navigation_bar_deadzone_decay">333</integer>
43
44    <!-- orientation of the dead zone when touches have recently occurred elsewhere on screen -->
45    <integer name="navigation_bar_deadzone_orientation">0</integer>
46
47    <!-- Whether or not lockscreen shortcuts can be customized -->
48    <bool name="custom_lockscreen_shortcuts_enabled">false</bool>
49
50    <!-- Whether or not long-pressing on keyguard will display to customize lockscreen -->
51    <bool name="long_press_keyguard_customize_lockscreen_enabled">false</bool>
52
53    <bool name="config_dead_zone_flash">false</bool>
54
55    <!-- Whether to enable dimming navigation buttons when wallpaper is not visible, should be
56         enabled for OLED devices to reduce/prevent burn in on the navigation bar (because of the
57         black background and static button placements) and disabled for all other devices to
58         prevent wasting cpu cycles on the dimming animation -->
59    <bool name="config_navigation_bar_enable_auto_dim_no_visible_wallpaper">true</bool>
60
61    <!-- The maximum number of tiles in the QuickQSPanel -->
62    <integer name="quick_qs_panel_max_tiles">4</integer>
63
64    <!-- The maximum number of rows in the QuickQSPanel -->
65    <integer name="quick_qs_panel_max_rows">2</integer>
66
67    <!-- The number of columns in the QuickSettings -->
68    <integer name="quick_settings_num_columns">2</integer>
69
70    <!-- The number of rows in the QuickSettings -->
71    <integer name="quick_settings_max_rows">4</integer>
72
73    <!-- If the dp width of the available space is <= this value, potentially adjust the number
74         of media recommendation items-->
75    <integer name="default_qs_media_rec_width_dp">380</integer>
76
77    <!-- The number of columns that the top level tiles span in the QuickSettings -->
78
79    <!-- The default tiles to display in QuickSettings -->
80    <string name="quick_settings_tiles_default" translatable="false">
81        internet,bt,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,custom(com.android.permissioncontroller/.permission.service.SafetyCenterQsTileService)
82    </string>
83
84    <!-- The class path of the Safety Quick Settings Tile -->
85    <string name="safety_quick_settings_tile_class" translatable="false">
86        com.android.permissioncontroller.permission.service.v33.SafetyCenterQsTileService
87    </string>
88
89    <!-- The minimum number of tiles to display in QuickSettings -->
90    <integer name="quick_settings_min_num_tiles">6</integer>
91
92    <!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" -->
93    <string name="quick_settings_tiles_stock" translatable="false">
94        internet,bt,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,location,hotspot,inversion,saver,dark,work,night,reverse,reduce_brightness,qr_code_scanner,onehanded,color_correction,dream,font_scaling
95    </string>
96
97    <!-- The tiles to display in QuickSettings -->
98    <string name="quick_settings_tiles" translatable="false">default</string>
99
100    <!-- The tiles to display in QuickSettings in retail mode -->
101    <string name="quick_settings_tiles_retail_mode" translatable="false">
102        night,dark,dnd,flashlight,rotation,location
103    </string>
104
105    <!-- Tiles to auto add to Quick Settings upon first change of a given secure setting.
106         The syntax is setting-name:spec. If the tile is a TileService, the spec should be specified
107         as custom(package/class). Relative class name is supported. -->
108    <string-array name="config_quickSettingsAutoAdd" translatable="false">
109        <item>accessibility_display_daltonizer_enabled:color_correction</item>
110        <item>accessibility_display_inversion_enabled:inversion</item>
111        <item>one_handed_mode_enabled:onehanded</item>
112        <item>accessibility_font_scaling_has_been_changed:font_scaling</item>
113    </string-array>
114
115    <!-- Use collapsed layout for media player in landscape QQS -->
116    <bool name="config_quickSettingsMediaLandscapeCollapsed">true</bool>
117
118    <!-- Show indicator for Wifi on but not connected. -->
119    <bool name="config_showWifiIndicatorWhenEnabled">false</bool>
120
121    <!-- The number of milliseconds before the heads up notification auto-dismisses. -->
122    <integer name="heads_up_notification_decay">5000</integer>
123
124    <!-- The number of milliseconds before the heads up notification sent automatically by the system auto-dismisses. -->
125    <integer name="auto_heads_up_notification_decay">3000</integer>
126
127    <!-- The number of milliseconds after a heads up notification is pushed back
128     before the app can interrupt again. -->
129    <integer name="heads_up_default_snooze_length_ms">60000</integer>
130
131    <!-- Minimum display time for a heads up notification, in milliseconds. -->
132    <integer name="heads_up_notification_minimum_time">2000</integer>
133
134    <!-- Display time for a sticky heads up notification, in milliseconds. -->
135    <integer name="sticky_heads_up_notification_time">60000</integer>
136
137    <!-- Whether to hide the notification header when the HUN is expanded. -->
138    <bool name="heads_up_notification_hides_header">false</bool>
139
140    <!-- The number of milliseconds before the heads up notification accepts touches. -->
141    <integer name="touch_acceptance_delay">700</integer>
142
143    <!-- The number of milliseconds to extend ambient pulse by when prompted (e.g. on touch) -->
144    <integer name="ambient_notification_extension_time">10000</integer>
145
146    <!-- The maximum count of notifications on Keyguard. The rest will be collapsed in an overflow
147     card. -->
148    <integer name="keyguard_max_notification_count">-1</integer>
149
150    <!-- Doze: does this device support STATE_DOZE?  -->
151    <bool name="doze_display_state_supported">false</bool>
152
153    <!-- Doze: does this device support STATE_DOZE_SUSPEND?  -->
154    <bool name="doze_suspend_display_state_supported">false</bool>
155
156    <!-- Doze: should the significant motion sensor be used as a pulse signal? -->
157    <bool name="doze_pulse_on_significant_motion">false</bool>
158
159    <!-- Doze: check proximity sensor before pulsing? -->
160    <bool name="doze_proximity_check_before_pulse">true</bool>
161
162    <!-- Doze: only register sensors that use prox when device is in certain Display states. This
163     delays registering sensors when device first shows dozing UI but the
164     Display & Power state hasn't changed to low-power mode yet. -->
165    <bool name="doze_selectively_register_prox">false</bool>
166
167    <!-- Doze: whether the single tap sensor uses the proximity sensor.
168     If both this parameter and doze_selectively_register_prox are true, registration for the
169     sensor will be delayed when the device first enters dozing but the device has not entered its
170     low powered state yet. -->
171    <bool name="doze_single_tap_uses_prox">true</bool>
172
173    <!-- Doze: whether the single tap sensor uses the proximity sensor in the given posture.
174        See doze_single_tap_uses_prox for usage. -->
175    <integer-array name="doze_single_tap_uses_prox_posture_mapping">
176        <item>1</item> <!-- UNKNOWN -->
177        <item>1</item> <!-- CLOSED -->
178        <item>1</item> <!-- HALF_OPENED -->
179        <item>1</item> <!-- OPENED -->
180    </integer-array>
181
182    <!-- Doze: whether the long press sensor uses the proximity sensor.
183     If both this parameter and doze_selectively_register_prox are true, registration for the
184     sensor will be delayed when the device first enters dozing but the device has not entered its
185     low powered state yet. -->
186    <bool name="doze_long_press_uses_prox">true</bool>
187
188    <!-- Doze: duration to avoid false pickup gestures triggered by notification vibrations -->
189    <integer name="doze_pickup_vibration_threshold">2000</integer>
190
191    <!-- Doze: quick pickup duration to stay in AOD until the next gesture is triggered -->
192    <integer name="doze_quick_pickup_aod_duration">5000</integer>
193
194    <!-- Type of a sensor that provides a low-power estimate of the desired display
195         brightness, suitable to listen to while the device is asleep (e.g. during
196         always-on display) -->
197    <string name="doze_brightness_sensor_type" translatable="false"></string>
198
199    <!-- Name of a sensor per posture state that provides a low-power estimate of the desired
200         display brightness, suitable to listen to while the device is asleep (e.g. during
201         always-on display) -->
202    <string-array name="doze_brightness_sensor_name_posture_mapping" translatable="false">
203        <!-- UNKNOWN -->
204        <!-- CLOSED -->
205        <!-- HALF_OPENED -->
206        <!-- OPENED -->
207    </string-array>
208
209    <!-- Override value to use for proximity sensor.  -->
210    <string name="proximity_sensor_type" translatable="false"></string>
211
212    <!-- Sensor type per posture state to use for proximity sensor -->
213    <string-array name="proximity_sensor_posture_mapping" translatable="false">
214        <!-- UNKNOWN -->
215        <!-- CLOSED -->
216        <!-- HALF_OPENED -->
217        <!-- OPENED -->
218    </string-array>
219
220    <!-- If using proximity_sensor_type, specifies a threshold value to distinguish near and
221         far break points. A sensor value less than this is considered "near". -->
222    <item name="proximity_sensor_threshold" translatable="false" format="float" type="dimen"></item>
223
224    <!-- If using proximity_sensor_type, specifies a threshold value to distinguish near and
225         far break points. A sensor value more than this is considered "far". If not set,
226         proximity_sensor_threshold is used. This allows one to implement a latching mechanism for
227         noisy sensors. -->
228    <item name="proximity_sensor_threshold_latch" translatable="false" format="float" type="dimen"></item>
229
230    <!-- Override value to use for proximity sensor as confirmation for proximity_sensor_type. -->
231    <string name="proximity_sensor_secondary_type" translatable="false"></string>
232
233    <!-- Sensor type per posture state to use for proximity sensor as a confirmation for
234        proximity_sensor_type. -->
235    <string-array name="proximity_sensor_secondary_posture_mapping" translatable="false">
236        <!-- UNKNOWN -->
237        <!-- CLOSED -->
238        <!-- HALF_OPENED -->
239        <!-- OPENED -->
240    </string-array>
241
242    <!-- If using proximity_sensor_secondary_type, specifies a threshold value to distinguish
243         near and far break points. A sensor value less than this is considered "near". -->
244    <item name="proximity_sensor_secondary_threshold" translatable="false" format="float"
245          type="dimen"></item>
246
247    <!-- If using proximity_sensor_secondary_type, specifies a threshold value to distinguish near and
248         far break points. A sensor value more than this is considered "far". If not set,
249         proximity_sensor_secondary_threshold is used. This allows one to implement a latching
250         mechanism for noisy sensors. -->
251    <item name="proximity_sensor_secondary_threshold_latch" translatable="false" format="float" type="dimen"></item>
252
253    <!-- Doze: pulse parameter - how long does it take to fade in? -->
254    <integer name="doze_pulse_duration_in">130</integer>
255
256    <!-- Doze: pulse parameter - once faded in, how long does it stay visible? -->
257    <integer name="doze_pulse_duration_visible">6000</integer>
258
259    <!-- Doze: pulse parameter - how long does it take to fade out? -->
260    <integer name="doze_pulse_duration_out">600</integer>
261
262    <!-- Doze: alpha to apply to small icons when dozing -->
263    <integer name="doze_small_icon_alpha">222</integer><!-- 87% of 0xff -->
264
265    <!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
266               to brightness values; -1 means keeping the current brightness. -->
267    <integer-array name="config_doze_brightness_sensor_to_brightness">
268        <item>-1</item> <!-- 0: OFF -->
269        <item>2</item> <!-- 1: NIGHT -->
270        <item>5</item> <!-- 2: LOW -->
271        <item>27</item> <!-- 3: HIGH -->
272        <item>28</item> <!-- 4: SUN -->
273    </integer-array>
274
275    <!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
276               to an opacity value for a black scrim that is overlayed in AOD1.
277               Valid range is from 0 (transparent) to 255 (opaque).
278               -1 means keeping the current opacity. -->
279    <integer-array name="config_doze_brightness_sensor_to_scrim_opacity">
280        <item>-1</item> <!-- 0: OFF -->
281        <item>0</item> <!-- 1: NIGHT -->
282        <item>0</item> <!-- 2: LOW -->
283        <item>0</item> <!-- 3: HIGH -->
284        <item>0</item> <!-- 4: SUN -->
285    </integer-array>
286
287    <!-- Doze: whether the double tap sensor reports 2D touch coordinates -->
288    <bool name="doze_double_tap_reports_touch_coordinates">false</bool>
289
290    <!-- Number of times to show the strong alarm warning text in the volume dialog -->
291    <integer name="zen_mode_alarm_warning_threshold">5</integer>
292
293    <!-- Enable the default volume dialog -->
294    <bool name="enable_volume_ui">true</bool>
295
296    <!-- Enable the default volume level warning dialog -->
297    <bool name="enable_safety_warning">true</bool>
298
299    <!-- Whether to show the full screen user switcher. -->
300    <bool name="config_enableFullscreenUserSwitcher">false</bool>
301
302    <!-- Determines whether the shell features all run on another thread. -->
303    <bool name="config_enableShellMainThread">true</bool>
304
305    <!-- QS tile shape store width. negative implies fill configuration instead of stroke-->
306    <dimen name="config_qsTileStrokeWidthActive">-1dp</dimen>
307    <dimen name="config_qsTileStrokeWidthInactive">-1dp</dimen>
308
309    <!-- SystemUI vender service, used in config_systemUIServiceComponents. -->
310    <string name="config_systemUIVendorServiceComponent" translatable="false">com.android.systemui.VendorServices</string>
311
312    <!-- SystemUI Services (per user): The classes of the stuff to start for each user. This is a subset of the config_systemUIServiceComponents -->
313    <string-array name="config_systemUIServiceComponentsPerUser" translatable="false">
314        <item>com.android.systemui.util.NotificationChannels</item>
315    </string-array>
316
317    <!-- Nav bar button default ordering/layout -->
318    <string name="config_navBarLayout" translatable="false">left[.5W],back[1WC];home;recent[1WC],right[.5W]</string>
319    <string name="config_navBarLayoutQuickstep" translatable="false">back[1.7WC];home;contextual[1.7WC]</string>
320    <string name="config_navBarLayoutHandle" translatable="false">back[70AC];home_handle;ime_switcher[70AC]</string>
321
322    <!-- Whether to show a warning notification when device's skin temperature is high. -->
323    <integer name="config_showTemperatureWarning">0</integer>
324
325    <!-- Whether to show a alarm dialog when device's usb port is overheating. -->
326    <integer name="config_showUsbPortAlarm">0</integer>
327
328    <item type="id" name="action_toggle_overview"/>
329
330    <!-- Whether or not to show notifications to the user. If disabled, SystemUI will still be
331         registered as a notification listener, but will ignore all notification events. -->
332    <bool name="config_renderNotifications">true</bool>
333
334    <!-- Whether or not the gear icon on notifications should be shown. The gear is shown when the
335         the notification is not swiped enough to dismiss it. -->
336    <bool name="config_showNotificationGear">true</bool>
337
338    <!-- Whether or not a background should be drawn behind a notification. -->
339    <bool name="config_drawNotificationBackground">false</bool>
340
341    <!-- Whether or the notifications can be shown and dismissed with a drag. -->
342    <bool name="config_enableNotificationShadeDrag">true</bool>
343
344    <!-- Whether to show activity indicators in the status bar -->
345    <bool name="config_showActivity">false</bool>
346
347    <!-- Whether or not the button to clear all notifications will be shown. -->
348    <bool name="config_enableNotificationsClearAll">true</bool>
349
350    <!-- Whether or not to show the notification shelf that houses the icons of notifications that
351     have been scrolled off-screen. -->
352    <bool name="config_showNotificationShelf">true</bool>
353
354    <!-- Whether or not the fade on the notification is based on the amount that it has been swiped
355         off-screen. -->
356    <bool name="config_fadeDependingOnAmountSwiped">false</bool>
357
358    <!-- Whether or the notifications should be clipped to be reduced in height if it has been
359         scrolled to the top of the screen. -->
360    <bool name="config_clipNotificationScrollToTop">true</bool>
361
362    <!-- Whether or not the notification contents should be clipped to any background that is
363         set on the notification container. For example, if this value is true and the background
364         has rounded corners, then the contents will be clipped to those corners. -->
365    <bool name="config_clipNotificationsToOutline">false</bool>
366
367    <!-- Whether or not notifications that can be expanded will always be in their expanded state.
368         This value only affects notifications that are not a group of notifications from the same
369         applications. If this value is false, then only the first notification will be expanded;
370         the other notifications need to be manually expanded by the user. -->
371    <bool name="config_alwaysExpandNonGroupedNotifications">false</bool>
372
373    <!-- Whether or not an expandable notification can be manually expanded or collapsed by the
374         user. Grouped notifications are still expandable even if this value is false. -->
375    <bool name="config_enableNonGroupedNotificationExpand">true</bool>
376
377    <!-- Whether or not there should be dividing lines between child notifications when the
378         group has been expanded. -->
379    <bool name="config_showDividersWhenGroupNotificationExpanded">false</bool>
380
381    <!-- Whether or not the dividing lines should be shown when the container is expanding and
382         collapsing. If this value is true, then the lines will only show when the container has
383         been completely expanded. -->
384    <bool name="config_hideDividersDuringExpand">true</bool>
385
386    <!-- Whether or not child notifications that are part of a group will have shadows. -->
387    <bool name="config_enableShadowOnChildNotifications">true</bool>
388
389    <!-- If true, group numbers are shown in the expander instead of via "+N" overflow number -->
390    <bool name="config_showNotificationGroupCountInExpander">true</bool>
391
392    <!-- Whether or not a view containing child notifications will have a custom background when
393         it has been expanded to reveal its children. -->
394    <bool name="config_showGroupNotificationBgWhenExpanded">false</bool>
395
396    <!-- Should we vibrate on an icon animation of the shelf. This should only be active if the
397     vibrator is capable of subtle vibrations -->
398    <bool name="config_vibrateOnIconAnimation">false</bool>
399
400    <!-- Notifications are sized to match the width of two (of 4) qs tiles in landscape. -->
401    <bool name="config_skinnyNotifsInLandscape">true</bool>
402
403    <!-- Snooze: default notificaiton snooze time. -->
404    <integer name="config_notification_snooze_time_default">60</integer>
405
406    <!-- Snooze: List of snooze values in integer minutes. -->
407    <integer-array name="config_notification_snooze_times">
408        <item>15</item>
409        <item>30</item>
410        <item>60</item>
411        <item>120</item>
412    </integer-array>
413
414    <!-- Smart replies in notifications: Whether smart replies in notifications are enabled. -->
415    <bool name="config_smart_replies_in_notifications_enabled">true</bool>
416
417    <!-- Smart replies in notifications: Whether we disable the feature unless the app targets P -->
418    <bool name="config_smart_replies_in_notifications_requires_targeting_p">true</bool>
419
420    <!-- Smart replies in notifications: Maximum number of times SmartReplyView will try to find a
421         better (narrower) line-break for a double-line smart reply button. -->
422    <integer name="config_smart_replies_in_notifications_max_squeeze_remeasure_attempts">3</integer>
423
424    <!-- Smart replies in notifications: Whether by default tapping on a choice should let the user
425         edit the input before it is sent to the app. Developers can override this via
426         RemoteInput.Builder.setEditChoicesBeforeSending. -->
427    <bool name="config_smart_replies_in_notifications_edit_choices_before_sending">false</bool>
428
429    <!-- Smart replies in notifications: Whether smart suggestions in notifications are enabled in
430         heads-up notifications.  -->
431    <bool name="config_smart_replies_in_notifications_show_in_heads_up">true</bool>
432
433    <!-- Smart replies in notifications: Minimum number of system generated smart replies that
434         should be shown in a notification. If we cannot show at least this many replies we instead
435         show none. -->
436    <integer name="config_smart_replies_in_notifications_min_num_system_generated_replies">0</integer>
437
438    <!-- Smart replies in notifications: Maximum number of smart actions to show in notifications.
439         -->
440    <integer name="config_smart_replies_in_notifications_max_num_actions">-1</integer>
441
442    <!-- Smart replies in notifications: Delay (ms) before smart suggestions are clickable, since
443         they were added. -->
444    <integer name="config_smart_replies_in_notifications_onclick_init_delay">200</integer>
445
446    <!-- Smartspace trampoline activity that is used when the user taps smartspace. -->
447    <string name="config_smartspaceTrampolineActivityComponent" translatable="false">com.google.android.apps.gsa.staticplugins.opa.smartspace.ExportedSmartspaceTrampolineActivity</string>
448
449    <!-- Screenshot editing default activity.  Must handle ACTION_EDIT image/png intents.
450         Blank sends the user to the Chooser first.
451         This name is in the ComponentName flattened format (package/class)  -->
452    <string name="config_screenshotEditor" translatable="false"></string>
453
454    <!-- ComponentName for the file browsing app that the system would expect to be used in work
455         profile. The icon for this app will be shown to the user when informing them that a
456         screenshot has been saved to work profile. If blank, a default icon will be shown. -->
457    <string name="config_sceenshotWorkProfileFilesApp" translatable="false"></string>
458
459    <!-- The component name of the screenshot editing activity that provides the App Clips flow.
460         The App Clips flow includes taking a screenshot, showing user screenshot cropping activity
461         and finally letting user send the screenshot to the calling notes app. This activity
462         should not send the screenshot to the calling activity without user consent. -->
463    <string name="config_screenshotAppClipsActivityComponent" translatable="false"
464            >com.android.systemui/com.android.systemui.screenshot.appclips.AppClipsActivity</string>
465
466    <!-- Remote copy default activity.  Must handle REMOTE_COPY_ACTION intents.
467     This name is in the ComponentName flattened format (package/class)  -->
468    <string name="config_remoteCopyPackage" translatable="false"></string>
469
470    <!-- On debuggable builds, alert the user if SystemUI PSS goes over this number (in kb) -->
471    <integer name="watch_heap_limit">256000</integer>
472
473    <!-- SystemUI Plugins that can be loaded on user builds. -->
474    <string-array name="config_pluginAllowlist" translatable="false">
475        <item>com.android.systemui</item>
476    </string-array>
477
478    <!-- Launcher package name for overlaying icons. -->
479    <string name="launcher_overlayable_package" translatable="false">com.android.launcher3</string>
480
481    <!-- ThemePicker package name for overlaying icons. -->
482    <string name="themepicker_overlayable_package" translatable="false">com.android.wallpaper</string>
483
484    <!-- Default rounded corner curve (a Bezier). Must match (the curved path in) rounded.xml.
485         Note that while rounded.xml includes the entire path (including the horizontal and vertical
486         corner edges), this pulls out just the curve.
487     -->
488    <string name="config_rounded_mask" translatable="false">"M8,0C3.6,0,0,3.6,0,8"</string>
489
490    <!-- Preferred refresh rate at keyguard, if supported by the display. Overrides
491         keyguardMaxRefreshRate. -->
492    <integer name="config_keyguardRefreshRate">-1</integer>
493
494    <!-- Preferred max refresh rate at keyguard, if supported by the display. -->
495    <integer name="config_keyguardMaxRefreshRate">-1</integer>
496
497    <!-- Defines system icons to be excluded from the display. That is to say, the icons in the
498         status bar that are part of this list are never displayed. Each item in the list must be a
499         string defined in core/res/res/config.xml to properly exclude the icon.
500     -->
501    <string-array name="config_statusBarIconsToExclude" translatable="false">
502        <item>@*android:string/status_bar_rotate</item>
503        <item>@*android:string/status_bar_headset</item>
504    </string-array>
505
506
507    <!-- Whether to show estimate in QS header. Default to false in case there's not enough
508     space -->
509    <bool name="config_showBatteryEstimateQSBH">false</bool>
510
511    <!-- Whether to show extra battery saver confirmation dialog. -->
512    <bool name="config_extra_battery_saver_confirmation">false</bool>
513
514    <!-- A path representing a shield. Will sometimes be displayed with the battery icon when
515         needed. This path is a 10px wide and 13px tall. -->
516    <string name="config_batterymeterShieldPath" translatable="false">
517        M5 0L0 1.88V6.19C0 9.35 2.13 12.29 5 13.01C7.87 12.29 10 9.35 10 6.19V1.88L5 0Z
518    </string>
519
520    <!-- A path similar to frameworks/base/core/res/res/values/config.xml
521      config_mainBuiltInDisplayCutout that describes a path larger than the exact path of a display
522      cutout. If present as well as config_enableDisplayCutoutProtection is set to true, then
523      SystemUI will draw this "protection path" instead of the display cutout path that is normally
524      used for anti-aliasing.
525
526      This path will only be drawn when the front-facing camera turns on, otherwise the main
527      DisplayCutout path will be rendered
528       -->
529    <string translatable="false" name="config_frontBuiltInDisplayCutoutProtection"></string>
530
531    <!--  ID for the camera that needs extra protection -->
532    <string translatable="false" name="config_protectedCameraId"></string>
533
534    <!-- Comma-separated list of packages to exclude from camera protection e.g.
535    "com.android.systemui,com.android.xyz" -->
536    <string translatable="false" name="config_cameraProtectionExcludedPackages"></string>
537
538    <!--  Flag to turn on the rendering of the above path or not  -->
539    <bool name="config_enableDisplayCutoutProtection">false</bool>
540
541    <!-- Controls can query 2 preferred applications for limited number of suggested controls.
542         This config value should contain a list of package names of thoses preferred applications.
543    -->
544    <string-array translatable="false" name="config_controlsPreferredPackages" />
545
546    <!-- Max number of columns for quick controls area -->
547    <integer name="controls_max_columns">2</integer>
548
549    <!-- Max number of columns for power menu lite -->
550    <integer name="power_menu_lite_max_columns">2</integer>
551    <!-- Max number of rows for power menu lite -->
552    <integer name="power_menu_lite_max_rows">4</integer>
553
554    <!-- If the dp width of the available space is <= this value, potentially adjust the number
555         of columns-->
556    <integer name="controls_max_columns_adjust_below_width_dp">320</integer>
557    <!-- If the config font scale is >= this value, potentially adjust the number of columns-->
558    <item name="controls_max_columns_adjust_above_font_scale" translatable="false" format="float" type="dimen">1.25</item>
559
560    <!-- Show a separate icon for low and high volume on the volume dialog -->
561    <bool name="config_showLowMediaVolumeIcon">false</bool>
562
563    <!-- Change the volume row tint when it is inactive, i.e. when it is being dismissed -->
564    <bool name="config_changeVolumeRowTintWhenInactive">true</bool>
565
566    <!-- The duraction of the show animation for the volume dialog in milliseconds -->
567    <integer name="config_dialogShowAnimationDurationMs">300</integer>
568
569    <!-- The duraction of the hide animation for the volume dialog in milliseconds -->
570    <integer name="config_dialogHideAnimationDurationMs">250</integer>
571
572    <!-- Whether or not to show a notification for an unknown battery state -->
573    <bool name="config_showNotificationForUnknownBatteryState">false</bool>
574    <!-- content URL in a notification when ACTION_BATTERY_CHANGED.EXTRA_PRESENT field is false -->
575    <string translatable="false" name="config_batteryStateUnknownUrl"></string>
576
577    <!-- Package name of the preferred system app to perform eSOS action -->
578    <string name="config_preferredEmergencySosPackage" translatable="false"></string>
579
580    <!-- Whether to show the side fps hint while on bouncer -->
581    <bool name="config_show_sidefps_hint_on_bouncer">true</bool>
582
583    <!-- Max number of lines we want to show for the bouncer secondary message -->
584    <integer name="bouncer_secondary_message_lines">2</integer>
585
586    <!-- Whether to use the split 2-column notification shade -->
587    <bool name="config_use_split_notification_shade">false</bool>
588
589    <!-- Whether we use large screen shade header which takes only one row compared to QS header -->
590    <bool name="config_use_large_screen_shade_header">false</bool>
591
592    <!-- Whether notification header should never show section headers. -->
593    <bool name="config_notification_never_show_section_headers">false</bool>
594
595    <!-- Default udfps icon. Same path as ic_fingerprint.xml -->
596    <string name="config_udfpsIcon" translatable="false">
597        M25.5,16.3283C28.47,14.8433 31.9167,14 35.5834,14C39.2501,14 42.6968,14.8433 45.6668,16.3283
598        M20,28.6669C22.7683,24.3402 28.7084,21.3335 35.5834,21.3335C42.4585,21.3335 48.3985,
599        24.3402 51.1669,28.6669
600        M22.8607,47.0002C21.834,44.3235 21.834,41.5002 21.834,41.5002C21.834,
601        34.4051 27.7374,28.6667 35.5841,28.6667C43.4308,28.6667 49.3341,34.4051 49.3341,41.5002
602        M49.3344,41.5003V42.0319C49.3344,44.7636 47.1161,47.0003 44.3661,47.0003C41.9461,
603        47.0003 39.8744,45.2403 39.471,42.857L38.9577,
604        39.7769C38.591,37.5953 36.7027,36.0002 34.5027,
605        36.0002C26.5826,36.0002 29.846,49.1087 35.291,50.6487
606        M44.9713,54.6267C42.5513,56.7167 39.2879,58.0001 35.5846,58.0001C32.2296,
607        58.0001 29.2229,56.9551 26.8945,55.195
608    </string>
609
610    <!-- The time (in ms) needed to trigger the lock icon view's long-press affordance -->
611    <integer name="config_lockIconLongPress" translatable="false">200</integer>
612
613    <!-- package name of a built-in camera app to use to restrict implicit intent resolution
614         when the double-press power gesture is used. Ignored if empty. -->
615    <string translatable="false" name="config_cameraGesturePackage"></string>
616
617    <!-- Whether a transition of ACTIVITY_TYPE_DREAM to the home app should play a home sound
618         effect -->
619    <bool name="config_playHomeSoundAfterDream">false</bool>
620
621    <!-- Whether a transition of ACTIVITY_TYPE_ASSISTANT to the home app should play a home sound
622         effect -->
623    <bool name="config_playHomeSoundAfterAssistant">false</bool>
624
625    <!-- Whether to use window background blur for the volume dialog. -->
626    <bool name="config_volumeDialogUseBackgroundBlur">false</bool>
627
628    <!-- The properties of the face auth camera in pixels -->
629    <integer-array name="config_face_auth_props">
630        <!-- sensorLocationX -->
631        <!-- sensorLocationY -->
632        <!--sensorRadius -->
633    </integer-array>
634
635    <!-- Overrides the behavior of the face unlock keyguard bypass setting:
636         0 - Don't override the setting (default)
637         1 - Override the setting to always bypass keyguard
638         2 - Override the setting to never bypass keyguard -->
639    <integer name="config_face_unlock_bypass_override">0</integer>
640
641    <!-- Messages that should NOT be shown to the user during face authentication on keyguard.
642         This includes both lockscreen and bouncer. This should be used to hide messages that may be
643         too chatty or messages that the user can't do much about. Entries are defined in
644         android.hardware.biometrics.face@1.0 types.hal.
645
646         Although not visibly shown to the user, these acquired messages (sent per face auth frame)
647         are still counted towards the total frames to determine whether a deferred message
648         (see config_face_help_msgs_defer_until_timeout) meets the threshold % of frames to show on
649         face timeout. -->
650     <integer-array name="config_face_acquire_device_entry_ignorelist" translatable="false" >
651    </integer-array>
652
653    <!-- Which face help messages to defer until face auth times out. If face auth is cancelled
654         or ends on another error, then the message is never surfaced. May also never surface
655         if it doesn't meet a threshold % of authentication frames specified by.
656         config_face_help_msgs_defer_until_timeout_threshold. -->
657    <integer-array name="config_face_help_msgs_defer_until_timeout">
658    </integer-array>
659
660    <!-- Which face help messages to ignore when determining the % of frames that meet
661         config_face_help_msgs_defer_until_timeout_threshold -->
662    <integer-array name="config_face_help_msgs_ignore">
663        <item>20</item> <!-- FACE_ACQUIRED_START -->
664        <item>23</item> <!-- FACE_ACQUIRED_UNKNOWN -->
665        <item>24</item> <!-- FACE_ACQUIRED_FIRST_FRAME_RECEIVED -->
666    </integer-array>
667
668    <!-- Percentage of face auth frames received required to show a deferred message at
669         FACE_ERROR_TIMEOUT. See config_face_help_msgs_defer_until_timeout for messages
670         that are deferred.-->
671    <item name="config_face_help_msgs_defer_until_timeout_threshold"
672          translatable="false" format="float" type="dimen">
673        .75
674    </item>
675
676    <!-- Which face help messages to surface when fingerprint is also enrolled.
677         Message ids correspond with the acquired ids in BiometricFaceConstants -->
678    <integer-array name="config_face_help_msgs_when_fingerprint_enrolled">
679        <item>3</item> <!-- TOO_DARK -->
680        <item>25</item> <!-- DARK_GLASSES -->
681        <item>26</item> <!-- MOUTH_COVERING_DETECTED -->
682    </integer-array>
683
684    <!-- Which device wake-ups will trigger passive auth. These values correspond with
685         PowerManager#WakeReason. -->
686    <integer-array name="config_face_auth_wake_up_triggers">
687        <item>1</item> <!-- WAKE_REASON_POWER_BUTTON -->
688        <item>4</item> <!-- WAKE_REASON_GESTURE -->
689        <item>6</item> <!-- WAKE_REASON_WAKE_KEY -->
690        <item>7</item> <!-- WAKE_REASON_WAKE_MOTION -->
691        <item>9</item> <!-- WAKE_REASON_LID -->
692        <item>12</item> <!-- WAKE_REASON_UNFOLD_DEVICE -->
693        <item>15</item> <!-- WAKE_REASON_TAP -->
694        <item>16</item> <!-- WAKE_REASON_LIFT -->
695        <item>17</item> <!-- WAKE_REASON_BIOMETRIC -->
696    </integer-array>
697
698    <!-- Whether to support posture listening for face auth, default is 0(DEVICE_POSTURE_UNKNOWN)
699         means systemui will try listening on all postures.
700         0 : DEVICE_POSTURE_UNKNOWN
701         1 : DEVICE_POSTURE_CLOSED
702         2 : DEVICE_POSTURE_HALF_OPENED
703         3 : DEVICE_POSTURE_OPENED
704         4 : DEVICE_POSTURE_FLIPPED
705    -->
706    <integer name="config_face_auth_supported_posture">0</integer>
707
708    <!-- Components to allow running fingerprint listening if their activity is occluding the lock screen. -->
709    <string-array name="config_fingerprint_listen_on_occluding_activity_packages" translatable="false">
710    </string-array>
711
712    <!-- Whether the communal service should be enabled -->
713    <bool name="config_communalServiceEnabled">false</bool>
714
715    <!-- Component name of communal source service -->
716    <string name="config_communalSourceComponent" translatable="false">@null</string>
717
718    <!-- This value is used when calculating whether the device is in ambient light mode. It is
719        light mode when the light sensor sample value exceeds above this value. -->
720    <item name="config_ambientLightModeThreshold" translatable="false" format="float" type="dimen">
721        0.8
722    </item>
723
724    <!-- This value is used when calculating whether the device is in ambient dark mode. It is
725        dark mode when the light sensor sample value drops below this value. -->
726    <item name="config_ambientDarkModeThreshold" translatable="false" format="float" type="dimen">
727        0.4
728    </item>
729
730    <!-- This value is used when calculating whether the device is in ambient light mode. Each
731        sample contains light sensor events from this span of time duration. -->
732    <integer name="config_ambientLightModeSamplingSpanMillis">10000</integer>
733
734    <!-- This value is used when calculating whether the device is in ambient dark mode. Each
735    sample contains light sensor events from this span of time duration. -->
736    <integer name="config_ambientDarkModeSamplingSpanMillis">2000</integer>
737
738    <!-- This value is used when calculating whether the device is in ambient light mode. The
739        samples are collected at this frequency. -->
740    <integer name="config_ambientLightModeSamplingFrequencyMillis">1000</integer>
741
742    <!-- This value is used when calculating whether the device is in ambient dark mode. The
743    samples are collected at this frequency. -->
744    <integer name="config_ambientDarkModeSamplingFrequencyMillis">500</integer>
745
746    <!-- The maximum number of attempts to reconnect to the communal source target after failing
747         to connect -->
748    <integer name="config_communalSourceMaxReconnectAttempts">10</integer>
749
750    <!-- The initial amount of time (in milliseconds) before attempting to reconnect to a communal
751         source. This value is used as the base value in an exponential backoff in subsequent
752         attempts. -->
753    <integer name="config_communalSourceReconnectBaseDelay">1000</integer>
754
755    <!-- The minimum time in milliseconds for a connection to be considered connected. Any time -->
756    <integer name="config_connectionMinDuration">1000</integer>
757
758    <!-- Flag to activate notification to contents feature -->
759    <bool name="config_notificationToContents">false</bool>
760
761    <!-- The rounded corner drawable for each display in a multi-display device.
762         {@see com.android.internal.R.array#config_displayUniqueIdArray} -->
763    <array name="config_roundedCornerDrawableArray">
764        <item>@drawable/rounded</item>
765        <item>@drawable/rounded_secondary</item>
766    </array>
767
768    <!-- The top rounded corner drawable for each display in a multi-display device.
769         {@see com.android.internal.R.array#config_displayUniqueIdArray} -->
770    <array name="config_roundedCornerTopDrawableArray">
771        <item>@drawable/rounded_corner_top</item>
772        <item>@drawable/rounded_corner_top_secondary</item>
773    </array>
774
775    <!-- The bottom rounded corner drawable for each display in a multi-display device.
776         {@see com.android.internal.R.array#config_displayUniqueIdArray} -->
777    <array name="config_roundedCornerBottomDrawableArray">
778        <item>@drawable/rounded_corner_bottom</item>
779        <item>@drawable/rounded_corner_bottom_secondary</item>
780    </array>
781
782    <!-- Flag to enable privacy dot views, it shall be true for normal case -->
783    <bool name="config_enablePrivacyDot">true</bool>
784
785    <!-- Flag to enable privacy chip animation, it shall be true for normal case -->
786    <bool name="config_enablePrivacyChipAnimation">true</bool>
787
788    <!-- Class for the communal source connector to be used -->
789    <string name="config_communalSourceConnector" translatable="false"></string>
790
791    <!-- How often in milliseconds to jitter the dream overlay in order to avoid burn-in. -->
792    <integer name="config_dreamOverlayBurnInProtectionUpdateIntervalMillis">1000</integer>
793
794    <!-- How long in milliseconds before full burn-in protection is achieved. -->
795    <integer name="config_dreamOverlayMillisUntilFullJitter">240000</integer>
796
797    <integer name="complicationFadeOutMs">500</integer>
798
799    <integer name="complicationFadeInMs">500</integer>
800
801    <integer name="complicationRestoreMs">1000</integer>
802
803    <integer name="complicationFadeOutDelayMs">200</integer>
804
805    <!-- Duration in milliseconds of the dream in un-blur animation. -->
806    <integer name="config_dreamOverlayInBlurDurationMs">250</integer>
807    <!-- Duration in milliseconds of the dream in complications fade-in animation. -->
808    <integer name="config_dreamOverlayInComplicationsDurationMs">250</integer>
809    <!-- Duration in milliseconds of the y-translation animation when entering a dream -->
810    <integer name="config_dreamOverlayInTranslationYDurationMs">1167</integer>
811
812    <!-- Delay in milliseconds before switching to the dock user and dreaming if a secondary user is
813    active when the device is locked and docked. 0 indicates disabled. Default is 1 minute. -->
814    <integer name="config_defaultDockUserTimeoutMs">60000</integer>
815
816    <!-- Icons that don't show in a collapsed non-keyguard statusbar -->
817    <string-array name="config_collapsed_statusbar_icon_blocklist" translatable="false">
818        <item>@*android:string/status_bar_volume</item>
819        <item>@*android:string/status_bar_alarm_clock</item>
820        <item>@*android:string/status_bar_call_strength</item>
821    </string-array>
822
823    <!-- Icons that don't show in a collapsed statusbar on keyguard -->
824    <string-array name="config_keyguard_statusbar_icon_blocklist" translatable="false">
825        <item>@*android:string/status_bar_volume</item>
826        <item>@*android:string/status_bar_alarm_clock</item>
827        <item>@*android:string/status_bar_call_strength</item>
828    </string-array>
829
830    <!-- Packages of SystemUI -->
831    <string-array name="system_ui_packages" translatable="false">
832        <item>com.android.keyguard</item>
833        <item>com.android.systemui</item>
834    </string-array>
835
836    <!-- Whether the device should display hotspot UI. If true, UI will display only when tethering
837         is available. If false, UI will never show regardless of tethering availability" -->
838    <bool name="config_show_wifi_tethering">true</bool>
839
840    <!-- A collection of "slots" for placing quick affordance actions on the lock screen when the
841    device is locked. Each item is a string consisting of two parts, separated by the ':' character.
842    The first part is the unique ID for the slot, it is not a human-visible name, but should still
843    be unique across all slots specified. The second part is the capacity and must be a positive
844    integer; this is how many quick affordance actions that user is allowed to add to the slot. -->
845    <string-array name="config_keyguardQuickAffordanceSlots" translatable="false">
846        <item>bottom_start:1</item>
847        <item>bottom_end:1</item>
848    </string-array>
849
850    <!-- A collection of defaults for the quick affordances on the lock screen. Each item must be a
851    string with two parts: the ID of the slot and the comma-delimited list of affordance IDs,
852    separated by a colon ':' character. For example: <item>bottom_end:home,wallet</item>. The
853    default is displayed by System UI as long as the user hasn't made a different choice for that
854    slot. If the user did make a choice, even if the choice is the "None" option, the default is
855    ignored. -->
856    <string-array name="config_keyguardQuickAffordanceDefaults" translatable="false">
857        <item>bottom_start:home</item>
858        <item>bottom_end:wallet</item>
859    </string-array>
860
861    <!-- Package name for the app that implements the wallpaper picker. -->
862    <string name="config_wallpaperPickerPackage" translatable="false">
863        com.android.wallpaper
864    </string>
865
866    <!-- Whether the floating rotation button should be on the left/right in the device's natural
867         orientation -->
868    <bool name="floating_rotation_button_position_left">true</bool>
869
870    <!-- Configuration to set Learn more in device logs as URL link -->
871    <bool name="log_access_confirmation_learn_more_as_link">true</bool>
872
873    <!-- [START] MULTI SHADE -->
874    <!-- Whether the device should use dual shade. If false, the device uses single shade. -->
875    <bool name="dual_shade_enabled">true</bool>
876    <!--
877    When in dual shade, where should the horizontal split be on the screen to help determine whether
878    the user is pulling down the left shade or the right shade. Must be between 0.0 and 1.0,
879    inclusive. In other words: how much of the left-hand side of the screen, when pulled down on,
880    would reveal the left-hand side shade.
881
882    More concretely:
883    A value of 0.67 means that the left two-thirds of the screen are dedicated to the left-hand side
884    shade and the remaining one-third of the screen on the right is dedicated to the right-hand side
885    shade.
886    -->
887    <dimen name="dual_shade_split_fraction">0.67</dimen>
888    <!-- Width of the left-hand side shade. -->
889    <dimen name="left_shade_width">436dp</dimen>
890    <!-- Width of the right-hand side shade. -->
891    <dimen name="right_shade_width">436dp</dimen>
892    <!--
893    Opaque version of the scrim that shows up behind dual shades. The alpha channel is driven
894    programmatically.
895    -->
896    <color name="opaque_scrim">#D9D9D9</color>
897    <!-- Maximum opacity when the scrim that shows up behind the dual shades is fully visible. -->
898    <dimen name="dual_shade_scrim_alpha">0.1</dimen>
899    <!--
900    The amount that the user must swipe down when the shade is fully collapsed to automatically
901    expand once the user lets go of the shade. If the user swipes less than this amount, the shade
902    will automatically revert back to fully collapsed once the user stops swiping.
903    -->
904    <dimen name="shade_swipe_expand_threshold">0.5</dimen>
905    <!--
906    The amount that the user must swipe up when the shade is fully expanded to automatically
907    collapse once the user lets go of the shade. If the user swipes less than this amount, the shade
908    will automatically revert back to fully expanded once the user stops swiping.
909    -->
910    <dimen name="shade_swipe_collapse_threshold">0.5</dimen>
911    <!-- [END] MULTI SHADE -->
912
913    <!-- Time (in ms) to delay the bouncer views from showing when passive auth may be used for
914    device entry. -->
915    <integer name="primary_bouncer_passive_auth_delay">500</integer>
916
917    <!--
918    The package name of the app store app. If empty, features using this should be gracefully
919    disabled.
920    -->
921    <string name="config_appStorePackageName" translatable="false"></string>
922
923    <!-- Template for a link that leads to an app page in the relevant app store. If empty,
924    features using this should be gracefully disabled. If not empty, it must include a
925    "$packageName" part that will be replaced by the code with the package name of the target app.
926    -->
927    <string name="config_appStoreAppLinkTemplate" translatable="false"></string>
928
929    <!-- Flag controlling whether visual query attention detection has been enabled. -->
930    <bool name="config_enableVisualQueryAttentionDetection">false</bool>
931</resources>
932