<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 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.
-->

<!-- Array resources for the Phone app. -->
<resources>
    <string-array translatable="false" name="transport_types">
        <item>UDP</item>
        <item>TCP</item>
    </string-array>

    <string-array translatable="true" name="sip_call_options_entries">
        <item>@string/sip_call_options_entry_1</item>
        <item>@string/sip_call_options_entry_2</item>
    </string-array>

    <string-array translatable="true" name="sip_call_options_wifi_only_entries">
        <item>@string/sip_call_options_wifi_only_entry_1</item>
        <item>@string/sip_call_options_entry_2</item>
    </string-array>

    <string-array translatable="false" name="sip_call_options_values">
        <item>@string/sip_always</item>
        <item>@string/sip_address_only</item>
    </string-array>

    <string-array translatable="true" name="sip_send_keepalive_options">
        <item>@string/sip_system_decide</item>
        <item>@string/sip_always_send_keepalive</item>
    </string-array>

</resources>
