<?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>

    <!-- Values for the charging control modes -->
    <string-array name="charging_control_mode_entries" translatable="false">
        <item>@string/charging_control_mode_auto_title</item>
        <item>@string/charging_control_mode_custom_title</item>
    </string-array>

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

    <!-- Values for the additional charging control modes if fine-grained control is supported -->
    <string-array name="charging_control_mode_entries_fine_grained_control" translatable="false">
        <item>@string/charging_control_mode_limit_title</item>
    </string-array>

    <string-array name="charging_control_mode_values_fine_grained_control" translatable="false">
        <item>3</item>
    </string-array>

    <!-- App lock timeout -->
    <string-array name="app_lock_timeout_entries">
        <item>@string/app_lock_timeout_5sec</item>
        <item>@string/app_lock_timeout_10sec</item>
        <item>@string/app_lock_timeout_30sec</item>
        <item>@string/app_lock_timeout_1min</item>
        <item>@string/app_lock_timeout_5min</item>
        <item>@string/app_lock_timeout_10min</item>
        <item>@string/app_lock_timeout_30min</item>
    </string-array>

    <string-array name="app_lock_timeout_values" translatable="false">
        <item>5000</item>
        <item>10000</item>
        <item>30000</item>
        <item>60000</item>
        <item>300000</item>
        <item>600000</item>
        <item>1800000</item>
    </string-array>
</resources>
