Merge change I44da0c8f into eclair

* changes:
  Correct the raw offsets in the time zone index for a few zones.
diff --git a/samples/MultiResolution/Android.mk b/samples/MultiResolution/Android.mk
new file mode 100644
index 0000000..4a5a038
--- /dev/null
+++ b/samples/MultiResolution/Android.mk
@@ -0,0 +1,16 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := samples
+
+# Only compile source java files in this apk.
+LOCAL_SRC_FILES := $(call all-java-files-under, src)
+
+LOCAL_PACKAGE_NAME := MultiResolution
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_PACKAGE)
+
+# Use the following include to make our test apk.
+include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/samples/MultiResolution/AndroidManifest.xml b/samples/MultiResolution/AndroidManifest.xml
new file mode 100644
index 0000000..4719069
--- /dev/null
+++ b/samples/MultiResolution/AndroidManifest.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<manifest
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  package="com.example.android.multires"
+  android:versionCode="1"
+  android:versionName="1.0">
+
+  <uses-permission
+    android:name="android.permission.INTERNET"/>
+
+  <application
+    android:icon="@drawable/ic_launcher"
+    android:label="@string/app_name">
+
+    <activity
+      android:name=".MultiRes"
+      android:label="@string/app_name">
+
+      <intent-filter>
+        <action
+          android:name="android.intent.action.MAIN"/>
+        <category
+          android:name="android.intent.category.LAUNCHER"/>
+      </intent-filter>
+
+    </activity>
+
+  </application>
+
+  <uses-sdk
+    android:minSdkVersion="3"
+    android:targetSdkVersion="4"/>
+
+</manifest>
diff --git a/samples/MultiResolution/_index.html b/samples/MultiResolution/_index.html
new file mode 100644
index 0000000..73089ae
--- /dev/null
+++ b/samples/MultiResolution/_index.html
@@ -0,0 +1,20 @@
+<p>A sample application that shows how to use resource directory qualifiers to
+show different resources to different screen configurations (layout orientation,
+screen resolution, screen density, etc.).
+
+It demonstrates using:
+<ul>
+<li><a href="../../../reference/android/graphics/NinePatch.html">9-Patch</a>
+  drawables for creating scalable/stretchable graphics.</li>
+<li>Proper layout <a href="../../../guide/practices/screens_support.html#density-independence">size units</a>,
+  such as scale-independent pixels (<code>sp</code>) and density-independent pixels (<code>dip</code>)</li>
+<li><a href="../../../guide/practices/screens_support.html#qualifiers">Resource directory qualifiers</a>
+  such as <code>-land</code>, <code>-mdpi</code>, and <code>-hdpi</code> to customize
+  resources such as layouts and graphical assets for different screen configurations</li>
+<li>Resource directory qualifiers such as <code>-v4</code> and <code>-v6</code>
+  to show different application icons based on platform version, for
+  consistency with system icon styles.</li>
+</ul>
+</p>
+
+<img alt="" src="../images/sample_multires.png"/>
diff --git a/samples/MultiResolution/res/drawable-hdpi-v6/ic_launcher.png b/samples/MultiResolution/res/drawable-hdpi-v6/ic_launcher.png
new file mode 100644
index 0000000..4964740
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-hdpi-v6/ic_launcher.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-hdpi/android.png b/samples/MultiResolution/res/drawable-hdpi/android.png
new file mode 100644
index 0000000..6ea86cf
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-hdpi/android.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-hdpi/ic_launcher.png b/samples/MultiResolution/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..122ba8e
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-hdpi/image_container.9.png b/samples/MultiResolution/res/drawable-hdpi/image_container.9.png
new file mode 100644
index 0000000..b0379ef
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-hdpi/image_container.9.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-ldpi-v6/ic_launcher.png b/samples/MultiResolution/res/drawable-ldpi-v6/ic_launcher.png
new file mode 100644
index 0000000..2d12433
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-ldpi-v6/ic_launcher.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-ldpi/android.png b/samples/MultiResolution/res/drawable-ldpi/android.png
new file mode 100644
index 0000000..6cfb3cc
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-ldpi/android.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-ldpi/ic_launcher.png b/samples/MultiResolution/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 0000000..f5ded00
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-ldpi/image_container.9.png b/samples/MultiResolution/res/drawable-ldpi/image_container.9.png
new file mode 100644
index 0000000..406d358
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-ldpi/image_container.9.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-mdpi-v6/ic_launcher.png b/samples/MultiResolution/res/drawable-mdpi-v6/ic_launcher.png
new file mode 100644
index 0000000..3da3d17
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-mdpi-v6/ic_launcher.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-mdpi/android.png b/samples/MultiResolution/res/drawable-mdpi/android.png
new file mode 100644
index 0000000..c570385
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-mdpi/android.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-mdpi/ic_launcher.png b/samples/MultiResolution/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..47e79a7
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable-mdpi/image_container.9.png b/samples/MultiResolution/res/drawable-mdpi/image_container.9.png
new file mode 100644
index 0000000..7dd9895
--- /dev/null
+++ b/samples/MultiResolution/res/drawable-mdpi/image_container.9.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/background.9.png b/samples/MultiResolution/res/drawable/background.9.png
new file mode 100644
index 0000000..561cce8
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/background.9.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/icon.png b/samples/MultiResolution/res/drawable/icon.png
new file mode 100644
index 0000000..7502484
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/icon.png
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/sample_0.jpg b/samples/MultiResolution/res/drawable/sample_0.jpg
new file mode 100644
index 0000000..9dd3bce
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/sample_0.jpg
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/sample_1.jpg b/samples/MultiResolution/res/drawable/sample_1.jpg
new file mode 100644
index 0000000..46d06e0
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/sample_1.jpg
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/sample_2.jpg b/samples/MultiResolution/res/drawable/sample_2.jpg
new file mode 100644
index 0000000..c23dd63
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/sample_2.jpg
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/sample_3.jpg b/samples/MultiResolution/res/drawable/sample_3.jpg
new file mode 100644
index 0000000..0f0d5b5
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/sample_3.jpg
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/sample_4.jpg b/samples/MultiResolution/res/drawable/sample_4.jpg
new file mode 100644
index 0000000..d28ce6f
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/sample_4.jpg
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/sample_5.jpg b/samples/MultiResolution/res/drawable/sample_5.jpg
new file mode 100644
index 0000000..2348c7d
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/sample_5.jpg
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/sample_6.jpg b/samples/MultiResolution/res/drawable/sample_6.jpg
new file mode 100644
index 0000000..a35fc0c
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/sample_6.jpg
Binary files differ
diff --git a/samples/MultiResolution/res/drawable/sample_7.jpg b/samples/MultiResolution/res/drawable/sample_7.jpg
new file mode 100644
index 0000000..96a4879
--- /dev/null
+++ b/samples/MultiResolution/res/drawable/sample_7.jpg
Binary files differ
diff --git a/samples/MultiResolution/res/layout-land/main.xml b/samples/MultiResolution/res/layout-land/main.xml
new file mode 100644
index 0000000..f704425
--- /dev/null
+++ b/samples/MultiResolution/res/layout-land/main.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<LinearLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:layout_width="fill_parent"
+  android:layout_height="fill_parent"
+  android:orientation="horizontal"
+  android:background="@drawable/background">
+
+  <LinearLayout
+    android:layout_weight="1"
+    android:orientation="vertical"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent">
+
+    <!-- Notice that widget sizes are expressed in dip, or device-independent
+         pixels, while text sizes are expressed in sp, or scale-independent
+         pixels, to factor in user-chosen font sizes. -->
+    <FrameLayout
+      android:background="@drawable/image_container"
+      android:layout_width="fill_parent"
+      android:layout_height="fill_parent"
+      android:id="@+id/image_container">
+      <ImageView
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:id="@+id/image_view"
+        android:scaleType="fitCenter"/>
+      <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom|center_horizontal"
+        android:id="@+id/status_text"
+        android:textColor="@android:color/primary_text_dark"
+        android:textSize="16sp"
+        android:shadowDx="1.0"
+        android:shadowDy="1.0"
+        android:shadowRadius="1"
+        android:layout_margin="5dip"
+        android:shadowColor="@android:color/background_dark"/>
+    </FrameLayout>
+  </LinearLayout>
+
+  <LinearLayout
+    android:layout_width="wrap_content"
+    android:layout_height="fill_parent"
+    android:orientation="vertical"
+    android:layout_marginLeft="10dip"
+    android:gravity="top">
+    <Button
+      android:text="@string/next_button"
+      android:id="@+id/next_button"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:drawableLeft="@drawable/android"
+      android:textSize="24sp"/>
+  </LinearLayout>
+
+</LinearLayout>
diff --git a/samples/MultiResolution/res/layout/main.xml b/samples/MultiResolution/res/layout/main.xml
new file mode 100644
index 0000000..4c01e82
--- /dev/null
+++ b/samples/MultiResolution/res/layout/main.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 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.
+-->
+
+<LinearLayout
+  xmlns:android="http://schemas.android.com/apk/res/android"
+  android:layout_width="fill_parent"
+  android:layout_height="fill_parent"
+  android:orientation="vertical"
+  android:background="@drawable/background">
+
+  <LinearLayout
+    android:layout_weight="1"
+    android:layout_width="fill_parent"
+    android:layout_height="fill_parent">
+
+    <!-- Notice that widget sizes are expressed in dip, or device-independent
+         pixels, while text sizes are expressed in sp, or scale-independent
+         pixels, to factor in user-chosen font sizes. -->
+    <FrameLayout
+      android:layout_width="fill_parent"
+      android:layout_height="fill_parent"
+      android:id="@+id/image_container"
+      android:background="@drawable/image_container">
+      <ImageView
+        android:layout_width="fill_parent"
+        android:layout_height="fill_parent"
+        android:id="@+id/image_view"
+        android:scaleType="fitCenter"/>
+      <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_gravity="bottom|center_horizontal"
+        android:id="@+id/status_text"
+        android:textColor="@android:color/primary_text_dark"
+        android:textSize="16sp"
+        android:shadowDx="1.0"
+        android:shadowDy="1.0"
+        android:shadowRadius="1"
+        android:layout_margin="5dip"
+        android:shadowColor="@android:color/background_dark"/>
+    </FrameLayout>
+  </LinearLayout>
+
+  <LinearLayout
+    android:layout_width="fill_parent"
+    android:layout_height="wrap_content"
+    android:layout_marginTop="10dip"
+    android:gravity="center">
+    <Button
+      android:text="@string/next_button"
+      android:id="@+id/next_button"
+      android:layout_width="wrap_content"
+      android:layout_height="wrap_content"
+      android:drawableLeft="@drawable/android"
+      android:textSize="24sp"/>
+  </LinearLayout>
+
+</LinearLayout>
diff --git a/samples/MultiResolution/res/values/strings.xml b/samples/MultiResolution/res/values/strings.xml
new file mode 100644
index 0000000..be3a410
--- /dev/null
+++ b/samples/MultiResolution/res/values/strings.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="app_name">MultiRes</string>
+    <string name="next_button">Next</string>
+</resources>
diff --git a/samples/MultiResolution/src/com/example/android/multires/MultiRes.java b/samples/MultiResolution/src/com/example/android/multires/MultiRes.java
new file mode 100644
index 0000000..a89f960
--- /dev/null
+++ b/samples/MultiResolution/src/com/example/android/multires/MultiRes.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2009 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.
+ */
+
+package com.example.android.multires;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+public final class MultiRes extends Activity {
+
+    private int mCurrentPhotoIndex = 0;
+    private int[] mPhotoIds = new int[] { R.drawable.sample_0,
+            R.drawable.sample_1, R.drawable.sample_2, R.drawable.sample_3,
+            R.drawable.sample_4, R.drawable.sample_5, R.drawable.sample_6,
+            R.drawable.sample_7 };
+
+    /** Called when the activity is first created. */
+    @Override
+    public void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        setContentView(R.layout.main);
+
+        showPhoto(mCurrentPhotoIndex);
+
+        // Handle clicks on the 'Next' button.
+        Button nextButton = (Button) findViewById(R.id.next_button);
+        nextButton.setOnClickListener(new View.OnClickListener() {
+            public void onClick(View v) {
+                mCurrentPhotoIndex = (mCurrentPhotoIndex + 1)
+                        % mPhotoIds.length;
+                showPhoto(mCurrentPhotoIndex);
+            }
+        });
+    }
+
+    @Override
+    protected void onSaveInstanceState(Bundle outState) {
+        outState.putInt("photo_index", mCurrentPhotoIndex);
+        super.onSaveInstanceState(outState);
+    }
+
+    @Override
+    protected void onRestoreInstanceState(Bundle savedInstanceState) {
+        mCurrentPhotoIndex = savedInstanceState.getInt("photo_index");
+        showPhoto(mCurrentPhotoIndex);
+        super.onRestoreInstanceState(savedInstanceState);
+    }
+
+    private void showPhoto(int photoIndex) {
+        ImageView imageView = (ImageView) findViewById(R.id.image_view);
+        imageView.setImageResource(mPhotoIds[photoIndex]);
+
+        TextView statusText = (TextView) findViewById(R.id.status_text);
+        statusText.setText(String.format("%d/%d", photoIndex + 1,
+                mPhotoIds.length));
+    }
+}
diff --git a/samples/NotePad/AndroidManifest.xml b/samples/NotePad/AndroidManifest.xml
index 5c56daf..04f4dbe 100644
--- a/samples/NotePad/AndroidManifest.xml
+++ b/samples/NotePad/AndroidManifest.xml
@@ -4,9 +4,9 @@
      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.
@@ -47,7 +47,7 @@
                 <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
             </intent-filter>
         </activity>
-        
+
         <activity android:name="NoteEditor"
             android:theme="@android:style/Theme.Light"
             android:label="@string/title_note"
@@ -73,10 +73,11 @@
             </intent-filter>
 
         </activity>
-        
-		<activity android:name="TitleEditor" android:label="@string/title_edit_title"
-				android:theme="@android:style/Theme.Dialog"
-                android:windowSoftInputMode="stateVisible">
+
+        <activity android:name="TitleEditor"
+            android:label="@string/title_edit_title"
+            android:theme="@android:style/Theme.Dialog"
+            android:windowSoftInputMode="stateVisible">
             <!-- This activity implements an alternative action that can be
                  performed on notes: editing their title.  It can be used as
                  a default operation if the user invokes this action, and is
@@ -98,7 +99,17 @@
                 <data android:mimeType="vnd.android.cursor.item/vnd.google.note" />
             </intent-filter>
         </activity>
-        
+
+        <activity android:name="NotesLiveFolder" android:label="@string/live_folder_name"
+            android:icon="@drawable/live_folder_notes">
+            <intent-filter>
+                <action android:name="android.intent.action.CREATE_LIVE_FOLDER" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
+
     </application>
+
+    <uses-sdk android:targetSdkVersion="4" android:minSdkVersion="3"/>
 </manifest>
 
diff --git a/samples/NotePad/_index.html b/samples/NotePad/_index.html
index 093022b..8f680ef 100644
--- a/samples/NotePad/_index.html
+++ b/samples/NotePad/_index.html
@@ -5,6 +5,7 @@
 <li>Accessing a database</li>
 <li>Using an intent to open a new window</li>
 <li>Managing activity lifecycle</li>
+<li>Creating <a href="../../../reference/android/provider/LiveFolders.html">Live Folders</a></li>
 <li>And more...</li>
 </ul>
 
diff --git a/samples/NotePad/res/drawable-hdpi-v6/app_notes.png b/samples/NotePad/res/drawable-hdpi-v6/app_notes.png
new file mode 100644
index 0000000..3491823
--- /dev/null
+++ b/samples/NotePad/res/drawable-hdpi-v6/app_notes.png
Binary files differ
diff --git a/samples/NotePad/res/drawable-hdpi-v6/live_folder_notes.png b/samples/NotePad/res/drawable-hdpi-v6/live_folder_notes.png
new file mode 100644
index 0000000..c6d26f5
--- /dev/null
+++ b/samples/NotePad/res/drawable-hdpi-v6/live_folder_notes.png
Binary files differ
diff --git a/samples/NotePad/res/drawable-ldpi-v6/app_notes.png b/samples/NotePad/res/drawable-ldpi-v6/app_notes.png
new file mode 100644
index 0000000..8432ce6
--- /dev/null
+++ b/samples/NotePad/res/drawable-ldpi-v6/app_notes.png
Binary files differ
diff --git a/samples/NotePad/res/drawable-ldpi-v6/live_folder_notes.png b/samples/NotePad/res/drawable-ldpi-v6/live_folder_notes.png
new file mode 100644
index 0000000..d547cbf
--- /dev/null
+++ b/samples/NotePad/res/drawable-ldpi-v6/live_folder_notes.png
Binary files differ
diff --git a/samples/NotePad/res/drawable-mdpi-v6/app_notes.png b/samples/NotePad/res/drawable-mdpi-v6/app_notes.png
new file mode 100644
index 0000000..81d1c22
--- /dev/null
+++ b/samples/NotePad/res/drawable-mdpi-v6/app_notes.png
Binary files differ
diff --git a/samples/NotePad/res/drawable-mdpi-v6/live_folder_notes.png b/samples/NotePad/res/drawable-mdpi-v6/live_folder_notes.png
new file mode 100644
index 0000000..c565cd0
--- /dev/null
+++ b/samples/NotePad/res/drawable-mdpi-v6/live_folder_notes.png
Binary files differ
diff --git a/samples/NotePad/res/drawable-mdpi/live_folder_notes.png b/samples/NotePad/res/drawable-mdpi/live_folder_notes.png
new file mode 100644
index 0000000..ac54a49
--- /dev/null
+++ b/samples/NotePad/res/drawable-mdpi/live_folder_notes.png
Binary files differ
diff --git a/samples/NotePad/res/values/strings.xml b/samples/NotePad/res/values/strings.xml
index b4bf671..168db92 100644
--- a/samples/NotePad/res/values/strings.xml
+++ b/samples/NotePad/res/values/strings.xml
@@ -30,6 +30,7 @@
 	<string name="title_edit_title">Note title:</string>  
 	
 	<string name="app_name">Note Pad</string>  
+	<string name="live_folder_name">Notes</string>
 	
 	<string name="button_ok">OK</string>  
 	
diff --git a/samples/NotePad/src/com/example/android/notepad/NotePadProvider.java b/samples/NotePad/src/com/example/android/notepad/NotePadProvider.java
index f1d3fdc..58cdc8f 100644
--- a/samples/NotePad/src/com/example/android/notepad/NotePadProvider.java
+++ b/samples/NotePad/src/com/example/android/notepad/NotePadProvider.java
@@ -30,6 +30,7 @@
 import android.database.sqlite.SQLiteOpenHelper;
 import android.database.sqlite.SQLiteQueryBuilder;
 import android.net.Uri;
+import android.provider.LiveFolders;
 import android.text.TextUtils;
 import android.util.Log;
 
@@ -48,9 +49,11 @@
     private static final String NOTES_TABLE_NAME = "notes";
 
     private static HashMap<String, String> sNotesProjectionMap;
+    private static HashMap<String, String> sLiveFolderProjectionMap;
 
     private static final int NOTES = 1;
     private static final int NOTE_ID = 2;
+    private static final int LIVE_FOLDER_NOTES = 3;
 
     private static final UriMatcher sUriMatcher;
 
@@ -95,19 +98,22 @@
     public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
             String sortOrder) {
         SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
+        qb.setTables(NOTES_TABLE_NAME);
 
         switch (sUriMatcher.match(uri)) {
         case NOTES:
-            qb.setTables(NOTES_TABLE_NAME);
             qb.setProjectionMap(sNotesProjectionMap);
             break;
 
         case NOTE_ID:
-            qb.setTables(NOTES_TABLE_NAME);
             qb.setProjectionMap(sNotesProjectionMap);
             qb.appendWhere(Notes._ID + "=" + uri.getPathSegments().get(1));
             break;
 
+        case LIVE_FOLDER_NOTES:
+            qb.setProjectionMap(sLiveFolderProjectionMap);
+            break;
+
         default:
             throw new IllegalArgumentException("Unknown URI " + uri);
         }
@@ -133,6 +139,7 @@
     public String getType(Uri uri) {
         switch (sUriMatcher.match(uri)) {
         case NOTES:
+        case LIVE_FOLDER_NOTES:
             return Notes.CONTENT_TYPE;
 
         case NOTE_ID:
@@ -238,6 +245,7 @@
         sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
         sUriMatcher.addURI(NotePad.AUTHORITY, "notes", NOTES);
         sUriMatcher.addURI(NotePad.AUTHORITY, "notes/#", NOTE_ID);
+        sUriMatcher.addURI(NotePad.AUTHORITY, "live_folders/notes", LIVE_FOLDER_NOTES);
 
         sNotesProjectionMap = new HashMap<String, String>();
         sNotesProjectionMap.put(Notes._ID, Notes._ID);
@@ -245,5 +253,13 @@
         sNotesProjectionMap.put(Notes.NOTE, Notes.NOTE);
         sNotesProjectionMap.put(Notes.CREATED_DATE, Notes.CREATED_DATE);
         sNotesProjectionMap.put(Notes.MODIFIED_DATE, Notes.MODIFIED_DATE);
+
+        // Support for Live Folders.
+        sLiveFolderProjectionMap = new HashMap<String, String>();
+        sLiveFolderProjectionMap.put(LiveFolders._ID, Notes._ID + " AS " +
+                LiveFolders._ID);
+        sLiveFolderProjectionMap.put(LiveFolders.NAME, Notes.TITLE + " AS " +
+                LiveFolders.NAME);
+        // Add more columns here for more robust Live Folders.
     }
 }
diff --git a/samples/NotePad/src/com/example/android/notepad/NotesLiveFolder.java b/samples/NotePad/src/com/example/android/notepad/NotesLiveFolder.java
new file mode 100644
index 0000000..00eb314
--- /dev/null
+++ b/samples/NotePad/src/com/example/android/notepad/NotesLiveFolder.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2009 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.
+ */
+
+package com.example.android.notepad;
+
+import android.app.Activity;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.Bundle;
+import android.provider.LiveFolders;
+
+public class NotesLiveFolder extends Activity {
+    /**
+     * The URI for the Notes Live Folder content provider.
+     */
+    public static final Uri CONTENT_URI = Uri.parse("content://"
+            + NotePad.AUTHORITY + "/live_folders/notes");
+
+    public static final Uri NOTE_URI = Uri.parse("content://"
+            + NotePad.AUTHORITY + "/notes/#");
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+
+        final Intent intent = getIntent();
+        final String action = intent.getAction();
+
+        if (LiveFolders.ACTION_CREATE_LIVE_FOLDER.equals(action)) {
+            // Build the live folder intent.
+            final Intent liveFolderIntent = new Intent();
+
+            liveFolderIntent.setData(CONTENT_URI);
+            liveFolderIntent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME,
+                    getString(R.string.live_folder_name));
+            liveFolderIntent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON,
+                    Intent.ShortcutIconResource.fromContext(this,
+                            R.drawable.live_folder_notes));
+            liveFolderIntent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE,
+                    LiveFolders.DISPLAY_MODE_LIST);
+            liveFolderIntent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_BASE_INTENT,
+                    new Intent(Intent.ACTION_EDIT, NOTE_URI));
+
+            // The result of this activity should be a live folder intent.
+            setResult(RESULT_OK, liveFolderIntent);
+        } else {
+            setResult(RESULT_CANCELED);
+        }
+
+        finish();
+    }
+}