<?xml version="1.0" encoding="utf-8"?>
<!--
  Copyright (C) 2018 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>
    <style name="BarViewStyle">
        <item name="android:layout_width">0dp</item>
        <item name="android:layout_height">250dp</item>
        <item name="android:layout_weight">1</item>
        <item name="android:layout_marginStart">8dp</item>
        <item name="android:layout_marginEnd">8dp</item>
    </style>

    <style name="BarChart.Text"
           parent="@android:style/TextAppearance.Material.Subhead">
        <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
        <item name="android:textColor">?android:attr/textColorPrimary</item>
    </style>

    <style name="BarChart.Text.HeaderTitle">
        <item name="android:textSize">14sp</item>
    </style>

    <style name="BarChart.Text.Title">
        <item name="android:textSize">22sp</item>
    </style>

    <style name="BarChart.Text.Summary"
           parent="@android:style/TextAppearance.Material.Body1">
        <item name="android:textColor">?android:attr/textColorSecondary</item>
        <item name="android:textSize">14sp</item>
    </style>
</resources>