<?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.
-->

<resources>

    <!-- AccessibilityEndToEndTest -->

    <!-- String title of the accessibility end-to-end test activity -->
    <string name="accessibility_end_to_end_test_activity">End-to-end test</string>

    <!-- String title of the accessibility test activity -->
    <string name="accessibility_test_activity">Test</string>

    <!-- String value of used as text input -->
    <string name="text_input_blah">Blah</string>

    <!-- String value of used as text input -->
    <string name="text_input_blah_blah">Blah blah</string>

    <!-- String title of the button -->
    <string name="button_title">Click</string>

    <string name="button_tooltip">Never press this button</string>

    <!-- String descriptions and title of the views used to test accessibilityDataSensitive -->
    <string name="container_desc">Outer container View</string>
    <string name="ads_desc">AccessibilityDataSensitive View</string>
    <string name="inner_container_desc">Inner container View</string>
    <string name="inner_desc">Inner Button</string>
    <string name="inner_title">Inner Click</string>

    <!-- String value of the first list item -->
    <string name="first_list_item">First list item</string>

    <!-- String value of the second list item -->
    <string name="second_list_item">Second list item</string>

    <!-- String alert title -->
    <string name="alert_title">Alert title</string>

    <!-- String alert message -->
    <string name="alert_message">Alert message</string>

    <!-- String notification message -->
    <string name="notification_message">Notification message</string>

    <!-- AccessibilityWindowQueryTest -->

    <!-- String title of the accessibility query window test activity -->
    <string name="accessibility_query_window_test_activity">Query window test</string>

    <!-- String Button1 text -->
    <string name="button1">Btn1</string>

    <!-- String Button2 text -->
    <string name="button2">Btn2</string>

    <!-- String Button3 text -->
    <string name="button3">Btn3</string>

    <!-- String Button4 text -->
    <string name="button4">Btn4</string>

    <!-- String Button5 text -->
    <string name="button5">Btn5</string>

    <!-- String Button6 text -->
    <string name="button6">Btn6</string>

    <!-- String with content description for Button6 -->
    <string name="contentDescription">contentDescription</string>

    <!-- String Button7 text -->
    <string name="button7">Btn7</string>

    <!-- String Button8 text -->
    <string name="button8">Btn8</string>

    <!-- String Button9 text -->
    <string name="button9">Btn9</string>

    <!-- AccessibilityFocusTest -->

    <!-- String title of the accessibility hierarchical focus test activity -->
    <string name="accessibility_view_tree_reporting_test_activity">Accessibility view three reporting test</string>

    <!-- String root LinearLayout text -->
    <string name="rootLinearLayout">rLL</string>

    <!-- String first FrameLayout text -->
    <string name="firstFrameLayout">fFL</string>

    <!-- String first LinearLayout text -->
    <string name="firstLinearLayout">fLL</string>

    <!-- String first TextView text -->
    <string name="firstTextView">fTV</string>

    <!-- String first EditText text -->
    <string name="firstEditText">fET</string>

    <!-- String first Button text -->
    <string name="firstButton">fB</string>

    <!-- String second FrameLayout text -->
    <string name="secondFrameLayout">sFL</string>

    <!-- String second LinearLayout text -->
    <string name="secondLinearLayout">sLL</string>

    <!-- String second TextView text -->
    <string name="secondTextView">sTV</string>

    <!-- String second EditText text -->
    <string name="secondEditText">sET</string>

    <!-- String second Button text -->
    <string name="secondButton">sB</string>

    <string name="paneTitle">Pane Title</string>

    <!-- String title of the accessibility focus and input focus sync test activity -->
    <string name="accessibility_focus_and_input_focus_sync_test_activity">Accessibility focus and input focus sync test</string>

    <!-- String title of the accessibility text traversal test activity. -->
    <string name="accessibility_text_traversal_test_activity">Accessibility text traversal test</string>

    <string name="android_wiki_short">
        Android is a\nLinux-based\noperating</string>

    <string name="android_wiki">Android is a Linux-based operating system for mobile devices such as smartphones and tablet computers. It is developed by the Open Handset Alliance, and here is some text padding</string>

    <string name="a_b">A B</string>

    <string name="testContentDescription">testContentDescription</string>

    <string name="german_text_with_strong_s">ß</string>

    <string name="android_wiki_search">Android is a Linux-based</string>

    <string name="foo_bar_baz">Foo bar baz.</string>

    <string name="stub_system_actions_a11y_service_description">com.android.accessibilityservice.cts.StubSystemActionsAccessibilityService</string>

    <string name="stub_gesture_dispatch_a11y_service_description">com.android.accessibilityservice.cts.StubGestureAccessibilityService</string>

    <string name="stub_gesture_detector_a11y_service_description">com.android.accessibilityservice.cts.GestureDetectionStubAccessibilityService</string>

    <string name="stub_touch_exploration_a11y_service_description">com.android.accessibilityservice.cts.TouchExplorationStubAccessibilityService</string>

    <string name="stub_fprint_a11y_service_description">com.android.accessibilityservice.cts.StubFingerprintGestureAccessibilityService</string>

    <string name="stub_accessibility_button_service_description">com.android.accessibilityservice.cts.StubAccessibilityButtonService</string>

    <string name="stub_take_screenshot_service_description">com.android.accessibilityservice.cts.StubTakeScreenshotService</string>

    <string name="stub_motion_intercepting_accessibility_service_description">com.android.accessibilityservice.cts.StubMotionInterceptingAccessibilityService</string>

    <string name="stub_proxy_concurrent_service_description">com.android.accessibilityservice.cts.StubProxyConcurrentAccessibilityService</string>

    <string name="android_wiki_paragraphs">
        \n\nAndroid is a\n\n It is developed\n The
        unveiling\n\n</string>

    <string name="full_screen_text_view">Full Screen Text View</string>
    <!-- Soft Keyboard Modes tests -->

    <!-- String title for the accessibility service -->
    <string name="accessibility_soft_keyboard_modes_activity">
        Soft Keyboard Modes Activity</string>

    <string name="title_soft_keyboard_modes_accessibility_service">
        Stub Soft Keyboard Modes Accessibility Service</string>

    <!-- Description of the accessibility service -->
    <string name="soft_keyboard_modes_accessibility_service_description">This Accessibility Service was installed for testing purposes. It can be uninstalled by going to Settings > Apps > android.view.accessibilityservice.services and selecting \"Uninstall\".</string>

    <!-- AccessibilityTextActionTest -->

    <!-- String the default label of AccessibilityAction ACTION_IME_ENTER -->
    <string name="accessibility_action_ime_enter_label">Enter</string>

    <!-- AccessibilityEmbeddedHierarchyTest -->

    <!-- String title of accessibility embedded hierarchy test activity -->
    <string name="accessibility_embedded_hierarchy_test_activity">Accessibility embedded hierarchy test</string>

    <string name="stub_focus_indicator_service_description">com.android.accessibilityservice.cts.StubFocusIndicatorService</string>

    <string name="stub_simple_ime_accessibility_service_description">com.android.accessibilityservice.cts.StubSimpleImeAccessibilityService</string>

    <string name="stub_ime_accessibility_service_description">com.android.accessibilityservice.cts.StubImeAccessibilityService</string>

    <string name="stub_non_ime_accessibility_service_description">com.android.accessibilityservice.cts.StubNonImeAccessibilityService</string>

    <!-- AccessibilityWindowQueryTest and AccessibilityReportingTest -->

    <!-- String title of embedded display activity -->
    <string name="non_default_display_activity">Non default display activity</string>

    <!-- String title of virtual display activity used for proxy tests-->
    <string name="proxy_display_activity">Proxy display activity</string>

    <!-- String title of a11y service activity used for proxy tests-->
    <string name="non_proxy_activity">Proxy concurrent activity</string>

    <!-- String title of the accessibility drag & drop activity -->
    <string name="accessibility_drag_and_drop_test_activity">Drag and drop</string>
    <string name="drag_and_drop_text">Dragged text</string>

    <!-- String label of the input method -->
    <string name="ime_name">InputMethod</string>

    <string name="accessibility_cache_activity">Cache activity</string>
</resources>
