<?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.
-->
<sample>
    <name>WidgetData</name>
    <group>Content</group>
    <package>com.example.android.widgetdata</package>

    <!-- change minSdk if needed-->
    <minSdk>11</minSdk>

    <strings>
        <intro>
            <![CDATA[
            This sample demonstrates how to create a list-based widget specifically backed by a
            content provider.\n\n
This sample uses a collection view (a ListView) to present some mock weather data in a widget.
In particular, we will be using a content provider to demonstrate how the widget can retrieve data
and update itself when you are using more complex data sources.
When working with external data, or data which must be fetched over high latency, it is important
to keep the data cached in a persistent location so that the widget feels responsive.
            ]]>
        </intro>
    </strings>

    <template src="base" />
    <template src="FragmentView" />
    <common src="activities"/>
    <common src="logger" />

    <metadata>
    <status>PUBLISHED</status>
    <categories>Content</categories>
    <technologies>Android</technologies>
    <languages>Java</languages>
    <solutions>Mobile</solutions>
    <level>INTERMEDIATE</level>
    <icon>screenshots/icon-web.png</icon>
    <screenshots>
        <img>screenshots/1-widget.png</img>
    </screenshots>
    <api_refs>
        <android>android.widget.RemoteViews</android>
        <android>android.widget.RemoteViewsService</android>
        <android>android.database.ContentObserver</android>
        <android>android.content.ContentResolver</android>
    </api_refs>
    <description>
<![CDATA[
This sample demonstrates how to create a list-based widget specifically backed 
by a content provider.
]]>
    </description>
    <intro>
<![CDATA[
This sample uses a collection view (a ListView) to present some mock weather data in a widget.
In particular, we will be using a content provider to demonstrate how the widget can retrieve data
and update itself when you are using more complex data sources.
When working with external data, or data which must be fetched over high latency, it is important
to keep the data cached in a persistent location so that the widget feels responsive.

We define a [ContentProvider][1] that handles queries from a [RemoteView][2] [ListView][3] widget.
A [ContentObserver][4] notifies the widget when data changes in the ContentProvider.
Data for the widget is provided by a [RemoteViewsService][5] that populates a RemoteView collection (the ListView).

[1]: http://developer.android.com/reference/android/content/ContentProvider.html
[2]: http://developer.android.com/reference/android/widget/RemoteViews.RemoteView.html
[3]: http://developer.android.com/reference/android/widget/ListView.html
[4]: http://developer.android.com/reference/android/database/ContentObserver.html
[5]: http://developer.android.com/reference/android/widget/RemoteViewsService.html
]]>
    </intro>
</metadata>
</sample>
