<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright 2018 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.
  -->

<resources>
    <attr name="icon" format="reference"/>
    <attr name="mute_icon" format="reference"/>
    <attr name="selectedIcon" format="reference"/>
    <attr name="intent" format="string"/>
    <attr name="longIntent" format="string"/>
    <attr name="selectedAlpha" format="float" />
    <attr name="unselectedAlpha" format="float" />

    <!-- Custom attributes to configure hvac values -->
    <declare-styleable name="AnimatedTemperatureView">
        <attr name="hvacAreaId" format="integer"/>
        <attr name="hvacPropertyId" format="integer"/>
        <attr name="hvacTempFormat" format="string"/>
        <!-- how far away the animations should center around -->
        <attr name="hvacPivotOffset" format="dimension"/>
        <attr name="hvacMinValue" format="float"/>
        <attr name="hvacMaxValue" format="float"/>
        <attr name="hvacMinText" format="string|reference"/>
        <attr name="hvacMaxText" format="string|reference"/>
        <attr name="android:gravity"/>
        <attr name="android:minEms"/>
        <attr name="android:textAppearance"/>
    </declare-styleable>

    <declare-styleable name="SeatTemperatureLevelButton">
        <attr name="seatTemperatureType">
            <enum name="heating" value="1"/>
            <enum name="cooling" value="-1"/>
        </attr>
        <!-- List of drawables that will be shown when the seat heat level button is clicked.
             This list should have exactly R.integer.hvac_seat_heat_level_count items.
             The first item should have the "off" drawable. -->
        <attr name="seatTemperatureIconDrawableList" format="reference"/>
    </declare-styleable>

    <!-- Allow for custom attribs to be added to a nav button -->
    <declare-styleable name="CarSystemBarButton">
        <!-- intent to start when button is click -->
        <attr name="intent" />
        <!-- intent to start when a long press has happened -->
        <attr name="longIntent" />
        <!-- start the intent as a broad cast instead of an activity if true-->
        <attr name="broadcast" format="boolean"/>
        <!-- Alpha value to used when in selected state.  Defaults 1f  -->
        <attr name="selectedAlpha" />
        <!-- Alpha value to used when in un-selected state.  Defaults 0.7f  -->
        <attr name="unselectedAlpha" />
        <!-- icon to be rendered when in selected state -->
        <attr name="selectedIcon" />
        <!-- icon to be rendered (drawable) -->
        <attr name="icon"/>
        <!-- categories that will be added as extras to the fired intents -->
        <attr name="categories" format="string"/>
        <!-- package names that will be added as extras to the fired intents -->
        <attr name="packages" format="string" />
        <!-- componentName names that will be used for detecting selected state -->
        <attr name="componentNames" format="string" />
        <!-- whether to highlight the button when selected. Defaults false -->
        <attr name="showMoreWhenSelected" format="boolean" />
        <!-- whether to highlight the button when selected. Defaults false -->
        <attr name="highlightWhenSelected" format="boolean" />
        <!-- whether to show the icon of the app currently associated this button's role. Only
             relevant for buttons associated to specific roles (e.g.: AssistantButton).
             Defaults false -->
        <attr name="useDefaultAppIconForRole" format="boolean"/>
        <!-- whether to clear the back stack when this button is pressed. Only relevant for buttons
             that have declared an intent that isn't used as a broadcast
             (i.e. CarSystemBarButton_intent is defined, CarSystemBarButton_broadcast is false).
             Defaults false. -->
        <attr name="clearBackStack" format="boolean"/>
        <!-- whether to toggle selected state when button is clicked. Defaults false -->
        <attr name="toggleSelected" format="boolean" />
    </declare-styleable>

    <!-- Custom attribute for the CarSystemBarElement interface - implementing classes must opt in
         to consuming these attributes within their constructor and applying appropriately. -->
    <declare-styleable name="CarSystemBarElement">
        <!-- Class name of the CarSystemBarElementController that should be attached to this view -->
        <attr name="controller" format="string"/>
        <!-- Attribute for specifying the system bar disable flag of a supporting element view.
             This corresponds to the StatusBarManager.DisableFlags. -->
        <attr name="systemBarDisableFlags" format="integer">
            <flag name="none" value="0"/>
            <flag name="expand" value="1"/>
            <flag name="notificationIcons" value="2"/>
            <flag name="notificationAlerts" value="4"/>
            <flag name="systemInfo" value="8"/>
            <flag name="home" value="16"/>
            <flag name="recent" value="32"/>
            <flag name="back" value="64"/>
            <flag name="clock" value="128"/>
            <flag name="search" value="256"/>
            <flag name="ongoingCallChip" value="512"/>
        </attr>
        <!-- Attribute for specifying the system bar disable flag of a supporting element view.
             This corresponds to the StatusBarManager.Disable2Flags. -->
        <attr name="systemBarDisable2Flags" format="integer">
            <flag name="none" value="0"/>
            <flag name="quickSettings" value="1"/>
            <flag name="systemIcons" value="2"/>
            <flag name="notificationShade" value="4"/>
            <flag name="globalActions" value="8"/>
            <flag name="rotateSuggestions" value="16"/>
        </attr>
        <!-- Attribute for specifying if this element should be disabled when in the
             LOCK_TASK_MODE_LOCKED state -->
        <attr name="disableForLockTaskModeLocked" format="boolean"/>
    </declare-styleable>

    <declare-styleable name="CarSystemBarPanelButtonView">
        <!-- REQUIRED: Layout resource for the panel -->
        <attr name="panelLayoutRes" format="reference"/>
        <!--  Width of the panel. If not specified, will use default width value -->
        <attr name="panelWidthRes" format="reference"/>
        <!-- X Offset value for the panel location relative to the anchor view -->
        <attr name="xOffset" format="integer"/>
        <!-- Y Offset value for the panel location relative to the anchor view -->
        <attr name="yOffset" format="integer"/>
        <!-- Gravity of the panel relative to the anchor view - uses same flag format as android:gravity -->
        <attr name="gravity" format="integer">
            <flag name="top" value="0x30" />
            <flag name="bottom" value="0x50" />
            <flag name="left" value="0x03" />
            <flag name="right" value="0x05" />
            <flag name="center_vertical" value="0x10" />
            <flag name="fill_vertical" value="0x70" />
            <flag name="center_horizontal" value="0x01" />
            <flag name="fill_horizontal" value="0x07" />
            <flag name="center" value="0x11" />
            <flag name="fill" value="0x77" />
            <flag name="clip_vertical" value="0x80" />
            <flag name="clip_horizontal" value="0x08" />
            <flag name="start" value="0x00800003" />
            <flag name="end" value="0x00800005" />
        </attr>
        <!-- Whether the panel should be disabled while driving - defaults to false -->
        <attr name="disabledWhileDriving" format="boolean"/>
        <!-- Whether the panel should be disabled while unprovisioned - defaults to false -->
        <attr name="disabledWhileUnprovisioned" format="boolean"/>
        <!-- Whether the panel should be shown as a dropdown relative to the anchor view or not
             (making it relative to the screen with offsets and gravity) - defaults to true -->
        <attr name="showAsDropDown" format="boolean"/>
    </declare-styleable>

    <!-- Custom attributes to configure HVAC values -->
    <declare-styleable name="HvacView">
        <attr name="hvacAreaId" format="integer"/>
        <attr name="hvacPropertyId" format="integer"/>
        <attr name="hvacTempFormat" format="string"/>
        <attr name="hvacToggleOnButtonDrawable" format="reference"/>
        <attr name="hvacToggleOffButtonDrawable" format="reference"/>
        <!-- Whether the given HvacView must be turned off if the HVAC Auto mode is on.
               Defaults to false. -->
        <attr name="hvacDisableViewIfAutoOn" format="boolean" />
    </declare-styleable>

    <declare-styleable name="HvacIntegerToggleButton">
        <attr name="invalidValue" format="integer"/>
        <attr name="onValue" format="integer"/>
        <attr name="offValue" format="integer"/>
        <!-- Whether the given HvacView can be toggled off. This attribute can be useful when a
             group of HvacToggleButtons should be used in a radio button like manner (i.e. only one
             can be selected at a time, an option MUST be selected).
               Defaults to false. -->
        <attr name="preventToggleOff" format="boolean" />
    </declare-styleable>

    <declare-styleable name="carVolumeItems"/>
    <declare-styleable name="carVolumeItems_item">
        <!-- Align with AudioAttributes.USAGE_* -->
        <attr name="usage">
            <enum name="unknown" value="0"/>
            <enum name="media" value="1"/>
            <enum name="voice_communication" value="2"/>
            <enum name="voice_communication_signalling" value="3"/>
            <enum name="alarm" value="4"/>
            <enum name="notification" value="5"/>
            <enum name="notification_ringtone" value="6"/>
            <enum name="notification_communication_request" value="7"/>
            <enum name="notification_communication_instant" value="8"/>
            <enum name="notification_communication_delayed" value="9"/>
            <enum name="notification_event" value="10"/>
            <enum name="assistance_accessibility" value="11"/>
            <enum name="assistance_navigation_guidance" value="12"/>
            <enum name="assistance_sonification" value="13"/>
            <enum name="game" value="14"/>
            <!-- hidden, do not use -->
            <!-- enum name="virtual_source" value="15"/ -->
            <enum name="assistant" value="16"/>
            <enum name="call_assistant" value="17"/>
            <enum name="emergency" value="1000"/>
            <enum name="safety" value="1001"/>
            <enum name="vehicle_status" value="1002"/>
            <enum name="announcement" value="1003"/>
        </attr>

        <!-- Icon resource ids to render on UI -->
        <attr name="icon" />
        <attr name="mute_icon" />
    </declare-styleable>

    <declare-styleable name="SystemUIQCView">
        <attr name="remoteQCProvider" format="string"/>
        <attr name="localQCProvider" format="string"/>
    </declare-styleable>

    <declare-styleable name="QCFooterButton">
        <attr name="intent" format="string"/>
        <attr name="disableWhileDriving" format="boolean"/>
    </declare-styleable>

    <declare-styleable name="QCFooterView">
        <attr name="intent" format="string"/>
        <attr name="disableWhileDriving" format="boolean"/>
    </declare-styleable>

    <declare-styleable name="PinPadView">
        <attr name="layout" format="reference"/>
    </declare-styleable>

    <!-- Attributes used for showing displaycompat toolbar on system bars. -->
    <declare-styleable name="CarDisplayCompatSystemBarView">
        <attr name="default_layout" format="reference"/>
        <attr name="displaycompat_layout" format="reference"/>
        <attr name="displaycompat_side" format="integer">
            <enum name="left" value="1"/>
            <enum name="right" value="2"/>
        </attr>
    </declare-styleable>
</resources>
