<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2011 Google Inc.

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

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/action_compose_new"
        android:title="@string/new_message"
        android:icon="@drawable/ic_menu_msg_compose_holo_dark"
        android:showAsAction="always|withText" />

    <item android:id="@+id/search"
          android:title="@string/menu_search"
          android:icon="@drawable/ic_menu_search_holo_dark"
          android:showAsAction="ifRoom|collapseActionView"
          android:actionViewClass="android.widget.SearchView" />

    <item android:id="@+id/action_settings"
        android:title="@string/menu_preferences"
        android:icon="@android:drawable/ic_menu_preferences" />

    <item android:id="@+id/action_delete_all"
        android:title="@string/menu_delete_all"
        android:icon="@drawable/ic_menu_trash_holo_dark" />

    <item android:id="@+id/action_cell_broadcasts"
        android:title="@string/menu_cell_broadcasts" />

    <item android:id="@+id/action_debug_dump"
        android:title="@string/menu_debug_dump" />
</menu>
