<?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>HTML Text clip</item>
        <item>Intent clip</item>
        <item>Uri clip</item>
        <item>Coerce to text</item>
        <item>Coerce to styled text</item>
        <item>Coerce to HTML text</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>
        <item>USER_LANDSCAPE</item>
        <item>USER_PORTRAIT</item>
        <item>FULL_USER</item>
        <item>LOCKED</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>
