<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 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>
    <declare-styleable name="KeyButtonView">
        <!-- key code to send when pressed; if absent or 0, no key is sent -->
        <attr name="keyCode" format="integer" />
        <!-- Should this button play sound effects, default true -->
        <attr name="playSound" format="boolean" />
        <attr name="android:contentDescription" />
    </declare-styleable>
    <declare-styleable name="ToggleSliderView">
        <attr name="text" format="string" />
    </declare-styleable>
    <declare-styleable name="NotificationLinearLayout">
        <attr name="insetLeft" format="dimension" />
    </declare-styleable>
    <declare-styleable name="DeadZone">
        <attr name="minSize" format="dimension" />
        <attr name="maxSize" format="dimension" />
        <attr name="holdTime" format="integer" />
        <attr name="decayTime" format="integer" />
        <attr name="orientation" />
    </declare-styleable>
    <attr name="frameColor" format="color" />
    <declare-styleable name="BatteryMeterView">
        <attr name="frameColor" />
        <attr name="textAppearance" format="reference"/>
    </declare-styleable>
    <declare-styleable name="Clock">
        <attr name="amPmStyle" format="enum">
            <enum name="normal" value="0" />
            <enum name="small" value="1" />
            <enum name="gone" value="2" />
        </attr>
        <attr name="showDark" format="boolean" />
    </declare-styleable>
    <attr name="orientation">
        <enum name="horizontal" value="0" />
        <enum name="vertical" value="1" />
    </attr>
    <declare-styleable name="UserAvatarView">
        <attr name="avatarPadding" format="dimension" />
        <attr name="frameWidth" format="dimension" />
        <attr name="framePadding" format="dimension" />
        <!-- {@deprecated Use a statelist in frameColor instead.} -->
        <attr name="activeFrameColor" format="color" />
        <attr name="frameColor" />
        <attr name="badgeDiameter" format="dimension" />
        <attr name="badgeMargin" format="dimension" />
    </declare-styleable>
    <declare-styleable name="UserDetailItemView">
        <attr name="regularTextAppearance" format="string" />
        <attr name="activatedTextAppearance" format="string" />
    </declare-styleable>
    <declare-styleable name="DateView">
        <attr name="datePattern" format="string" />
    </declare-styleable>
    <declare-styleable name="PseudoGridView">
        <attr name="numColumns" format="integer" />
        <attr name="verticalSpacing" format="dimension" />
        <attr name="horizontalSpacing" format="dimension" />
    </declare-styleable>

    <!-- Theme for icons in the status/nav bar (light/dark). background/fillColor is used for dual
         tone icons like wifi and signal, and singleToneColor is used for icons with only one tone.
         Contract: Pixel with fillColor blended over backgroundColor blended over translucent should
         equal to singleToneColor blended over translucent. -->
    <declare-styleable name="TonedIcon">
        <attr name="backgroundColor" format="integer" />
        <attr name="fillColor" format="integer" />
        <attr name="singleToneColor" format="integer" />
        <attr name="homeHandleColor" format="integer" />
    </declare-styleable>

    <declare-styleable name="StatusBarWindowView_Layout">
        <attr name="ignoreRightInset" format="boolean" />
    </declare-styleable>

    <declare-styleable name="AnimatedImageView">
        <attr name="hasOverlappingRendering" format="boolean" />
    </declare-styleable>

    <declare-styleable name="TunerSwitch">
        <attr name="defValue" format="boolean" />
        <attr name="metricsAction" format="integer" />
    </declare-styleable>

    <declare-styleable name="AutoReinflateContainer">
        <attr name="android:layout" />
    </declare-styleable>

    <declare-styleable name="HybridNotificationTheme">
        <attr name="hybridNotificationStyle" format="reference" />
        <attr name="hybridNotificationTitleStyle" format="reference" />
        <attr name="hybridNotificationTextStyle" format="reference" />
    </declare-styleable>

    <declare-styleable name="AutoSizingList">
        <!-- Whether AutoSizingList will show only as many items as fit on screen and
             remove extra items instead of scrolling. -->
        <attr name="enableAutoSizing" format="boolean" />
        <attr name="itemHeight" format="dimension" />
    </declare-styleable>

    <declare-styleable name="PluginInflateContainer">
        <attr name="viewType" format="string" />
    </declare-styleable>

    <attr name="lightIconTheme" format="reference" />
    <attr name="darkIconTheme" format="reference" />
    <attr name="wallpaperTextColor" format="reference|color" />
    <attr name="wallpaperTextColorSecondary" format="reference|color" />
    <attr name="backgroundProtectedStyle" format="reference" />

    <declare-styleable name="SmartReplyView">
        <attr name="spacing" format="dimension" />
        <attr name="singleLineButtonPaddingHorizontal" format="dimension" />
        <attr name="doubleLineButtonPaddingHorizontal" format="dimension" />
        <attr name="buttonStrokeWidth" format="dimension" />
    </declare-styleable>

    <!-- Used to style rotate suggestion button AVD animations -->
    <attr name="rotateButtonStartAngle" format="float" />
    <attr name="rotateButtonEndAngle" format="float" />
    <attr name="rotateButtonScaleX" format="float" />

    <!-- Used to style charging animation AVD animation -->
    <attr name="chargingAnimColor" format="color" />

    <!-- Size of shadows/elevations on keyguard -->
    <attr name="shadowRadius" format="float" />

    <!-- Used display CarrierText in Keyguard or QS Footer -->
    <declare-styleable name="CarrierText">
        <attr name="allCaps" format="boolean" />
        <attr name="showMissingSim" format="boolean" />
        <attr name="showAirplaneMode" format="boolean" />
    </declare-styleable>

    <declare-styleable name="CaptionsToggleImageButton">
        <attr name="optedOut" format="boolean" />
    </declare-styleable>

    <declare-styleable name="IlluminationDrawable">
        <attr name="highlight" format="integer" />
        <attr name="cornerRadius" format="dimension" />
        <attr name="rippleMinSize" format="dimension" />
        <attr name="rippleMaxSize" format="dimension" />
    </declare-styleable>
</resources>

