blob: 10f7c4d3ee5b25ea11fab5f51d0d052543afe49e [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
-->
<!-- These resources are around just to allow their values to be customized
for different hardware and product builds. -->
<resources>
<!-- Component to be used as the recents implementation. Must implement the
RecentsImplementation interface. This name is in the ComponentName flattened format
(package/class) -->
<string name="config_recentsComponent" translatable="false">com.android.systemui.recents.OverviewProxyRecentsImpl</string>
<!-- Whether or not we show the number in the bar. -->
<bool name="config_statusBarShowNumber">false</bool>
<!-- For how long the lock screen can be on before the display turns off. -->
<integer name="config_lockScreenDisplayTimeout">10000</integer>
<!-- Vibrator pattern for camera gesture launch. -->
<integer-array translatable="false" name="config_cameraLaunchGestureVibePattern">
<item>0</item>
<item>400</item>
</integer-array>
<!-- decay duration (from size_max -> size), in ms -->
<integer name="navigation_bar_deadzone_hold">333</integer>
<integer name="navigation_bar_deadzone_decay">333</integer>
<!-- orientation of the dead zone when touches have recently occurred elsewhere on screen -->
<integer name="navigation_bar_deadzone_orientation">0</integer>
<!-- Whether or not lockscreen shortcuts can be customized -->
<bool name="custom_lockscreen_shortcuts_enabled">false</bool>
<!-- Whether or not long-pressing on keyguard will display to customize lockscreen -->
<bool name="long_press_keyguard_customize_lockscreen_enabled">false</bool>
<bool name="config_dead_zone_flash">false</bool>
<!-- Whether to enable dimming navigation buttons when wallpaper is not visible, should be
enabled for OLED devices to reduce/prevent burn in on the navigation bar (because of the
black background and static button placements) and disabled for all other devices to
prevent wasting cpu cycles on the dimming animation -->
<bool name="config_navigation_bar_enable_auto_dim_no_visible_wallpaper">true</bool>
<!-- The maximum number of tiles in the QuickQSPanel -->
<integer name="quick_qs_panel_max_tiles">4</integer>
<!-- The maximum number of rows in the QuickQSPanel -->
<integer name="quick_qs_panel_max_rows">2</integer>
<!-- The number of columns in the QuickSettings -->
<integer name="quick_settings_num_columns">2</integer>
<!-- The number of rows in the QuickSettings -->
<integer name="quick_settings_max_rows">4</integer>
<!-- Override column number for quick settings.
For now, this value has effect only when flag lockscreen.enable_landscape is enabled.
TODO (b/293252410) - change this comment/resource when flag is enabled -->
<integer name="small_land_lockscreen_quick_settings_num_columns">2</integer>
<!-- Override row number for quick settings.
For now, this value has effect only when flag lockscreen.enable_landscape is enabled.
TODO (b/293252410) - change this comment/resource when flag is enabled -->
<integer name="small_land_lockscreen_quick_settings_max_rows">2</integer>
<!-- If the dp width of the available space is <= this value, potentially adjust the number
of media recommendation items-->
<integer name="default_qs_media_rec_width_dp">380</integer>
<!-- The number of columns that the top level tiles span in the QuickSettings -->
<!-- The default tiles to display in QuickSettings -->
<string name="quick_settings_tiles_default" translatable="false">
internet,bt,flashlight,dnd,alarm,airplane,controls,wallet,rotation,battery,cast,screenrecord,mictoggle,cameratoggle,custom(com.android.permissioncontroller/.permission.service.v33.SafetyCenterQsTileService)
</string>
<!-- The class path of the Safety Quick Settings Tile -->
<string name="safety_quick_settings_tile_class" translatable="false">
com.android.permissioncontroller.permission.service.v33.SafetyCenterQsTileService
</string>
<!-- The minimum number of tiles to display in QuickSettings -->
<integer name="quick_settings_min_num_tiles">6</integer>
<!-- Tiles native to System UI. Order should match "quick_settings_tiles_default" -->
<string name="quick_settings_tiles_stock" translatable="false">
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
</string>
<!-- The tiles to display in QuickSettings -->
<string name="quick_settings_tiles" translatable="false">default</string>
<!-- The tiles to display in QuickSettings in retail mode -->
<string name="quick_settings_tiles_retail_mode" translatable="false">
night,dark,dnd,flashlight,rotation,location
</string>
<!-- Tiles to auto add to Quick Settings upon first change of a given secure setting.
The syntax is setting-name:spec. If the tile is a TileService, the spec should be specified
as custom(package/class). Relative class name is supported. -->
<string-array name="config_quickSettingsAutoAdd" translatable="false">
<item>accessibility_display_daltonizer_enabled:color_correction</item>
<item>accessibility_display_inversion_enabled:inversion</item>
<item>one_handed_mode_enabled:onehanded</item>
<item>accessibility_font_scaling_has_been_changed:font_scaling</item>
</string-array>
<!-- Use collapsed layout for media player in landscape QQS -->
<bool name="config_quickSettingsMediaLandscapeCollapsed">true</bool>
<!-- Show indicator for Wifi on but not connected. -->
<bool name="config_showWifiIndicatorWhenEnabled">false</bool>
<!-- The number of milliseconds before the heads up notification auto-dismisses. -->
<integer name="heads_up_notification_decay">5000</integer>
<!-- The number of milliseconds before the heads up notification sent automatically by the system auto-dismisses. -->
<integer name="auto_heads_up_notification_decay">3000</integer>
<!-- The number of milliseconds after a heads up notification is pushed back
before the app can interrupt again. -->
<integer name="heads_up_default_snooze_length_ms">60000</integer>
<!-- Minimum display time for a heads up notification, in milliseconds. -->
<integer name="heads_up_notification_minimum_time">2000</integer>
<!-- Display time for a sticky heads up notification, in milliseconds. -->
<integer name="sticky_heads_up_notification_time">60000</integer>
<!-- Whether to hide the notification header when the HUN is expanded. -->
<bool name="heads_up_notification_hides_header">false</bool>
<!-- The number of milliseconds before the heads up notification accepts touches. -->
<integer name="touch_acceptance_delay">700</integer>
<!-- The number of milliseconds to extend ambient pulse by when prompted (e.g. on touch) -->
<integer name="ambient_notification_extension_time">10000</integer>
<!-- The maximum count of notifications on Keyguard. The rest will be collapsed in an overflow
card. -->
<integer name="keyguard_max_notification_count">-1</integer>
<!-- Doze: does this device support STATE_DOZE? -->
<bool name="doze_display_state_supported">false</bool>
<!-- Doze: does this device support STATE_DOZE_SUSPEND? -->
<bool name="doze_suspend_display_state_supported">false</bool>
<!-- Doze: should the significant motion sensor be used as a pulse signal? -->
<bool name="doze_pulse_on_significant_motion">false</bool>
<!-- Doze: check proximity sensor before pulsing? -->
<bool name="doze_proximity_check_before_pulse">true</bool>
<!-- Doze: only register sensors that use prox when device is in certain Display states. This
delays registering sensors when device first shows dozing UI but the
Display & Power state hasn't changed to low-power mode yet. -->
<bool name="doze_selectively_register_prox">false</bool>
<!-- Doze: whether the single tap sensor uses the proximity sensor.
If both this parameter and doze_selectively_register_prox are true, registration for the
sensor will be delayed when the device first enters dozing but the device has not entered its
low powered state yet. -->
<bool name="doze_single_tap_uses_prox">true</bool>
<!-- Doze: whether the single tap sensor uses the proximity sensor in the given posture.
See doze_single_tap_uses_prox for usage. -->
<integer-array name="doze_single_tap_uses_prox_posture_mapping">
<item>1</item> <!-- UNKNOWN -->
<item>1</item> <!-- CLOSED -->
<item>1</item> <!-- HALF_OPENED -->
<item>1</item> <!-- OPENED -->
</integer-array>
<!-- Doze: whether the long press sensor uses the proximity sensor.
If both this parameter and doze_selectively_register_prox are true, registration for the
sensor will be delayed when the device first enters dozing but the device has not entered its
low powered state yet. -->
<bool name="doze_long_press_uses_prox">true</bool>
<!-- Doze: duration to avoid false pickup gestures triggered by notification vibrations -->
<integer name="doze_pickup_vibration_threshold">2000</integer>
<!-- Doze: quick pickup duration to stay in AOD until the next gesture is triggered -->
<integer name="doze_quick_pickup_aod_duration">5000</integer>
<!-- Type of a sensor that provides a low-power estimate of the desired display
brightness, suitable to listen to while the device is asleep (e.g. during
always-on display) -->
<string name="doze_brightness_sensor_type" translatable="false"></string>
<!-- Name of a sensor per posture state that provides a low-power estimate of the desired
display brightness, suitable to listen to while the device is asleep (e.g. during
always-on display) -->
<string-array name="doze_brightness_sensor_name_posture_mapping" translatable="false">
<!-- UNKNOWN -->
<!-- CLOSED -->
<!-- HALF_OPENED -->
<!-- OPENED -->
</string-array>
<!-- Override value to use for proximity sensor. -->
<string name="proximity_sensor_type" translatable="false"></string>
<!-- Sensor type per posture state to use for proximity sensor -->
<string-array name="proximity_sensor_posture_mapping" translatable="false">
<!-- UNKNOWN -->
<!-- CLOSED -->
<!-- HALF_OPENED -->
<!-- OPENED -->
</string-array>
<!-- If using proximity_sensor_type, specifies a threshold value to distinguish near and
far break points. A sensor value less than this is considered "near". -->
<item name="proximity_sensor_threshold" translatable="false" format="float" type="dimen"></item>
<!-- If using proximity_sensor_type, specifies a threshold value to distinguish near and
far break points. A sensor value more than this is considered "far". If not set,
proximity_sensor_threshold is used. This allows one to implement a latching mechanism for
noisy sensors. -->
<item name="proximity_sensor_threshold_latch" translatable="false" format="float" type="dimen"></item>
<!-- Override value to use for proximity sensor as confirmation for proximity_sensor_type. -->
<string name="proximity_sensor_secondary_type" translatable="false"></string>
<!-- Sensor type per posture state to use for proximity sensor as a confirmation for
proximity_sensor_type. -->
<string-array name="proximity_sensor_secondary_posture_mapping" translatable="false">
<!-- UNKNOWN -->
<!-- CLOSED -->
<!-- HALF_OPENED -->
<!-- OPENED -->
</string-array>
<!-- If using proximity_sensor_secondary_type, specifies a threshold value to distinguish
near and far break points. A sensor value less than this is considered "near". -->
<item name="proximity_sensor_secondary_threshold" translatable="false" format="float"
type="dimen"></item>
<!-- If using proximity_sensor_secondary_type, specifies a threshold value to distinguish near and
far break points. A sensor value more than this is considered "far". If not set,
proximity_sensor_secondary_threshold is used. This allows one to implement a latching
mechanism for noisy sensors. -->
<item name="proximity_sensor_secondary_threshold_latch" translatable="false" format="float" type="dimen"></item>
<!-- Doze: pulse parameter - how long does it take to fade in? -->
<integer name="doze_pulse_duration_in">130</integer>
<!-- Doze: pulse parameter - once faded in, how long does it stay visible? -->
<integer name="doze_pulse_duration_visible">6000</integer>
<!-- Doze: pulse parameter - how long does it take to fade out? -->
<integer name="doze_pulse_duration_out">600</integer>
<!-- Doze: alpha to apply to small icons when dozing -->
<integer name="doze_small_icon_alpha">222</integer><!-- 87% of 0xff -->
<!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
to brightness values; -1 means keeping the current brightness. -->
<integer-array name="config_doze_brightness_sensor_to_brightness">
<item>-1</item> <!-- 0: OFF -->
<item>2</item> <!-- 1: NIGHT -->
<item>5</item> <!-- 2: LOW -->
<item>27</item> <!-- 3: HIGH -->
<item>28</item> <!-- 4: SUN -->
</integer-array>
<!-- Doze: Table that translates sensor values from the doze_brightness_sensor_type sensor
to an opacity value for a black scrim that is overlayed in AOD1.
Valid range is from 0 (transparent) to 255 (opaque).
-1 means keeping the current opacity. -->
<integer-array name="config_doze_brightness_sensor_to_scrim_opacity">
<item>-1</item> <!-- 0: OFF -->
<item>0</item> <!-- 1: NIGHT -->
<item>0</item> <!-- 2: LOW -->
<item>0</item> <!-- 3: HIGH -->
<item>0</item> <!-- 4: SUN -->
</integer-array>
<!-- Doze: whether the double tap sensor reports 2D touch coordinates -->
<bool name="doze_double_tap_reports_touch_coordinates">false</bool>
<!-- Number of times to show the strong alarm warning text in the volume dialog -->
<integer name="zen_mode_alarm_warning_threshold">5</integer>
<!-- Enable the default volume dialog -->
<bool name="enable_volume_ui">true</bool>
<!-- Enable the default volume level warning dialog -->
<bool name="enable_safety_warning">true</bool>
<!-- Whether to show the full screen user switcher. -->
<bool name="config_enableFullscreenUserSwitcher">false</bool>
<!-- Determines whether the shell features all run on another thread. -->
<bool name="config_enableShellMainThread">true</bool>
<!-- QS tile shape store width. negative implies fill configuration instead of stroke-->
<dimen name="config_qsTileStrokeWidthActive">-1dp</dimen>
<dimen name="config_qsTileStrokeWidthInactive">-1dp</dimen>
<!-- SystemUI vender service, used in config_systemUIServiceComponents. -->
<string name="config_systemUIVendorServiceComponent" translatable="false">com.android.systemui.VendorServices</string>
<!-- SystemUI Services (per user): The classes of the stuff to start for each user. This is a subset of the config_systemUIServiceComponents -->
<string-array name="config_systemUIServiceComponentsPerUser" translatable="false">
<item>com.android.systemui.util.NotificationChannels</item>
</string-array>
<!-- Nav bar button default ordering/layout -->
<string name="config_navBarLayout" translatable="false">left[.5W],back[1WC];home;recent[1WC],right[.5W]</string>
<string name="config_navBarLayoutQuickstep" translatable="false">back[1.7WC];home;contextual[1.7WC]</string>
<string name="config_navBarLayoutHandle" translatable="false">back[70AC];home_handle;ime_switcher[70AC]</string>
<!-- Whether to show a warning notification when device's skin temperature is high. -->
<integer name="config_showTemperatureWarning">0</integer>
<!-- Whether to show a alarm dialog when device's usb port is overheating. -->
<integer name="config_showUsbPortAlarm">0</integer>
<item type="id" name="action_toggle_overview"/>
<!-- Whether or not to show notifications to the user. If disabled, SystemUI will still be
registered as a notification listener, but will ignore all notification events. -->
<bool name="config_renderNotifications">true</bool>
<!-- Whether or not the gear icon on notifications should be shown. The gear is shown when the
the notification is not swiped enough to dismiss it. -->
<bool name="config_showNotificationGear">true</bool>
<!-- Whether or not a background should be drawn behind a notification. -->
<bool name="config_drawNotificationBackground">false</bool>
<!-- Whether or the notifications can be shown and dismissed with a drag. -->
<bool name="config_enableNotificationShadeDrag">true</bool>
<!-- Whether to show activity indicators in the status bar -->
<bool name="config_showActivity">false</bool>
<!-- Whether or not to show the notification shelf that houses the icons of notifications that
have been scrolled off-screen. -->
<bool name="config_showNotificationShelf">true</bool>
<!-- Whether or not the fade on the notification is based on the amount that it has been swiped
off-screen. -->
<bool name="config_fadeDependingOnAmountSwiped">false</bool>
<!-- Whether or the notifications should be clipped to be reduced in height if it has been
scrolled to the top of the screen. -->
<bool name="config_clipNotificationScrollToTop">true</bool>
<!-- Whether or not the notification contents should be clipped to any background that is
set on the notification container. For example, if this value is true and the background
has rounded corners, then the contents will be clipped to those corners. -->
<bool name="config_clipNotificationsToOutline">false</bool>
<!-- Whether or not notifications that can be expanded will always be in their expanded state.
This value only affects notifications that are not a group of notifications from the same
applications. If this value is false, then only the first notification will be expanded
when config_autoExpandFirstNotification is true; the other notifications need to be
manually expanded by the user. -->
<bool name="config_alwaysExpandNonGroupedNotifications">false</bool>
<!-- Whether or not the first expandable notification will be expanded automatically by the
system. This value only affects notifications that are not a group of notifications from
the same applications and when config_alwaysExpandNonGroupedNotifications is false. -->
<bool name="config_autoExpandFirstNotification">true</bool>
<!-- Whether or not an expandable notification can be manually expanded or collapsed by the
user. Grouped notifications are still expandable even if this value is false. -->
<bool name="config_enableNonGroupedNotificationExpand">true</bool>
<!-- Whether or not there should be dividing lines between child notifications when the
group has been expanded. -->
<bool name="config_showDividersWhenGroupNotificationExpanded">false</bool>
<!-- Whether or not the dividing lines should be shown when the container is expanding and
collapsing. If this value is true, then the lines will only show when the container has
been completely expanded. -->
<bool name="config_hideDividersDuringExpand">true</bool>
<!-- Whether or not child notifications that are part of a group will have shadows. -->
<bool name="config_enableShadowOnChildNotifications">true</bool>
<!-- If true, group numbers are shown in the expander instead of via "+N" overflow number -->
<bool name="config_showNotificationGroupCountInExpander">true</bool>
<!-- Whether or not a view containing child notifications will have a custom background when
it has been expanded to reveal its children. -->
<bool name="config_showGroupNotificationBgWhenExpanded">false</bool>
<!-- Should we vibrate on an icon animation of the shelf. This should only be active if the
vibrator is capable of subtle vibrations -->
<bool name="config_vibrateOnIconAnimation">false</bool>
<!-- Notifications are sized to match the width of two (of 4) qs tiles in landscape. -->
<bool name="config_skinnyNotifsInLandscape">true</bool>
<!-- Snooze: default notificaiton snooze time. -->
<integer name="config_notification_snooze_time_default">60</integer>
<!-- Snooze: List of snooze values in integer minutes. -->
<integer-array name="config_notification_snooze_times">
<item>15</item>
<item>30</item>
<item>60</item>
<item>120</item>
</integer-array>
<!-- Smart replies in notifications: Whether smart replies in notifications are enabled. -->
<bool name="config_smart_replies_in_notifications_enabled">true</bool>
<!-- Smart replies in notifications: Whether we disable the feature unless the app targets P -->
<bool name="config_smart_replies_in_notifications_requires_targeting_p">true</bool>
<!-- Smart replies in notifications: Maximum number of times SmartReplyView will try to find a
better (narrower) line-break for a double-line smart reply button. -->
<integer name="config_smart_replies_in_notifications_max_squeeze_remeasure_attempts">3</integer>
<!-- Smart replies in notifications: Whether by default tapping on a choice should let the user
edit the input before it is sent to the app. Developers can override this via
RemoteInput.Builder.setEditChoicesBeforeSending. -->
<bool name="config_smart_replies_in_notifications_edit_choices_before_sending">false</bool>
<!-- Smart replies in notifications: Whether smart suggestions in notifications are enabled in
heads-up notifications. -->
<bool name="config_smart_replies_in_notifications_show_in_heads_up">true</bool>
<!-- Smart replies in notifications: Minimum number of system generated smart replies that
should be shown in a notification. If we cannot show at least this many replies we instead
show none. -->
<integer name="config_smart_replies_in_notifications_min_num_system_generated_replies">0</integer>
<!-- Smart replies in notifications: Maximum number of smart actions to show in notifications.
-->
<integer name="config_smart_replies_in_notifications_max_num_actions">-1</integer>
<!-- Smart replies in notifications: Delay (ms) before smart suggestions are clickable, since
they were added. -->
<integer name="config_smart_replies_in_notifications_onclick_init_delay">200</integer>
<!-- Smartspace trampoline activity that is used when the user taps smartspace. -->
<string name="config_smartspaceTrampolineActivityComponent" translatable="false">com.google.android.apps.gsa.staticplugins.opa.smartspace.ExportedSmartspaceTrampolineActivity</string>
<!-- Screenshot editing default activity. Must handle ACTION_EDIT image/png intents.
Blank sends the user to the Chooser first.
This name is in the ComponentName flattened format (package/class) -->
<string name="config_screenshotEditor" translatable="false"></string>
<!-- ComponentName for the file browsing app that the system would expect to be used in work
profile. The icon for this app will be shown to the user when informing them that a
screenshot has been saved to work profile. If blank, a default icon will be shown. -->
<string name="config_sceenshotWorkProfileFilesApp" translatable="false"></string>
<!-- The component name of the screenshot editing activity that provides the App Clips flow.
The App Clips flow includes taking a screenshot, showing user screenshot cropping activity
and finally letting user send the screenshot to the calling notes app. This activity
should not send the screenshot to the calling activity without user consent. -->
<string name="config_screenshotAppClipsActivityComponent" translatable="false"
>com.android.systemui/com.android.systemui.screenshot.appclips.AppClipsActivity</string>
<!-- Remote copy default activity. Must handle REMOTE_COPY_ACTION intents.
This name is in the ComponentName flattened format (package/class) -->
<string name="config_remoteCopyPackage" translatable="false"></string>
<!-- SystemUI Plugins that can be loaded on user builds. -->
<string-array name="config_pluginAllowlist" translatable="false">
<item>com.android.systemui</item>
</string-array>
<!-- Launcher package name for overlaying icons. -->
<string name="launcher_overlayable_package" translatable="false">com.android.launcher3</string>
<!-- ThemePicker package name for overlaying icons. -->
<string name="themepicker_overlayable_package" translatable="false">com.android.wallpaper</string>
<!-- Default rounded corner curve (a Bezier). Must match (the curved path in) rounded.xml.
Note that while rounded.xml includes the entire path (including the horizontal and vertical
corner edges), this pulls out just the curve.
-->
<string name="config_rounded_mask" translatable="false">"M8,0C3.6,0,0,3.6,0,8"</string>
<!-- Preferred refresh rate at keyguard, if supported by the display. Overrides
keyguardMaxRefreshRate. -->
<integer name="config_keyguardRefreshRate">-1</integer>
<!-- Preferred max refresh rate at keyguard, if supported by the display. -->
<integer name="config_keyguardMaxRefreshRate">-1</integer>
<!-- Defines system icons to be excluded from the display. That is to say, the icons in the
status bar that are part of this list are never displayed. Each item in the list must be a
string defined in core/res/res/config.xml to properly exclude the icon.
-->
<string-array name="config_statusBarIconsToExclude" translatable="false">
<item>@*android:string/status_bar_rotate</item>
<item>@*android:string/status_bar_headset</item>
</string-array>
<!-- Whether to show estimate in QS header. Default to false in case there's not enough
space -->
<bool name="config_showBatteryEstimateQSBH">false</bool>
<!-- Whether to show extra battery saver confirmation dialog. -->
<bool name="config_extra_battery_saver_confirmation">false</bool>
<!-- A path representing a shield. Will sometimes be displayed with the battery icon when
needed. This path is a 10px wide and 13px tall. -->
<string name="config_batterymeterShieldPath" translatable="false">
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
</string>
<!-- A path similar to frameworks/base/core/res/res/values/config.xml
config_mainBuiltInDisplayCutout that describes a path larger than the exact path of a outer
display cutout. If present as well as config_enableDisplayCutoutProtection is set to true,
then SystemUI will draw this "protection path" instead of the display cutout path that is
normally used for anti-aliasing.
This path will only be drawn when the front-facing camera turns on, otherwise the main
DisplayCutout path will be rendered
-->
<string translatable="false" name="config_frontBuiltInDisplayCutoutProtection"></string>
<!-- ID for the camera of outer display that needs extra protection -->
<string translatable="false" name="config_protectedCameraId"></string>
<!-- Physical ID for the camera of outer display that needs extra protection -->
<string translatable="false" name="config_protectedPhysicalCameraId"></string>
<!-- Similar to config_frontBuiltInDisplayCutoutProtection but for inner display. -->
<string translatable="false" name="config_innerBuiltInDisplayCutoutProtection"></string>
<!-- ID for the camera of inner display that needs extra protection -->
<string translatable="false" name="config_protectedInnerCameraId"></string>
<!-- Physical ID for the camera of inner display that needs extra protection -->
<string translatable="false" name="config_protectedInnerPhysicalCameraId"></string>
<!-- Comma-separated list of packages to exclude from camera protection e.g.
"com.android.systemui,com.android.xyz" -->
<string translatable="false" name="config_cameraProtectionExcludedPackages"></string>
<!-- Flag to turn on the rendering of the above path or not -->
<bool name="config_enableDisplayCutoutProtection">false</bool>
<!-- Controls can query 2 preferred applications for limited number of suggested controls.
This config value should contain a list of package names of thoses preferred applications.
-->
<string-array translatable="false" name="config_controlsPreferredPackages" />
<!-- Max number of columns for quick controls area -->
<integer name="controls_max_columns">2</integer>
<!-- Max number of columns for power menu lite -->
<integer name="power_menu_lite_max_columns">2</integer>
<!-- Max number of rows for power menu lite -->
<integer name="power_menu_lite_max_rows">4</integer>
<!-- If the dp width of the available space is <= this value, potentially adjust the number
of columns-->
<integer name="controls_max_columns_adjust_below_width_dp">320</integer>
<!-- If the config font scale is >= this value, potentially adjust the number of columns-->
<item name="controls_max_columns_adjust_above_font_scale" translatable="false" format="float" type="dimen">1.25</item>
<!-- Show a separate icon for low and high volume on the volume dialog -->
<bool name="config_showLowMediaVolumeIcon">false</bool>
<!-- Change the volume row tint when it is inactive, i.e. when it is being dismissed -->
<bool name="config_changeVolumeRowTintWhenInactive">true</bool>
<!-- The duraction of the show animation for the volume dialog in milliseconds -->
<integer name="config_dialogShowAnimationDurationMs">300</integer>
<!-- The duraction of the hide animation for the volume dialog in milliseconds -->
<integer name="config_dialogHideAnimationDurationMs">250</integer>
<!-- Whether or not to show a notification for an unknown battery state -->
<bool name="config_showNotificationForUnknownBatteryState">false</bool>
<!-- content URL in a notification when ACTION_BATTERY_CHANGED.EXTRA_PRESENT field is false -->
<string translatable="false" name="config_batteryStateUnknownUrl"></string>
<!-- Package name of the preferred system app to perform eSOS action -->
<string name="config_preferredEmergencySosPackage" translatable="false"></string>
<!-- Whether to show the side fps hint while on bouncer -->
<bool name="config_show_sidefps_hint_on_bouncer">true</bool>
<!-- Max number of lines we want to show for the bouncer secondary message -->
<integer name="bouncer_secondary_message_lines">2</integer>
<!-- Whether to use the split 2-column notification shade -->
<bool name="config_use_split_notification_shade">false</bool>
<!-- Whether to force split shade.
For now, this value has effect only when flag lockscreen.enable_landscape is enabled.
TODO (b/293252410) - change this comment/resource when flag is enabled -->
<bool name="force_config_use_split_notification_shade">false</bool>
<!-- Whether we use large screen shade header which takes only one row compared to QS header -->
<bool name="config_use_large_screen_shade_header">false</bool>
<!-- Whether notification header should never show section headers. -->
<bool name="config_notification_never_show_section_headers">false</bool>
<!-- Default udfps icon. Same path as ic_fingerprint.xml -->
<string name="config_udfpsIcon" translatable="false">
M25.5,16.3283C28.47,14.8433 31.9167,14 35.5834,14C39.2501,14 42.6968,14.8433 45.6668,16.3283
M20,28.6669C22.7683,24.3402 28.7084,21.3335 35.5834,21.3335C42.4585,21.3335 48.3985,
24.3402 51.1669,28.6669
M22.8607,47.0002C21.834,44.3235 21.834,41.5002 21.834,41.5002C21.834,
34.4051 27.7374,28.6667 35.5841,28.6667C43.4308,28.6667 49.3341,34.4051 49.3341,41.5002
M49.3344,41.5003V42.0319C49.3344,44.7636 47.1161,47.0003 44.3661,47.0003C41.9461,
47.0003 39.8744,45.2403 39.471,42.857L38.9577,
39.7769C38.591,37.5953 36.7027,36.0002 34.5027,
36.0002C26.5826,36.0002 29.846,49.1087 35.291,50.6487
M44.9713,54.6267C42.5513,56.7167 39.2879,58.0001 35.5846,58.0001C32.2296,
58.0001 29.2229,56.9551 26.8945,55.195
</string>
<!-- The time (in ms) needed to trigger the lock icon view's long-press affordance -->
<integer name="config_lockIconLongPress" translatable="false">200</integer>
<!-- package name of a built-in camera app to use to restrict implicit intent resolution
when the double-press power gesture is used. Ignored if empty. -->
<string translatable="false" name="config_cameraGesturePackage"></string>
<!-- Whether a transition of ACTIVITY_TYPE_DREAM to the home app should play a home sound
effect -->
<bool name="config_playHomeSoundAfterDream">false</bool>
<!-- Whether a transition of ACTIVITY_TYPE_ASSISTANT to the home app should play a home sound
effect -->
<bool name="config_playHomeSoundAfterAssistant">false</bool>
<!-- Whether to use window background blur for the volume dialog. -->
<bool name="config_volumeDialogUseBackgroundBlur">false</bool>
<!-- The properties of the face auth camera in pixels -->
<integer-array name="config_face_auth_props">
<!-- sensorLocationX -->
<!-- sensorLocationY -->
<!--sensorRadius -->
</integer-array>
<!-- Overrides the behavior of the face unlock keyguard bypass setting:
0 - Don't override the setting (default)
1 - Override the setting to always bypass keyguard
2 - Override the setting to never bypass keyguard -->
<integer name="config_face_unlock_bypass_override">0</integer>
<!-- Messages that should NOT be shown to the user during face authentication on keyguard.
This includes both lockscreen and bouncer. This should be used to hide messages that may be
too chatty or messages that the user can't do much about. Entries are defined in
android.hardware.biometrics.face@1.0 types.hal.
Although not visibly shown to the user, these acquired messages (sent per face auth frame)
are still counted towards the total frames to determine whether a deferred message
(see config_face_help_msgs_defer_until_timeout) meets the threshold % of frames to show on
face timeout. -->
<integer-array name="config_face_acquire_device_entry_ignorelist" translatable="false" >
</integer-array>
<!-- Which face help messages to defer until face auth times out. If face auth is cancelled
or ends on another error, then the message is never surfaced. May also never surface
if it doesn't meet a threshold % of authentication frames specified by.
config_face_help_msgs_defer_until_timeout_threshold. -->
<integer-array name="config_face_help_msgs_defer_until_timeout">
</integer-array>
<!-- Which face help messages to ignore when determining the % of frames that meet
config_face_help_msgs_defer_until_timeout_threshold -->
<integer-array name="config_face_help_msgs_ignore">
<item>20</item> <!-- FACE_ACQUIRED_START -->
<item>23</item> <!-- FACE_ACQUIRED_UNKNOWN -->
<item>24</item> <!-- FACE_ACQUIRED_FIRST_FRAME_RECEIVED -->
</integer-array>
<!-- Percentage of face auth frames received required to show a deferred message at
FACE_ERROR_TIMEOUT. See config_face_help_msgs_defer_until_timeout for messages
that are deferred.-->
<item name="config_face_help_msgs_defer_until_timeout_threshold"
translatable="false" format="float" type="dimen">
.75
</item>
<!-- Which face help messages to surface when fingerprint is also enrolled.
Message ids correspond with the acquired ids in BiometricFaceConstants -->
<integer-array name="config_face_help_msgs_when_fingerprint_enrolled">
<item>3</item> <!-- TOO_DARK -->
<item>25</item> <!-- DARK_GLASSES -->
<item>26</item> <!-- MOUTH_COVERING_DETECTED -->
</integer-array>
<!-- Which device wake-ups will trigger passive auth. These values correspond with
PowerManager#WakeReason. -->
<integer-array name="config_face_auth_wake_up_triggers">
<item>1</item> <!-- WAKE_REASON_POWER_BUTTON -->
<item>4</item> <!-- WAKE_REASON_GESTURE -->
<item>6</item> <!-- WAKE_REASON_WAKE_KEY -->
<item>7</item> <!-- WAKE_REASON_WAKE_MOTION -->
<item>9</item> <!-- WAKE_REASON_LID -->
<item>12</item> <!-- WAKE_REASON_UNFOLD_DEVICE -->
<item>15</item> <!-- WAKE_REASON_TAP -->
<item>16</item> <!-- WAKE_REASON_LIFT -->
<item>17</item> <!-- WAKE_REASON_BIOMETRIC -->
</integer-array>
<!-- Whether to support posture listening for face auth, default is 0(DEVICE_POSTURE_UNKNOWN)
means systemui will try listening on all postures.
0 : DEVICE_POSTURE_UNKNOWN
1 : DEVICE_POSTURE_CLOSED
2 : DEVICE_POSTURE_HALF_OPENED
3 : DEVICE_POSTURE_OPENED
4 : DEVICE_POSTURE_FLIPPED
-->
<integer name="config_face_auth_supported_posture">0</integer>
<!-- Components to allow running fingerprint listening if their activity is occluding the lock screen. -->
<string-array name="config_fingerprint_listen_on_occluding_activity_packages" translatable="false">
</string-array>
<!-- Whether the communal service should be enabled -->
<bool name="config_communalServiceEnabled">false</bool>
<!-- Name of the database that stores info of widgets shown on glanceable hub -->
<string name="config_communalDatabase" translatable="false">communal_db</string>
<!-- Component names of allowed communal widgets -->
<string-array name="config_communalWidgetAllowlist" translatable="false" />
<!-- Component name of communal source service -->
<string name="config_communalSourceComponent" translatable="false">@null</string>
<!-- This value is used when calculating whether the device is in ambient light mode. It is
light mode when the light sensor sample value exceeds above this value. -->
<item name="config_ambientLightModeThreshold" translatable="false" format="float" type="dimen">
0.8
</item>
<!-- This value is used when calculating whether the device is in ambient dark mode. It is
dark mode when the light sensor sample value drops below this value. -->
<item name="config_ambientDarkModeThreshold" translatable="false" format="float" type="dimen">
0.4
</item>
<!-- This value is used when calculating whether the device is in ambient light mode. Each
sample contains light sensor events from this span of time duration. -->
<integer name="config_ambientLightModeSamplingSpanMillis">10000</integer>
<!-- This value is used when calculating whether the device is in ambient dark mode. Each
sample contains light sensor events from this span of time duration. -->
<integer name="config_ambientDarkModeSamplingSpanMillis">2000</integer>
<!-- This value is used when calculating whether the device is in ambient light mode. The
samples are collected at this frequency. -->
<integer name="config_ambientLightModeSamplingFrequencyMillis">1000</integer>
<!-- This value is used when calculating whether the device is in ambient dark mode. The
samples are collected at this frequency. -->
<integer name="config_ambientDarkModeSamplingFrequencyMillis">500</integer>
<!-- The maximum number of attempts to reconnect to the communal source target after failing
to connect -->
<integer name="config_communalSourceMaxReconnectAttempts">10</integer>
<!-- The initial amount of time (in milliseconds) before attempting to reconnect to a communal
source. This value is used as the base value in an exponential backoff in subsequent
attempts. -->
<integer name="config_communalSourceReconnectBaseDelay">1000</integer>
<!-- The minimum time in milliseconds for a connection to be considered connected. Any time -->
<integer name="config_connectionMinDuration">1000</integer>
<!-- Flag to activate notification to contents feature -->
<bool name="config_notificationToContents">false</bool>
<!-- The rounded corner drawable for each display in a multi-display device.
{@see com.android.internal.R.array#config_displayUniqueIdArray} -->
<array name="config_roundedCornerDrawableArray">
<item>@drawable/rounded</item>
<item>@drawable/rounded_secondary</item>
</array>
<!-- The top rounded corner drawable for each display in a multi-display device.
{@see com.android.internal.R.array#config_displayUniqueIdArray} -->
<array name="config_roundedCornerTopDrawableArray">
<item>@drawable/rounded_corner_top</item>
<item>@drawable/rounded_corner_top_secondary</item>
</array>
<!-- The bottom rounded corner drawable for each display in a multi-display device.
{@see com.android.internal.R.array#config_displayUniqueIdArray} -->
<array name="config_roundedCornerBottomDrawableArray">
<item>@drawable/rounded_corner_bottom</item>
<item>@drawable/rounded_corner_bottom_secondary</item>
</array>
<!-- Flag to enable privacy dot views, it shall be true for normal case -->
<bool name="config_enablePrivacyDot">true</bool>
<!-- Flag to enable privacy chip animation, it shall be true for normal case -->
<bool name="config_enablePrivacyChipAnimation">true</bool>
<!-- Class for the communal source connector to be used -->
<string name="config_communalSourceConnector" translatable="false"></string>
<!-- How often in milliseconds to jitter the dream overlay in order to avoid burn-in. -->
<integer name="config_dreamOverlayBurnInProtectionUpdateIntervalMillis">1000</integer>
<!-- How long in milliseconds before full burn-in protection is achieved. -->
<integer name="config_dreamOverlayMillisUntilFullJitter">240000</integer>
<integer name="complicationFadeOutMs">500</integer>
<integer name="complicationFadeInMs">500</integer>
<integer name="complicationRestoreMs">1000</integer>
<integer name="complicationFadeOutDelayMs">200</integer>
<!-- Duration in milliseconds of the dream in un-blur animation. -->
<integer name="config_dreamOverlayInBlurDurationMs">250</integer>
<!-- Duration in milliseconds of the dream in complications fade-in animation. -->
<integer name="config_dreamOverlayInComplicationsDurationMs">250</integer>
<!-- Duration in milliseconds of the y-translation animation when entering a dream -->
<integer name="config_dreamOverlayInTranslationYDurationMs">1167</integer>
<!-- Delay in milliseconds before switching to the dock user and dreaming if a secondary user is
active when the device is locked and docked. 0 indicates disabled. Default is 1 minute. -->
<integer name="config_defaultDockUserTimeoutMs">60000</integer>
<!-- Icons that don't show in a collapsed non-keyguard statusbar -->
<string-array name="config_collapsed_statusbar_icon_blocklist" translatable="false">
<item>@*android:string/status_bar_volume</item>
<item>@*android:string/status_bar_alarm_clock</item>
<item>@*android:string/status_bar_call_strength</item>
</string-array>
<!-- Icons that don't show in a collapsed statusbar on keyguard -->
<string-array name="config_keyguard_statusbar_icon_blocklist" translatable="false">
<item>@*android:string/status_bar_volume</item>
<item>@*android:string/status_bar_alarm_clock</item>
<item>@*android:string/status_bar_call_strength</item>
</string-array>
<!-- Packages of SystemUI -->
<string-array name="system_ui_packages" translatable="false">
<item>com.android.keyguard</item>
<item>com.android.systemui</item>
</string-array>
<!-- Whether the device should display hotspot UI. If true, UI will display only when tethering
is available. If false, UI will never show regardless of tethering availability" -->
<bool name="config_show_wifi_tethering">true</bool>
<!-- A collection of "slots" for placing quick affordance actions on the lock screen when the
device is locked. Each item is a string consisting of two parts, separated by the ':' character.
The first part is the unique ID for the slot, it is not a human-visible name, but should still
be unique across all slots specified. The second part is the capacity and must be a positive
integer; this is how many quick affordance actions that user is allowed to add to the slot. -->
<string-array name="config_keyguardQuickAffordanceSlots" translatable="false">
<item>bottom_start:1</item>
<item>bottom_end:1</item>
</string-array>
<!-- A collection of defaults for the quick affordances on the lock screen. Each item must be a
string with two parts: the ID of the slot and the comma-delimited list of affordance IDs,
separated by a colon ':' character. For example: <item>bottom_end:home,wallet</item>. The
default is displayed by System UI as long as the user hasn't made a different choice for that
slot. If the user did make a choice, even if the choice is the "None" option, the default is
ignored. -->
<string-array name="config_keyguardQuickAffordanceDefaults" translatable="false">
<item>bottom_start:home</item>
<item>bottom_end:wallet</item>
</string-array>
<!-- Package name for the app that implements the wallpaper picker. -->
<string name="config_wallpaperPickerPackage" translatable="false">
com.android.wallpaper
</string>
<!-- Whether the floating rotation button should be on the left/right in the device's natural
orientation -->
<bool name="floating_rotation_button_position_left">true</bool>
<!-- Configuration to set Learn more in device logs as URL link -->
<bool name="log_access_confirmation_learn_more_as_link">true</bool>
<!-- [START] MULTI SHADE -->
<!-- Whether the device should use dual shade. If false, the device uses single shade. -->
<bool name="dual_shade_enabled">true</bool>
<!--
When in dual shade, where should the horizontal split be on the screen to help determine whether
the user is pulling down the left shade or the right shade. Must be between 0.0 and 1.0,
inclusive. In other words: how much of the left-hand side of the screen, when pulled down on,
would reveal the left-hand side shade.
More concretely:
A value of 0.67 means that the left two-thirds of the screen are dedicated to the left-hand side
shade and the remaining one-third of the screen on the right is dedicated to the right-hand side
shade.
-->
<dimen name="dual_shade_split_fraction">0.67</dimen>
<!-- Width of the left-hand side shade. -->
<dimen name="left_shade_width">436dp</dimen>
<!-- Width of the right-hand side shade. -->
<dimen name="right_shade_width">436dp</dimen>
<!--
Opaque version of the scrim that shows up behind dual shades. The alpha channel is driven
programmatically.
-->
<color name="opaque_scrim">#D9D9D9</color>
<!-- Maximum opacity when the scrim that shows up behind the dual shades is fully visible. -->
<dimen name="dual_shade_scrim_alpha">0.1</dimen>
<!--
The amount that the user must swipe down when the shade is fully collapsed to automatically
expand once the user lets go of the shade. If the user swipes less than this amount, the shade
will automatically revert back to fully collapsed once the user stops swiping.
-->
<dimen name="shade_swipe_expand_threshold">0.5</dimen>
<!--
The amount that the user must swipe up when the shade is fully expanded to automatically
collapse once the user lets go of the shade. If the user swipes less than this amount, the shade
will automatically revert back to fully expanded once the user stops swiping.
-->
<dimen name="shade_swipe_collapse_threshold">0.5</dimen>
<!-- [END] MULTI SHADE -->
<!-- Time (in ms) to delay the bouncer views from showing when passive auth may be used for
device entry. -->
<integer name="primary_bouncer_passive_auth_delay">500</integer>
<!--
The package name of the app store app. If empty, features using this should be gracefully
disabled.
-->
<string name="config_appStorePackageName" translatable="false"></string>
<!-- Template for a link that leads to an app page in the relevant app store. If empty,
features using this should be gracefully disabled. If not empty, it must include a
"$packageName" part that will be replaced by the code with the package name of the target app.
-->
<string name="config_appStoreAppLinkTemplate" translatable="false"></string>
<!-- Flag controlling whether visual query attention detection has been enabled. -->
<bool name="config_enableVisualQueryAttentionDetection">false</bool>
<!-- Whether to show bottom sheets edge to edge -->
<bool name="config_edgeToEdgeBottomSheetDialog">true</bool>
<!-- Device specific config that controls whether rest to unlock feature is supported. -->
<bool name="config_restToUnlockSupported">false</bool>
<!--
Time in milliseconds the user has to touch the side FPS sensor to successfully authenticate when
the screen is turned off with AOD not enabled.
TODO(b/302332976) Get this value from the HAL if they can provide an API for it.
-->
<integer name="config_restToUnlockDurationScreenOff">500</integer>
<!--
Time in milliseconds the user has to touch the side FPS sensor to successfully authenticate
TODO(b/302332976) Get this value from the HAL if they can provide an API for it.
-->
<integer name="config_restToUnlockDurationDefault">300</integer>
<!--
Width in pixels of the Side FPS sensor.
-->
<integer name="config_sfpsSensorWidth">200</integer>
<!-- Component name for Home Panel Dream -->
<string name="config_homePanelDreamComponent" translatable="false">
@null
</string>
<!--
They are service names that, if enabled, will cause the magnification settings button
to never hide after timeout.
-->
<string-array name="services_always_show_magnification_settings" translatable="false">
<item>com.android.switchaccess.SwitchAccessService</item>
<item>com.google.android.apps.accessibility.voiceaccess.JustSpeakService</item>
</string-array>
</resources>