Merge change 1155 into donut

* changes:
  Don't allow negative numbers in ToneGenerator toneType parameter Bug 1836596
diff --git a/docs/html/community/index.jd b/docs/html/community/index.jd
index 5512d9c..ab1599a 100644
--- a/docs/html/community/index.jd
+++ b/docs/html/community/index.jd
@@ -90,7 +90,7 @@
 </ul>
 </li>
 
-<li><b>Android Market Help Center</b> - A web-based discussion forum where you can ask questions or report issues relating to Android Market.
+<li><b>Android Market Help Forum</b> - A web-based discussion forum where you can ask questions or report issues relating to Android Market.
 <ul>
 <li>URL:&nbsp;<a href="http://www.google.com/support/forum/p/Android+Market?hl=en">http://www.google.com/support/forum/p/Android+Market?hl=en</a></li>
 </ul>
diff --git a/docs/html/guide/practices/ui_guidelines/widget_design.jd b/docs/html/guide/practices/ui_guidelines/widget_design.jd
index 58727af..514b315 100644
--- a/docs/html/guide/practices/ui_guidelines/widget_design.jd
+++ b/docs/html/guide/practices/ui_guidelines/widget_design.jd
@@ -21,44 +21,62 @@
 <li><a href="#frames">Standard widget frames</a></li>
 <li><a href="#shadows">Standard widget shadows</a></li>
 <li><a href="#tricks">Widget graphics tips and tricks</a></li>
-<li><a href="#file">Windows graphics file format</a></li>
+<li><a href="#file">Widget graphics file format</a></li>
 </ol>
 
 <h2>See also</h2>
 
 <ol>
-<li>The <a href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a> section of the <em>Developer's Guide</em></li>
-<li>Jeff Sharkey's <a href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html">AddWidgets</a> blog post</li>
+<li><a href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a> topic in the <em>Dev Guide</em></li>
+<li><a href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html">AppWidgets blog post</a></li>
 </ol>
 
 </div>
 </div>
 
 
-<p>Widgets are a new feature introduced in Android&trade; mobile technology platform 1.5 ("Cupcake"). A widget displays an application's most important or timely information at a glance, on a user's Home screen. The Android open source code includes several examples of widgets, including widgets for Calendar, Music, and other applications.</p>
+<p>Widgets are a feature introduced in Android 1.5. A widget displays an
+application's most important or timely information at a glance, on a user's Home
+screen. The standard Android system image includes several examples of widgets,
+including widgets for Analog Clock, Music, and other applications.</p>
 
-<!-- could we include a link to that open source code? -->
+<p>Users pick the widgets they want to display on their Home screens by touching
+&amp; holding an empty area of the Home screen, selecting Widgets from the menu,
+and then selecting the widget they want.</p>
 
-<p>Users pick the widgets they want to display on their Home screens by touching &amp; holding an empty area of the Home screen, selecting Widgets from the menu, and then selecting the widget they want.</p>
+<p><img src="{@docRoot}images/widget_design/widget_examples.png" alt="Example
+Widgets"></p>
 
-<p><img src="{@docRoot}images/widget_design/widget_examples.png" alt="Example Widgets"></p>
+<p>This document describes how to design a widget so it fits graphically with
+other widgets and with the other elements of the Android Home screen. It also
+describes some standards for widget artwork and some widget graphics tips and
+tricks from the Android team.<p>
 
-<p>This document describes how to design a widget so it fits graphically with other widgets and with the other elements of the Android Home screen. It also describes some standards for widget artwork and some widget graphics tips and tricks from the Android team.<p>
-
-<p>For information about developing widgets, see the <a href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a> section of the <em>Developer's Guide</em> and the <a href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html">AddWidgets</a> blog post.</p>
+<p>For information about developing widgets, see the <a
+href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a> section of
+the <em>Developer's Guide</em> and the <a
+href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html">AppWidgets</a> blog post.</p>
 
 
 <h2 id="anatomy">Standard widget anatomy</h2>
 
-<p>Typical Android widgets have three main components: A bounding box, a frame, and the widget's graphical controls and other elements. Well-designed widgets leave some padding between the edges of the bounding box and the frame, and between the inner edges of the frame and the widget's controls. Widgets designed to fit visually with other widgets on the Home screen take cues from the other elements on the Home screen for alignment; they also use standard shading effects. All of these details are described in this document.
+<p>Typical Android widgets have three main components: A bounding box, a frame,
+and the widget's graphical controls and other elements. Well-designed widgets
+leave some padding between the edges of the bounding box and the frame, and
+between the inner edges of the frame and the widget's controls. Widgets designed
+to fit visually with other widgets on the Home screen take cues from the other
+elements on the Home screen for alignment; they also use standard shading
+effects. All of these details are described in this document.
 
 <p><strong>Standard Widget Sizes in Portrait Orientation</strong><br/>
-<img src="{@docRoot}images/widget_design/widget_sizes_portrait.png" alt="Standard Widget Sizes in Portrait Orientation"></p>
+<img src="{@docRoot}images/widget_design/widget_sizes_portrait.png"
+alt="Standard Widget Sizes in Portrait Orientation"></p>
 
 <p>&nbsp;</p>
 
 <p><strong>Standard Widget Sizes in Landscape Orientation</strong><br/>
-<img src="{@docRoot}images/widget_design/widget_sizes_landscape.png" alt="Standard Widget Sizes in Landscape Orientation"></p>
+<img src="{@docRoot}images/widget_design/widget_sizes_landscape.png"
+alt="Standard Widget Sizes in Landscape Orientation"></p>
 
   
 <h2 id="design">Designing a widget</h2>
@@ -66,43 +84,72 @@
 <ol>
 <li><strong>Select a bounding box size for your widget.</strong></li>
 
-<p>The most effective widgets display your application's most useful or timely data in the smallest widget size. Users will weigh the usefulness or your widget against the portion of the Home screen it covers, so the smaller the better.</p>
+<p>The most effective widgets display your application's most useful or timely
+data in the smallest widget size. Users will weigh the usefulness or your widget
+against the portion of the Home screen it covers, so the smaller the better.</p>
 
-<p>All widgets must fit within the bounding box of one of the six supported widget sizes, or better yet, within a pair of portrait and landscape orientation sizes, so your widget looks good when the user switches screen orientations.</p> 
+<p>All widgets must fit within the bounding box of one of the six supported
+widget sizes, or better yet, within a pair of portrait and landscape orientation
+sizes, so your widget looks good when the user switches screen
+orientations.</p> 
 
-<p><a href="#sizes">Standard widget sizes</a> illustrates the bounding dimensions of the six widget sizes (three in portrait and three in landscape orientation).</p>
+<p><a href="#sizes">Standard widget sizes</a> illustrates the bounding
+dimensions of the six widget sizes (three in portrait and three in landscape
+orientation).</p>
 
 
 <li><strong>Select a matching frame.</strong></li>
 
-<p><a href="#frames">Standard widget frames</a> illustrates the standard frames for the six widget sizes, with links so you can download copies for your own use. You don't have to use these frames for your widget, but if you do, your widgets are more likely to fit visually with other widgets.</p>
+<p><a href="#frames">Standard widget frames</a> illustrates the standard frames
+for the six widget sizes, with links so you can download copies for your own
+use. You don't have to use these frames for your widget, but if you do, your
+widgets are more likely to fit visually with other widgets.</p>
 
 <li><strong>Apply standard shadow effect to your graphics.</strong></li>
 
-<p>Again, you don't have to use this effect, but <a href="#shadows">Standard widget shadows</a> shows the Photoshop settings used for standard widgets.</p>
+<p>Again, you don't have to use this effect, but <a href="#shadows">Standard
+widget shadows</a> shows the Photoshop settings used for standard widgets.</p>
 
-<li><strong>If your widget includes buttons,  draw them in three states (default, pressed, and selected).</strong></li>
+<li><strong>If your widget includes buttons,  draw them in three states
+(default, pressed, and selected).</strong></li>
 
-<p>You can <a href="{@docRoot}images/widget_design/Music_widget_button_states.psd">download a Photoshop file that contains the three states of the Play button</a>, taken from the Music widget, to analyze the Photoshop settings used for the three standard button effects.</p>
+<p>You can <a
+href="{@docRoot}images/widget_design/Music_widget_button_states.psd">download a
+Photoshop file that contains the three states of the Play button</a>, taken from
+the Music widget, to analyze the Photoshop settings used for the three standard
+button effects.</p>
 
-<p><a href="{@docRoot}images/widget_design/Music_widget_button_states.psd"> <img src="{@docRoot}images/widget_design/buttons.png" alt="Click to download Photoshop template"></a></p>
+<p><a href="{@docRoot}images/widget_design/Music_widget_button_states.psd"> <img
+src="{@docRoot}images/widget_design/buttons.png" alt="Click to download
+Photoshop template"></a></p>
  
-<li><strong>Finish drawing your artwork and then scale and align it to fit.</strong></li>
+<li><strong>Finish drawing your artwork and then scale and align it to
+fit.</strong></li>
 
-<p><a href="#tricks">Widget alignment tips and tricks</a> describes some techniques for aligning your widget's graphics inside the standard frames, along with a few other widget graphics tricks.</p>
+<p><a href="#tricks">Widget alignment tips and tricks</a> describes some
+techniques for aligning your widget's graphics inside the standard frames, along
+with a few other widget graphics tricks.</p>
 
-<li><strong>Save your widget with the correct graphics file settings.</strong></li>
+<li><strong>Save your widget with the correct graphics file
+settings.</strong></li>
 
-<p><a href="#file">Windows graphics file format</a> describes the correct settings for your widget graphics files.</p>
+<p><a href="#file">Windows graphics file format</a> describes the correct
+settings for your widget graphics files.</p>
 
 </ol>
 
 
 <h2 id="sizes">Standard widget sizes</h2>
 
-<p>There are six standard widget sizes, based on a Home screen grid of 4 x 4 (portrait) or 4 x 4 (landscape) cells. These dimensions are the bounding boxes for the six standard widget sizes. The contents of typical widgets don't draw to the edge of these dimensions, but fit inside a frame withing the bounding box, as described in <a href="#design">Designing a widget</a>.</p>
+<p>There are six standard widget sizes, based on a Home screen grid of 4 x 4
+(portrait) or 4 x 4 (landscape) cells. These dimensions are the bounding boxes
+for the six standard widget sizes. The contents of typical widgets don't draw to
+the edge of these dimensions, but fit inside a frame withing the bounding box,
+as described in <a href="#design">Designing a widget</a>.</p>
 
-<p>In portrait orientation, each cell is 80 pixels wide by 100 pixels tall (the diagram shows a cell in portrait orientation). The three supported widget sizes in portrait orientation are:<p>
+<p>In portrait orientation, each cell is 80 pixels wide by 100 pixels tall (the
+diagram shows a cell in portrait orientation). The three supported widget sizes
+in portrait orientation are:<p>
 
 <table>
 <tr><th>Cells</th><th>Pixels</th></tr>
@@ -111,9 +158,11 @@
 <tr><td>2 x 2</td><td>160 x 200</td></tr>
 </table>
 
-<p><img src="{@docRoot}images/widget_design/portrait_sizes.png" alt="Widget dimensions in portrait orientation"></p>
+<p><img src="{@docRoot}images/widget_design/portrait_sizes.png" alt="Widget
+dimensions in portrait orientation"></p>
 
-<p>In landscape orientation, each cell is 106 pixels wide by 74 pixels tall. The three supported widget sizes in landscape orientation are:</p>
+<p>In landscape orientation, each cell is 106 pixels wide by 74 pixels tall. The
+three supported widget sizes in landscape orientation are:</p>
 
 <table>
 <tr><th>Cells</th><th>Pixels</th></tr>
@@ -122,60 +171,100 @@
 <tr><td>2 x 2</td><td>212 x 148</td></tr>
 </table>
 
-<p><img src="{@docRoot}images/widget_design/landscape_sizes.png" alt="Widget dimensions in landscape orientation"></p>
+<p><img src="{@docRoot}images/widget_design/landscape_sizes.png" alt="Widget
+dimensions in landscape orientation"></p>
 
 
 <h2 id="frames">Standard widget frames</h2>
 
-<p>For each of the six standard widget sizes there is a standard frame. You can click the images of the frames in this section to download a Photoshop file for that frame, which you can use for your own widgets.<p>
+<p>For each of the six standard widget sizes there is a standard frame. You can
+click the images of the frames in this section to download a Photoshop file for
+that frame, which you can use for your own widgets.<p>
 
-<p><a href="{@docRoot}images/widget_design/4x1_Widget_Frame_Portrait.psd"> <img src="{@docRoot}images/widget_design/4x1_Widget_Frame_Portrait.png" alt="Click to download"></a><br>4x1_Widget_Frame_Portrait.psd</p>
+<p><a href="{@docRoot}images/widget_design/4x1_Widget_Frame_Portrait.psd"> <img
+src="{@docRoot}images/widget_design/4x1_Widget_Frame_Portrait.png" alt="Click to
+download"></a><br>4x1_Widget_Frame_Portrait.psd</p>
 
-<p><a href="{@docRoot}images/widget_design/3x3_Widget_Frame_Portrait.psd"> <img src="{@docRoot}images/widget_design/3x3_Widget_Frame_Portrait.png" alt="Click to download"></a><br>3x3_Widget_Frame_Portrait.psd</p>
+<p><a href="{@docRoot}images/widget_design/3x3_Widget_Frame_Portrait.psd"> <img
+src="{@docRoot}images/widget_design/3x3_Widget_Frame_Portrait.png" alt="Click to
+download"></a><br>3x3_Widget_Frame_Portrait.psd</p>
 
-<p><a href="{@docRoot}images/widget_design/2x2_Widget_Frame_Portrait.psd"> <img src="{@docRoot}images/widget_design/2x2_Widget_Frame_Portrait.png" alt="Click to download"></a><br>2x2_Widget_Frame_Portrait.psd</p>
+<p><a href="{@docRoot}images/widget_design/2x2_Widget_Frame_Portrait.psd"> <img
+src="{@docRoot}images/widget_design/2x2_Widget_Frame_Portrait.png" alt="Click to
+download"></a><br>2x2_Widget_Frame_Portrait.psd</p>
 
-<p><a href="{@docRoot}images/widget_design/4x1_Widget_Frame_Landscape.psd"> <img src="{@docRoot}images/widget_design/4x1_Widget_Frame_Landscape.png" alt="Click to download"></a><br>4x1_Widget_Frame_Landscape.psd</p>
+<p><a href="{@docRoot}images/widget_design/4x1_Widget_Frame_Landscape.psd"> <img
+src="{@docRoot}images/widget_design/4x1_Widget_Frame_Landscape.png" alt="Click
+to download"></a><br>4x1_Widget_Frame_Landscape.psd</p>
 
-<p><a href="{@docRoot}images/widget_design/3x3_Widget_Frame_Landscape.psd"> <img src="{@docRoot}images/widget_design/3x3_Widget_Frame_Landscape.png" alt="Click to download"></a><br>3x3_Widget_Frame_Landscape.psd</p>
+<p><a href="{@docRoot}images/widget_design/3x3_Widget_Frame_Landscape.psd"> <img
+src="{@docRoot}images/widget_design/3x3_Widget_Frame_Landscape.png" alt="Click
+to download"></a><br>3x3_Widget_Frame_Landscape.psd</p>
 
-<p><a href="{@docRoot}images/widget_design/2x2_Widget_Frame_Landscape.psd"> <img src="{@docRoot}images/widget_design/2x2_Widget_Frame_Landscape.png" alt="Click to download"></a><br>2x2_Widget_Frame_Landscape.psd</p>
+<p><a href="{@docRoot}images/widget_design/2x2_Widget_Frame_Landscape.psd"> <img
+src="{@docRoot}images/widget_design/2x2_Widget_Frame_Landscape.png" alt="Click
+to download"></a><br>2x2_Widget_Frame_Landscape.psd</p>
 
 
 <h2 id="shadows">Standard widget shadows</h2>
 
-<p>You can apply a shadow effect to your widget's artwork, so it matches other standard Android widgets, using the following settings in the Photoshop Layer Style dialog box.</p>
+<p>You can apply a shadow effect to your widget's artwork, so it matches other
+standard Android widgets, using the following settings in the Photoshop Layer
+Style dialog box.</p>
 
-<p><img src="{@docRoot}images/widget_design/Layer_Style.png" alt="Layer Style settings for standard shadows"></p>
+<p><img src="{@docRoot}images/widget_design/Layer_Style.png" alt="Layer Style
+settings for standard shadows"></p>
 
 
 <h2 id="tricks">Widget graphics tips and tricks</h2>
 
-<p>The Android team has developed a few tricks for aligning widget artwork within standard widget bounding boxes and frames, so the widget aligns visually with other widgets and the other elements of the Home screen, as well as other techniques for creating widgets.
+<p>The Android team has developed a few tricks for aligning widget artwork
+within standard widget bounding boxes and frames, so the widget aligns visually
+with other widgets and the other elements of the Home screen, as well as other
+techniques for creating widgets.
 
 <ul>
 
-<li>Use a screen shot from the Android SDK emulator to align both the shapes and shadows of your widget controls with the Search widget and with other elements on the Home screen.</li>
+<li>Use a screen shot from the Android SDK emulator to align both the shapes and
+shadows of your widget controls with the Search widget and with other elements
+on the Home screen.</li>
 
-<p>Cut the widget artwork asset" based on the full size of a cell, including any padding you want. (That is, for a 4 x 1 widget, cut the asset at 320 by 100 pixels.)</p>
+<p>Cut the widget artwork asset" based on the full size of a cell, including any
+padding you want. (That is, for a 4 x 1 widget, cut the asset at 320 by 100
+pixels.)</p>
 
-<p><img src="{@docRoot}images/widget_design/alignment.png" alt="Aligning widget graphics" ></p>
+<p><img src="{@docRoot}images/widget_design/alignment.png" alt="Aligning widget
+graphics" ></p>
 
-<li>To reduce banding when exporting a widget, apply the following Photoshop Add Noise setting to your graphic.</li>
+<li>To reduce banding when exporting a widget, apply the following Photoshop Add
+Noise setting to your graphic.</li>
 
-<p><img src="{@docRoot}images/widget_design/Add_Noise.png" alt="Add Noise settings for widget graphics" ></p>
+<p><img src="{@docRoot}images/widget_design/Add_Noise.png" alt="Add Noise
+settings for widget graphics" ></p>
 
-<li>Apply 9-patch techniques to shrink the graphic and set the padding of the content area. (<a href="{@docRoot}guide/developing/tools/draw9patch.html">See the detailed guide here.</a>)</li>
+<li>Apply 9-patch techniques to shrink the graphic and set the padding of the
+content area. (<a href="{@docRoot}guide/developing/tools/draw9patch.html">See
+the detailed guide here.</a>)</li>
 
-<p><strong>Note:</strong> The current Android widget templates were designed using a custom gradient angle, which means the 9-patch techniques can't be used to optimize the size of the asset. However, 9-patch techniques were used to set the content area padding.</p>
+<p><strong>Note:</strong> The current Android widget templates were designed
+using a custom gradient angle, which means the 9-patch techniques can't be used
+to optimize the size of the asset. However, 9-patch techniques were used to set
+the content area padding.</p>
 
-<li>In some cases, devices have low pixel depths that can cause visual banding and dithering issues. To solve this, application developers should pass assets through a "proxy" drawable defined as <code>XML:<nine-patch android:src="@drawable/background" android:dither="true" /></code>. This technique references the original artwork, in this case <code>"background.9.png"</code>, and instructs the device to dither it as needed.</li>
+<li>In some cases, devices have low pixel depths that can cause visual banding
+and dithering issues. To solve this, application developers should pass assets
+through a "proxy" drawable defined as <code>XML:<nine-patch
+android:src="@drawable/background" android:dither="true" /></code>. This
+technique references the original artwork, in this case
+<code>"background.9.png"</code>, and instructs the device to dither it as
+needed.</li>
 
 </ul>
 
 <h2 id="file">Widget graphics file format</h2>
 
-<p>Save your widget artwork using the appropriate bounding box size in PNG-24 format on a transparent background and in 8-bit color.</p>
+<p>Save your widget artwork using the appropriate bounding box size in PNG-24
+format on a transparent background and in 8-bit color.</p>
 
 <p><img src="{@docRoot}images/widget_design/file_format.png" alt="Widget graphics file format" ></p>
 
diff --git a/docs/html/guide/topics/fundamentals.jd b/docs/html/guide/topics/fundamentals.jd
index 3c7f419..71705d3 100644
--- a/docs/html/guide/topics/fundamentals.jd
+++ b/docs/html/guide/topics/fundamentals.jd
@@ -464,7 +464,7 @@
             &lt;/intent-filter&gt;
             &lt;intent-filter . . . &gt;
                 &lt;action android:name="com.example.project.BOUNCE" /&gt;
-                &lt;data android:type="image/jpeg" /&gt;
+                &lt;data android:mimeType="image/jpeg" /&gt;
                 &lt;category android:name="android.intent.category.DEFAULT" /&gt;
             &lt;/intent-filter&gt;
         &lt;/activity&gt;
diff --git a/docs/html/guide/topics/resources/index.jd b/docs/html/guide/topics/resources/index.jd
index 7e3bce42..1425cfa 100644
--- a/docs/html/guide/topics/resources/index.jd
+++ b/docs/html/guide/topics/resources/index.jd
@@ -18,8 +18,8 @@
 like images, audio, video, text strings, layouts, themes, etc. Every Android application contains 
 a directory for resources (<code>res/</code>) and a directory for assets (<code>assets/</code>). 
 Assets are used less often, because their applications are far fewer. You only need to save data
-as an asset when you need to read the raw bites. 
-The directories for resources and assets both reside at the top of your project directory, alongside your source code directory 
+as an asset when you need to read the raw bytes. The directories for resources and assets both 
+reside at the top of an Android project tree, at the same level as your source code directory 
 (<code>src/</code>).</p>
 
 <p>The difference between "resources" and "assets" isn't much on the surface, but in general, 
diff --git a/docs/html/sdk/1.5_r1/index.jd b/docs/html/sdk/1.5_r1/index.jd
index 89892e9..438ee4b 100644
--- a/docs/html/sdk/1.5_r1/index.jd
+++ b/docs/html/sdk/1.5_r1/index.jd
@@ -50,8 +50,7 @@
 <td width="5%"><nobr>Android 1.1</nobr></td>
 <td  width="5%">2</td>
 <td  width="5%"><nobr><a href="{@docRoot}sdk/android-1.1.html">Version Notes</a></nobr></td>
-<td>Includes a compliant Android 1.1 library and system image with a set of development applications. Also includes the Maps external library (due to legacy build system issues).</a>
-external library. </td>
+<td>Includes a compliant Android 1.1 library and system image with a set of development applications. Also includes the Maps external library (due to legacy build system issues).</td>
 
 </tr>
 </table>
diff --git a/docs/html/sdk/1.5_r1/requirements.jd b/docs/html/sdk/1.5_r1/requirements.jd
index c3ee8f7..4ed38a7 100644
--- a/docs/html/sdk/1.5_r1/requirements.jd
+++ b/docs/html/sdk/1.5_r1/requirements.jd
@@ -16,8 +16,9 @@
     <ul>
       <li><a href="http://www.eclipse.org/downloads/">Eclipse</a> 3.3 (Europa), 3.4 (Ganymede)
         <ul>
+        <li>Recommended Eclipse IDE packages: Eclipse IDE for Java EE Developers, Eclipse IDE for Java Developers, Eclipse for RCP/Plug-in Developers</li>
         <li>Eclipse <a href="http://www.eclipse.org/jdt">JDT</a> plugin (included in most Eclipse IDE packages) </li>
-        <li><a href="http://www.eclipse.org/webtools">WST</a> (optional, but needed for the Android Editors feature; included in <a href="http://www.eclipse.org/downloads/moreinfo/compare.php">most Eclipse IDE packages</a>)</li>
+        <li>Eclipse Classic IDE package is not supported.</li>
         </ul>
       </li>     
       <li><a href="http://java.sun.com/javase/downloads/index.jsp">JDK 5 or JDK 6</a> (JRE alone is not sufficient)</li>
diff --git a/docs/html/sdk/RELEASENOTES.jd b/docs/html/sdk/RELEASENOTES.jd
index db93215..c44cef3 100644
--- a/docs/html/sdk/RELEASENOTES.jd
+++ b/docs/html/sdk/RELEASENOTES.jd
@@ -29,7 +29,7 @@
     <li>Support for SDK add-ons, which extend the
 Android SDK to give you access to one or more external Android libraries and/or
 a customized (but compliant) system image that can run in the emulator. </li>
-    <li>The new Eclipse ADT plugin (version 0.9.0) offers new Wizards to let you
+    <li>The new Eclipse ADT plugin (version 0.9.x) offers new Wizards to let you
 create projects targetted for specific Android configurations, generate XML
 resources (such as layouts, animations, and menus), generate alternate layouts,
 and export and sign your application for publishing.</li>
diff --git a/docs/html/sdk/adt_download.jd b/docs/html/sdk/adt_download.jd
index 6996906..8b22e2c 100644
--- a/docs/html/sdk/adt_download.jd
+++ b/docs/html/sdk/adt_download.jd
@@ -8,7 +8,7 @@
 from your computer (archived site) instead. 
 </p>
 <p>
-If you go with this method, in order to update the plugin, you will need to 
+If you use this approach, in order to update the plugin, you will need to 
 download the latest version from this page, uninstall the old version from 
 Eclipse, then install the new version. For more details on the procedure, 
 see Troubleshooting ADT Installation in the 
@@ -16,7 +16,7 @@
 page</a>.
 </p>
 <p>
-<table>
+<table class="download">
   <tr>
     <th><nobr>ADT Version</nobr></th>
     <th>Package</th>
@@ -26,41 +26,49 @@
   </tr>
 
   <tr>
-     <td style="background-color:#ffcccc;">0.9.0</td>
-     <td style="background-color:#ffcccc;"><a href="http://dl-ssl.google.com/android/ADT-0.9.0.zip">ADT-0.9.0.zip</a></td>
-     <td style="background-color:#ffcccc;"><nobr>2889330 bytes</nobr></td>
-     <td style="background-color:#ffcccc;"><nobr>4f4c4ece3071cf65bbd4e5da7bbde8af</nobr></td>
-     <td style="background-color:#ffcccc;"><nobr>Required for users of Android 1.5 SDK (and later releases). <em><nobr>27 Apr 2009</nobr></em></td>
+     <td>0.9.1</td>
+     <td><a href="http://dl-ssl.google.com/android/ADT-0.9.1.zip">ADT-0.9.1.zip</a></td>
+     <td><nobr>2916093 bytes</nobr></td>
+     <td><nobr>e7b2ab40414ac98</nobr></td>
+     <td><nobr>Required for users of Android 1.5 SDK (and later releases). Updated from 0.9.0. <em><nobr>6 May 2009</nobr></em></td>
   </tr>
-  <tr>
+  <tr class="alt-color">
      <td>0.8.0</td>
      <td><a href="http://dl-ssl.google.com/android/ADT-0.8.0.zip">ADT-0.8.0.zip</a></td>
      <td colspan="2"><nobr>&nbsp;</nobr></td>
      <td><nobr>Required for users of Android 1.1 SDK and Android 1.0 SDK. <em><nobr>23 Sep 2008</nobr></em></td>
   </tr>
+</table>
+
+
+<h4>Older Versions of ADT</h4>
+
+<p>The table below lists older versions of the ADT Plugin that are no longer supported. If you are developing applications that are intended to be deployable to Android-powered devices, make sure that you upgrade to the most current SDK release available and use the most current version of the ADT Plugin, as listed in the section above.</p>
+
+<p>If you are not sure what version of ADT is installed in your Eclipse environment, open Eclipse and from the main menu select <strong>Help</strong> &gt; <strong>About Eclipse</strong> &gt; <strong>Features Details</strong>. Locate "com.android.ide.eclipse.adt" in the
+Feature ID column and look at its version number.</p>
+
+<table>
+  <tr>
+    <th><nobr>ADT Version</nobr></th>
+    <th>Notes</th>
+  </tr>
+
   <tr>
      <td>0.7.1</td>
-     <td><a href="http://dl-ssl.google.com/android/ADT-0.7.1.zip">ADT-0.7.1.zip</a></td>
-     <td colspan="2"><nobr>&nbsp;</nobr></td>
      <td>Required for users of Android 0.9 SDK beta. As of this version, <b>Eclipse 3.2 is no longer supported.</b>
      Please upgrade to Eclipse Ganymede (3.4) or Europa (3.3) if you are still using 3.2. <em><nobr>18 Aug 2008</nobr></em></td>
   </tr>
   <tr>
      <td>0.4.0</td>
-     <td><a href="http://dl-ssl.google.com/android/ADT-0.4.0.zip">ADT-0.4.0.zip</a></td>
-     <td colspan="2"><nobr>&nbsp;</nobr></td>
      <td>Required if you are using the M5 SDK. See the SDK Release Notes for details on changes and enhancements in this version. <em><nobr>12 Feb 2008</nobr></em></td>
   </tr>
   <tr>
      <td>0.3.3</td>
-     <td><a href="http://dl-ssl.google.com/android/ADT-0.3.3.zip">ADT-0.3.3.zip</a></td>
-     <td colspan="2"><nobr>&nbsp;</nobr></td>
      <td>Some significant enhancements (see m3-rc37 SDK Release Notes). <em><nobr>14 Dec 2007</nobr></em></td>
   </tr>
   <tr>
      <td>0.3.1</td>
-     <td><a href="http://dl-ssl.google.com/android/ADT-0.3.1.zip">ADT-0.3.1.zip</a></td>
-     <td colspan="2"><nobr>&nbsp;</nobr></td>
      <td>Initial Release. Required for Android m3-rc20 SDK and Android m3-rc22 SDK.<em><nobr>21 Nov 2007</nobr></em></td>
   </tr>
 </table>
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaMetadataTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaMetadataTest.java
index 364e1af..3715913 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaMetadataTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaMetadataTest.java
@@ -170,21 +170,25 @@
         validateMetatData(non_mp3_test_file.WAV.ordinal(), MediaNames.META_DATA_OTHERS);
     }
     
+    @Suppress
     @MediumTest
     public static void testWma9_Metadata() throws Exception {
         validateMetatData(non_mp3_test_file.WMA9.ordinal(), MediaNames.META_DATA_OTHERS);
     }
     
+    @Suppress
     @MediumTest
     public static void testWma10_Metadata() throws Exception {
         validateMetatData(non_mp3_test_file.WMA10.ordinal(), MediaNames.META_DATA_OTHERS);
     }
     
+    @Suppress
     @MediumTest
     public static void testWmv9_Metadata() throws Exception {
         validateMetatData(non_mp3_test_file.WMV9.ordinal(), MediaNames.META_DATA_OTHERS);
     }
     
+    @Suppress
     @MediumTest
     public static void testWmv10_Metadata() throws Exception {
         validateMetatData(non_mp3_test_file.WMV7.ordinal(), MediaNames.META_DATA_OTHERS);
diff --git a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPlayerApiTest.java b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPlayerApiTest.java
index cfcc521..8be7058 100644
--- a/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPlayerApiTest.java
+++ b/media/tests/MediaFrameworkTest/src/com/android/mediaframeworktest/functional/MediaPlayerApiTest.java
@@ -78,6 +78,7 @@
       assertTrue("MIDI getDuration", duratoinWithinTolerence);  
     }
     
+    @Suppress
     @MediumTest
     public void testWMA9GetDuration() throws Exception {
       int duration = CodecTest.getDuration(MediaNames.WMA9); 
@@ -118,7 +119,8 @@
       boolean currentPosition = CodecTest.getCurrentPosition(MediaNames.MIDI);  
       assertTrue("MIDI GetCurrentPosition", currentPosition);  
     }
-   
+    
+    @Suppress
     @LargeTest
     public void testWMA9GetCurrentPosition() throws Exception {
       boolean currentPosition = CodecTest.getCurrentPosition(MediaNames.WMA9);  
@@ -156,6 +158,7 @@
       assertTrue("MIDI Pause", isPaused);  
     }
    
+    @Suppress
     @LargeTest
     public void testWMA9Pause() throws Exception {
       boolean isPaused = CodecTest.pause(MediaNames.WMA9);  
@@ -227,6 +230,7 @@
       assertTrue("MIDI setLooping", isLoop);  
     }
     
+    @Suppress
     @LargeTest
     public void testWMA9SetLooping() throws Exception {
       boolean isLoop = CodecTest.setLooping(MediaNames.WMA9);  
@@ -265,6 +269,7 @@
       assertTrue("MIDI seekTo", isLoop);  
     }
     
+    @Suppress
     @LargeTest
     public void testWMA9SeekTo() throws Exception {
       boolean isLoop = CodecTest.seekTo(MediaNames.WMA9);  
@@ -304,6 +309,7 @@
       assertTrue("MIDI seekToEnd", isEnd);  
     }
     
+    @Suppress
     @LargeTest
     public void testWMA9SeekToEnd() throws Exception {
       boolean isEnd = CodecTest.seekToEnd(MediaNames.WMA9);  
@@ -379,7 +385,8 @@
       boolean isSeek = CodecTest.videoSeekTo(MediaNames.VIDEO_H264_AMR);
       assertTrue("H264AMR SeekTo", isSeek);         
     }
-    
+   
+    @Suppress
     @LargeTest
     public void testVideoWMVSeekTo() throws Exception {
       boolean isSeek = CodecTest.videoSeekTo(MediaNames.VIDEO_WMV);
@@ -450,4 +457,3 @@
         assertTrue("StreamH264PrepareAsyncCallback", onPrepareSuccess);
     }
 }
-
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/java/com/android/server/LocationManagerService.java
index c924d8d..14c834b 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/java/com/android/server/LocationManagerService.java
@@ -918,12 +918,9 @@
                 }
            }
         }
-        if (LocationManager.GPS_PROVIDER.equals(provider) ||
-                LocationManager.NETWORK_PROVIDER.equals(provider)) {
-            for (ProximityAlert alert : mProximityAlerts.values()) {
-                if (alert.mUid == uid) {
-                    return true;
-                }
+        for (ProximityAlert alert : mProximityAlerts.values()) {
+            if (alert.mUid == uid) {
+                return true;
             }
         }
         return false;
@@ -1359,13 +1356,8 @@
             mProximityListener = new ProximityListener();
             mProximityReceiver = new Receiver(mProximityListener);
 
-            LocationProviderProxy provider = mProvidersByName.get(LocationManager.GPS_PROVIDER);
-            if (provider != null) {
-                requestLocationUpdatesLocked(provider.getName(), 1000L, 1.0f, mProximityReceiver);
-            }
-
-            provider = mProvidersByName.get(LocationManager.NETWORK_PROVIDER);
-            if (provider != null) {
+            for (int i = mProviders.size() - 1; i >= 0; i--) {
+                LocationProviderProxy provider = mProviders.get(i);
                 requestLocationUpdatesLocked(provider.getName(), 1000L, 1.0f, mProximityReceiver);
             }
         }
@@ -1809,9 +1801,13 @@
             if (mProvidersByName.get(name) != null) {
                 throw new IllegalArgumentException("Provider \"" + name + "\" already exists");
             }
+
+            // clear calling identity so INSTALL_LOCATION_PROVIDER permission is not required
+            long identity = Binder.clearCallingIdentity();
             addProvider(new LocationProviderProxy(name, provider));
             mMockProviders.put(name, provider);
             updateProvidersLocked();
+            Binder.restoreCallingIdentity(identity);
         }
     }
 
@@ -1835,7 +1831,10 @@
             if (mockProvider == null) {
                 throw new IllegalArgumentException("Provider \"" + provider + "\" unknown");
             }
+            // clear calling identity so INSTALL_LOCATION_PROVIDER permission is not required
+            long identity = Binder.clearCallingIdentity();
             mockProvider.setLocation(loc);
+            Binder.restoreCallingIdentity(identity);
         }
     }
 
diff --git a/tests/CoreTests/android/location/LocationManagerProximityTest.java b/tests/CoreTests/android/location/LocationManagerProximityTest.java
index e1501e3..3f43bcf 100644
--- a/tests/CoreTests/android/location/LocationManagerProximityTest.java
+++ b/tests/CoreTests/android/location/LocationManagerProximityTest.java
@@ -52,11 +52,7 @@
 
     private static final String LOG_TAG = "LocationProximityTest";
 
-    // use network provider as mock location provider, because:
-    //  - proximity alert is hardcoded to listen to only network or gps
-    //  - 'network' provider is not installed in emulator, so can mock it 
-    //    using test provider APIs
-    private static final String PROVIDER_NAME = LocationManager.NETWORK_PROVIDER;
+    private static final String PROVIDER_NAME = "test";
 
     @Override
     protected void setUp() throws Exception {
@@ -84,6 +80,7 @@
                 false, // upportsBearing,
                 Criteria.POWER_MEDIUM, // powerRequirement
                 Criteria.ACCURACY_FINE); // accuracy
+        mLocationManager.setTestProviderEnabled(PROVIDER_NAME, true);
     }
 
     @Override