<?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="WifiEncryptionState">
        <attr name="state_encrypted" format="boolean" />
    </declare-styleable>
    <declare-styleable name="IconPreferenceScreen">
        <attr name="icon" format="reference" />
    </declare-styleable>

    <declare-styleable name="SetupWizardIllustration">
        <attr name="aspectRatio" format="float" />
    </declare-styleable>

    <declare-styleable name="BatteryHistoryChart">
        <!-- Base text color, typeface, size, and style. -->
        <attr name="android:textAppearance" />
        <!-- Text color. -->
        <attr name="android:textColor" />
        <!-- Size of the text. Recommended dimension type for text is "sp" for scaled-pixels (example: 15sp). -->
        <attr name="android:textSize" />
        <!-- Typeface (normal, sans, serif, monospace) for the text. -->
        <attr name="android:typeface" />
        <!-- Style (bold, italic, bolditalic) for the text. -->
        <attr name="android:textStyle" />
        <!-- Place a shadow of the specified color behind the text. -->
        <attr name="android:shadowColor" />
        <!-- Horizontal offset of the shadow. -->
        <attr name="android:shadowDx" />
        <!-- Vertical offset of the shadow. -->
        <attr name="android:shadowDy" />
        <!-- Radius of the shadow. -->
        <attr name="android:shadowRadius" />
        <!-- Text color, typeface, size, and style of header. -->
        <attr name="headerAppearance" format="reference" />
        <!-- Primary color of chart. -->
        <attr name="barPrimaryColor" format="color|reference" />
        <!-- Color of predicted future use part of chart. -->
        <attr name="barPredictionColor" format="color|reference" />
        <!-- Minimum height of the chart itself. -->
        <attr name="chartMinHeight" format="dimension|reference" />
    </declare-styleable>

    <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>

    <declare-styleable name="ChartNetworkSeriesView">
        <attr name="strokeColor" format="color" />
        <attr name="fillColor" format="color" />
        <attr name="fillColorSecondary" format="color" />
        <attr name="safeRegion" />
    </declare-styleable>

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

    <!-- For Search -->
    <declare-styleable name="Preference">
        <attr name="keywords" format="string" />
    </declare-styleable>

    <attr name="switchBarTheme" format="reference" />
    <attr name="switchBarMarginStart" format="dimension" />
    <attr name="switchBarMarginEnd" format="dimension" />

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