Merge change I0a17a960 into eclair

* changes:
  sdk doc change for esr: Add api diff report 5->6. Update previous diff reports to fix false positives.
diff --git a/Android.mk b/Android.mk
index 5034c7e..a33ef38 100644
--- a/Android.mk
+++ b/Android.mk
@@ -439,6 +439,7 @@
 
 LOCAL_DROIDDOC_OPTIONS:=\
 		$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
+                $(web_docs_sample_code_flags) \
 		-title "Android SDK" \
 		-proofread $(OUT_DOCS)/$(LOCAL_MODULE)-proofread.txt \
 		-todo $(OUT_DOCS)/$(LOCAL_MODULE)-docs-todo.html \
diff --git a/api/current.xml b/api/current.xml
index 81cb646..065176b 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -1934,6 +1934,17 @@
  visibility="public"
 >
 </field>
+<field name="author"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="16843444"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="authorities"
  type="int"
  transient="false"
@@ -1971,7 +1982,7 @@
  type="int"
  transient="false"
  volatile="false"
- value="16843446"
+ value="16843445"
  static="true"
  final="true"
  deprecated="not deprecated"
@@ -8853,17 +8864,6 @@
  visibility="public"
 >
 </field>
-<field name="wallpaperAuthor"
- type="int"
- transient="false"
- volatile="false"
- value="16843444"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="wallpaperCloseEnterAnimation"
  type="int"
  transient="false"
@@ -8886,17 +8886,6 @@
  visibility="public"
 >
 </field>
-<field name="wallpaperDescription"
- type="int"
- transient="false"
- volatile="false"
- value="16843445"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="wallpaperIntraCloseEnterAnimation"
  type="int"
  transient="false"
@@ -15069,71 +15058,6 @@
 >
 </method>
 </interface>
-<class name="AccountManagerResponse"
- extends="java.lang.Object"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<implements name="android.os.Parcelable">
-</implements>
-<method name="describeContents"
- return="int"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</method>
-<method name="onError"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="errorCode" type="int">
-</parameter>
-<parameter name="errorMessage" type="java.lang.String">
-</parameter>
-</method>
-<method name="onResult"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="result" type="android.os.Bundle">
-</parameter>
-</method>
-<method name="writeToParcel"
- return="void"
- abstract="false"
- native="false"
- synchronized="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<parameter name="dest" type="android.os.Parcel">
-</parameter>
-<parameter name="flags" type="int">
-</parameter>
-</method>
-</class>
 <class name="AccountsException"
  extends="java.lang.Exception"
  abstract="false"
@@ -25166,6 +25090,28 @@
  visibility="public"
 >
 </field>
+<field name="COMMAND_DROP"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.home.drop&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="COMMAND_TAP"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.wallpaper.tap&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 </class>
 </package>
 <package name="android.appwidget"
@@ -42046,6 +41992,116 @@
  visibility="public"
 >
 </field>
+<field name="FEATURE_CAMERA"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.hardware.camera&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="FEATURE_CAMERA_AUTOFOCUS"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.hardware.camera.autofocus&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="FEATURE_CAMERA_FLASH"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.hardware.camera.flash&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="FEATURE_LIVE_WALLPAPER"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.software.live_wallpaper&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="FEATURE_SENSOR_LIGHT"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.hardware.sensor.light&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="FEATURE_SENSOR_PROXIMITY"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.hardware.sensor.proximity&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="FEATURE_TELEPHONY"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.hardware.telephony&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="FEATURE_TELEPHONY_CDMA"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.hardware.telephony.cdma&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="FEATURE_TELEPHONY_GSM"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.hardware.telephony.gsm&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="FEATURE_TOUCHSCREEN_MULTITOUCH"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.hardware.touchscreen.multitouch&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="GET_ACTIVITIES"
  type="int"
  transient="false"
@@ -99872,6 +99928,17 @@
  visibility="public"
 >
 </field>
+<field name="ECLAIR_MR1"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="7"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 </class>
 <class name="Bundle"
  extends="java.lang.Object"
@@ -123817,34 +123884,6 @@
 </parameter>
 </method>
 </class>
-<class name="WallpaperSettingsActivity"
- extends="android.preference.PreferenceActivity"
- abstract="false"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-<constructor name="WallpaperSettingsActivity"
- type="android.service.wallpaper.WallpaperSettingsActivity"
- static="false"
- final="false"
- deprecated="not deprecated"
- visibility="public"
->
-</constructor>
-<field name="EXTRA_PREVIEW_MODE"
- type="java.lang.String"
- transient="false"
- volatile="false"
- value="&quot;android.service.wallpaper.PREVIEW_MODE&quot;"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
-</class>
 </package>
 <package name="android.speech"
 >
diff --git a/cmds/dumpstate/dumpstate.c b/cmds/dumpstate/dumpstate.c
index d77d702..3a23b49 100644
--- a/cmds/dumpstate/dumpstate.c
+++ b/cmds/dumpstate/dumpstate.c
@@ -84,6 +84,8 @@
         EXEC("dmesg");
         PRINT("------ KERNEL WAKELOCKS ------");
         DUMP("/proc/wakelocks");
+        PRINT("------ KERNEL CPUFREQ ------");
+        DUMP("/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state");
         PRINT("");
         PRINT("------ PROCESSES ------");
         EXEC1("ps", "-P");
diff --git a/cmds/svc/src/com/android/commands/svc/PowerCommand.java b/cmds/svc/src/com/android/commands/svc/PowerCommand.java
index e021012..d3ec3d9 100644
--- a/cmds/svc/src/com/android/commands/svc/PowerCommand.java
+++ b/cmds/svc/src/com/android/commands/svc/PowerCommand.java
@@ -66,7 +66,7 @@
                         IBinder lock = new Binder();
                         pm.acquireWakeLock(PowerManager.FULL_WAKE_LOCK, lock, "svc power");
                         pm.setStayOnSetting(val);
-                        pm.releaseWakeLock(lock);
+                        pm.releaseWakeLock(lock, 0);
                     }
                     catch (RemoteException e) {
                         System.err.println("Faild to set setting: " + e);
diff --git a/core/java/android/accounts/AccountManagerResponse.java b/core/java/android/accounts/AccountManagerResponse.java
index 1cd6a74..11c6e60 100644
--- a/core/java/android/accounts/AccountManagerResponse.java
+++ b/core/java/android/accounts/AccountManagerResponse.java
@@ -22,7 +22,8 @@
 import android.os.RemoteException;
 
 /**
- * Used by Account Authenticators to return a response.
+ * Used to return a response to the AccountManager.
+ * @hide
  */
 public class AccountManagerResponse implements Parcelable {
     private IAccountManagerResponse mResponse;
diff --git a/core/java/android/app/WallpaperInfo.java b/core/java/android/app/WallpaperInfo.java
index 34d3133..1034fab 100644
--- a/core/java/android/app/WallpaperInfo.java
+++ b/core/java/android/app/WallpaperInfo.java
@@ -101,10 +101,10 @@
                     com.android.internal.R.styleable.Wallpaper_thumbnail,
                     -1);
             authorRes = sa.getResourceId(
-                    com.android.internal.R.styleable.Wallpaper_wallpaperAuthor,
+                    com.android.internal.R.styleable.Wallpaper_author,
                     -1);
             descriptionRes = sa.getResourceId(
-                    com.android.internal.R.styleable.Wallpaper_wallpaperDescription,
+                    com.android.internal.R.styleable.Wallpaper_description,
                     -1);
 
             sa.recycle();
diff --git a/core/java/android/app/WallpaperManager.java b/core/java/android/app/WallpaperManager.java
index f606346..e455a59 100644
--- a/core/java/android/app/WallpaperManager.java
+++ b/core/java/android/app/WallpaperManager.java
@@ -63,6 +63,21 @@
     public static final String ACTION_LIVE_WALLPAPER_CHOOSER
             = "android.service.wallpaper.LIVE_WALLPAPER_CHOOSER";
     
+    /**
+     * Command for {@link #sendWallpaperCommand}: reported by the wallpaper
+     * host when the user taps on an empty area (not performing an action
+     * in the host).  The x and y arguments are the location of the tap in
+     * screen coordinates.
+     */
+    public static final String COMMAND_TAP = "android.wallpaper.tap";
+    
+    /**
+     * Command for {@link #sendWallpaperCommand}: reported by the wallpaper
+     * host when the user drops an object into an area of the host.  The x
+     * and y arguments are the location of the drop.
+     */
+    public static final String COMMAND_DROP = "android.home.drop";
+    
     private final Context mContext;
     
     /**
@@ -604,7 +619,7 @@
     /**
      * For applications that use multiple virtual screens showing a wallpaper,
      * specify the step size between virtual screens. For example, if the
-     * launcher has 5 virtual screens, it would specify an xStep of 0.5,
+     * launcher has 3 virtual screens, it would specify an xStep of 0.5,
      * since the X offset for those screens are 0.0, 0.5 and 1.0
      * @param xStep The X offset delta from one screen to the next one 
      * @param yStep The Y offset delta from one screen to the next one
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index bd5b07c..bf561ef 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -130,13 +130,13 @@
 
     /**
      * Activity Action: Show a system activity that requests discoverable mode.
-     * <p>This activity will also request the user to turn on Bluetooth if it
+     * This activity will also request the user to turn on Bluetooth if it
      * is not currently enabled.
      * <p>Discoverable mode is equivalent to {@link
      * #SCAN_MODE_CONNECTABLE_DISCOVERABLE}. It allows remote devices to see
      * this Bluetooth adapter when they perform a discovery.
-     * <p>For privacy, Android is not by default discoverable.
-     * <p>The sender can optionally use extra field {@link
+     * <p>For privacy, Android is not discoverable by default.
+     * <p>The sender of this Intent can optionally use extra field {@link
      * #EXTRA_DISCOVERABLE_DURATION} to request the duration of
      * discoverability. Currently the default duration is 120 seconds, and
      * maximum duration is capped at 300 seconds for each request.
@@ -147,7 +147,8 @@
      * {@link android.app.Activity#RESULT_CANCELED} if the user rejected
      * discoverability or an error has occurred.
      * <p>Applications can also listen for {@link #ACTION_SCAN_MODE_CHANGED}
-     * for global notification whenever the scan mode changes.
+     * for global notification whenever the scan mode changes. For example, an
+     * application can be notified when the device has ended discoverability.
      * <p>Requires {@link android.Manifest.permission#BLUETOOTH}
      */
     @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
@@ -549,7 +550,10 @@
      * remote Bluetooth devices should not be attempted while discovery is in
      * progress, and existing connections will experience limited bandwidth
      * and high latency. Use {@link #cancelDiscovery()} to cancel an ongoing
-     * discovery.
+     * discovery. Discovery is not managed by the Activity,
+     * but is run as a system service, so an application should always call
+     * {@link BluetoothAdapter#cancelDiscovery()} even if it
+     * did not directly request a discovery, just to be sure.
      * <p>Device discovery will only find remote devices that are currently
      * <i>discoverable</i> (inquiry scan enabled). Many Bluetooth devices are
      * not discoverable by default, and need to be entered into a special mode.
@@ -567,6 +571,13 @@
     /**
      * Cancel the current device discovery process.
      * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
+     * <p>Because discovery is a heavyweight precedure for the Bluetooth
+     * adapter, this method should always be called before attempting to connect
+     * to a remote device with {@link
+     * android.bluetooth.BluetoothSocket#connect()}. Discovery is not managed by
+     * the  Activity, but is run as a system service, so an application should
+     * always call cancel discovery even if it did not directly request a
+     * discovery, just to be sure.
      *
      * @return true on success, false on error
      */
diff --git a/core/java/android/bluetooth/BluetoothServerSocket.java b/core/java/android/bluetooth/BluetoothServerSocket.java
index 1b23f6c..c9c6c0a 100644
--- a/core/java/android/bluetooth/BluetoothServerSocket.java
+++ b/core/java/android/bluetooth/BluetoothServerSocket.java
@@ -42,7 +42,11 @@
  * BluetoothAdapter.listenUsingRfcommWithServiceRecord()}. Then call
  * {@link #accept()} to listen for incoming connection requests. This call
  * will block until a connection is established, at which point, it will return
- * a {@link BluetoothSocket} to manage the connection.
+ * a {@link BluetoothSocket} to manage the connection. Once the {@link
+ * BluetoothSocket} is acquired, it's a good idea to call {@link #close()} on
+ * the {@link BluetoothServerSocket} when it's no longer needed for accepting
+ * connections. Closing the {@link BluetoothServerSocket} will <em>not</em>
+ * close the returned {@link BluetoothSocket}.
  *
  * <p>{@link BluetoothServerSocket} is thread
  * safe. In particular, {@link #close} will always immediately abort ongoing
@@ -105,6 +109,8 @@
      * Immediately close this socket, and release all associated resources.
      * <p>Causes blocked calls on this socket in other threads to immediately
      * throw an IOException.
+     * <p>Closing the {@link BluetoothServerSocket} will <em>not</em>
+     * close any {@link BluetoothSocket} received from {@link #accept()}.
      */
     public void close() throws IOException {
         synchronized (this) {
diff --git a/core/java/android/bluetooth/BluetoothSocket.java b/core/java/android/bluetooth/BluetoothSocket.java
index dbcc758..ad03399 100644
--- a/core/java/android/bluetooth/BluetoothSocket.java
+++ b/core/java/android/bluetooth/BluetoothSocket.java
@@ -180,6 +180,15 @@
      * <p>This method will block until a connection is made or the connection
      * fails. If this method returns without an exception then this socket
      * is now connected.
+     * <p>Creating new connections to
+     * remote Bluetooth devices should not be attempted while device discovery
+     * is in progress. Device discovery is a heavyweight procedure on the
+     * Bluetooth adapter and will significantly slow a device connection.
+     * Use {@link BluetoothAdapter#cancelDiscovery()} to cancel an ongoing
+     * discovery. Discovery is not managed by the Activity,
+     * but is run as a system service, so an application should always call
+     * {@link BluetoothAdapter#cancelDiscovery()} even if it
+     * did not directly request a discovery, just to be sure.
      * <p>{@link #close} can be used to abort this call from another thread.
      * @throws IOException on error, for example connection failure
      */
diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java
index cd48dcb..e2030be 100644
--- a/core/java/android/content/pm/PackageManager.java
+++ b/core/java/android/content/pm/PackageManager.java
@@ -514,6 +514,68 @@
     public static final int DONT_DELETE_DATA = 0x00000001;
 
     /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device has a camera facing away
+     * from the screen.
+     */
+    public static final String FEATURE_CAMERA = "android.hardware.camera";
+    
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device's camera supports auto-focus.
+     */
+    public static final String FEATURE_CAMERA_AUTOFOCUS = "android.hardware.camera.autofocus";
+    
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device's camera supports flash.
+     */
+    public static final String FEATURE_CAMERA_FLASH = "android.hardware.camera.flash";
+    
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device includes a light sensor.
+     */
+    public static final String FEATURE_SENSOR_LIGHT = "android.hardware.sensor.light";
+    
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device includes a proximity sensor.
+     */
+    public static final String FEATURE_SENSOR_PROXIMITY = "android.hardware.sensor.proximity";
+    
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device has a telephony radio with data
+     * communication support.
+     */
+    public static final String FEATURE_TELEPHONY = "android.hardware.telephony";
+    
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device has a CDMA telephony stack.
+     */
+    public static final String FEATURE_TELEPHONY_CDMA = "android.hardware.telephony.cdma";
+    
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device has a GSM telephony stack.
+     */
+    public static final String FEATURE_TELEPHONY_GSM = "android.hardware.telephony.gsm";
+    
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device's touch screen supports multitouch.
+     */
+    public static final String FEATURE_TOUCHSCREEN_MULTITOUCH = "android.hardware.touchscreen.multitouch";
+    
+    /**
+     * Feature for {@link #getSystemAvailableFeatures} and
+     * {@link #hasSystemFeature}: The device supports live wallpapers.
+     */
+    public static final String FEATURE_LIVE_WALLPAPER = "android.software.live_wallpaper";
+    
+    /**
      * Retrieve overall information about an application package that is
      * installed on the system.
      *
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index ee18e88..e9353d8 100644
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -161,6 +161,11 @@
          * December 2009: Android 2.0.1
          */
         public static final int ECLAIR_0_1 = 6;
+        
+        /**
+         * January 2010: Android 2.1
+         */
+        public static final int ECLAIR_MR1 = 7;
     }
     
     /** The type of build, like "user" or "eng". */
diff --git a/core/java/android/os/IPowerManager.aidl b/core/java/android/os/IPowerManager.aidl
index bcf769d..b9dc860 100644
--- a/core/java/android/os/IPowerManager.aidl
+++ b/core/java/android/os/IPowerManager.aidl
@@ -22,7 +22,7 @@
 {
     void acquireWakeLock(int flags, IBinder lock, String tag);
     void goToSleep(long time);
-    void releaseWakeLock(IBinder lock);
+    void releaseWakeLock(IBinder lock, int flags);
     void userActivity(long when, boolean noChangeLights);
     void userActivityWithForce(long when, boolean noChangeLights, boolean force);
     void setPokeLock(int pokey, IBinder lock, String tag);
diff --git a/core/java/android/os/PowerManager.java b/core/java/android/os/PowerManager.java
index 2efc230..4b3b6f6 100644
--- a/core/java/android/os/PowerManager.java
+++ b/core/java/android/os/PowerManager.java
@@ -159,6 +159,15 @@
     public static final int PROXIMITY_SCREEN_OFF_WAKE_LOCK = WAKE_BIT_PROXIMITY_SCREEN_OFF;
 
     /**
+     * Flag for {@link WakeLock#release release(int)} to defer releasing a
+     * {@link #WAKE_BIT_PROXIMITY_SCREEN_OFF} wakelock until the proximity sensor returns
+     * a negative value.
+     *
+     * {@hide}
+     */
+    public static final int WAIT_FOR_PROXIMITY_NEGATIVE = 1;
+
+    /**
      * Normally wake locks don't actually wake the device, they just cause
      * it to remain on once it's already on.  Think of the video player
      * app as the normal behavior.  Notifications that pop up and want
@@ -267,10 +276,26 @@
          */
         public void release()
         {
+            release(0);
+        }
+
+        /**
+         * Release your claim to the CPU or screen being on.
+         * @param flags Combination of flag values to modify the release behavior.
+         *              Currently only {@link #WAIT_FOR_PROXIMITY_NEGATIVE} is supported.
+         *
+         * <p>
+         * It may turn off shortly after you release it, or it may not if there
+         * are other wake locks held.
+         *
+         * {@hide}
+         */
+        public void release(int flags)
+        {
             synchronized (mToken) {
                 if (!mRefCounted || --mCount == 0) {
                     try {
-                        mService.releaseWakeLock(mToken);
+                        mService.releaseWakeLock(mToken, flags);
                     } catch (RemoteException e) {
                     }
                     mHeld = false;
@@ -302,7 +327,7 @@
             synchronized (mToken) {
                 if (mHeld) {
                     try {
-                        mService.releaseWakeLock(mToken);
+                        mService.releaseWakeLock(mToken, 0);
                     } catch (RemoteException e) {
                     }
                     RuntimeInit.crash(TAG, new Exception(
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java
index b29d837..ccb8f1c 100644
--- a/core/java/android/service/wallpaper/WallpaperService.java
+++ b/core/java/android/service/wallpaper/WallpaperService.java
@@ -46,7 +46,12 @@
 
 /**
  * A wallpaper service is responsible for showing a live wallpaper behind
- * applications that would like to sit on top of it.
+ * applications that would like to sit on top of it.  This service object
+ * itself does very little -- its only purpose is to generate instances of
+ * {@link Engine} as needed.  Implementing a wallpaper thus
+ * involves subclassing from this, subclassing an Engine implementation,
+ * and implementing {@link #onCreateEngine()} to return a new instance of
+ * your engine.
  */
 public abstract class WallpaperService extends Service {
     /**
@@ -861,5 +866,11 @@
         mCallbackLooper = looper;
     }
     
+    /**
+     * Must be implemented to return a new instance of the wallpaper's engine.
+     * Note that multiple instances may be active at the same time, such as
+     * when the wallpaper is currently set as the active wallpaper and the user
+     * is in the wallpaper picker viewing a preview of it as well.
+     */
     public abstract Engine onCreateEngine();
 }
diff --git a/core/java/android/service/wallpaper/WallpaperSettingsActivity.java b/core/java/android/service/wallpaper/WallpaperSettingsActivity.java
index 501947da..aca336f 100644
--- a/core/java/android/service/wallpaper/WallpaperSettingsActivity.java
+++ b/core/java/android/service/wallpaper/WallpaperSettingsActivity.java
@@ -24,6 +24,7 @@
  * Base class for activities that will be used to configure the settings of
  * a wallpaper.  You should derive from this class to allow it to select the
  * proper theme of the activity depending on how it is being used.
+ * @hide
  */
 public class WallpaperSettingsActivity extends PreferenceActivity {
     /**
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 9d1b2c8..68661ae 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -3482,11 +3482,11 @@
         <!-- Reference to a the wallpaper's thumbnail bitmap. -->
         <attr name="thumbnail" format="reference" />
 
-        <!-- Name of the author of a wallpaper, e.g. Google. -->
-        <attr name="wallpaperAuthor" format="reference" />
+        <!-- Name of the author of this component, e.g. Google. -->
+        <attr name="author" format="reference" />
 
-        <!-- Short description of the wallpaper's purpose or behavior. -->
-        <attr name="wallpaperDescription" format="reference" />
+        <!-- Short description of the component's purpose or behavior. -->
+        <attr name="description" />
     </declare-styleable>
 
     <!-- =============================== -->
diff --git a/core/res/res/values/attrs_manifest.xml b/core/res/res/values/attrs_manifest.xml
index 4a3da11..62529f1 100644
--- a/core/res/res/values/attrs_manifest.xml
+++ b/core/res/res/values/attrs_manifest.xml
@@ -528,11 +528,7 @@
         <flag name="fontScale" value="0x40000000" />
     </attr>
     
-    <!-- A longer descriptive text about a particular application or
-         permission that can be granted.  This must be a reference 
-         to a string resource; unlike
-    	 the {@link android.R.attr#label} attribute, this can not be a
-    	 raw string. -->
+    <!-- Descriptive text for the associated data. -->
     <attr name="description" format="reference" />
     
     <!-- The name of the application package that an Instrumentation object
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 4ede620..311930a 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -933,7 +933,7 @@
   <public type="attr" name="marqueeRepeatLimit" id="0x0101021d" />
 
 <!-- ===============================================================
-     Resources added in version 3 of the platform.
+     Resources added in version 3 of the platform (Cupcake).
      =============================================================== -->
   <eat-comment />
 
@@ -1087,7 +1087,7 @@
   <public type="integer" name="config_longAnimTime" id="0x010e0002" />
 
 <!-- ===============================================================
-     Resources added in Donut.
+     Resources added in version 4 of the platform (Donut).
      =============================================================== -->
   <eat-comment />
 
@@ -1142,67 +1142,77 @@
   <public type="anim" name="linear_interpolator" id="0x010a000b" />
 
 <!-- ===============================================================
-     Resources added in Eclair.
+     Resources added in version 5 of the platform (Eclair).
      =============================================================== -->
   <eat-comment />
 
   <public type="attr" name="required" id="0x0101028e" />
-  <public type="attr" name="accountType" />
-  <public type="attr" name="contentAuthority" />
-  <public type="attr" name="userVisible" />
-  <public type="attr" name="windowShowWallpaper" />
-  <public type="attr" name="wallpaperOpenEnterAnimation" />
-  <public type="attr" name="wallpaperOpenExitAnimation" />
-  <public type="attr" name="wallpaperCloseEnterAnimation" />
-  <public type="attr" name="wallpaperCloseExitAnimation" />
-  <public type="attr" name="wallpaperIntraOpenEnterAnimation" />
-  <public type="attr" name="wallpaperIntraOpenExitAnimation" />
-  <public type="attr" name="wallpaperIntraCloseEnterAnimation" />
-  <public type="attr" name="wallpaperIntraCloseExitAnimation" />
-  <public type="attr" name="supportsUploading" />
-  <public type="attr" name="killAfterRestore" />
-  <public type="attr" name="restoreNeedsApplication" />
-  <public type="attr" name="smallIcon" />
-  <public type="attr" name="accountPreferences" />
-  <public type="attr" name="textAppearanceSearchResultSubtitle" />
-  <public type="attr" name="textAppearanceSearchResultTitle" />
-  <public type="attr" name="summaryColumn" />
-  <public type="attr" name="detailColumn" />
-  <public type="attr" name="detailSocialSummary" />
-  <public type="attr" name="thumbnail" />
-  <public type="attr" name="detachWallpaper" />
-  <public type="attr" name="finishOnCloseSystemDialogs" />
-  <public type="attr" name="scrollbarFadeDuration" />
-  <public type="attr" name="scrollbarDefaultDelayBeforeFade" />
-  <public type="attr" name="fadeScrollbars" />
-  <public type="attr" name="colorBackgroundCacheHint" />
-  <public type="attr" name="dropDownHorizontalOffset" />
-  <public type="attr" name="dropDownVerticalOffset" />
+  <public type="attr" name="accountType" id="0x0101028f" />
+  <public type="attr" name="contentAuthority" id="0x01010290" />
+  <public type="attr" name="userVisible" id="0x01010291" />
+  <public type="attr" name="windowShowWallpaper" id="0x01010292" />
+  <public type="attr" name="wallpaperOpenEnterAnimation" id="0x01010293" />
+  <public type="attr" name="wallpaperOpenExitAnimation" id="0x01010294" />
+  <public type="attr" name="wallpaperCloseEnterAnimation" id="0x01010295" />
+  <public type="attr" name="wallpaperCloseExitAnimation" id="0x01010296" />
+  <public type="attr" name="wallpaperIntraOpenEnterAnimation" id="0x01010297" />
+  <public type="attr" name="wallpaperIntraOpenExitAnimation" id="0x01010298" />
+  <public type="attr" name="wallpaperIntraCloseEnterAnimation" id="0x01010299" />
+  <public type="attr" name="wallpaperIntraCloseExitAnimation" id="0x0101029a" />
+  <public type="attr" name="supportsUploading" id="0x0101029b" />
+  <public type="attr" name="killAfterRestore" id="0x0101029c" />
+  <public type="attr" name="restoreNeedsApplication" id="0x0101029d" />
+  <public type="attr" name="smallIcon" id="0x0101029e" />
+  <public type="attr" name="accountPreferences" id="0x0101029f" />
+  <public type="attr" name="textAppearanceSearchResultSubtitle" id="0x010102a0" />
+  <public type="attr" name="textAppearanceSearchResultTitle" id="0x010102a1" />
+  <public type="attr" name="summaryColumn" id="0x010102a2" />
+  <public type="attr" name="detailColumn" id="0x010102a3" />
+  <public type="attr" name="detailSocialSummary" id="0x010102a4" />
+  <public type="attr" name="thumbnail" id="0x010102a5" />
+  <public type="attr" name="detachWallpaper" id="0x010102a6" />
+  <public type="attr" name="finishOnCloseSystemDialogs" id="0x010102a7" />
+  <public type="attr" name="scrollbarFadeDuration" id="0x010102a8" />
+  <public type="attr" name="scrollbarDefaultDelayBeforeFade" id="0x010102a9" />
+  <public type="attr" name="fadeScrollbars" id="0x010102aa" />
+  <public type="attr" name="colorBackgroundCacheHint" id="0x010102ab" />
+  <public type="attr" name="dropDownHorizontalOffset" id="0x010102ac" />
+  <public type="attr" name="dropDownVerticalOffset" id="0x010102ad" />
   
-  <public type="style" name="Theme.Wallpaper" />
-  <public type="style" name="Theme.Wallpaper.NoTitleBar" />
-  <public type="style" name="Theme.Wallpaper.NoTitleBar.Fullscreen" />
-  <public type="style" name="Theme.WallpaperSettings" />
-  <public type="style" name="Theme.Light.WallpaperSettings" />
-  <public type="style" name="TextAppearance.SearchResult.Title" />
-  <public type="style" name="TextAppearance.SearchResult.Subtitle" />
+  <public type="style" name="Theme.Wallpaper" id="0x0103005e" />
+  <public type="style" name="Theme.Wallpaper.NoTitleBar" id="0x0103005f" />
+  <public type="style" name="Theme.Wallpaper.NoTitleBar.Fullscreen" id="0x01030060" />
+  <public type="style" name="Theme.WallpaperSettings" id="0x01030061" />
+  <public type="style" name="Theme.Light.WallpaperSettings" id="0x01030062" />
+  <public type="style" name="TextAppearance.SearchResult.Title" id="0x01030063" />
+  <public type="style" name="TextAppearance.SearchResult.Subtitle" id="0x01030064" />
   
   <!-- Semi-transparent background that can be used when placing a dark
        themed UI on top of some arbitrary background (such as the
        wallpaper).  This darkens the background sufficiently that the UI
        can be seen. -->
-  <public type="drawable" name="screen_background_dark_transparent" />
-  <public type="drawable" name="screen_background_light_transparent" />
-  <public type="drawable" name="stat_notify_sdcard_prepare" />
+  <public type="drawable" name="screen_background_dark_transparent" id="0x010800a9" />
+  <public type="drawable" name="screen_background_light_transparent" id="0x010800aa" />
+  <public type="drawable" name="stat_notify_sdcard_prepare" id="0x010800ab" />
   
-  <public type="attr" name="quickContactBadgeStyleWindowSmall" />
-  <public type="attr" name="quickContactBadgeStyleWindowMedium" />
-  <public type="attr" name="quickContactBadgeStyleWindowLarge" />
-  <public type="attr" name="quickContactBadgeStyleSmallWindowSmall" />
-  <public type="attr" name="quickContactBadgeStyleSmallWindowMedium" />
-  <public type="attr" name="quickContactBadgeStyleSmallWindowLarge" />
-  <public type="attr" name="wallpaperAuthor" />
-  <public type="attr" name="wallpaperDescription" />
-  <public type="attr" name="autoStart" />
+<!-- ===============================================================
+     Resources added in version 6 of the platform (Eclair 2.0.1).
+     =============================================================== -->
+  <eat-comment />
+
+  <public type="attr" name="quickContactBadgeStyleWindowSmall" id="0x010102ae" />
+  <public type="attr" name="quickContactBadgeStyleWindowMedium" id="0x010102af" />
+  <public type="attr" name="quickContactBadgeStyleWindowLarge" id="0x010102b0" />
+  <public type="attr" name="quickContactBadgeStyleSmallWindowSmall" id="0x010102b1" />
+  <public type="attr" name="quickContactBadgeStyleSmallWindowMedium" id="0x010102b2" />
+  <public type="attr" name="quickContactBadgeStyleSmallWindowLarge" id="0x010102b3" />
+  
+<!-- ===============================================================
+     Resources added in version 7 of the platform (Eclair MR1).
+     =============================================================== -->
+  <eat-comment />
+
+  <public type="attr" name="author" id="0x010102b4" />
+  <public type="attr" name="autoStart" id="0x010102b5" />
   
 </resources>
diff --git a/docs/html/guide/basics/what-is-android.jd b/docs/html/guide/basics/what-is-android.jd
index b75321b..668e62e 100644
--- a/docs/html/guide/basics/what-is-android.jd
+++ b/docs/html/guide/basics/what-is-android.jd
@@ -3,7 +3,7 @@
 
 <p>Android is a software stack for mobile devices that includes an operating
 system, middleware and key applications. The <a
-href="http://code.google.com/android/download.html">Android SDK</a>
+href="http://developer.android.com/sdk/index.html">Android SDK</a>
 provides the tools and APIs necessary to begin developing applications on the
 Android platform using the Java programming language.</p>
 
@@ -48,6 +48,12 @@
 <a name="application_framework" id="application_framework"></a>
 <h2>Application Framework</h2>
 
+<p>By providing an open development platform, Android
+offers developers the ability to build extremely rich and innovative
+applications. Developers are free to take advantage of the
+device hardware, access location information, run background services, set alarms,
+add notifications to the status bar, and much, much more. </p>
+
 <p>Developers have full access to the same framework APIs used by the core
 applications. The application architecture is designed to simplify the reuse
 of components; any application can publish its capabilities and any other
diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs
index 5215202..5fbfd4e 100644
--- a/docs/html/guide/guide_toc.cs
+++ b/docs/html/guide/guide_toc.cs
@@ -9,25 +9,26 @@
 
   <li>
     <h2><span class="en">Android Basics</span>
-        <span class="de">Einführung in Android</span>
-        <span class="es">Información básica sobre Android</span>
-        <span class="fr">Présentation d'Android</span>
-        <span class="it">Nozioni di base su Android</span>
-        <span class="ja">Android の基本</span>
-        <span class="zh-CN">Android 基础知识</span>
-        <span class="zh-TW">Android 簡介</span>
+        <span class="de" style="display:none">Einführung in Android</span>
+        <span class="es" style="display:none">Información básica sobre Android</span>
+        <span class="fr" style="display:none">Présentation d'Android</span>
+        <span class="it" style="display:none">Nozioni di base su Android</span>
+        <span class="ja" style="display:none">Android の基本</span>
+        <span class="zh-CN" style="display:none">Android 基础知识</span>
+        <span class="zh-TW" style="display:none">Android 簡介</span>
     </h2>
     <ul>
       <li><a href="<?cs var:toroot ?>guide/basics/what-is-android.html">
         <span class="en">What Is Android?</span>
-        <span class="de">Was ist Android?</span>
-        <span class="es">¿Qué es Android?</span>
-        <span class="fr">Qu'est-ce qu'Android&nbsp;?</span>
-        <span class="it">Che cos'è Android?</span>
-        <span class="ja">Android とは</span>
-        <span class="zh-CN">Android 是什么?</span>
-        <span class="zh-TW">什麼是 Android?</span>
+        <span class="de" style="display:none">Was ist Android?</span>
+        <span class="es" style="display:none">¿Qué es Android?</span>
+        <span class="fr" style="display:none">Qu'est-ce qu'Android&nbsp;?</span>
+        <span class="it" style="display:none">Che cos'è Android?</span>
+        <span class="ja" style="display:none">Android とは</span>
+        <span class="zh-CN" style="display:none">Android 是什么?</span>
+        <span class="zh-TW" style="display:none">什麼是 Android?</span>
           </a></li>
+
   <!--  <li><a style="color:gray;">The Android SDK</a></li> -->
   <!--  <li><a style="color:gray;">Walkthrough for Developers</a></li> -->
       <!-- quick overview of what it's like to develop on Android -->
@@ -37,13 +38,13 @@
   <li>
     <h2>
       <span class="en">Framework Topics</span>
-      <span class="de">Framework-Themen</span>
-      <span class="es">Temas sobre el framework</span>
-      <span class="fr">Thèmes relatifs au framework</span>
-      <span class="it">Argomenti relativi al framework</span>
-      <span class="ja">フレームワーク トピック</span>
-      <span class="zh-CN">框架主题</span>
-      <span class="zh-TW">架構主題</span>
+      <span class="de" style="display:none">Framework-Themen</span>
+      <span class="es" style="display:none">Temas sobre el framework</span>
+      <span class="fr" style="display:none">Thèmes relatifs au framework</span>
+      <span class="it" style="display:none">Argomenti relativi al framework</span>
+      <span class="ja" style="display:none">フレームワーク トピック</span>
+      <span class="zh-CN" style="display:none">框架主题</span>
+      <span class="zh-TW" style="display:none">架構主題</span>
     </h2>
     <ul>
       <li><a href="<?cs var:toroot ?>guide/topics/fundamentals.html">
@@ -202,13 +203,13 @@
   
   <li>
     <h2><span class="en">Developing</span>
-               <span class="de">Entwicklung</span>
-               <span class="es">Desarrollo</span>
-               <span class="fr">Développement</span>
-               <span class="it">Sviluppo</span>
-               <span class="ja">開発</span>
-               <span class="zh-CN">开发</span>
-               <span class="zh-TW">開發</span>
+               <span class="de" style="display:none">Entwicklung</span>
+               <span class="es" style="display:none">Desarrollo</span>
+               <span class="fr" style="display:none">Développement</span>
+               <span class="it" style="display:none">Sviluppo</span>
+               <span class="ja" style="display:none">開発</span>
+               <span class="zh-CN" style="display:none">开发</span>
+               <span class="zh-TW" style="display:none">開發</span>
     </h2>
     <ul>
   <!--<li><a href="">Developing for Android</a></li>
@@ -270,13 +271,13 @@
   
   <li>
     <h2><span class="en">Publishing</span>
-        <span class="de">Veröffentlichung</span>
-        <span class="es">Publicación</span>
-        <span class="fr">Publication</span>
-        <span class="it">Pubblicazione</span>
-        <span class="ja">公開</span>
-        <span class="zh-CN">发布</span>
-        <span class="zh-TW">發佈</span>
+        <span class="de" style="display:none">Veröffentlichung</span>
+        <span class="es" style="display:none">Publicación</span>
+        <span class="fr" style="display:none">Publication</span>
+        <span class="it" style="display:none">Pubblicazione</span>
+        <span class="ja" style="display:none">公開</span>
+        <span class="zh-CN" style="display:none">发布</span>
+        <span class="zh-TW" style="display:none">發佈</span>
     </h2>
     <ul>
       <li><a href="<?cs var:toroot ?>guide/publishing/app-signing.html">
@@ -317,13 +318,13 @@
   
   <li>
     <h2><span class="en">Best Practices</span>
-               <span class="de">Bewährte Verfahren</span>
-               <span class="es">Prácticas recomendadas</span>
-               <span class="fr">Meilleures pratiques</span>
-               <span class="it">Best practice</span>
-               <span class="ja">ベスト プラクティス</span>
-               <span class="zh-CN">最佳实践</span>
-               <span class="zh-TW">最佳實務</span>
+               <span class="de" style="display:none">Bewährte Verfahren</span>
+               <span class="es" style="display:none">Prácticas recomendadas</span>
+               <span class="fr" style="display:none">Meilleures pratiques</span>
+               <span class="it" style="display:none">Best practice</span>
+               <span class="ja" style="display:none">ベスト プラクティス</span>
+               <span class="zh-CN" style="display:none">最佳实践</span>
+               <span class="zh-TW" style="display:none">最佳實務</span>
     </h2>
     <ul>
       <li><a href="<?cs var:toroot ?>guide/practices/screens_support.html">
@@ -364,13 +365,13 @@
   
   <li>
     <h2><span class="en">Tutorials and Sample Code</span>
-               <span class="de">Lernprogramme und Beispielcode</span>
-               <span class="es">Tutoriales y código de ejemplo</span>
-               <span class="fr">Didacticiels et exemple de code</span>
-               <span class="it">Esercitazioni e codice di esempio</span>
-               <span class="ja">チュートリアルとサンプル コード</span>
-               <span class="zh-CN">辅导手册和示例代码</span>
-               <span class="zh-TW">教學課程與程式碼範例</span>
+               <span class="de" style="display:none">Lernprogramme und Beispielcode</span>
+               <span class="es" style="display:none">Tutoriales y código de ejemplo</span>
+               <span class="fr" style="display:none">Didacticiels et exemple de code</span>
+               <span class="it" style="display:none">Esercitazioni e codice di esempio</span>
+               <span class="ja" style="display:none">チュートリアルとサンプル コード</span>
+               <span class="zh-CN" style="display:none">辅导手册和示例代码</span>
+               <span class="zh-TW" style="display:none">教學課程與程式碼範例</span>
     </h2>
     <ul>
       <li><a href="<?cs var:toroot ?>guide/tutorials/hello-world.html">
@@ -387,11 +388,6 @@
           </a></li>
     </ul>
     <ul>
-    <?cs if:android.whichdoc != "online" ?>
-      <li><a href="<?cs var:toroot ?>../platforms/android-<?cs var:sdk.version ?>/samples">
-            <span class="en">Sample Code</span>
-          &raquo;</a></li>
-    <?cs else ?>
       <li class="toggle-list">
         <div><a href="<?cs var:toroot ?>guide/samples/index.html">
                <span class="en">Sample Code</span>
@@ -423,20 +419,19 @@
               </a></li>
         </ul>
       </li>
-    <?cs /if ?>
     </ul>
   </li>
   
 
   <li>
     <h2><span class="en">Appendix</span>
-               <span class="de">Anhang</span>
-               <span class="es">Apéndice</span>
-               <span class="fr">Annexes</span>
-               <span class="it">Appendice</span>
-               <span class="ja">付録</span>
-               <span class="zh-CN">附录</span>
-               <span class="zh-TW">附錄</span>
+               <span class="de" style="display:none">Anhang</span>
+               <span class="es" style="display:none">Apéndice</span>
+               <span class="fr" style="display:none">Annexes</span>
+               <span class="it" style="display:none">Appendice</span>
+               <span class="ja" style="display:none">付録</span>
+               <span class="zh-CN" style="display:none">附录</span>
+               <span class="zh-TW" style="display:none">附錄</span>
     </h2>
     <ul>
       <li><a href="<?cs var:toroot ?>guide/appendix/api-levels.html">
diff --git a/docs/html/guide/samples/index.jd b/docs/html/guide/samples/index.jd
index 6e79d50..06aa83c 100644
--- a/docs/html/guide/samples/index.jd
+++ b/docs/html/guide/samples/index.jd
@@ -3,28 +3,44 @@
 @jd:body
 
 
-<p>Sometimes, the best way to learn how things are done is to just look at some code. So here
- we've provided links to let you browse the source of some sample Android applications included
-in the Android SDK. </p>
+<p>Sometimes, the best way to learn how things are done is to look at some code.
+Here, you can browse the source of some sample Android applications that are included
+in the Android SDK.</p>
 
-<p>The SDK includes a full set of sample applications for each Android platform version 
-in the SDK. You can find the sample applications for each platform version in this location:</p>
+<p>Each version of the Android platform available for the SDK includes a full set of sample
+applications (which may vary between different versions of the platform).
+You can find the samples in your SDK at:</p>
 
-<p style="margin-left:2em"><code>&lt;sdk&gt;/platforms/android-&lt;version&gt;/samples/</code></p>
+<p style="margin-left:2em">
+<code><em>&lt;sdk&gt;</em>/platforms/android-<em>&lt;version&gt;</em>/samples/</code>
+</p>
 
-<p>You can easily add these applications as projects in your development environment, so that you 
-can modify them and watch them execute. </p>
+<p>You can easily create new Android projects with these samples, modify them
+if you'd like, then run them on an emulator or device. For example, to create
+a project for the API Demos app from Eclipse,
+start a new Android Project, select "Create project from existing source", then select
+{@code ApiDemos} in the {@code samples/} directory. To create the API Demos project
+using the {@code android} tool, execute:</p>
+<pre>
+android update project -s -n API Demos -t <em>&lt;target_ID></em> -p <em>&lt;path-to-platform></em>/samples/ApiDemos/
+</pre>
+
+<p>The pages below provide an overview of each sample application (available with most
+platforms) and allow you to view the source files in your browser. </p>
+
 <dl>
 
  <dt><a href="ApiDemos/index.html">API Demos</a></dt>
-  <dd>A variety of small applications that demonstrate an extensive collection of framework topics.</dd>
+  <dd>A variety of small applications that demonstrate an extensive collection of
+  framework topics.</dd>
   
  <dt><a href="Home/index.html">Home</a></dt>
   <dd>An application for saving notes. Similar (but not identical) to the 
     <a href="{@docRoot}guide/tutorials/notepad/index.html">Notepad tutorial</a>.</dd>
   
  <dt><a href="JetBoy/index.html">JetBoy</a></dt>
-  <dd>JetBoy is a game that demonstrates the SONiVOX JET interactive music technology, with {@link android.media.JetPlayer}.</dd>
+  <dd>JetBoy is a game that demonstrates the SONiVOX JET interactive music technology,
+  with {@link android.media.JetPlayer}.</dd>
     
  <dt><a href="LunarLander/index.html">Lunar Lander</a></dt>
   <dd>A classic Lunar Lander game.</dd>
@@ -44,3 +60,13 @@
   <dd>An example of writing an input method for a software keyboard.</dd>
     
 </dl>
+
+
+<div class="special">
+<p>For more sample applications, check out
+<a href="http://code.google.com/p/apps-for-android/">apps-for-android</a>, a
+collection of open source applications that demonstrate various Android APIs.
+</p>
+</div>
+
+
diff --git a/docs/html/samples/index.jd b/docs/html/samples/index.jd
deleted file mode 100644
index 06afd07..0000000
--- a/docs/html/samples/index.jd
+++ /dev/null
@@ -1,22 +0,0 @@
-page.title=Android SDK
-page.onlyfortemplate=codesite
-@jd:body
-<h1>Sample Code</h1>
-
-<p>The Android SDK ships with several sample projects. They are:</p>
-
-<dl>
-    <dt><a href="{@docRoot}samples/ApiDemos/index.html">API Demos</a></dt>
-    <dd>A demonstration of many of the Android APIs.</dd>
-    
-    <dt><a href="{@docRoot}samples/LunarLander/index.html">Lunar Lander</a></dt>
-    <dd>Your objective: to land on the moon.</dd>
-
-    <dt><a href="{@docRoot}samples/NotePad/index.html">Note Pad</a></dt>
-    <dd>A simple note pad application.</dd>    
-</dl>
-
-<p>To run these samples, you should <a
-href="{@docRoot}guide/developing/eclipse-adt.html#creatingaproject">import them into
-Eclipse</a> or build them with Ant, as described in 
-<a href="{@docRoot}guide/developing/other-ide.html#Building">Developing in Other IDEs</a>.</p>
diff --git a/include/media/stagefright/MediaPlayerImpl.h b/include/media/stagefright/MediaPlayerImpl.h
index 53a2088..7adf836 100644
--- a/include/media/stagefright/MediaPlayerImpl.h
+++ b/include/media/stagefright/MediaPlayerImpl.h
@@ -112,7 +112,9 @@
 
     MediaSource *makeShoutcastSource(const char *path);
 
-    void displayOrDiscardFrame(MediaBuffer *buffer, int64_t pts_us);
+    void displayOrDiscardFrame(
+            MediaBuffer **lastBuffer, MediaBuffer *buffer, int64_t pts_us);
+
     void populateISurface();
     void depopulateISurface();
     void sendFrameToISurface(MediaBuffer *buffer);
diff --git a/libs/rs/rsObjectBase.cpp b/libs/rs/rsObjectBase.cpp
index 05791cb..89c5b00 100644
--- a/libs/rs/rsObjectBase.cpp
+++ b/libs/rs/rsObjectBase.cpp
@@ -182,23 +182,17 @@
 
     if (rsc->props.mLogObjects) {
         LOGV("Objects remaining.");
-        o = rsc->mObjHead;
-        while (o) {
-            o->dumpLOGV("  ");
-            o = o->mNext;
-        }
+        dumpAll(rsc);
     }
 }
 
 void ObjectBase::dumpAll(Context *rsc)
 {
-    if (rsc->props.mLogObjects) {
-        LOGV("Dumping all objects");
-        const ObjectBase * o = rsc->mObjHead;
-        while (o) {
-            o->dumpLOGV("  ");
-            o = o->mNext;
-        }
+    LOGV("Dumping all objects");
+    const ObjectBase * o = rsc->mObjHead;
+    while (o) {
+        o->dumpLOGV("  ");
+        o = o->mNext;
     }
 }
 
diff --git a/libs/surfaceflinger/LayerBlur.cpp b/libs/surfaceflinger/LayerBlur.cpp
index 5d4a38b..5fd7904 100644
--- a/libs/surfaceflinger/LayerBlur.cpp
+++ b/libs/surfaceflinger/LayerBlur.cpp
@@ -169,7 +169,6 @@
             // This reads the frame-buffer, so a h/w GL would have to
             // finish() its rendering first. we don't want to do that
             // too often. Read data is 4-bytes aligned.
-            glFinish();
             glReadPixels(X, Y, w, h, mReadFormat, mReadType, pixels);
 
             // blur that texture.
diff --git a/libs/surfaceflinger/LayerBuffer.cpp b/libs/surfaceflinger/LayerBuffer.cpp
index 28d7c48..88ef7e4 100644
--- a/libs/surfaceflinger/LayerBuffer.cpp
+++ b/libs/surfaceflinger/LayerBuffer.cpp
@@ -118,7 +118,12 @@
     sp<Source> source(getSource());
     if (source != 0)
         source->onTransaction(flags);
-    return LayerBase::doTransaction(flags);    
+    uint32_t res = LayerBase::doTransaction(flags);
+    // we always want filtering for these surfaces
+    if (!(mFlags & DisplayHardware::SLOW_CONFIG)) {
+        mUseLinearFiltering = true;
+    }
+    return res;
 }
 
 void LayerBuffer::unlockPageFlip(const Transform& planeTransform,
diff --git a/media/java/android/media/MediaRecorder.java b/media/java/android/media/MediaRecorder.java
index 4203cba..15e35010 100644
--- a/media/java/android/media/MediaRecorder.java
+++ b/media/java/android/media/MediaRecorder.java
@@ -136,10 +136,12 @@
         /** Voice call uplink + downlink audio source */
         public static final int VOICE_CALL = 4;
 
-        /** Microphone audio source with same orientation as camera */
+        /** Microphone audio source with same orientation as camera if available, the main
+         *  device microphone otherwise */
         public static final int CAMCORDER = 5;
 
-        /** Microphone audio source tuned for voice recognition */
+        /** Microphone audio source tuned for voice recognition if available, behaves like
+         *  {@link #DEFAULT} otherwise. */
         public static final int VOICE_RECOGNITION = 6;
     }
 
diff --git a/media/libstagefright/MediaPlayerImpl.cpp b/media/libstagefright/MediaPlayerImpl.cpp
index 622ea7e..8300422 100644
--- a/media/libstagefright/MediaPlayerImpl.cpp
+++ b/media/libstagefright/MediaPlayerImpl.cpp
@@ -40,6 +40,13 @@
 
 namespace android {
 
+static void releaseBufferIfNonNULL(MediaBuffer **buffer) {
+    if (*buffer) {
+        (*buffer)->release();
+        *buffer = NULL;
+    }
+}
+
 MediaPlayerImpl::MediaPlayerImpl(const char *uri)
     : mInitCheck(NO_INIT),
       mTimeSource(NULL),
@@ -51,7 +58,7 @@
       mPlaying(false),
       mPaused(false),
       mSeeking(false) {
-    LOGI("MediaPlayerImpl(%s)", uri);
+    LOGV("MediaPlayerImpl(%s)", uri);
     DataSource::RegisterDefaultSniffers();
 
     status_t err = mClient.connect();
@@ -103,7 +110,7 @@
       mPlaying(false),
       mPaused(false),
       mSeeking(false) {
-    LOGI("MediaPlayerImpl(%d, %lld, %lld)", fd, offset, length);
+    LOGV("MediaPlayerImpl(%d, %lld, %lld)", fd, offset, length);
     DataSource::RegisterDefaultSniffers();
 
     status_t err = mClient.connect();
@@ -140,7 +147,7 @@
 }
 
 void MediaPlayerImpl::play() {
-    LOGI("play");
+    LOGV("play");
 
     if (mPlaying) {
         if (mPaused) {
@@ -229,6 +236,8 @@
     bool firstFrame = true;
     bool eof = false;
 
+    MediaBuffer *lastBuffer = NULL;
+
     status_t err = mVideoDecoder->start();
     CHECK_EQ(err, OK);
 
@@ -241,7 +250,9 @@
         {
             Mutex::Autolock autoLock(mLock);
             if (mSeeking) {
-                LOGI("seek-options to %lld", mSeekTimeUs);
+                releaseBufferIfNonNULL(&lastBuffer);
+
+                LOGV("seek-options to %lld", mSeekTimeUs);
                 options.setSeekTo(mSeekTimeUs);
 
                 mSeeking = false;
@@ -301,19 +312,21 @@
             firstFrame = false;
         }
 
-        displayOrDiscardFrame(buffer, pts_us);
+        displayOrDiscardFrame(&lastBuffer, buffer, pts_us);
     }
 
+    releaseBufferIfNonNULL(&lastBuffer);
+
     mVideoDecoder->stop();
 }
 
 void MediaPlayerImpl::displayOrDiscardFrame(
+        MediaBuffer **lastBuffer,
         MediaBuffer *buffer, int64_t pts_us) {
     for (;;) {
         if (!mPlaying || mPaused) {
-            buffer->release();
-            buffer = NULL;
-
+            releaseBufferIfNonNULL(lastBuffer);
+            *lastBuffer = buffer;
             return;
         }
 
@@ -332,15 +345,13 @@
         if (delay_us < -15000) {
             // We're late.
 
-            LOGI("we're late by %lld ms, dropping a frame\n",
+            LOGV("we're late by %lld ms, dropping a frame\n",
                  -delay_us / 1000);
 
-            buffer->release();
-            buffer = NULL;
+            releaseBufferIfNonNULL(lastBuffer);
+            *lastBuffer = buffer;
             return;
         } else if (delay_us > 100000) {
-            LOGI("we're much too early (by %lld ms)\n",
-                 delay_us / 1000);
             usleep(100000);
             continue;
         } else if (delay_us > 0) {
@@ -352,13 +363,14 @@
 
     {
         Mutex::Autolock autoLock(mLock);
+
         if (mVideoRenderer.get() != NULL) {
             sendFrameToISurface(buffer);
         }
     }
 
-    buffer->release();
-    buffer = NULL;
+    releaseBufferIfNonNULL(lastBuffer);
+    *lastBuffer = buffer;
 }
 
 void MediaPlayerImpl::init() {
@@ -410,7 +422,7 @@
 }
 
 void MediaPlayerImpl::setAudioSource(const sp<MediaSource> &source) {
-    LOGI("setAudioSource");
+    LOGV("setAudioSource");
     mAudioSource = source;
 
     sp<MetaData> meta = source->getFormat();
@@ -420,7 +432,7 @@
 }
 
 void MediaPlayerImpl::setVideoSource(const sp<MediaSource> &source) {
-    LOGI("setVideoSource");
+    LOGV("setVideoSource");
     mVideoSource = source;
 
     sp<MetaData> meta = source->getFormat();
@@ -441,7 +453,7 @@
 }
 
 void MediaPlayerImpl::setSurface(const sp<Surface> &surface) {
-    LOGI("setSurface %p", surface.get());
+    LOGV("setSurface %p", surface.get());
     Mutex::Autolock autoLock(mLock);
 
     depopulateISurface();
@@ -455,7 +467,7 @@
 }
 
 void MediaPlayerImpl::setISurface(const sp<ISurface> &isurface) {
-    LOGI("setISurface %p", isurface.get());
+    LOGV("setISurface %p", isurface.get());
     Mutex::Autolock autoLock(mLock);
 
     depopulateISurface();
@@ -499,7 +511,7 @@
         host = string(host, 0, colon - host.c_str());
     }
 
-    LOGI("Connecting to host '%s', port %d, path '%s'",
+    LOGV("Connecting to host '%s', port %d, path '%s'",
          host.c_str(), port, path.c_str());
 
     HTTPStream *http = new HTTPStream;
@@ -533,7 +545,7 @@
 
             http->disconnect();
 
-            LOGI("Redirecting to %s\n", location.c_str());
+            LOGV("Redirecting to %s\n", location.c_str());
 
             host = string(location, 0, slashPos);
 
@@ -588,7 +600,7 @@
 }
 
 status_t MediaPlayerImpl::seekTo(int64_t time) {
-    LOGI("seekTo %lld", time);
+    LOGV("seekTo %lld", time);
 
     if (mPaused) {
         return UNKNOWN_ERROR;
@@ -651,7 +663,7 @@
 
 void MediaPlayerImpl::setAudioSink(
         const sp<MediaPlayerBase::AudioSink> &audioSink) {
-    LOGI("setAudioSink %p", audioSink.get());
+    LOGV("setAudioSink %p", audioSink.get());
     mAudioSink = audioSink;
 }
 
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaPlayerStressTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaPlayerStressTest.java
index b476e01..0132ae8 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaPlayerStressTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/stress/MediaPlayerStressTest.java
@@ -86,6 +86,7 @@
 
         } catch (Exception e) {
             Log.v(TAG, e.toString());
+            assertTrue("testStressHWDecoderRelease", false);
         }
     }
 
@@ -139,6 +140,7 @@
 
         } catch (Exception e) {
             Log.v(TAG, e.toString());
+            assertTrue("testStressGetCurrentPosition", false);
         }
     }
 }
diff --git a/opengl/libagl/array.cpp b/opengl/libagl/array.cpp
index 4878722..71825c5 100644
--- a/opengl/libagl/array.cpp
+++ b/opengl/libagl/array.cpp
@@ -1548,24 +1548,36 @@
         GLuint name = buffers[i];
         if (name) {
             // unbind bound deleted buffers...
-            if (c->arrays.element_array_buffer->name == name) {
-                c->arrays.element_array_buffer = 0;
+            if (c->arrays.element_array_buffer) {
+                if (c->arrays.element_array_buffer->name == name) {
+                    c->arrays.element_array_buffer = 0;
+                }
             }
-            if (c->arrays.array_buffer->name == name) {
-                c->arrays.array_buffer = 0;
+            if (c->arrays.array_buffer) {
+                if (c->arrays.array_buffer->name == name) {
+                    c->arrays.array_buffer = 0;
+                }
             }
-            if (c->arrays.vertex.bo->name == name) {
-                c->arrays.vertex.bo = 0;
+            if (c->arrays.vertex.bo) {
+                if (c->arrays.vertex.bo->name == name) {
+                    c->arrays.vertex.bo = 0;
+                }
             }
-            if (c->arrays.normal.bo->name == name) {
-                c->arrays.normal.bo = 0;
+            if (c->arrays.normal.bo) {
+                if (c->arrays.normal.bo->name == name) {
+                    c->arrays.normal.bo = 0;
+                }
             }
-            if (c->arrays.color.bo->name == name) {
-                c->arrays.color.bo = 0;
+            if (c->arrays.color.bo) {
+                if (c->arrays.color.bo->name == name) {
+                    c->arrays.color.bo = 0;
+                }
             }
             for (int t=0 ; t<GGL_TEXTURE_UNIT_COUNT ; t++) {
-                if (c->arrays.texture[t].bo->name == name) {
-                    c->arrays.texture[t].bo = 0;
+                if (c->arrays.texture[t].bo) {
+                    if (c->arrays.texture[t].bo->name == name) {
+                        c->arrays.texture[t].bo = 0;
+                    }
                 }
             }
         }
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index 94cf6d4..444c8de 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -309,7 +309,7 @@
 
         public void release() {
             if (!mRefCounted || --mCount == 0) {
-                PowerManagerService.this.releaseWakeLockLocked(mToken, false);
+                PowerManagerService.this.releaseWakeLockLocked(mToken, 0, false);
                 mHeld = false;
             }
             if (mCount < 0) {
@@ -556,7 +556,7 @@
         }
         public void binderDied() {
             synchronized (mLocks) {
-                releaseWakeLockLocked(this.binder, true);
+                releaseWakeLockLocked(this.binder, 0, true);
             }
         }
         final int flags;
@@ -701,18 +701,18 @@
         }
     }
 
-    public void releaseWakeLock(IBinder lock) {
+    public void releaseWakeLock(IBinder lock, int flags) {
         int uid = Binder.getCallingUid();
         if (uid != Process.myUid()) {
             mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WAKE_LOCK, null);
         }
 
         synchronized (mLocks) {
-            releaseWakeLockLocked(lock, false);
+            releaseWakeLockLocked(lock, flags, false);
         }
     }
 
-    private void releaseWakeLockLocked(IBinder lock, boolean death) {
+    private void releaseWakeLockLocked(IBinder lock, int flags, boolean death) {
         int releaseUid;
         String releaseName;
         int releaseType;
@@ -744,7 +744,8 @@
         } else if ((wl.flags & LOCK_MASK) == PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK) {
             mProximityWakeLockCount--;
             if (mProximityWakeLockCount == 0) {
-                if (mProximitySensorActive) {
+                if (mProximitySensorActive &&
+                        ((flags & PowerManager.WAIT_FOR_PROXIMITY_NEGATIVE) != 0)) {
                     // wait for proximity sensor to go negative before disabling sensor
                     if (mDebugProximitySensor) {
                         Log.d(TAG, "waiting for proximity sensor to go negative");
@@ -1923,6 +1924,11 @@
                 Log.d(TAG, "ignoring user activity while turning off screen");
                 return;
             }
+            // Disable proximity sensor if if user presses power key while we are in the
+            // "waiting for proximity sensor to go negative" state.
+            if (mProximitySensorActive && mProximityWakeLockCount == 0) {
+                mProximitySensorActive = false;
+            }
             if (mLastEventTime <= time || force) {
                 mLastEventTime = time;
                 if ((mUserActivityAllowed && !mProximitySensorActive) || force) {
diff --git a/tests/LotsOfApps/Android.mk b/tests/LotsOfApps/Android.mk
new file mode 100644
index 0000000..3019f5c
--- /dev/null
+++ b/tests/LotsOfApps/Android.mk
@@ -0,0 +1,11 @@
+LOCAL_PATH:= $(call my-dir)
+include $(CLEAR_VARS)
+
+LOCAL_MODULE_TAGS := tests
+
+LOCAL_SRC_FILES := $(call all-subdir-java-files)
+
+LOCAL_PACKAGE_NAME := LotsOfApps
+LOCAL_CERTIFICATE := platform
+
+include $(BUILD_PACKAGE)
diff --git a/tests/LotsOfApps/AndroidManifest.xml b/tests/LotsOfApps/AndroidManifest.xml
new file mode 100644
index 0000000..1a16570
--- /dev/null
+++ b/tests/LotsOfApps/AndroidManifest.xml
@@ -0,0 +1,711 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+        package="com.android.lotsofapps">
+    <uses-permission android:name="android.permission.DEVICE_POWER" />
+    <uses-permission android:name="android.permission.WAKE_LOCK" />
+    <uses-permission android:name="android.permission.STATUS_BAR" />
+    <uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
+    <uses-permission android:name="android.permission.VIBRATE" />
+
+    <application>
+        <activity android:name="00" android:icon="@drawable/ic_launcher_add_folder">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="01" android:icon="@drawable/ic_launcher_alarmclock">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="02" android:icon="@drawable/ic_launcher_application">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="03" android:icon="@drawable/ic_launcher_browser">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="04" android:icon="@drawable/ic_launcher_camera">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="05" android:icon="@drawable/ic_launcher_camera_record">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="06" android:icon="@drawable/ic_launcher_contacts">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="07" android:icon="@drawable/ic_launcher_drm_file">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="08" android:icon="@drawable/ic_launcher_folder">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="09" android:icon="@drawable/ic_launcher_folder_bluetooth">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="10" android:icon="@drawable/ic_launcher_folder_live">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="11" android:icon="@drawable/ic_launcher_folder_live_contacts">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="12" android:icon="@drawable/ic_launcher_folder_live_contacts_phone">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="13" android:icon="@drawable/ic_launcher_folder_live_contacts_starred">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="14" android:icon="@drawable/ic_launcher_folder_open">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="15" android:icon="@drawable/ic_launcher_gallery">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="16" android:icon="@drawable/ic_launcher_home">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="17" android:icon="@drawable/ic_launcher_im">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="18" android:icon="@drawable/ic_launcher_musicplayer_2">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="19" android:icon="@drawable/ic_launcher_phone">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="20" android:icon="@drawable/ic_launcher_record_audio">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="21" android:icon="@drawable/ic_launcher_settings">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="22" android:icon="@drawable/ic_launcher_shortcut">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="23" android:icon="@drawable/ic_launcher_shortcut_browser_bookmark">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="24" android:icon="@drawable/ic_launcher_contacts">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="25" android:icon="@drawable/ic_launcher_shortcut_directdial">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="26" android:icon="@drawable/ic_launcher_shortcut_directmessage">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="27" android:icon="@drawable/ic_launcher_browser">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="28" android:icon="@drawable/ic_launcher_sim_toolkit">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="29" android:icon="@drawable/ic_launcher_slideshow_add_sms">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="20" android:icon="@drawable/ic_launcher_slideshow_default_sms">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="31" android:icon="@drawable/ic_launcher_smsmms">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="32" android:icon="@drawable/ic_launcher_soundrecorder">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="33" android:icon="@drawable/ic_launcher_video_camera">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="34" android:icon="@drawable/ic_launcher_video_player">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="35" android:icon="@drawable/ic_launcher_wallpaper">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="36" android:icon="@drawable/ic_launcher_im">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="37" android:icon="@drawable/ic_launcher_musicplayer_2">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="38" android:icon="@drawable/ic_launcher_phone">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="39" android:icon="@drawable/ic_launcher_record_audio">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="40" android:icon="@drawable/ic_launcher_settings">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="41" android:icon="@drawable/ic_launcher_shortcut">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="42" android:icon="@drawable/ic_launcher_sim_toolkit">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="43" android:icon="@drawable/ic_launcher_smsmms">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="44" android:icon="@drawable/ic_launcher_soundrecorder">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="45" android:icon="@drawable/ic_launcher_video_camera">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="46" android:icon="@drawable/ic_launcher_wallpaper">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="47" android:icon="@drawable/ic_launcher_drm_file">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="48" android:icon="@drawable/ic_launcher_contacts">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="49" android:icon="@drawable/ic_launcher_drm_file">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="50" android:icon="@drawable/ic_launcher_add_folder">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="51" android:icon="@drawable/ic_launcher_alarmclock">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="52" android:icon="@drawable/ic_launcher_application">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="53" android:icon="@drawable/ic_launcher_browser">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="54" android:icon="@drawable/ic_launcher_camera">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="55" android:icon="@drawable/ic_launcher_camera_record">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="56" android:icon="@drawable/ic_launcher_contacts">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="57" android:icon="@drawable/ic_launcher_drm_file">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="58" android:icon="@drawable/ic_launcher_folder">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="59" android:icon="@drawable/ic_launcher_folder_bluetooth">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="60" android:icon="@drawable/ic_launcher_folder_live">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="61" android:icon="@drawable/ic_launcher_folder_live_contacts">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="62" android:icon="@drawable/ic_launcher_folder_live_contacts_phone">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="63" android:icon="@drawable/ic_launcher_folder_live_contacts_starred">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="64" android:icon="@drawable/ic_launcher_folder_open">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="65" android:icon="@drawable/ic_launcher_gallery">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="66" android:icon="@drawable/ic_launcher_home">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="67" android:icon="@drawable/ic_launcher_im">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="68" android:icon="@drawable/ic_launcher_musicplayer_2">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="69" android:icon="@drawable/ic_launcher_phone">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="70" android:icon="@drawable/ic_launcher_record_audio">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="71" android:icon="@drawable/ic_launcher_settings">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="72" android:icon="@drawable/ic_launcher_shortcut">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="73" android:icon="@drawable/ic_launcher_shortcut_browser_bookmark">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="74" android:icon="@drawable/ic_launcher_contacts">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="75" android:icon="@drawable/ic_launcher_shortcut_directdial">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="76" android:icon="@drawable/ic_launcher_shortcut_directmessage">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="77" android:icon="@drawable/ic_launcher_browser">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="78" android:icon="@drawable/ic_launcher_sim_toolkit">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="79" android:icon="@drawable/ic_launcher_slideshow_add_sms">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="80" android:icon="@drawable/ic_launcher_slideshow_default_sms">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="81" android:icon="@drawable/ic_launcher_smsmms">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="82" android:icon="@drawable/ic_launcher_soundrecorder">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="83" android:icon="@drawable/ic_launcher_video_camera">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="84" android:icon="@drawable/ic_launcher_video_player">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="85" android:icon="@drawable/ic_launcher_wallpaper">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="86" android:icon="@drawable/ic_launcher_im">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="87" android:icon="@drawable/ic_launcher_musicplayer_2">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="88" android:icon="@drawable/ic_launcher_phone">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="89" android:icon="@drawable/ic_launcher_record_audio">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="90" android:icon="@drawable/ic_launcher_settings">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="91" android:icon="@drawable/ic_launcher_shortcut">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="92" android:icon="@drawable/ic_launcher_sim_toolkit">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="93" android:icon="@drawable/ic_launcher_smsmms">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="94" android:icon="@drawable/ic_launcher_soundrecorder">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="95" android:icon="@drawable/ic_launcher_video_camera">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="96" android:icon="@drawable/ic_launcher_wallpaper">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="97" android:icon="@drawable/ic_launcher_drm_file">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="98" android:icon="@drawable/ic_launcher_contacts">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+        <activity android:name="99" android:icon="@drawable/ic_launcher_drm_file">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN" />
+                <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.LAUNCHER" />
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_add_folder.png b/tests/LotsOfApps/res/drawable/ic_launcher_add_folder.png
new file mode 100644
index 0000000..2967926
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_add_folder.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_alarmclock.png b/tests/LotsOfApps/res/drawable/ic_launcher_alarmclock.png
new file mode 100644
index 0000000..147d2cc
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_alarmclock.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_application.png b/tests/LotsOfApps/res/drawable/ic_launcher_application.png
new file mode 100644
index 0000000..8074c4c
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_application.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_appwidget.png b/tests/LotsOfApps/res/drawable/ic_launcher_appwidget.png
new file mode 100644
index 0000000..3dc8b20
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_appwidget.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_browser.png b/tests/LotsOfApps/res/drawable/ic_launcher_browser.png
new file mode 100644
index 0000000..cdce53e
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_browser.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_camera.png b/tests/LotsOfApps/res/drawable/ic_launcher_camera.png
new file mode 100644
index 0000000..f18e4d9
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_camera.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_camera_record.png b/tests/LotsOfApps/res/drawable/ic_launcher_camera_record.png
new file mode 100644
index 0000000..d242657
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_camera_record.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_contacts.png b/tests/LotsOfApps/res/drawable/ic_launcher_contacts.png
new file mode 100644
index 0000000..69a72c4
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_contacts.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_drm_file.png b/tests/LotsOfApps/res/drawable/ic_launcher_drm_file.png
new file mode 100644
index 0000000..9df1c55
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_drm_file.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_folder.png b/tests/LotsOfApps/res/drawable/ic_launcher_folder.png
new file mode 100644
index 0000000..dd71327
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_folder.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_folder_bluetooth.png b/tests/LotsOfApps/res/drawable/ic_launcher_folder_bluetooth.png
new file mode 100644
index 0000000..78c56b7
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_folder_bluetooth.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_folder_live.png b/tests/LotsOfApps/res/drawable/ic_launcher_folder_live.png
new file mode 100644
index 0000000..e1b1182
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_folder_live.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts.png b/tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts.png
new file mode 100644
index 0000000..84babe2
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts_phone.png b/tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts_phone.png
new file mode 100644
index 0000000..004e849
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts_phone.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts_starred.png b/tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts_starred.png
new file mode 100644
index 0000000..73b4fa5
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_folder_live_contacts_starred.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_folder_open.png b/tests/LotsOfApps/res/drawable/ic_launcher_folder_open.png
new file mode 100644
index 0000000..5b3fcec
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_folder_open.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_gallery.png b/tests/LotsOfApps/res/drawable/ic_launcher_gallery.png
new file mode 100644
index 0000000..3e39baa
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_gallery.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_home.png b/tests/LotsOfApps/res/drawable/ic_launcher_home.png
new file mode 100644
index 0000000..74f6bd7
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_home.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_im.png b/tests/LotsOfApps/res/drawable/ic_launcher_im.png
new file mode 100644
index 0000000..3ea3b703
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_im.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_musicplayer_2.png b/tests/LotsOfApps/res/drawable/ic_launcher_musicplayer_2.png
new file mode 100644
index 0000000..545f0e4
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_musicplayer_2.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_phone.png b/tests/LotsOfApps/res/drawable/ic_launcher_phone.png
new file mode 100644
index 0000000..0943ce5
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_phone.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_record_audio.png b/tests/LotsOfApps/res/drawable/ic_launcher_record_audio.png
new file mode 100644
index 0000000..053bd7a
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_record_audio.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_settings.png b/tests/LotsOfApps/res/drawable/ic_launcher_settings.png
new file mode 100644
index 0000000..ff34a7f
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_settings.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_shortcut.png b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut.png
new file mode 100644
index 0000000..93ab2df
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_browser_bookmark.png b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_browser_bookmark.png
new file mode 100644
index 0000000..f861650
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_browser_bookmark.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_contact.png b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_contact.png
new file mode 100644
index 0000000..d86b264
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_contact.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_directdial.png b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_directdial.png
new file mode 100644
index 0000000..e7ff8f8
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_directdial.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_directmessage.png b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_directmessage.png
new file mode 100644
index 0000000..5170a75
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_directmessage.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_music_playlist.png b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_music_playlist.png
new file mode 100644
index 0000000..910c654
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_shortcut_music_playlist.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_sim_toolkit.png b/tests/LotsOfApps/res/drawable/ic_launcher_sim_toolkit.png
new file mode 100644
index 0000000..ce4ac43
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_sim_toolkit.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_slideshow_add_sms.png b/tests/LotsOfApps/res/drawable/ic_launcher_slideshow_add_sms.png
new file mode 100644
index 0000000..e355474
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_slideshow_add_sms.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_slideshow_default_sms.png b/tests/LotsOfApps/res/drawable/ic_launcher_slideshow_default_sms.png
new file mode 100644
index 0000000..e355474
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_slideshow_default_sms.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_smsmms.png b/tests/LotsOfApps/res/drawable/ic_launcher_smsmms.png
new file mode 100644
index 0000000..54bf64d
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_smsmms.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_soundrecorder.png b/tests/LotsOfApps/res/drawable/ic_launcher_soundrecorder.png
new file mode 100644
index 0000000..053bd7a
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_soundrecorder.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_video_camera.png b/tests/LotsOfApps/res/drawable/ic_launcher_video_camera.png
new file mode 100644
index 0000000..d242657
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_video_camera.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_video_player.png b/tests/LotsOfApps/res/drawable/ic_launcher_video_player.png
new file mode 100644
index 0000000..4815c53
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_video_player.png
Binary files differ
diff --git a/tests/LotsOfApps/res/drawable/ic_launcher_wallpaper.png b/tests/LotsOfApps/res/drawable/ic_launcher_wallpaper.png
new file mode 100644
index 0000000..dcd8709
--- /dev/null
+++ b/tests/LotsOfApps/res/drawable/ic_launcher_wallpaper.png
Binary files differ
diff --git a/tests/LotsOfApps/src/com/android/lotsofapps/Nothing.java b/tests/LotsOfApps/src/com/android/lotsofapps/Nothing.java
new file mode 100644
index 0000000..57c15c0
--- /dev/null
+++ b/tests/LotsOfApps/src/com/android/lotsofapps/Nothing.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2007 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.android.lotsofapps;
+
+public class Nothing {
+}
+