<?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="Theme.Settings.Home" parent="Theme.Settings.HomeBase">
        <item name="colorPrimary">@*android:color/primary_device_default_settings</item>
        <item name="colorPrimaryDark">@*android:color/primary_dark_device_default_settings</item>
        <item name="android:colorBackground">?android:attr/colorPrimaryDark</item>
        <!-- Homepage should follow device default design, the values is same as device default theme.-->
        <item name="android:navigationBarColor">@android:color/black</item>
        <item name="android:statusBarColor">?attr/colorPrimaryDark</item>
    </style>

    <style name="Theme.SubSettings" parent="Theme.SubSettings.Base"/>

    <style name="Theme.AlertDialog.Base" parent="@style/Theme.AppCompat.DayNight.Dialog.Alert">
        <item name="colorAccent">@*android:color/accent_device_default_dark</item>
        <item name="android:colorError">@color/settings_dialog_colorError</item>
        <item name="android:colorBackground">@*android:color/surface_dark</item>
    </style>

    <style name="Theme.Panel.Material" parent="Theme.Panel" >
        <item name="notification_importance_button_background_color_unselected">@android:color/transparent</item>
        <item name="notification_importance_button_border_color_unselected">@android:color/system_outline_variant_dark</item>
        <item name="notification_importance_button_foreground_color_unselected">@android:color/system_on_surface_variant_dark</item>

        <item name="notification_importance_button_background_color_selected">@android:color/system_secondary_container_dark</item>
        <item name="notification_importance_button_border_color_selected">@android:color/system_on_secondary_container_dark</item>
        <item name="notification_importance_button_foreground_color_selected">@android:color/system_on_secondary_container_dark</item>
    </style>

    <!-- Material theme for the pages containing TabLayout and ViewPager -->
    <style name="Theme.TabTheme" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="colorPrimary">@*android:color/edge_effect_device_default_dark</item>
    </style>

    <style name="Theme.CollapsingToolbar.Settings" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="elevationOverlayEnabled">true</item>
        <item name="elevationOverlayColor">?attr/colorPrimary</item>
        <item name="colorPrimary">@*android:color/primary_dark_device_default_settings</item>
        <item name="colorAccent">@*android:color/accent_device_default_dark</item>
    </style>
</resources>
