<?xml version="1.0" encoding="UTF-8"?>
<!--  Copyright (C) 2016 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:android="http://schemas.android.com/apk/res/android"
    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">

    <!-- According to the new Canadian WPAS requirement, the same bilingual
         (English and French) banner should be used for all kinds of emergency
         messages and those messages should not be translated to the language
         set by the user -->
    <string name="etws_earthquake_warning" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="etws_tsunami_warning" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="etws_earthquake_and_tsunami_warning" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="etws_test_message" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="etws_other_emergency_type" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="cmas_presidential_level_alert" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="cmas_extreme_alert" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="cmas_severe_alert" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="cmas_amber_alert" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="cmas_required_monthly_test" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="cmas_exercise_alert" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>
    <string name="cmas_operator_defined_alert" translatable="false">EMERGENCY ALERT / ALERTE D’URGENCE</string>

    <!-- Do not translate. Values that are active in the ListPreference.
         These must be a subset of the alert_reminder_interval_values list above. -->
    <string-array name="alert_reminder_interval_active_values">
      <item>1</item>
      <item>2</item>
      <item>5</item>
      <item>0</item>
    </string-array>

    <!-- Do not translate. Default value that in the ListPreference.
         These must be a subset of the alert_reminder_interval_values list above. -->
    <string name="alert_reminder_interval_default_value">2</string>

    <!-- Do not translate. Values that for the vibration pattern. -->
    <integer-array name="default_vibration_pattern">
        <item>0</item>      <!-- the number of milliseconds to wait before turning the vibrator on -->
        <item>500</item>    <!-- the number of milliseconds for which to keep the vibrator on before turning it off -->
        <item>500</item>    <!-- Subsequent values alternate between durations in milliseconds to turn the vibrator off or to turn the vibrator on -->
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
        <item>500</item>
     </integer-array>
</resources>
