<?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 xmlns:tools="http://schemas.android.com/tools" tools:targetApi="27">

    <!-- Main themes -->
    <style name="WallpaperTheme" parent="@android:style/Theme.DeviceDefault.Settings">
        <item name="colorPrimary">?android:colorPrimary</item>
        <item name="colorControlActivated">?attr/colorPrimary</item>
        <item name="colorControlNormal">?android:attr/colorPrimary</item>

        <item name="android:navigationBarColor">@android:color/transparent</item>
        <item name="android:navigationBarDividerColor">@android:color/transparent</item>
        <item name="android:windowLightNavigationBar">true</item>

        <item name="actionBarSize">?android:attr/actionBarSize</item>
        <item name="homeAsUpIndicator">@drawable/material_ic_arrow_back_black_24</item>

        <item name="selectableItemBackground">?android:attr/selectableItemBackground</item>
        <item name="dialogPreferredPadding">24dp</item>
        <item name="colorControlHighlight">@color/ripple_material_dark</item>
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
        <item name="toolbarNavigationButtonStyle">@style/Widget.AppCompat.Toolbar.Button.Navigation</item>

        <item name="android:windowActionBar">false</item>
        <item name="android:windowNoTitle">true</item>
    </style>

    <!-- Dialog themes -->
    <style name="LightDialogTheme" parent="@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar">
        <item name="android:layout">@layout/abc_alert_dialog_material</item>
        <item name="windowActionBar">false</item>
    </style>
</resources>
