<?xml version="1.0" encoding="utf-8"?>
<!--
  * Copyright (C) 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="expanded">I\'m the expanded notification.\nCollapse me!</string>
    <string name="collapsed">I\'m the collapsed notification.\nCreated at: %s</string>
    <string name="show_notification">Show Notification</string>
    <string name="custom_notification">I\'m a custom notification.</string>

    <string name="intro_text">This sample demonstrates how a notification is created using the
        <b>NotificationCompatBuilder</b>
        with a custom content view. The layout of the notification is defined as a
        layout resource and inflated as a <b>RemoteViews</b> object.
        \n\nOn API level 16 and above, a different layout is inflated and set as
        the <i>big content view</i>, which is used when the notification is expanded.
        \n\n<b>Use the button below to create the notification.
        \n\nIf your device is running Jelly Bean or above, try expanding or collapsing
        the notification to see the different layouts.</b>
    </string>
    <string name="collapsed_image">A single Android robot waving. Symbolises a collapsed
        notification.
    </string>
    <string name="expanded_image">Two Androids on top of each other. Symbolises an expanded
        notification.
    </string>

</resources>
