AI 146610: am: CL 146609 updates to the manifest docs for cupcake: Add "since" notations for elements and some attributes.
  Original author: ddougherty
  Merged from: //branches/cupcake/...

Automated import of CL 146610
diff --git a/docs/html/guide/topics/manifest/action-element.jd b/docs/html/guide/topics/manifest/action-element.jd
index bc2e1d3..d7ba78d 100644
--- a/docs/html/guide/topics/manifest/action-element.jd
+++ b/docs/html/guide/topics/manifest/action-element.jd
@@ -40,6 +40,10 @@
 </dd>
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code></dd>
 
diff --git a/docs/html/guide/topics/manifest/activity-alias-element.jd b/docs/html/guide/topics/manifest/activity-alias-element.jd
index 9d81d50..4521b4b 100644
--- a/docs/html/guide/topics/manifest/activity-alias-element.jd
+++ b/docs/html/guide/topics/manifest/activity-alias-element.jd
@@ -123,6 +123,10 @@
 </p></dd>
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code></dd>
 
diff --git a/docs/html/guide/topics/manifest/activity-element.jd b/docs/html/guide/topics/manifest/activity-element.jd
index aba89d7..83237c6 100644
--- a/docs/html/guide/topics/manifest/activity-element.jd
+++ b/docs/html/guide/topics/manifest/activity-element.jd
@@ -19,6 +19,7 @@
                               "singleTask" | "singleInstance"]
           android:<a href="#multi">multiprocess</a>=["true" | "false"]
           android:<a href="#nm">name</a>="<i>string</i>"
+          android:<a href="#nohist">noHistory</a>=["true" | "false"]  <!-- ##api level 3## -->
           android:<a href="#prmsn">permission</a>="<i>string</i>"
           android:<a href="#proc">process</a>="<i>string</i>"
           android:<a href="#screen">screenOrientation</a>=["unspecified" | "user" | "behind" |
@@ -26,7 +27,12 @@
                                      "sensor" | "nonsensor"]
           android:<a href="#state">stateNotNeeded</a>=["true" | "false"]
           android:<a href="#aff">taskAffinity</a>="<i>string</i>"
-          android:<a href="#theme">theme</a>="<i>resource or theme</i>" &gt;
+          android:<a href="#theme">theme</a>="<i>resource or theme</i>" 
+          android:<a href="#wsoft">windowSoftInputMode</a>=[<i>one or more of</i>: "stateUnspecified" 
+                                       "stateUnchanged" "stateHidden" 
+                                       "stateAlwaysHidden" "stateVisible" 
+                                       "stateAlwaysVisible" "adjustUnspecified" 
+                                       "adjustResize" "adjustPan"] &gt;   <!-- ##api level 3## -->
     . . .
 &lt;/activity&gt;</pre></dd>
 
@@ -158,8 +164,8 @@
 
 <table>
 <tr>
-   <td><b>Value</b></td>
-   <td><b>Description</b></td>
+   <th>Value</th>
+   <th>Description</th>
 </tr><tr>
    <td>"{@code mcc}"</td>
    <td>The IMSI mobile country code (MCC) has changed &mdash; 
@@ -212,12 +218,12 @@
 
 <p>
 The <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> element has its own 
-<code><a href="{@docRoot}guide/topics/manifest/application-element.html#enabled">enabled</a></code> attribute that applies to all 
-application components, including activities.  The 
-<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> and {@code &lt;activity&gt;} 
-attributes must both be "{@code true}" (as they both are by default) for 
-the system to be able to instantiate the activity.  If either is 
-"{@code false}", it cannot be instantiated.
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html#enabled">enabled</a></code> 
+attribute that applies to all application components, including activities.  The 
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
+and {@code &lt;activity&gt;} attributes must both be "{@code true}" (as they both 
+are by default) for the system to be able to instantiate the activity.  If either 
+is "{@code false}", it cannot be instantiated.
 </p></dd>
 
 <dt><a name="exclude"></a>{@code android:excludeFromRecents}</dt>
@@ -246,7 +252,8 @@
 <p>
 This attribute is not the only way to limit an activity's exposure to other
 applications.  You can also use a permission to limit the external entities that 
-can invoke the activity  (see the <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#prmsn">permission</a></code> 
+can invoke the activity  (see the 
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#prmsn">permission</a></code> 
 attribute).
 </p></dd>
 
@@ -257,7 +264,8 @@
 if not.  The default value is "{@code false}". 
 
 <p>
-If this attribute and <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#reparent">allowTaskReparenting</a></code> 
+If this attribute and 
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#reparent">allowTaskReparenting</a></code> 
 are both "{@code true}", this attribute trumps the other.  The affinity of the 
 activity is ignored.  The activity is not re-parented, but destroyed.
 </p>
@@ -272,14 +280,15 @@
 <p>
 This attribute must be set as a reference to a drawable resource containing 
 the image definition.  If it is not set, the icon specified for the application 
-as a whole is used instead (see the <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
+as a whole is used instead (see the 
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
 element's <code><a href="{@docRoot}guide/topics/manifest/application-element.html#icon">icon</a></code> attribute).
 </p>
 
 <p>
 The activity's icon &mdash; whether set here or by the 
-<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> element &mdash; is also the 
-default icon for all the activity's intent filters (see the 
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
+element &mdash; is also the default icon for all the activity's intent filters (see the 
 <code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code> element's 
 <code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html#icon">icon</a></code> attribute). 
 </p></dd>
@@ -413,6 +422,24 @@
 There is no default.  The name must be specified.
 </p></dd>
 
+<!-- ##api level 3## -->
+<dt><a name="nohist"></a>{@code android:noHistory}</dt>
+<dd>Whether or not the activity should be removed from the activity stack and
+finished (its <code>{@link android.app.Activity#finish finish()}</code> 
+method called) when the user navigates away from it and it's no longer 
+visible on screen &mdash; "{@code true}" if it should be finished, and 
+"{@code false}" if not.  The default value is "{@code false}".
+
+<p>
+A value of "{@code true}" means that the activity will not leave a
+historical trace.  It will not remain in the activity stack for the task,
+so the user will not be able to return to it.
+</p>
+
+<p>
+This attribute was introduced in API Level 3.
+</p>
+
 <dt><a name="prmsn"></a>{@code android:permission}</dt>
 <dd>The name of a permission that clients must have to launch the activity 
 or otherwise get it to respond to an intent.  If a caller of 
@@ -423,9 +450,10 @@
 
 <p>
 If this attribute is not set, the permission set by the 
-<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> element's
-<code><a href="{@docRoot}guide/topics/manifest/application-element.html#prmsn">permission</a></code> attribute applies 
-to the activity.  If neither attribute is set, the activity is
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
+element's
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html#prmsn">permission</a></code> 
+attribute applies to the activity.  If neither attribute is set, the activity is
 not protected by a permission.
 </p>
 
@@ -441,9 +469,10 @@
 <dd>The name of the process in which the activity should run.  Normally, 
 all components of an application run in the default process created for the 
 application.  It has the same name as the application package.  The <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> element's 
-<code><a href="{@docRoot}guide/topics/manifest/application-element.html#proc">process</a></code> attribute can set a different 
-default for all components.  But each component can override the default,
-allowing you to spread your application across multiple processes.
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html#proc">process</a></code> 
+attribute can set a different default for all components.  But each component 
+can override the default, allowing you to spread your application across 
+multiple processes.
 
 <p>
 If the name assigned to this attribute begins with a colon (':'), a new 
@@ -540,10 +569,14 @@
 
 <p>
 If this attribute is not set, the activity inherits the affinity set 
-for the application (see the <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
-element's <code><a href="{@docRoot}guide/topics/manifest/application-element.html#aff">taskAffinity</a></code> attribute).  
-The name of the default affinity for an application is the package name set 
-by the <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> element.
+for the application (see the 
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
+element's 
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html#aff">taskAffinity</a></code>
+attribute).  The name of the default affinity for an application is 
+the package name set by the 
+<code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> 
+element.
 </p>
 
 <dt><a name="theme"></a>{@code android:theme}</dt>
@@ -555,11 +588,123 @@
 
 <p>
 If this attribute is not set, the activity inherits the theme set for the 
-application as a whole &mdash; see the <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
-element's <code><a href="{@docRoot}guide/topics/manifest/application-element.html#theme">theme</a></code> attribute.  If that attribute is 
-also not set, the default system theme is used.
+application as a whole &mdash; see the 
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
+element's 
+<code><a href="{@docRoot}guide/topics/manifest/application-element.html#theme">theme</a></code> 
+attribute.  If that attribute is also not set, the default system theme is used.
 </p>
-<dd> 
+<dd>
+
+<!-- ##api level 3## -->
+<dt><a name="wsoft"></a>{@code android:windowSoftInputMode}</dt>
+<dd>How the main window of the activity interacts with the window containing 
+the on-screen soft keyboard.  The setting for this attribute affects two 
+things: 
+
+<ul> 
+<li>The state of the soft keyboard &mdash; whether it is hidden or visible 
+&mdash; when the activity becomes the focus of user attention.</li>
+
+<li>The adjustment made to the activity's main window &mdash; whether it is 
+resized smaller to make room for the soft keyboard or whether its contents 
+pan to make the current focus visible when part of the window is covered by 
+the soft keyboard.</li>
+</ul>
+
+<p>
+The setting must be one of the values listed in the following table, or a 
+combination of one "{@code state...}" value plus one "{@code adjust...}" 
+value.  Setting multiple values in either group &mdash; multiple 
+"{@code state...}" values, for example &mdash has undefined results.  
+Individual values are separated by a vertical bar ({@code |}).  For example:
+</p>
+
+<pre>&lt;activity android:windowSoftInputMode="stateVisible|adjustResize" . . . &gt;</pre>
+
+<p>
+Values set here (other than "{@code stateUnspecified}" and 
+"{@code adjustUnspecified}") override values set in the theme.
+</p>
+
+<table>
+<tr>
+   <th>Value</th>
+   <th>Description</th>
+</tr><tr>
+   <td>"{@code stateUnspecified}"</td>
+   <td>The state of the soft keyboard (whether it is hidden or visible) 
+       is not specified.  The system will choose an appropriate state or
+       rely on the setting in the theme.  
+
+       <p>
+       This is the default setting for the behavior of the soft keyboard.
+       </p></td>
+</tr></tr>
+   <td>"{@code stateUnchanged}"</td>
+   <td>The soft keyboard is kept in whatever state it was last in,
+       whether visible or hidden, when the activity comes to the fore.</td>
+</tr></tr>
+   <td>"{@code stateHidden}"</td>
+   <td>The soft keyboard is hidden when the user chooses the activity 
+       &mdash; that is, when the user affirmatively navigates forward to the 
+       activity, rather than backs into it because of leaving another activity.</td>
+</tr></tr>
+   <td>"{@code stateAlwaysHidden}"</td>
+   <td>The soft keyboard is always hidden when the activity's main window 
+       has input focus.</td>
+</tr></tr>
+   <td>"{@code stateVisible}"</td>
+   <td>The soft keyboard is visible when that's normally appropriate 
+       (when the user is navigating forward to the activity's main window).</td>
+</tr></tr>
+   <td>"{@code stateAlwaysVisible}"</td>
+   <td>The soft keyboard is made visible when the user chooses the 
+       activity &mdash; that is, when the user affirmatively navigates forward 
+       to the activity, rather than backs into it because of leaving another 
+       activity.</td>
+</tr></tr>
+   <td>"{@code adjustUnspecified}"</td>
+   <td>It is unspecified whether the activity's main window resizes 
+       to make room for the soft keyboard, or whether the contents 
+       of the window pan to make the currentfocus visible on-screen. 
+       The system will automatically select one of these modes depending
+       on whether the content of the window has any layout views that 
+       can scroll their contents.  If there is such a view, the window 
+       will be resized, on the assumption that scrolling can make all 
+       of the window's contents visible within a smaller area.
+
+       <p>
+       This is the default setting for the behavior of the main window.
+       </p></td>
+</tr></tr>
+   <td>"{@code adjustResize}"</td>
+   <td>The activity's main window is always resized to make room for 
+       the soft keyboard on screen.</td>
+</tr></tr>
+   <td>"{@code adjustPan}"</td>
+   <td>The activity's main window is not resized to make room for the soft
+       keyboard.  Rather, the contents of the window are automatically 
+       panned so that the current focus is never obscured by the keyboard
+       and users can always see what they are typing.  This is generally less 
+       desireable than resizing, because the user may need to close the soft
+       keyboard to get at and interact with obscured parts of the window.</td>
+</tr>
+</table>
+
+<p>
+This attribute was introduced in API Level 3.
+</p></dd>
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1 for all attributes except for 
+<code><a href="#nohist">noHistory</a></code> and
+<code><a href="#wsoft">windowSoftInputMode</a></code>, which were added in API 
+Level 3.</dd>
+
+<dt>see also:</dt>
+<dd><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> 
+<br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html">&lt;activity-alias&gt;</a></code></dd>
 </dl>
\ No newline at end of file
diff --git a/docs/html/guide/topics/manifest/application-element.jd b/docs/html/guide/topics/manifest/application-element.jd
index 362c205..5b3fcd5 100644
--- a/docs/html/guide/topics/manifest/application-element.jd
+++ b/docs/html/guide/topics/manifest/application-element.jd
@@ -217,6 +217,10 @@
 
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>
diff --git a/docs/html/guide/topics/manifest/category-element.jd b/docs/html/guide/topics/manifest/category-element.jd
index 50ea576..b9a1aa6 100644
--- a/docs/html/guide/topics/manifest/category-element.jd
+++ b/docs/html/guide/topics/manifest/category-element.jd
@@ -29,7 +29,11 @@
 Custom categories should use the package name as a prefix, to ensure
 that they are unique.
 </p></dd>
-</dl></dd>
+</dl></dd> 
+
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
 
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action&gt;</a></code>
diff --git a/docs/html/guide/topics/manifest/data-element.jd b/docs/html/guide/topics/manifest/data-element.jd
index 5d8fde2..b48c5e0 100644
--- a/docs/html/guide/topics/manifest/data-element.jd
+++ b/docs/html/guide/topics/manifest/data-element.jd
@@ -72,12 +72,21 @@
 <dd>The host part of a URI authority.  This attribute is meaningless
 unless a <code><a href="{@docRoot}guide/topics/manifest/data-element.html#scheme">scheme</a></code> attribute is also 
 specified for the filter.
+
+<p class="note">Note: host name matching in the Android framework is
+case-sensitive, unlike the formal RFC.  As a result, you should always specify
+host names using lowercase letters.</p>
 </dd>
 
 <dt><a name="mime"></a>{@code android:mimeType}</dt>
 <dd>A MIME media type, such as {@code image/jpeg} or {@code audio/mpeg4-generic}.  
 The subtype can be the asterisk wildcard ({@code *}) to indicate that any 
-subtype matches.</dd>
+subtype matches.
+
+<p class="note">Note: MIME type matching in the Android framework is
+case-sensitive, unlike formal RFC MIME types.  As a result, you should always
+specify MIME types using lowercase letters.</p>
+</dd>
 
 <dt><a name="path"></a>{@code android:path}
 <br/>{@code android:pathPrefix}
@@ -138,9 +147,18 @@
 If the filter has a data type set (the <code><a href="{@docRoot}guide/topics/manifest/data-element.html#mime">mimeType</a></code> 
 attribute) but no scheme, the {@code content:} and {@code file:} schemes are
 assumed.
-</p></dd>
+</p>
+
+<p class="note">Note: scheme matching in the Android framework is
+case-sensitive, unlike the RFC.  As a result, you should always specify schemes
+using lowercase letters.</p>
+</dd>
 </dl></dd>  
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/category-element.html">&lt;category&gt;</a></code></dd>
diff --git a/docs/html/guide/topics/manifest/grant-uri-permission-element.jd b/docs/html/guide/topics/manifest/grant-uri-permission-element.jd
index f5b37b5..9dafe85 100644
--- a/docs/html/guide/topics/manifest/grant-uri-permission-element.jd
+++ b/docs/html/guide/topics/manifest/grant-uri-permission-element.jd
@@ -74,6 +74,10 @@
 </p></dd>
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd>the 
 <code><a href="{@docRoot}guide/topics/manifest/provider-element.html#gprmns">grantUriPermissions</a></code>
diff --git a/docs/html/guide/topics/manifest/instrumentation-element.jd b/docs/html/guide/topics/manifest/instrumentation-element.jd
index fdec949..1fd1dd0 100644
--- a/docs/html/guide/topics/manifest/instrumentation-element.jd
+++ b/docs/html/guide/topics/manifest/instrumentation-element.jd
@@ -51,6 +51,10 @@
 There is no default.  The name must be specified.
 </p></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt><a name="trgt"></a>{@code android:targetPackage}</dt>
 <dd>The application that the Instrumentation object will run against.
 An application is identified by the package name assigned in its manifest
diff --git a/docs/html/guide/topics/manifest/intent-filter-element.jd b/docs/html/guide/topics/manifest/intent-filter-element.jd
index 58d1f91..2b1322c 100644
--- a/docs/html/guide/topics/manifest/intent-filter-element.jd
+++ b/docs/html/guide/topics/manifest/intent-filter-element.jd
@@ -122,6 +122,10 @@
 
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/action-element.html">&lt;action&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/category-element.html">&lt;category&gt;</a></code>
diff --git a/docs/html/guide/topics/manifest/manifest-element.jd b/docs/html/guide/topics/manifest/manifest-element.jd
index 0202390..a9d1090 100644
--- a/docs/html/guide/topics/manifest/manifest-element.jd
+++ b/docs/html/guide/topics/manifest/manifest-element.jd
@@ -6,6 +6,7 @@
 <dd><pre class="stx">&lt;manifest xmlns:<a href="#nspace">android</a>="http://schemas.android.com/apk/res/android"
           <a href="#package">package</a>="<i>string</i>"
           android:<a href="#uid">sharedUserId</a>="<i>string</i>"
+          android:<a href="#uidlabel">sharedUserLabel</a>="<i>string resource</i>" <!-- ##api level 3## -->
           android:<a href="#vcode">versionCode</a>="<i>integer</i>"
           android:<a href="#vname">versionName</a>="<i>string</i>" &gt;
     . . .
@@ -25,7 +26,8 @@
 <br/><code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>
+<br/><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration&gt;</a></code>  <!-- ##api level 3## -->
+<br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code></dd>
 <br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a></code></dd>
 
 <p>
@@ -64,7 +66,17 @@
 However, if this attribute is set to the same value for two or more applications, 
 they will all share the same ID &mdash; provided that they are also signed 
 by the same certificate.  Application with the same user ID can access each 
-other's data and, if desired, run in the same  process.</dd>  
+other's data and, if desired, run in the same process.</dd>
+
+<dt><a name="uidlabel"></a>{@code android:sharedUserLabel}</dt>
+<dd>A user-readable label for the shared user ID.  The label must be set as
+a reference to a string resource; it cannot be a raw string.
+
+<p>
+<!-- ##api level indication## -->
+This attribute was introduced in API Level 3.  It is meaningful only if the 
+<code><a href="#uid">sharedUserId</a></code> attribute is also set.
+</p></dd>      
 
 <dt><a name="vcode"></a>{@code android:versionCode}</dt>
 <dd>An internal version number.  This number is used only to determine whether 
@@ -88,6 +100,12 @@
 the significant version number used internally.
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1 for all attributes except for 
+<code><a href="#uidlabel">sharedUserLabel</a></code>, which was added in 
+level 3.</dd>
+
 <p>
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code></dd>
diff --git a/docs/html/guide/topics/manifest/manifest-intro.jd b/docs/html/guide/topics/manifest/manifest-intro.jd
index aa14308..1907024 100644
--- a/docs/html/guide/topics/manifest/manifest-intro.jd
+++ b/docs/html/guide/topics/manifest/manifest-intro.jd
@@ -115,6 +115,7 @@
         <a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;/provider&gt;</a>
 
         <a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library /&gt;</a>
+        <a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration /&gt;</a>  <!-- ##api level 3## -->
 
     <a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;/application&gt;</a>
 
@@ -145,6 +146,7 @@
 <br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html">&lt;provider&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html">&lt;receiver&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html">&lt;service&gt;</a></code>
+<br/><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-configuration&gt;</a></code>  <!-- ##api level 3## -->
 <br/><code><a href="{@docRoot}guide/topics/manifest/uses-library-element.html">&lt;uses-library&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">&lt;uses-sdk&gt;</a></code>
diff --git a/docs/html/guide/topics/manifest/meta-data-element.jd b/docs/html/guide/topics/manifest/meta-data-element.jd
index 1c91407..101b05a 100644
--- a/docs/html/guide/topics/manifest/meta-data-element.jd
+++ b/docs/html/guide/topics/manifest/meta-data-element.jd
@@ -87,4 +87,8 @@
 </dd>
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 </dl>
diff --git a/docs/html/guide/topics/manifest/permission-element.jd b/docs/html/guide/topics/manifest/permission-element.jd
index 6eef081..ad64d5d 100644
--- a/docs/html/guide/topics/manifest/permission-element.jd
+++ b/docs/html/guide/topics/manifest/permission-element.jd
@@ -122,6 +122,10 @@
 </dd>
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code>
diff --git a/docs/html/guide/topics/manifest/permission-group-element.jd b/docs/html/guide/topics/manifest/permission-group-element.jd
index 9cfca6e..0ad76a6 100644
--- a/docs/html/guide/topics/manifest/permission-group-element.jd
+++ b/docs/html/guide/topics/manifest/permission-group-element.jd
@@ -51,6 +51,10 @@
 attribute.</dd>
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html">&lt;permission-tree&gt;</a></code>
diff --git a/docs/html/guide/topics/manifest/permission-tree-element.jd b/docs/html/guide/topics/manifest/permission-tree-element.jd
index e2f7474..3074354 100644
--- a/docs/html/guide/topics/manifest/permission-tree-element.jd
+++ b/docs/html/guide/topics/manifest/permission-tree-element.jd
@@ -51,7 +51,10 @@
 
 </dl></dd>
 
-<p>
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html">&lt;permission-group&gt;</a></code>
diff --git a/docs/html/guide/topics/manifest/provider-element.jd b/docs/html/guide/topics/manifest/provider-element.jd
index 7359e50..2bb4ff4 100644
--- a/docs/html/guide/topics/manifest/provider-element.jd
+++ b/docs/html/guide/topics/manifest/provider-element.jd
@@ -260,7 +260,10 @@
 
 </dl></dd>
 
-<p>
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><a href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a></dd>
 
diff --git a/docs/html/guide/topics/manifest/receiver-element.jd b/docs/html/guide/topics/manifest/receiver-element.jd
index 8df6273..280d402 100644
--- a/docs/html/guide/topics/manifest/receiver-element.jd
+++ b/docs/html/guide/topics/manifest/receiver-element.jd
@@ -17,7 +17,7 @@
 <dd><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code></dd>
 
 <dt>can contain:</dt>
-<dd><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filter&gt;</a></code>
+<dd><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">&lt;intent-filer&gt;</a></code>
 <br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html">&lt;meta-data&gt;</a></code></dd>
 
 <dt>description:</dt>
@@ -47,16 +47,10 @@
 <code><a href="{@docRoot}guide/topics/manifest/application-element.html#enabled">enabled</a></code> attribute that applies to all 
 application components, including broadcast receivers.  The 
 <code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code> and
-{@code &lt;receiver&gt;} elements must both set {@code android:enabled} equal to
-"{@code true}" for the broadcast receiver to be enabled.  If either is "{@code false}",
-the receiver is disabled and cannot be instantiated.
-</p>
-
-<p>
-The default value depends on whether the broadcast receiver contains intent filters.
-If any intent filters are specified, the default value is "{@code true}".  If no
-filters are specified, the default value is "{@code false}".
-</dd>
+{@code &lt;receiver&gt;} attributes must both be "{@code true}" for 
+the broadcast receiver to be enabled.  If either is "{@code false}", it is
+disabled; it cannot be instantiated.
+</p></dd>
 
 <dt><a name="exported"></a>{@code android:exported}</dt>
 <dd>Whether or not the broadcast receiver can receive messages from sources 
@@ -123,12 +117,9 @@
 {@link android.content.BroadcastReceiver}.  This should be a fully qualified 
 class name (such as, "{@code com.example.project.ReportReceiver}").  However, 
 as a shorthand, if the first character of the name is a period (for example, 
-"{@code .ReportReceiver}"), it is appended to the package name specified in 
+"{@code . ReportReceiver}"), it is appended to the package name specified in 
 the <code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code> element.  
 
-<p>The {@link android.content.BroadcastReceiver} subclass can be a static inner
-class, although it cannot be an ordinary (non-static) inner class.
-
 <p>
 There is no default.  The name must be specified.
 </p></dd>
@@ -170,4 +161,8 @@
 </p></dd>
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 </dl>
diff --git a/docs/html/guide/topics/manifest/service-element.jd b/docs/html/guide/topics/manifest/service-element.jd
index ad65abe..e5ac7b5 100644
--- a/docs/html/guide/topics/manifest/service-element.jd
+++ b/docs/html/guide/topics/manifest/service-element.jd
@@ -173,4 +173,8 @@
 <dd><code><a href="{@docRoot}guide/topics/manifest/application-element.html">&lt;application&gt;</a></code>
 <br><code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 </dl>
diff --git a/docs/html/guide/topics/manifest/uses-configuration-element.jd b/docs/html/guide/topics/manifest/uses-configuration-element.jd
new file mode 100755
index 0000000..b26881e
--- /dev/null
+++ b/docs/html/guide/topics/manifest/uses-configuration-element.jd
@@ -0,0 +1,176 @@
+page.title=&lt;uses-configuration&gt;
+@jd:body
+
+<!-- ##api level 3##  see comment below -->
+
+<!-- the "no___" values are nonsensical if they mean "doesn't work on devices with a
+keyboard / navigation control / touch screen."  Dianne says that that's what they mean and 
+that they therefore should be eliminated.  Suchi says that they mean "doesn't require a 
+keyboard / navigation control / touch screen to work."  But then what does "undefined" mean?
+Seems like some API change is in the works, either eliminating the "no___" values or
+"undefined".  Since it's unclear what the change will be, I've chosen to document the "no___" 
+and "undefined" attributes using the same language, which is surely wrong but may make it
+easier to update the doc when the change is made. -->
+
+<dl class="xml">
+<dt>syntax:</dt>
+<dd><pre class="stx">&lt;uses-configuration android:<a href="#five">reqFiveWayNav</a>=["true" | "false"] 
+                    android:<a href="#hard">reqHardKeyboard</a>=["true" | "false"]
+                    android:<a href="#kbd">reqKeyboardType</a>=["undefined" | "nokeys" | "qwerty" |  
+                                             "twelvekey"]
+                    android:<a href="#nav">reqNavigation</a>=["undefined" | "nonav" | "dpad" | 
+                                           "trackball" | "wheel"]
+                    android:<a href="#touch">reqTouchScreen</a>=["undefined" | "notouch" | "stylus" | 
+                                            "finger"] /&gt;</pre></dd>
+
+<dt>contained in:</dt>
+<dd><code><a href="{@docRoot}guide/topics/manifest/manifest-element.html">&lt;manifest&gt;</a></code></dd>
+
+<dt>description:</dt>
+<dd>Indicates what hardware and software features the application requires.  
+For example, an application might specify that it requires a physical keyboard 
+or a particular navigation device, like a trackball.  The specification is
+used to avoid installing the application on devices where it will not work.
+
+<p>
+If an application can work with different device configurations, it 
+should include separate {@code &lt;uses-configuration&gt;} declarations for 
+each one.  Each declaration must be complete.  For example, if an application 
+requires a five-way navigation control, a touch screen that can be operated 
+with a finger, and either a standard QWERTY keyboard or a numeric 12-key
+keypad like those found on most phones, it would specify these requirements
+with two {@code &lt;uses-configuration&gt;} elements as follows:
+</p>
+
+<pre>&lt;uses-configuration android:reqFiveWayNav="true" android:reqTouchScreen="finger"
+                    android:reqKeyboardType="qwerty" /&gt;
+&lt;uses-configuration android:reqFiveWayNav="true" android:reqTouchScreen="finger"
+                    android:reqKeyboardType="twelvekey" /&gt;</pre></dd>
+
+<dt>attributes:</dt>
+<dd><dl class="attr">
+<dt><a name="five"></a>{@code android:reqFiveWayNav}</dt>
+<dd>Whether or not the application requires a five-way navigation control 
+&mdash; "{@code true}" if it does, and "{@code false}" if not.  A five-way
+control is one that can move the selection up, down, right, or left, and 
+also provides a way of invoking the current selection.  It could be a 
+D-pad (directional pad), trackball, or other device.  
+
+<p>
+If an application requires a directional control, but not a control of a
+particular type, it can set this attribute to "{@code true}" and ignore 
+the <code><a href="#nav">reqNavigation</a></code> attribute.  However,
+if it requires a particular type of directional control, it can ignore
+this attribute and set {@code reqNavigation} instead.
+</p></dd>
+
+<dt><a name="hard"></a>{@code android:reqHardKeyboard}</dt>
+<dd>Whether or not the application requires a hardware keyboard &mdash;
+"{@code true}" if it does, and "{@code false}" if not.</dd>
+
+<dt><a name="kbd"></a>{@code android:reqKeyboardType}</dt>
+<dd>The type of keyboard the application requires, if any at all. 
+This attribute does not distinguish between hardware and software 
+keyboards.  If a hardware keyboard of a certain type is required,
+specify the type here and also set the {@code reqHardKeyboard} attribute 
+to "{@code true}".
+
+<p>
+The value must be one of the following strings:
+</p>
+
+<table>
+<tr>
+   <th>Value</th>
+   <th>Description</th>
+</tr><tr>
+   <td>"{@code undefined}"</td>
+   <td>The application does not require a keyboard. 
+       (A keyboard requirement is not defined.)  
+       This is the default value.</td>
+</tr><tr>
+   <td>"{@code nokeys}"</td>
+   <td>The application does not require a keyboard.</td>
+</tr><tr>
+   <td>"{@code qwerty}"</td>
+   <td>The application requires a standard QWERTY keyboard.</td>
+</tr><tr>
+   <td>"{@code twelvekey}"</td>
+   <td>The application requires a twelve-key keypad, like those on most 
+       phones &mdash; with keys for the digits from {@code 0} through 
+       {@code 9} plus star ({@code *}) and pound ({@code #}) keys.</td>
+</tr>
+</table></dd>
+
+<dt><a name="nav"></a>{@code android:reqNavigation}</dt>
+<dd>The navigation device required by the application, if any.  The value 
+must be one of the following strings:
+
+<table>
+<tr>
+   <th>Value</th>
+   <th>Description</th>
+</tr><tr>
+   <td>"{@code undefined}"</td>
+   <td>The application does not require any type of navigation control. 
+       (The navigation requirement is not defined.)  
+       This is the default value.</td>
+</tr><tr>
+   <td>"{@code nonav}"</td>
+   <td>The application does not require a navigation control.</td>
+</tr><tr>
+   <td>"{@code dpad}"</td>
+   <td>The application requires a D-pad (directional pad) for navigation.</td>
+</tr><tr>
+   <td>"{@code trackball}"</td>
+   <td>The application requires a trackball for navigation.</td>
+</tr><tr>
+   <td>"{@code wheel}"</td>
+   <td>The application requires a navigation wheel.</td>
+</tr>
+</table>
+
+<p>
+If an application requires a navigational control, but the exact type of
+control doesn't matter, it can set the 
+<code><a href="#five">reqFiveWayNav</a></code> attribute to "{@code true}"
+rather than set this one.
+</p></dd>
+
+<dt><a name="touch"></a>{@code android:reqTouchScreen}</dt>
+<dd>The type of touch screen the application requires, if any at all.
+The value must be one of the following strings: 
+
+<table>
+<tr>
+   <th>Value</th>
+   <th>Description</th>
+</tr><tr>
+   <td>"{@code undefined}"</td>
+   <td>The application doesn't require a touch screen.  
+       (The touch screen requirement is undefined.)
+       This is the default value.</td>
+</tr><tr>
+   <td>"{@code notouch}"</td>
+   <td>The application doesn't require a touch screen.</td>
+</tr><tr>
+   <td>"{@code stylus}"</td>
+   <td>The application requires a touch screen that's operated with a stylus.</td>
+</tr><tr>
+   <td>"{@code finger}"</td>
+   <td>The application requires a touch screen that can be operated with a finger.</td>
+</tr>
+</table></dd>
+</dl></dd>
+
+<!-- ##api level 3## -->
+<dt>introduced in:</dt>
+<dd>API Level 3</dd>
+
+<dt>see also:</dt>
+<dd><code><a href="{@docRoot}guide/topics/manifest/activity-element.html#config">configChanges</a></code>
+attribute of the
+<code><a href="{@docRoot}guide/topics/manifest/activity-element.html">&lt;activity&gt;</a></code> 
+element</dd>
+
+</dl>
diff --git a/docs/html/guide/topics/manifest/uses-library-element.jd b/docs/html/guide/topics/manifest/uses-library-element.jd
index d66da2c..f1b5e70 100644
--- a/docs/html/guide/topics/manifest/uses-library-element.jd
+++ b/docs/html/guide/topics/manifest/uses-library-element.jd
@@ -29,4 +29,8 @@
 <dd>The name of the library.</dd>
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 </dl>
diff --git a/docs/html/guide/topics/manifest/uses-permission-element.jd b/docs/html/guide/topics/manifest/uses-permission-element.jd
index 07741b1..aec765c 100644
--- a/docs/html/guide/topics/manifest/uses-permission-element.jd
+++ b/docs/html/guide/topics/manifest/uses-permission-element.jd
@@ -33,6 +33,10 @@
 
 </dl></dd>
 
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
 <dt>see also:</dt>
 <dd><code><a href="{@docRoot}guide/topics/manifest/permission-element.html">&lt;permission&gt;</a></code></dd>
 
diff --git a/docs/html/guide/topics/manifest/uses-sdk-element.jd b/docs/html/guide/topics/manifest/uses-sdk-element.jd
index e62af68..b6e7374 100644
--- a/docs/html/guide/topics/manifest/uses-sdk-element.jd
+++ b/docs/html/guide/topics/manifest/uses-sdk-element.jd
@@ -58,4 +58,8 @@
 
 </dl></dd>
 
-</dl>
\ No newline at end of file
+<!-- ##api level indication## -->
+<dt>introduced in:</dt>
+<dd>API Level 1</dd>
+
+</dl>