<?xml version="1.0" encoding="utf-8"?>
<!--
    Copyright (C) 2015 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <!-- String to match as no subject and filter out as a subject. For example, if the
         subject string is "no subject", we won't display that. We'll pretend
         no subject string was delivered. -->
    <string-array name="empty_subject_strings">
        <item>no subject</item>
        <item>nosubject</item>
    </string-array>

    <!-- Choices for quick-reply to message notification. Users with an Android
    Wear device (e.g. smartwatch) can reply to messages either by speaking their
    response, or choosing one of these predefined options. -->
    <string-array name="notification_reply_choices">
        <item>Yes</item>
        <item>No</item>
        <item>OK</item>
        <item>Hehe</item>
        <item>Thanks</item>
        <item>I agree</item>
        <item>Nice</item>
        <item>On my way</item>
        <item>OK, let me get back to you later</item>
        <item>:)</item>
        <item>:(</item>
    </string-array>
</resources>
