<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2022 The LeafOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- QS brightness slider -->
    <string-array name="qs_brightness_slider_entries" translatable="false">
        <item>@string/qs_brightness_slider_never</item>
        <item>@string/qs_brightness_slider_expanded</item>
        <item>@string/qs_brightness_slider_always</item>
    </string-array>

    <string-array name="qs_brightness_slider_values" translatable="false">
        <item>0</item>
        <item>1</item>
        <item>2</item>
    </string-array>

    <string-array name="qs_brightness_slider_position_entries" translatable="false">
        <item>@string/qs_brightness_slider_position_top</item>
        <item>@string/qs_brightness_slider_position_bottom</item>
    </string-array>

    <string-array name="qs_brightness_slider_position_values" translatable="false">
        <item>0</item>
        <item>1</item>
    </string-array>

    <!-- Brightness slider styles -->
    <string-array name="brightness_slider_style_entries" translatable="false">
        <item>@string/brightness_slider_style_default</item>
        <item>@string/brightness_slider_style_filled</item>
        <item>@string/brightness_slider_style_thin</item>
    </string-array>

    <string-array name="brightness_slider_style_values">
        <item>0</item>
        <item>1</item>
        <item>2</item>
    </string-array>

    <!-- QS panel style -->
    <string-array name="qs_style_entries">
        <item>@string/qs_style_default</item>
        <item>@string/qs_style_round</item>
    </string-array>

    <string-array name="qs_style_values">
        <item>0</item>
        <item>1</item>
    </string-array>

    <!-- QS tile shape -->
    <string-array name="qs_tile_shape_entries">
        <item>@string/qs_tile_round</item>
        <item>@string/qs_tile_rect</item>
        <item>@string/qs_tile_mix</item>
    </string-array>

    <string-array name="qs_tile_shape_values">
        <item>0</item>
        <item>1</item>
        <item>2</item>
    </string-array>
</resources>
