<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2012 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>

    <!-- Themes in the "Theme.AppCompat" family will contain an action bar by default.
         If Holo themes are available on the current platform version they will be used.
         A limited Holo-styled action bar will be provided on platform versions older
         than 3.0. (API 11)

         These theme declarations contain any version-independent specification. Items
         that need to vary based on platform version should be defined in the corresponding
         "Theme.Base" theme. -->

    <!-- Platform-independent theme providing an action bar in a dark-themed activity. -->
    <style name="Theme.AppCompat" parent="Base.Theme.AppCompat" />

    <!-- Platform-independent theme providing an action bar in a light-themed activity. -->
    <style name="Theme.AppCompat.Light" parent="Base.Theme.AppCompat.Light" />

    <!-- Platform-independent theme providing an action bar in a dark-themed activity. -->
    <style name="Theme.AppCompat.Light.DarkActionBar" parent="Base.Theme.AppCompat.Light.DarkActionBar" />

    <style name="Theme.AppCompat.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
    </style>

    <style name="Theme.AppCompat.Light.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
    </style>

    <style name="Theme.AppCompat.DialogWhenLarge"
           parent="Base.Theme.AppCompat.DialogWhenLarge">
    </style>

    <style name="Theme.AppCompat.Light.DialogWhenLarge"
           parent="Base.Theme.AppCompat.Light.DialogWhenLarge">
    </style>

    <style name="Theme.AppCompat.Dialog" parent="Base.Theme.AppCompat.Dialog" />

    <style name="Theme.AppCompat.Light.Dialog" parent="Base.Theme.AppCompat.Light.Dialog" />

    <!-- Menu/item attributes -->
    <style name="Theme.AppCompat.CompactMenu"
           parent="Base.Theme.AppCompat.CompactMenu">
    </style>

    <style name="ThemeOverlay.AppCompat" parent="Base.ThemeOverlay.AppCompat" />

    <!-- Theme overlay that replaces colors with their light versions but preserves
         the value of colorAccent, colorPrimary and its variants. -->
    <style name="ThemeOverlay.AppCompat.Light" parent="Base.ThemeOverlay.AppCompat.Light" />

    <!-- Theme overlay that replaces colors with their dark versions but preserves
         the value of colorAccent, colorPrimary and its variants. -->
    <style name="ThemeOverlay.AppCompat.Dark" parent="Base.ThemeOverlay.AppCompat.Dark" />

    <!-- Theme overlay that replaces the normal control color, which by default is the same as the
         secondary text color, with the primary text color. -->
    <style name="ThemeOverlay.AppCompat.ActionBar" parent="Base.ThemeOverlay.AppCompat.ActionBar" />

    <!-- Theme overlay that replaces colors with their dark versions and replaces the normal
         control color, which by default is the same as the secondary text color, with the primary
         text color. -->
    <style name="ThemeOverlay.AppCompat.Dark.ActionBar" parent="Base.ThemeOverlay.AppCompat.Dark.ActionBar" />

</resources>
