<?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">
    <!-- About device -->
    <string name="build_date">Build date</string>
    <string name="leaf_version">LeafOS version</string>
    <string name="leaf_vendor_security_patch">Vendor security patch level</string>

    <!-- Back gesture height -->
    <string name="back_height_low_label">Full</string>
    <string name="back_height_high_label">Bottom</string>
    <string name="back_options_dialog_title">Options</string>
    <string name="back_height_message">Amount of screen height used as touchable region for back gesture.</string>

    <!-- Three-fingers-swipe to screenshot -->
    <string name="three_finger_gesture">Swipe to screenshot</string>
    <string name="three_finger_gesture_summary">Swipe down with three fingers to take a screenshot</string>

   <!-- Hide power menu on lockscreen -->
    <string name="hide_powermenu_lockscreen">Hide power menu on lockscreen</string>
</resources>
