<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2015 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="FloatingActionButton">
        <!-- Background for the FloatingActionButton -->
        <attr name="backgroundTint"/>
        <attr name="backgroundTintMode"/>

        <!-- Ripple color for the FAB. -->
        <attr name="rippleColor" format="color"/>
        <!-- Size for the FAB. -->
        <attr name="fabSize">
            <enum name="normal" value="0"/>
            <enum name="mini" value="1"/>
        </attr>
        <!-- Elevation value for the FAB -->
        <attr name="elevation"/>
        <!-- TranslationZ value for the FAB when pressed-->
        <attr name="pressedTranslationZ" format="dimension"/>
        <!-- The width of the border around the FAB. -->
        <attr name="borderWidth" format="dimension"/>
        <!-- Enable compat padding. -->
        <attr name="useCompatPadding" format="boolean"/>
    </declare-styleable>

    <declare-styleable name="ScrimInsetsFrameLayout">
        <attr name="insetForeground" format="color|reference"/>
    </declare-styleable>

    <declare-styleable name="NavigationView">
        <attr name="android:background"/>
        <attr name="android:fitsSystemWindows"/>
        <attr name="android:maxWidth"/>
        <attr name="elevation"/>
        <!-- The menu resource to inflate and populate items from. -->
        <attr name="menu" format="reference"/>
        <attr name="itemIconTint" format="color"/>
        <attr name="itemTextColor" format="color"/>
        <attr name="itemBackground" format="reference"/>
        <attr name="itemTextAppearance" format="reference"/>
        <!-- Layout resource to inflate as the header -->
        <attr name="headerLayout" format="reference"/>
    </declare-styleable>

    <declare-styleable name="ForegroundLinearLayout">
        <attr name="android:foreground" />
        <attr name="android:foregroundGravity" />
        <attr name="foregroundInsidePadding" format="boolean" />
    </declare-styleable>

    <declare-styleable name="TabLayout">
        <!-- Color of the indicator used to show the currently selected tab. -->
        <attr name="tabIndicatorColor" format="color"/>
        <!-- Height of the indicator used to show the currently selected tab. -->
        <attr name="tabIndicatorHeight" format="dimension"/>
        <!-- Position in the Y axis from the starting edge that tabs should be positioned from. -->
        <attr name="tabContentStart" format="dimension"/>
        <!-- Reference to a background to be applied to tabs. -->
        <attr name="tabBackground" format="reference"/>
        <!-- The behavior mode for the Tabs in this layout -->
        <attr name="tabMode">
            <enum name="scrollable" value="0"/>
            <enum name="fixed" value="1"/>
        </attr>
        <!-- Gravity constant for tabs. -->
        <attr name="tabGravity">
            <enum name="fill" value="0"/>
            <enum name="center" value="1"/>
        </attr>
        <!-- The minimum width for tabs. -->
        <attr name="tabMinWidth" format="dimension"/>
        <!-- The maximum width for tabs. -->
        <attr name="tabMaxWidth" format="dimension"/>
        <!-- A reference to a TextAppearance style to be applied to tabs. -->
        <attr name="tabTextAppearance" format="reference"/>
        <!-- The default text color to be applied to tabs. -->
        <attr name="tabTextColor" format="color"/>
        <!-- The text color to be applied to the currently selected tab. -->
        <attr name="tabSelectedTextColor" format="color"/>
        <!-- The preferred padding along the start edge of tabs. -->
        <attr name="tabPaddingStart" format="dimension"/>
        <!-- The preferred padding along the top edge of tabs. -->
        <attr name="tabPaddingTop" format="dimension"/>
        <!-- The preferred padding along the end edge of tabs. -->
        <attr name="tabPaddingEnd" format="dimension"/>
        <!-- The preferred padding along the bottom edge of tabs. -->
        <attr name="tabPaddingBottom" format="dimension"/>
        <!-- The preferred padding along all edges of tabs. -->
        <attr name="tabPadding" format="dimension"/>
    </declare-styleable>

    <declare-styleable name="TabItem">
        <!-- Text to display in the tab. -->
        <attr name="android:text" />
        <!-- Icon to display in the tab. -->
        <attr name="android:icon" />
        <!-- A reference to a layout resource to be displayed in the tab. -->
        <attr name="android:layout" />
    </declare-styleable>

    <declare-styleable name="CoordinatorLayout">
        <!-- A reference to an array of integers representing the
             locations of horizontal keylines in dp from the starting edge.
             Child views can refer to these keylines for alignment using
             layout_keyline="index" where index is a 0-based index into
             this array. -->
        <attr name="keylines" format="reference"/>
        <!-- Drawable to display behind the status bar when the view is set to draw behind it. -->
        <attr name="statusBarBackground" format="reference"/>
    </declare-styleable>

    <declare-styleable name="CoordinatorLayout_LayoutParams">
        <attr name="android:layout_gravity"/>
        <!-- The class name of a Behavior class defining special runtime behavior
             for this child view. -->
        <attr name="layout_behavior" format="string"/>
        <!-- The id of an anchor view that this view should position relative to. -->
        <attr name="layout_anchor" format="reference"/>
        <!-- The index of a keyline this view should position relative to.
             android:layout_gravity will affect how the view aligns to the
             specified keyline. -->
        <attr name="layout_keyline" format="integer"/>

        <!-- Specifies how an object should position relative to an anchor, on both the X and Y axes,
             within its parent's bounds.  -->
        <attr name="layout_anchorGravity">
            <!-- Push object to the top of its container, not changing its size. -->
            <flag name="top" value="0x30"/>
            <!-- Push object to the bottom of its container, not changing its size. -->
            <flag name="bottom" value="0x50"/>
            <!-- Push object to the left of its container, not changing its size. -->
            <flag name="left" value="0x03"/>
            <!-- Push object to the right of its container, not changing its size. -->
            <flag name="right" value="0x05"/>
            <!-- Place object in the vertical center of its container, not changing its size. -->
            <flag name="center_vertical" value="0x10"/>
            <!-- Grow the vertical size of the object if needed so it completely fills its container. -->
            <flag name="fill_vertical" value="0x70"/>
            <!-- Place object in the horizontal center of its container, not changing its size. -->
            <flag name="center_horizontal" value="0x01"/>
            <!-- Grow the horizontal size of the object if needed so it completely fills its container. -->
            <flag name="fill_horizontal" value="0x07"/>
            <!-- Place the object in the center of its container in both the vertical and horizontal axis, not changing its size. -->
            <flag name="center" value="0x11"/>
            <!-- Grow the horizontal and vertical size of the object if needed so it completely fills its container. -->
            <flag name="fill" value="0x77"/>
            <!-- Additional option that can be set to have the top and/or bottom edges of
                 the child clipped to its container's bounds.
                 The clip will be based on the vertical gravity: a top gravity will clip the bottom
                 edge, a bottom gravity will clip the top edge, and neither will clip both edges. -->
            <flag name="clip_vertical" value="0x80"/>
            <!-- Additional option that can be set to have the left and/or right edges of
                 the child clipped to its container's bounds.
                 The clip will be based on the horizontal gravity: a left gravity will clip the right
                 edge, a right gravity will clip the left edge, and neither will clip both edges. -->
            <flag name="clip_horizontal" value="0x08"/>
            <!-- Push object to the beginning of its container, not changing its size. -->
            <flag name="start" value="0x00800003"/>
            <!-- Push object to the end of its container, not changing its size. -->
            <flag name="end" value="0x00800005"/>
        </attr>
    </declare-styleable>

    <declare-styleable name="TextInputLayout">
        <attr name="hintTextAppearance" format="reference"/>
        <!-- The hint to display in the floating label -->
        <attr name="android:hint"/>
        <!-- Whether the layout's floating label functionality is enabled -->
        <attr name="hintEnabled" format="boolean"/>
        <!-- Whether the layout is laid out as if an error will be displayed -->
        <attr name="errorEnabled" format="boolean"/>
        <!-- TextAppearance of any error message displayed -->
        <attr name="errorTextAppearance" format="reference"/>
        <!-- Whether the layout is laid out as if the character counter will be displayed -->
        <attr name="counterEnabled" format="boolean"/>
        <!-- The max length to display in the character counter -->
        <attr name="counterMaxLength" format="integer" />
        <!-- TextAppearance of the character counter -->
        <attr name="counterTextAppearance" format="reference"/>
        <!-- TextAppearance of the character counter when the text is longer than the max -->
        <attr name="counterOverflowTextAppearance" format="reference"/>
        <attr name="android:textColorHint"/>
        <!-- Whether to animate hint state changes. -->
        <attr name="hintAnimationEnabled" format="boolean"/>
    </declare-styleable>

    <declare-styleable name="SnackbarLayout">
        <attr name="android:maxWidth"/>
        <attr name="elevation"/>
        <attr name="maxActionInlineWidth" format="dimension"/>
    </declare-styleable>

    <declare-styleable name="AppBarLayout">
        <attr name="elevation" />
        <attr name="android:background" />
        <!-- The initial expanded state for the AppBarLayout. This only takes effect when this
             view is a direct child of a CoordinatorLayout. -->
        <attr name="expanded" format="boolean" />
    </declare-styleable>

    <declare-styleable name="AppBarLayout_LayoutParams">
        <attr name="layout_scrollFlags">
            <!-- The view will be scroll in direct relation to scroll events. This flag needs to be
                 set for any of the other flags to take effect. If any sibling views
                 before this one do not have this flag, then this value has no effect. -->
            <flag name="scroll" value="0x1"/>

            <!-- When exiting (scrolling off screen) the view will be scrolled until it is
                 'collapsed'. The collapsed height is defined by the view's minimum height. -->
            <flag name="exitUntilCollapsed" value="0x2"/>

            <!-- When entering (scrolling on screen) the view will scroll on any downwards
                 scroll event, regardless of whether the scrolling view is also scrolling. This
                 is commonly referred to as the 'quick return' pattern. -->
            <flag name="enterAlways" value="0x4"/>

            <!-- An additional flag for 'enterAlways' which modifies the returning view to
                 only initially scroll back to it's collapsed height. Once the scrolling view has
                 reached the end of it's scroll range, the remainder of this view will be scrolled
                 into view. -->
            <flag name="enterAlwaysCollapsed" value="0x8"/>

            <!-- Upon a scroll ending, if the view is only partially visible then it will be
                 snapped and scrolled to it's closest edge. -->
            <flag name="snap" value="0x10"/>
        </attr>

        <!-- An interpolator to use when scrolling this View. Only takes effect when View
             is scrollable. -->
        <attr name="layout_scrollInterpolator" format="reference" />
    </declare-styleable>

    <declare-styleable name="ScrollingViewBehavior_Params">
        <!-- The amount that the scrolling view should overlap the bottom of any AppBarLayout -->
        <attr name="behavior_overlapTop" format="dimension" />
    </declare-styleable>

    <declare-styleable name="CollapsingToolbarLayout">
        <!--  Specifies extra space on the start, top, end and bottom
              sides of the the expanded title text. Margin values should be positive. -->
        <attr name="expandedTitleMargin" format="dimension"/>
        <!--  Specifies extra space on the start side of the the expanded title text.
              Margin values should be positive. -->
        <attr name="expandedTitleMarginStart" format="dimension"/>
        <!--  Specifies extra space on the top side of the the expanded title text.
              Margin values should be positive. -->
        <attr name="expandedTitleMarginTop" format="dimension"/>
        <!--  Specifies extra space on the end side of the the expanded title text.
              Margin values should be positive. -->
        <attr name="expandedTitleMarginEnd" format="dimension"/>
        <!--  Specifies extra space on the bottom side of the the expanded title text.
              Margin values should be positive. -->
        <attr name="expandedTitleMarginBottom" format="dimension"/>
        <!-- The text appearance of the CollapsingToolbarLayout's title when it is fully
             'expanded' -->
        <attr name="expandedTitleTextAppearance" format="reference"/>
        <!-- The text appearance of the CollapsingToolbarLayouts title when it is fully
             'collapsed' -->
        <attr name="collapsedTitleTextAppearance" format="reference"/>
        <!-- The drawable to use as a scrim on top of the CollapsingToolbarLayouts content when
             it has been scrolled sufficiently off screen. -->
        <attr name="contentScrim" format="color"/>
        <!-- The drawable to use as a scrim for the status bar content when the
             CollapsingToolbarLayout has been scrolled sufficiently off screen. Only works on
             Lollipop with the correct setup. -->
        <attr name="statusBarScrim" format="color" />
        <!-- The id of the primary Toolbar child that you wish to use for the purpose of collapsing.
             This Toolbar descendant view does not need to be a direct child of the layout.
             If you do not set this, the first direct Toolbar child found will be used. -->
        <attr name="toolbarId" format="reference"/>

        <!-- Specifies how the title should be positioned when collapsed. -->
        <attr name="collapsedTitleGravity">
            <!-- Push title to the top of its container, not changing its size. -->
            <flag name="top" value="0x30"/>
            <!-- Push title to the bottom of its container, not changing its size. -->
            <flag name="bottom" value="0x50"/>
            <!-- Push title to the left of its container, not changing its size. -->
            <flag name="left" value="0x03"/>
            <!-- Push title to the right of its container, not changing its size. -->
            <flag name="right" value="0x05"/>
            <!-- Place title in the vertical center of its container, not changing its size. -->
            <flag name="center_vertical" value="0x10"/>
            <!-- Grow the vertical size of the title if needed so it completely fills its container. -->
            <flag name="fill_vertical" value="0x70"/>
            <!-- Place title in the horizontal center of its container, not changing its size. -->
            <flag name="center_horizontal" value="0x01"/>
            <!-- Place the title in the center of its container in both the vertical and horizontal axis, not changing its size. -->
            <flag name="center" value="0x11"/>
            <!-- Push title to the beginning of its container, not changing its size. -->
            <flag name="start" value="0x00800003"/>
            <!-- Push title to the end of its container, not changing its size. -->
            <flag name="end" value="0x00800005"/>
        </attr>

        <!-- Specifies how the title should be positioned when expanded. -->
        <attr name="expandedTitleGravity">
            <!-- Push title to the top of its container, not changing its size. -->
            <flag name="top" value="0x30"/>
            <!-- Push title to the bottom of its container, not changing its size. -->
            <flag name="bottom" value="0x50"/>
            <!-- Push title to the left of its container, not changing its size. -->
            <flag name="left" value="0x03"/>
            <!-- Push title to the right of its container, not changing its size. -->
            <flag name="right" value="0x05"/>
            <!-- Place title in the vertical center of its container, not changing its size. -->
            <flag name="center_vertical" value="0x10"/>
            <!-- Grow the vertical size of the title if needed so it completely fills its container. -->
            <flag name="fill_vertical" value="0x70"/>
            <!-- Place title in the horizontal center of its container, not changing its size. -->
            <flag name="center_horizontal" value="0x01"/>
            <!-- Place the title in the center of its container in both the vertical and horizontal axis, not changing its size. -->
            <flag name="center" value="0x11"/>
            <!-- Push title to the beginning of its container, not changing its size. -->
            <flag name="start" value="0x00800003"/>
            <!-- Push title to the end of its container, not changing its size. -->
            <flag name="end" value="0x00800005"/>
        </attr>

        <!-- Whether the CollapsingToolbarLayout should draw its own shrinking/growing title. -->
        <attr name="titleEnabled" format="boolean"/>
        <!-- The title to show when titleEnabled is set to true. -->
        <attr name="title"/>
    </declare-styleable>

    <declare-styleable name="CollapsingAppBarLayout_LayoutParams">
        <attr name="layout_collapseMode">
            <!-- The view will act as normal with no collapsing behavior. -->
            <enum name="none" value="0"/>
            <!-- The view will pin in place. -->
            <enum name="pin" value="1"/>
            <!-- The view will scroll in a parallax fashion. See the
                 layout_collapseParallaxMultiplier attribute to change the multiplier. -->
            <enum name="parallax" value="2"/>
        </attr>

        <!-- The multiplier used when layout_collapseMode is set to 'parallax'. The value should
             be between 0.0 and 1.0. -->
        <attr name="layout_collapseParallaxMultiplier" format="float"/>
    </declare-styleable>

    <declare-styleable name="BottomSheetBehavior_Params">
        <!-- The height of the bottom sheet when it is collapsed. -->
        <attr name="behavior_peekHeight" format="dimension"/>
        <attr name="behavior_hideable" format="boolean"/>
    </declare-styleable>

    <declare-styleable name="DesignTheme">
        <!-- Theme to use for modal bottom sheet dialogs spawned from this theme. -->
        <attr name="bottomSheetDialogTheme" format="reference" />
        <!-- Style to use for modal bottom sheets in this theme. -->
        <attr name="bottomSheetStyle" format="reference" />

        <!-- Text color used to indicate an error has occurred. -->
        <attr name="textColorError" format="color" />
    </declare-styleable>

</resources>

