<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2014 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="CanvasSettings">
        <attr name="preference" format="reference" />
    </declare-styleable>

    <declare-styleable name="FrameLayoutWithShadows">
        <!-- default shadow drawable -->
        <attr name="defaultShadow" format="reference"/>
        <!-- drawable on bottom of content, note: it requires intrinsic height,
             so ColorDrawable does not work,  use ShapeDrawable with solid color
             instead -->
        <attr name="drawableBottom" format="reference"/>
        </declare-styleable>

    <declare-styleable name="ScrollAdapterView">

        <attr name="orientation">
            <enum name="horizontal" value="0" />
            <enum name="vertical" value="1" />
        </attr>

        <!-- indicate whether the ScrollAdapterView's child can have focus,
        default is true -->
        <attr name="itemFocusable" format="boolean" />

        <!--
          set to 1 (default value) for single row/column, set to > 1 for grid view,
          set to 0 for auto adjust rows/columns by widget size.
        -->
        <attr name="gridSetting" format="integer" />

        <!-- space between two items -->
        <attr name="space" format="dimension" />

        <!-- alternative space size of a selected item, ScrollAdapterView may assign
        more (or less) space to the selected item and animate the transition between
        multiple items.  In a more complicated case: if each item has a different
        selectedSize,  use ScrollAdapterCustomSize. <p>
        The value can be used in two cases: <p>
        - when selectedTakesMoreSpace is true:  ScrollAdapterView will allocate more
        spaces surrounding the focused item.  The extra spaces is added to start/end
        depending on "scrollItemAlign". <p>
        - when selectedTakesMoreSpace is false: ScrollAdapterView will not allocate
        more spaces for focused item,  but will align the focused item using the value. <p>
        In any case, ScrollAdapterView never scale the View or change its width or height,
        the view itself is responsible doing the scale in ScrollAdapterTransform or
        ScrollAdapterView.OnScrollListener
        -->
        <attr name="selectedSize" format="dimension" />

        <!-- if ScrollAdapterView will use "selectedSize" or ScrollAdapterCustomSize
        to add more spaces for selected item-->
        <attr name="selectedTakesMoreSpace" format="boolean" />

        <!-- describe how to put scroll center in the viewport -->
        <attr name="scrollCenterStrategy">

            <!-- keep scroll center in center of viewport, the middle point is 1/2 inside
            client area (size - padding) by default.  But you can also use scrollCenterOffset
            or scrollCenterOffsetPercent to customize it-->
            <enum name="keepCenter" value="0" />
            <!-- keep scroll center as a fixed distance from start/top -->
            <enum name="fixed" value="1" />
            <!-- keep scroll center offset from the center of the view -->
            <enum name="fixedPercent" value="2"/>
            <!-- keep scroll center as a fixed distance from end/bottom -->
            <enum name="fixedToEnd" value="3" />
        </attr>

        <!-- only used when scrollCenterStrategy is fixed or fixedPercent -->
        <attr name="scrollCenterOffset" format="dimension" />

        <!-- only used when scrollCenterStrategy is fixedPercent -->
        <attr name="scrollCenterOffsetPercent" format="integer" />

        <!-- how to align the selected item -->
        <attr name="scrollItemAlign">
            <!-- align the center of selected item -->
            <enum name="center" value="0" />
            <!-- align the start/up edge of selected item -->
            <enum name="low" value="1" />
            <!-- align the end/down edge of selected item -->
            <enum name="high" value="2" />
        </attr>

        <!-- divisor (>=1) for view to chasing the scrolling target pos, set to 1.0 for
        immediately fill the gap of current pos and target, default value 2.0 fills half
        of the gap every time.  The reason that we use Lerper model is for smoothing out
        transitions between two different animations. -->
        <attr name="lerperDivisor" format="float" />

        <!--
          distance based transform for the views on the start/top of center position,
          the duration is interpreted as "dip" instead of milliseconds
        -->
        <attr name="lowItemTransform" format="reference" />

        <!--
          distance based transform for the views on the end/down of center position,
          the duration is interpreted as "dip" instead of milliseconds
        -->
        <attr name="highItemTransform" format="reference" />

        <!-- animation for showing expanded item -->
        <attr name="expandedItemInAnim" format="reference" />

        <!-- animation for hiding expanded item -->
        <attr name="expandedItemOutAnim" format="reference" />

        <!--  allow DPAD key to navigate out of scrollAdapterView, default is true -->
        <attr name="navigateOutAllowed" format="boolean" />

        <!--  allow DPAD key to navigate out of off axis of scrollAdapterView, default is true -->
        <attr name="navigateOutOfOffAxisAllowed" format="boolean" />

        <!--  allow DPAD key during animation, default is true -->
        <attr name="navigateInAnimationAllowed" format="boolean" />

    </declare-styleable>

    <declare-styleable name="RadioPreference">
        <attr name="radioGroup" format="string" />
    </declare-styleable>

    <declare-styleable name="LeanbackPickerDialogPreference">
        <!-- The type of this picker preference: can be either 'date' or 'time' -->
        <attr name="pickerType" format="string" />
    </declare-styleable>

    <declare-styleable name="TsPreference">
        <attr name="updatableFromGoogleSettings" format="boolean" />
    </declare-styleable>
</resources>
