<?xml version="1.0" encoding="utf-8"?>
<!--
/*
** Copyright 2015, 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. -->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- Enable multi-user. -->
    <bool name="config_enableMultiUserUI">true</bool>
    <!-- Arbitrary max 8 users. -->
    <integer name="config_multiuserMaximumUsers">8</integer>
    <!-- If true, all guest users created on the device will be ephemeral. -->
    <bool name="config_guestUserEphemeral">true</bool>
    <!-- Car Mode -->
    <integer name="config_defaultUiModeType">3</integer>
    <!-- Can't leave car mode -->
    <bool name="config_lockUiMode">true</bool>
    <!--  Control whether to launch Car dock home app when user presses home button or when
          car dock intent is fired.
          In mobile device, usually separate home app is expected in car mode, and this should be
          enabled. But in environments like real car, default home app may be enough, and in that
          case, this can be disabled (set to false). -->
    <bool name="config_enableCarDockHomeLaunch">false</bool>
    <!--  Control whether to lock day/night mode change from normal application. When it is
          true, day / night mode change is only allowed to apps with MODIFY_DAY_NIGHT_MODE
          permission. -->
    <bool name="config_lockDayNightMode">true</bool>
    <!-- Allow smart unlock immediately after boot because the user shouldn't have to enter a pin
         code to unlock their car head unit. -->
    <bool name="config_strongAuthRequiredOnBoot">false</bool>
    <!-- Show Navigation Bar -->
    <bool name="config_showNavigationBar">true</bool>

    <integer name="config_jobSchedulerInactivityIdleThreshold">0</integer>
    <integer name="config_jobSchedulerIdleWindowSlop">0</integer>

    <!-- Automotive Bluetooth pairing option -->
    <bool name="enable_pbap_pce_profile">true</bool>

    <!-- Component name of a custom ResolverActivity (Intent resolver) to be used instead of
         the default framework version. -->
    <string name="config_customResolverActivity" translatable="false">com.android.support.car.lenspicker/.LensResolverActivity</string>

    <!-- Flag indicating that the entire notification header can be clicked to expand the
         notification. If false, then the expand icon has to be clicked in order for the expand
         to occur. -->
    <bool name="config_notificationHeaderClickableForExpand">true</bool>

    <!-- Night mode should be enabled. -->
    <bool name="config_enableNightMode">true</bool>

    <!-- The action buttons should always take the default color. -->
    <bool name="config_tintNotificationActionButtons">false</bool>

    <!-- Flag indicating that this device does not rotate and will always remain in its default
         orientation. Activities that desire to run in a non-compatible orientation will find that
         they are not able to. -->
    <bool name="config_forceDefaultOrientation">true</bool>

    <!-- Corner radius of system dialogs -->
    <dimen name="config_dialogCornerRadius">16dp</dimen>
</resources>
