<?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.  Do not translate.

     NOTE: The naming convention is "config_camelCaseValue". Some legacy
     entries do not follow the convention, but all new entries should. -->

<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- IWLAN-->
    <string name="config_qualified_networks_service_package">com.android.qns</string>

    <!-- If true, allows rotation resolver service to help resolve screen rotation. -->
    <bool name="config_allowRotationResolver">false</bool>

    <!-- The device states (supplied by DeviceStateManager) that should be treated as open by the
         device fold controller. Default is empty. -->
    <integer-array name="config_openDeviceStates">
        <item>2</item>
    </integer-array>

    <!-- The device states (supplied by DeviceStateManager) that should be treated as folded by the
         display fold controller. Default is empty. -->
    <integer-array name="config_foldedDeviceStates">
        <item>0</item>
    </integer-array>

    <!-- The device states (supplied by DeviceStateManager) that should be treated as half-folded by
     the display fold controller. Default is empty. -->
    <integer-array name="config_halfFoldedDeviceStates">
        <item>1</item>
    </integer-array>

    <!-- The device states (supplied by DeviceStateManager) that should be treated as a rear display
     state. Default is empty. -->
    <integer-array name="config_rearDisplayDeviceStates">
        <item>3</item>
    </integer-array>

    <!-- The device states (supplied by DeviceStateManager) that should be treated as concurrent
    display state. Default is empty. -->
    <integer-array name="config_concurrentDisplayDeviceStates">
        <item>4</item>
    </integer-array>

    <!-- Indicates whether the window manager pauses autorotation when folding or unfolding
     a foldable device based on hinge angle sensor events and physical display switch events. -->
    <bool name="config_windowManagerPauseRotationWhenUnfolding">true</bool>

    <!-- Amount of time during which autorotation will be disabled since last hinge angle event -->
    <integer name="config_pauseRotationWhenUnfolding_maxHingeAngle">165</integer>

    <!-- Maximum hinge angle event to be considered to disable autorotation when folding or
     unfolding -->
    <integer name="config_pauseRotationWhenUnfolding_hingeEventTimeout">400</integer>

    <!-- Amount of time during which autorotation will be disabled since last display switch -->
    <integer name="config_pauseRotationWhenUnfolding_displaySwitchTimeout">1000</integer>

    <!-- When a device enters any of these states, it should be woken up. States are defined in
         device_state_configuration.xml. -->
    <integer-array name="config_deviceStatesOnWhichToWakeUp">
        <item>1</item>
        <item>2</item>
    </integer-array>

    <!-- When a device enters any of these states, it should go to sleep. States are defined in
         device_state_configuration.xml. -->
    <integer-array name="config_deviceStatesOnWhichToSleep">
        <item>0</item>
    </integer-array>

    <!-- Map of device posture to rotation lock setting. Each entry must be in the format
         "key:value", or "key:value:fallback_key" for example: "0:1" or "2:0:1". The keys are one of
         Settings.Secure.DeviceStateRotationLockKey, and the values are one of
         Settings.Secure.DeviceStateRotationLockSetting.
         The fallback is a key to a device posture that can be specified when the value is
         Settings.Secure.DEVICE_STATE_ROTATION_LOCK_IGNORED.
     -->
    <string-array name="config_perDeviceStateRotationLockDefaults">
        <item>0:1</item>
        <item>1:0:2</item>
        <item>2:2</item>
        <item>3:0:0</item>
    </string-array>

    <!-- Device states where the sensor based rotation values should be reversed around the Z axis
         for the default display.
         TODO(b/265312193): Remove this workaround when this bug is fixed.-->
    <integer-array name="config_deviceStatesToReverseDefaultDisplayRotationAroundZAxis">
        <item>3</item>
    </integer-array>

    <!-- Boolean indicating whether secondary built-in displays should have their orientation
         match the active default display. This config assumes that the secondary display only
         requires swapping ROTATION_90 and ROTATION_270.
         TODO(b/265991392): This should eventually be configured and parsed in
          display_settings.xml -->
    <bool name="config_matchSecondaryInternalDisplaysOrientationToReverseDefaultDisplay">true</bool>

    <!-- The time in milliseconds after which a press on power button is considered "long". -->
    <integer name="config_longPressOnPowerDurationMs">750</integer>

    <!-- Amount of time in ms the user needs to press the relevant key to bring up the
         global actions dialog -->
    <integer name="config_globalActionsKeyTimeout">750</integer>

    <!-- Class name of the device specific implementation of DeviceStatePolicy.Provider
        or empty if the default should be used. -->
    <string translatable="false" name="config_deviceSpecificDeviceStatePolicyProvider">com.google.android.server.policy.FelixDeviceStatePolicyProvider</string>

    <!-- Indicates whether device has a power button fingerprint sensor. -->
    <bool name="config_is_powerbutton_fps">true</bool>

    <!-- Set to true to offset the wallpaper when using multiple displays so that it's centered
         at the same position as in the largest display.-->
    <bool name="config_offsetWallpaperToCenterOfLargestDisplay">true</bool>

    <!-- WindowsManager JetPack display features -->
    <string name="config_display_features" translatable="false">fold-[1104,0,1104,1848]</string>

    <!-- Map of System DeviceState supplied by DeviceStateManager to WM Jetpack posture. Must be in
         the format [System DeviceState]:[WM Jetpack Posture], for example: "0:1". -->
    <string-array name="config_device_state_postures">
        <item>0:1</item>
        <item>1:2</item>
        <item>2:3</item>
        <item>3:1</item>
        <item>4:1000</item>
    </string-array>

    <!-- Which Surface rotations are considered as tabletop posture (horizontal hinge) when the
         device is half-folded. Other half-folded postures will be assumed to be book (vertical
         hinge) mode. Units: degrees; valid values: 0, 90, 180, 270. -->
    <integer-array name="config_deviceTabletopRotations">
        <item>90</item>
        <item>270</item>
    </integer-array>

    <!-- Whether enabling rotation compat policy for immersive apps that prevents auto rotation
         into non-optimal screen orientation while in fullscreen. This is needed because immersive
         apps, such as games, are often not optimized for all orientations and can have a poor UX
         when rotated. Additionally, some games rely on sensors for the gameplay so users can
         trigger such rotations accidentally when auto rotation is on.
         Applicable only if ignoreOrientationRequest is enabled. -->
    <bool name="config_letterboxIsDisplayRotationImmersiveAppCompatPolicyEnabled">true</bool>

    <!-- Aspect ratio of letterboxing for fixed orientation. Values <= 1.0 will be ignored.
         Note: Activity min/max aspect ratio restrictions will still be respected.
         Therefore this override can control the maximum screen area that can be occupied by
         the app in the letterbox mode. -->
    <item name="config_fixedOrientationLetterboxAspectRatio" format="float" type="dimen">1.333</item>

    <!-- Corners radius for activity presented the letterbox mode. Values < 0 enable rounded
         corners with radius equal to min between device bottom corner radii. Default 0 value turns
         off rounded corners logic in LetterboxUiController. -->
    <integer name="config_letterboxActivityCornersRadius">-1</integer>

    <!-- Vertical position of a center of the letterboxed app window.
        0 corresponds to the upper side of the screen and 1 to the lower side. If given value < 0
        or > 1 it is ignored and for non-tabletop mode central position is used (0.5); for
         tabletop mode top (0.0) is used. -->
    <item type="dimen" name="config_letterboxVerticalPositionMultiplier">0.5</item>

    <!-- Whether horizontal reachability repositioning is allowed for letterboxed fullscreen apps.
    -->
    <bool name="config_letterboxIsHorizontalReachabilityEnabled">true</bool>

    <!-- Whether vertical reachability repositioning is allowed for letterboxed fullscreen apps. -->
    <bool name="config_letterboxIsVerticalReachabilityEnabled">true</bool>

    <!-- Whether should ignore app requested orientation in response to an app
         calling Activity#setRequestedOrientation. See
         LetterboxUiController#shouldIgnoreRequestedOrientation for details. -->
    <bool name="config_letterboxIsPolicyForIgnoringRequestedOrientationEnabled">true</bool>

    <!-- Whether displaying letterbox education is enabled for letterboxed fullscreen apps. -->
    <bool name="config_letterboxIsEducationEnabled">true</bool>

    <!-- Whether using split screen aspect ratio as a default aspect ratio for unresizable apps. -->
    <bool name="config_letterboxIsSplitScreenAspectRatioForUnresizableAppsEnabled">true</bool>

    <!-- Whether using display aspect ratio as a default aspect ratio for all letterboxed apps. -->
    <bool name="config_letterboxIsDisplayAspectRatioForFixedOrientationLetterboxEnabled">true</bool>

    <!-- Whether the specific behaviour for translucent activities letterboxing is enabled.
         TODO(b/255532890) Enable when ignoreOrientationRequest is set -->
    <bool name="config_letterboxIsEnabledForTranslucentActivities">true</bool>

    <!-- Whether per-app user aspect ratio override settings is enabled -->
    <bool name="config_appCompatUserAppAspectRatioSettingsIsEnabled">true</bool>

    <!-- Whether per-app fullscreen override option is allowed in user aspect ratio settings -->
    <bool name="config_appCompatUserAppAspectRatioFullscreenIsEnabled">true</bool>

    <!-- Whether sending compat fake focus for split screen resumed activities is enabled.
         Needed because some game engines wait to get focus before drawing the content of
         the app which isn't guaranteed by default in multi-window modes. -->
    <bool name="config_isCompatFakeFocusEnabled">true</bool>

    <!-- Whether camera compat treatment is enabled for issues caused by orientation mismatch
        between camera buffers and an app window. This includes force rotation of fixed
        orientation activities connected to the camera in fullscreen and showing a tooltip in
        split screen. -->
    <bool name="config_isWindowManagerCameraCompatTreatmentEnabled">true</bool>

    <!-- Whether should use split screen aspect ratio for the activity when camera compat treatment
        is enabled and activity is connected to the camera in fullscreen. -->
    <bool name="config_isWindowManagerCameraCompatSplitScreenAspectRatioEnabled">true</bool>

    <!-- Whether a camera compat controller is enabled to allow the user to apply or revert
         treatment for stretched issues in camera viewfinder. -->
    <bool name="config_isCameraCompatControlForStretchedIssuesEnabled">true</bool>

    <!-- List of the labels of requestable device state config values -->
    <string-array name="config_deviceStatesAvailableForAppRequests">
        <item>config_deviceStateRearDisplay</item>
        <item>config_deviceStateConcurrentRearDisplay</item>
    </string-array>

    <!-- Device state that corresponds to rear display mode, feature provided
         through Jetpack WindowManager
         TODO(b/236022708) Move rear display state to device state config file
    -->
    <integer name="config_deviceStateRearDisplay">3</integer>

    <!-- Device state that corresponds to concurrent display mode where the default display
         is the internal display. Public API for the feature is provided through Jetpack
         WindowManager.
         TODO(b/236022708) Move concurrent display state to device state config file
    -->
    <integer name="config_deviceStateConcurrentRearDisplay">4</integer>

    <!-- Physical display address that corresponds to the rear display in rear display mode
         and concurrent display mode. Used to get information about the display before
         entering the corresponding modes -->
    <string name="config_rearDisplayPhysicalAddress" translatable="false">4619827677550801153</string>
</resources>
