<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright 2013 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>

    <string name="description">
        Tap the button below to send a notification.\n\nThe notification\'s icon will immediately
        appear in the notification bar. Drag the notification bar open to see the full
        notification. Depending on which version of Android you\'re running, the full
        notification will display an icon and two or three lines of text.
        \n\nTap the notification to execute the notification\'s \"action,\" which is an intent
        that we associate with the notification when it\'s created. This sample notification\'s
        action is to send a browse intent with the url of the Notification docs on
        developer.android.com.
        \n\nThis sample uses the NotificationCompat API for maximum compatibility with versions
        of Android from Froyo (Android 2.2) to the present. Try it on devices or AVDs that are
        running different versions of Android. You\'ll see that while the presentation varies
        slightly, the basic functionality is the same. NotificationCompat automatically takes
        advantage of the expanded notification format in newer versions of Android, and
        falls back gracefully to a reduced set of functionality on earlier versions.
    </string>

</resources>
