<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2008 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="PercentageBarChart">
        <!-- Background color -->
        <attr name="emptyColor" format="color" />
        <!-- Minimum tick width for each slice in the bar chart. -->
        <attr name="minTickWidth" format="dimension" />
    </declare-styleable>

    <declare-styleable name="ChartView">
        <!-- optimal width of the chart -->
        <attr name="optimalWidth" format="dimension" />
        <!-- how to weight extra space beyond optimal width -->
        <attr name="optimalWidthWeight" format="float" />
    </declare-styleable>

    <declare-styleable name="ChartSweepView">
        <attr name="sweepDrawable" format="reference" />
        <attr name="followAxis">
            <enum name="horizontal" value="0" />
            <enum name="vertical" value="1" />
        </attr>
        <attr name="neighborMargin" format="dimension" />
        <attr name="labelSize" format="dimension" />
        <attr name="labelTemplate" format="reference" />
        <attr name="labelColor" format="color" />
        <attr name="safeRegion" format="dimension" />
    </declare-styleable>

    <declare-styleable name="ChartGridView">
        <attr name="primaryDrawable" format="reference" />
        <attr name="secondaryDrawable" format="reference" />
        <attr name="borderDrawable" format="reference" />
        <attr name="android:textColor" />
        <attr name="android:textAppearance" />
    </declare-styleable>

    <attr name="apnPreferenceStyle" format="reference" />

    <attr name="slicePreferenceStyle" format="reference" />

    <attr name="cardPreferenceStyle" format="reference" />

    <declare-styleable name="FixedLineSummaryPreference">
        <attr name="summaryLineCount" format="integer" />
    </declare-styleable>

    <!-- For Search -->
    <declare-styleable name="Preference">
        <!-- Synonyms for search results -->
        <attr name="keywords" format="string" />
        <!-- Whether or not the preference is searchable, by default it's true. -->
        <attr name="searchable" format="boolean" />
        <!-- Classname of a PreferenceController corresponding to the preference -->
        <attr name="controller" format="string" />
        <!-- Customized subtitle if it's an unavailable slice -->
        <attr name="unavailableSliceSubtitle" format="string" />
        <!-- Whether or not the preference is for work profile, by default it's false. -->
        <attr name="forWork" format="boolean" />
        <!-- Identifier for highlighting the menu preference on 2-pane -->
        <attr name="highlightableMenuKey" format="string" />
    </declare-styleable>

    <declare-styleable name="PreferenceScreen">
        <!-- Determines if static preferences defined in addStaticPreferences are added before or after the radio buttons -->
        <attr name="staticPreferenceLocation">
            <enum name="prepend" value="0" />
            <enum name="append" value="1" />
        </attr>
    </declare-styleable>

    <!-- For DotsPageIndicator -->
    <declare-styleable name="DotsPageIndicator">
        <attr name="dotDiameter" format="dimension" />
        <attr name="dotGap" format="dimension" />
        <attr name="animationDuration" format="integer" />
        <attr name="pageIndicatorColor" format="color" />
        <attr name="currentPageIndicatorColor" format="color" />
    </declare-styleable>

    <!-- For ConversationMessageView -->
    <declare-styleable name="ConversationMessageView">
        <attr name="incoming" format="boolean" />
        <attr name="messageText" format="reference" />
        <attr name="timestampText" format="reference" />
        <attr name="iconText" format="reference" />
        <attr name="iconTextColor" format="reference|color" />
        <attr name="iconBackgroundColor" format="reference|color" />
    </declare-styleable>

    <attr name="switchBarTheme" format="reference" />
    <attr name="switchBarMarginStart" format="dimension" />
    <attr name="switchBarMarginEnd" format="dimension" />
    <attr name="switchBarBackgroundColor" format="color" />
    <attr name="switchBarBackgroundActivatedColor" format="color" />
    <attr name="switchBarRestrictionIcon" format="reference" />

    <attr name="preferenceBackgroundColor" format="color" />

    <!-- Confirm device credentials screen -->
    <attr name="confirmDeviceCredentialsSideMargin" format="dimension" />
    <attr name="confirmDeviceCredentialsTopMargin" format="dimension" />

    <declare-styleable name="VideoPreference">
        <attr name="animation" format="reference" />
        <attr name="preview" format="reference" />
        <attr name="vectorAnimation" format="reference" />
    </declare-styleable>

    <!-- For AspectRatioFrameLayout -->
    <declare-styleable name="AspectRatioFrameLayout">
        <attr name="aspectRatio" format="float" />
    </declare-styleable>

    <declare-styleable name="ListWithEntrySummaryPreference">
        <!-- Summaries of entry -->
        <attr name="entrySummaries" format="reference" />
    </declare-styleable>

    <!-- For UsageView -->
    <declare-styleable name="UsageView">
        <attr name="android:colorAccent" />
        <attr name="sideLabels" format="reference" />
        <attr name="bottomLabels" format="reference" />
        <attr name="textColor" format="color" />
        <attr name="android:gravity" />
    </declare-styleable>

    <!-- For biometric enroll checkboxes -->
    <declare-styleable name="BiometricEnrollCheckbox">
        <attr name="icon" format="reference" />
        <attr name="title" format="reference" />
        <attr name="description" format="reference" />
    </declare-styleable>

    <!-- For Face enroll accessibility toggle -->
    <declare-styleable name="FaceEnrollAccessibilityToggle">
        <attr name="messageText" format="reference" />
    </declare-styleable>

    <!-- For TwoStatesButtonPreference -->
    <declare-styleable name="TwoStateButtonPreference">
        <attr name="textOn" format="reference" />
        <attr name="textOff" format="reference" />
    </declare-styleable>

    <!-- For LabeledSeekBarPreference -->
    <declare-styleable name="LabeledSeekBarPreference">
        <attr name="textStart" format="reference" />
        <attr name="textEnd" format="reference" />
        <attr name="tickMark" format="reference" />
    </declare-styleable>

    <declare-styleable name="TintDrawable">
        <attr name="android:tint" />
        <attr name="android:drawable" />
    </declare-styleable>

    <attr name="twoStateButtonPreferenceStyle" format="reference" />

    <attr name="fingerprint_layout_theme" format="reference" />
    <attr name="face_layout_theme" format="reference" />
    <attr name="ic_menu_moreoverflow" format="reference" />
    <attr name="side_margin" format="reference|dimension" />
    <attr name="wifi_signal_color" format="reference" />
</resources>
