<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2012 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-array name="allIntents">
        <!-- List modes -->
        <!-- Various ways to start Contacts -->
        <item>DIAL</item>
        <item>DIAL phone (deprecated)</item>
        <item>DIAL person (deprecated)</item>
        <item>DIAL voicemail</item>
        <item>CALL BUTTON</item>
        <item>DIAL tel</item>
        <item>VIEW tel</item>
        <item>VIEW calls (call-log after a phone call)</item>
        <item>VIEW calls item</item>
        <item>CallDetailActivity (legacy)</item>
        <item>CallLogActivity (legacy)</item>
    </string-array>

    <string name="addToCallLogButton">Add</string>
    <string name="useRandomNumbers">Use random numbers</string>
    <string name="numberOfCallLogEntries">Number of call log entries to add:</string>
    <string name="addedLogEntriesToast">Added %1$d call log entries.</string>
    <string name="noLogEntriesToast">No entries in the call log yet.  Need at least one record for the template.  Or use random numbers.</string>

</resources>
