<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2007 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>
    <!-- Used in View/Spinner1.java -->
    <string-array name="colors">
        <item>red</item>
        <item>orange</item>
        <item>yellow</item>
        <item>green</item>
        <item>blue</item>
        <item>violet</item>
    </string-array>
    
    <!-- Used in View/Spinner1.java -->
    <string-array name="planets">
        <item>Mercury</item>
        <item>Venus</item>
        <item>Earth</item>
        <item>Mars</item>
        <item>Jupiter</item>
        <item>Saturn</item>
        <item>Uranus</item>
        <item>Neptune</item>
        <item>Pluto</item>
    </string-array>

    <!-- Used in content/ClipboardSample.java -->
    <string-array name="clip_data_types">
        <item>No data in clipboard</item>
        <item>Text clip</item>
        <item>Intent clip</item>
        <item>Uri clip</item>
    </string-array>

    <!-- Used in App/SearchInvoke.java -->
    <string-array name="search_menuModes">
        <item>Search Key</item>
        <item>Menu Item</item>
        <item>Type-To-Search</item>
        <item>Disabled</item>
    </string-array>
    
    <!-- Used in app/dialog examples -->
    <string-array name="select_dialog_items">
        <item>Command one</item>
        <item>Command two</item>
        <item>Command three</item>
        <item>Command four</item>
    </string-array>
    
    <string-array name="select_dialog_items2">
        <item>Map</item>
        <item>Satellite</item>
        <item>Traffic</item>
        <item>Street view</item>
    </string-array>
    
    <string-array name="select_dialog_items3">
        <item>Every Monday</item>
        <item>Every Tuesday</item>
        <item>Every Wednesday</item>
        <item>Every Thursday</item>
        <item>Every Friday</item>
        <item>Every Saturday</item>
        <item>Every Sunday</item>
    </string-array>
    
    <!-- Used in app/menu examples -->
    <string-array name="entries_list_preference">
        <item>Alpha Option 01</item>
        <item>Beta Option 02</item>
        <item>Charlie Option 03</item>  
    </string-array>

    <!-- Used in app/menu examples -->
    <string-array name="entryvalues_list_preference">
        <item>alpha</item>
        <item>beta</item>
        <item>charlie</item>  
    </string-array>
    
    <!-- Used in app/Sample Device Admin -->
    <string-array name="password_qualities">
        <item>Unspecified</item>
        <item>Something</item>
        <item>Numeric</item>
        <item>Alphabetic</item>
        <item>Alphanumeric</item>
        <item>Complex</item>
    </string-array>

    <!-- Used in app/Screen Orientation -->
    <string-array name="screen_orientations">
        <item>UNSPECIFIED</item>
        <item>LANDSCAPE</item>
        <item>PORTRAIT</item>
        <item>USER</item>
        <item>BEHIND</item>
        <item>SENSOR</item>
        <item>NOSENSOR</item>
        <item>SENSOR_LANDSCAPE</item>
        <item>SENSOR_PORTRAIT</item>
        <item>REVERSE_LANDSCAPE</item>
        <item>REVERSE_PORTRAIT</item>
        <item>FULL_SENSOR</item>
    </string-array>

    <!-- Used in view/Secure View examples -->
    <string-array name="secure_view_clicked">
        <item>*bzzt*\nTransferred $1,000,000 to J. Phisher.  Thank you!</item>
        <item>*bzzt*\nSending all life savings to the International Cabal of Evil Penguins.</item>
        <item>*bzzt*\nOpening portal to R\'lyeh.  Long live Cthulhu!</item>
        <item>*bzzt*\nYou\'re not very good at this, are you?</item>
        <item>*bzzt*\nGo away...</item>
    </string-array>

    <!-- Used in view/Split Touch View example -->
    <string-array name="cheese_responses">
        <item>I\'m afraid we\'re fresh out.</item>
        <item>I\'m afraid we never have that at the end of the week, sir.  We get it fresh on Monday.</item>
        <item>Ah. It\'s been on order, sir, for two weeks.  I was expecting it this morning.</item>
        <item>Normally, sir, yes.  Today the van broke down.</item>
        <item>No.</item>
        <item>No.</item>
        <item>No.</item>
        <item>Yes, sir.  It\'s, ah ..... it\'s a bit runny.</item>
        <item>Well, it\'s very runny, actually, sir.</item>
        <item>I think it\'s a bit runnier than you\'ll like it, sir.</item>
        <item>Oh... The cat\'s eaten it.</item>
        <item>No.</item>
        <item>No.</item>
        <item>No.</item>
        <item>Mmm... cheese.</item>
    </string-array>
</resources>
