AI 145778: Manual merge changes 145382-145384 from cupcake.

Automated import of CL 145778
diff --git a/api/3.xml b/api/3.xml
index e15efd0..281cd44 100644
--- a/api/3.xml
+++ b/api/3.xml
@@ -27950,6 +27950,17 @@
  visibility="public"
 >
 </field>
+<field name="ACTION_INPUT_METHOD_CHANGED"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.action.INPUT_METHOD_CHANGED&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="ACTION_INSERT"
  type="java.lang.String"
  transient="false"
@@ -36662,6 +36673,23 @@
 <exception name="Resources.NotFoundException" type="android.content.res.Resources.NotFoundException">
 </exception>
 </method>
+<method name="openRawResource"
+ return="java.io.InputStream"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="id" type="int">
+</parameter>
+<parameter name="value" type="android.util.TypedValue">
+</parameter>
+<exception name="Resources.NotFoundException" type="android.content.res.Resources.NotFoundException">
+</exception>
+</method>
 <method name="openRawResourceFd"
  return="android.content.res.AssetFileDescriptor"
  abstract="false"
@@ -60555,6 +60583,17 @@
  visibility="public"
 >
 </method>
+<method name="isProximityCorrectionEnabled"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="isShifted"
  return="boolean"
  abstract="false"
@@ -60717,6 +60756,19 @@
 <parameter name="previewEnabled" type="boolean">
 </parameter>
 </method>
+<method name="setProximityCorrectionEnabled"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="enabled" type="boolean">
+</parameter>
+</method>
 <method name="setShifted"
  return="boolean"
  abstract="false"
@@ -67477,6 +67529,17 @@
 <parameter name="context" type="android.content.Context">
 </parameter>
 </method>
+<method name="inferStreamType"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="isDefault"
  return="boolean"
  abstract="false"
@@ -78380,6 +78443,17 @@
  visibility="public"
 >
 </method>
+<method name="getThread"
+ return="java.lang.Thread"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="loop"
  return="void"
  abstract="false"
@@ -88523,6 +88597,17 @@
  visibility="public"
 >
 </field>
+<field name="NUMBER_OF_SONGS_FOR_ARTIST"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;numsongs_by_artist&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 </interface>
 <class name="MediaStore.Audio.Albums"
  extends="java.lang.Object"
@@ -91205,6 +91290,17 @@
  visibility="public"
 >
 </field>
+<field name="BACKGROUND_DATA"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;background_data&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="BLUETOOTH_ON"
  type="java.lang.String"
  transient="false"
@@ -91402,6 +91498,28 @@
  visibility="public"
 >
 </field>
+<field name="WIFI_MAX_DHCP_RETRY_COUNT"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;wifi_max_dhcp_retry_count&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;wifi_mobile_data_transition_wakelock_timeout_ms&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON"
  type="java.lang.String"
  transient="false"
@@ -91567,6 +91685,17 @@
  visibility="public"
 >
 </field>
+<field name="WIFI_WATCHDOG_WATCH_LIST"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;wifi_watchdog_watch_list&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 </class>
 <class name="Settings.SettingNotFoundException"
  extends="android.util.AndroidException"
@@ -92692,6 +92821,50 @@
  visibility="public"
 >
 </field>
+<field name="WIFI_SLEEP_POLICY"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;wifi_sleep_policy&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="WIFI_SLEEP_POLICY_DEFAULT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="0"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="WIFI_SLEEP_POLICY_NEVER"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="2"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="1"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="WIFI_STATIC_DNS1"
  type="java.lang.String"
  transient="false"
@@ -95055,6 +95228,17 @@
 <parameter name="events" type="int">
 </parameter>
 </method>
+<field name="ACTION_PHONE_STATE_CHANGED"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.action.PHONE_STATE&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="CALL_STATE_IDLE"
  type="int"
  transient="false"
@@ -95176,6 +95360,58 @@
  visibility="public"
 >
 </field>
+<field name="EXTRA_INCOMING_NUMBER"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;incoming_number&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="EXTRA_STATE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;state&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="EXTRA_STATE_IDLE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="EXTRA_STATE_OFFHOOK"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="EXTRA_STATE_RINGING"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="NETWORK_TYPE_EDGE"
  type="int"
  transient="false"
@@ -97996,6 +98232,89 @@
 </exception>
 </method>
 </class>
+<class name="ProviderTestCase2"
+ extends="android.test.AndroidTestCase"
+ abstract="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="ProviderTestCase2"
+ type="android.test.ProviderTestCase2"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="providerClass" type="java.lang.Class&lt;T&gt;">
+</parameter>
+<parameter name="providerAuthority" type="java.lang.String">
+</parameter>
+</constructor>
+<method name="getMockContentResolver"
+ return="android.test.mock.MockContentResolver"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getMockContext"
+ return="android.test.IsolatedContext"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getProvider"
+ return="T"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="newResolverWithContentProviderFromSql"
+ return="android.content.ContentResolver"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="targetContext" type="android.content.Context">
+</parameter>
+<parameter name="filenamePrefix" type="java.lang.String">
+</parameter>
+<parameter name="providerClass" type="java.lang.Class&lt;T&gt;">
+</parameter>
+<parameter name="authority" type="java.lang.String">
+</parameter>
+<parameter name="databaseName" type="java.lang.String">
+</parameter>
+<parameter name="databaseVersion" type="int">
+</parameter>
+<parameter name="sql" type="java.lang.String">
+</parameter>
+<exception name="IllegalAccessException" type="java.lang.IllegalAccessException">
+</exception>
+<exception name="InstantiationException" type="java.lang.InstantiationException">
+</exception>
+</method>
+</class>
 <class name="RenamingDelegatingContext"
  extends="android.content.ContextWrapper"
  abstract="false"
@@ -119790,17 +120109,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_FORWARD"
- type="int"
- transient="false"
- volatile="false"
- value="90"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_G"
  type="int"
  transient="false"
@@ -119922,6 +120230,72 @@
  visibility="public"
 >
 </field>
+<field name="KEYCODE_MEDIA_FAST_FORWARD"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="90"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_NEXT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="87"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_PLAY_PAUSE"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="85"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_PREVIOUS"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="88"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_REWIND"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="89"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_STOP"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="86"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="KEYCODE_MENU"
  type="int"
  transient="false"
@@ -119966,17 +120340,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_NEXTSONG"
- type="int"
- transient="false"
- volatile="false"
- value="87"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_NOTIFICATION"
  type="int"
  transient="false"
@@ -120032,17 +120395,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_PLAYPAUSE"
- type="int"
- transient="false"
- volatile="false"
- value="85"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_PLUS"
  type="int"
  transient="false"
@@ -120076,17 +120428,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_PREVIOUSSONG"
- type="int"
- transient="false"
- volatile="false"
- value="88"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_Q"
  type="int"
  transient="false"
@@ -120109,17 +120450,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_REWIND"
- type="int"
- transient="false"
- volatile="false"
- value="89"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_RIGHT_BRACKET"
  type="int"
  transient="false"
@@ -120241,17 +120571,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_STOP"
- type="int"
- transient="false"
- volatile="false"
- value="86"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_SYM"
  type="int"
  transient="false"
@@ -122772,7 +123091,7 @@
 <method name="setOrientation"
  return="void"
  abstract="false"
- native="true"
+ native="false"
  synchronized="false"
  static="true"
  final="false"
@@ -127779,6 +128098,17 @@
 <parameter name="context" type="android.content.Context">
 </parameter>
 </method>
+<method name="getDoubleTapTimeout"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getEdgeSlop"
  return="int"
  abstract="false"
@@ -127867,6 +128197,17 @@
  visibility="public"
 >
 </method>
+<method name="getScaledDoubleTapSlop"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getScaledEdgeSlop"
  return="int"
  abstract="false"
@@ -128027,6 +128368,21 @@
  visibility="public"
 >
 </constructor>
+<method name="dumpCapturedView"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="tag" type="java.lang.String">
+</parameter>
+<parameter name="view" type="java.lang.Object">
+</parameter>
+</method>
 <method name="startHierarchyTracing"
  return="void"
  abstract="false"
@@ -128134,6 +128490,17 @@
 >
 </field>
 </class>
+<class name="ViewDebug.CapturedViewProperty"
+ extends="java.lang.Object"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.lang.annotation.Annotation">
+</implements>
+</class>
 <class name="ViewDebug.ExportedProperty"
  extends="java.lang.Object"
  abstract="true"
@@ -130327,6 +130694,19 @@
 <parameter name="listener" type="android.view.ViewTreeObserver.OnPreDrawListener">
 </parameter>
 </method>
+<method name="addOnScrollChangedListener"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="listener" type="android.view.ViewTreeObserver.OnScrollChangedListener">
+</parameter>
+</method>
 <method name="addOnTouchModeChangeListener"
  return="void"
  abstract="false"
@@ -130412,6 +130792,19 @@
 <parameter name="victim" type="android.view.ViewTreeObserver.OnPreDrawListener">
 </parameter>
 </method>
+<method name="removeOnScrollChangedListener"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="victim" type="android.view.ViewTreeObserver.OnScrollChangedListener">
+</parameter>
+</method>
 <method name="removeOnTouchModeChangeListener"
  return="void"
  abstract="false"
@@ -130487,6 +130880,25 @@
 >
 </method>
 </interface>
+<interface name="ViewTreeObserver.OnScrollChangedListener"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="onScrollChanged"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</interface>
 <interface name="ViewTreeObserver.OnTouchModeChangeListener"
  abstract="true"
  static="true"
@@ -140184,6 +140596,17 @@
  visibility="public"
 >
 </method>
+<method name="getOriginalUrl"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getTitle"
  return="java.lang.String"
  abstract="false"
@@ -141761,6 +142184,17 @@
 <parameter name="realm" type="java.lang.String">
 </parameter>
 </method>
+<method name="getOriginalUrl"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getPluginList"
  return="android.webkit.PluginList"
  abstract="false"
@@ -142257,6 +142691,19 @@
 <parameter name="setMap" type="boolean">
 </parameter>
 </method>
+<method name="setNetworkAvailable"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="networkUp" type="boolean">
+</parameter>
+</method>
 <method name="setPictureListener"
  return="void"
  abstract="false"
@@ -143070,6 +143517,17 @@
  visibility="public"
 >
 </method>
+<method name="getTextFilter"
+ return="java.lang.CharSequence"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getTranscriptMode"
  return="int"
  abstract="false"
@@ -144778,6 +145236,126 @@
 </parameter>
 </method>
 </interface>
+<class name="AlphabetIndexer"
+ extends="android.database.DataSetObserver"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="android.widget.SectionIndexer">
+</implements>
+<constructor name="AlphabetIndexer"
+ type="android.widget.AlphabetIndexer"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="cursor" type="android.database.Cursor">
+</parameter>
+<parameter name="sortedColumnIndex" type="int">
+</parameter>
+<parameter name="alphabet" type="java.lang.CharSequence">
+</parameter>
+</constructor>
+<method name="compare"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+<parameter name="word" type="java.lang.String">
+</parameter>
+<parameter name="letter" type="java.lang.String">
+</parameter>
+</method>
+<method name="getPositionForSection"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sectionIndex" type="int">
+</parameter>
+</method>
+<method name="getSectionForPosition"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="position" type="int">
+</parameter>
+</method>
+<method name="getSections"
+ return="java.lang.Object[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="setCursor"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="cursor" type="android.database.Cursor">
+</parameter>
+</method>
+<field name="mAlphabet"
+ type="java.lang.CharSequence"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</field>
+<field name="mColumnIndex"
+ type="int"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</field>
+<field name="mDataCursor"
+ type="android.database.Cursor"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</field>
+</class>
 <class name="AnalogClock"
  extends="android.view.View"
  abstract="false"
@@ -146652,6 +147230,17 @@
 <parameter name="parent" type="android.view.ViewGroup">
 </parameter>
 </method>
+<method name="onContentChanged"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</method>
 <method name="runQueryOnBackgroundThread"
  return="android.database.Cursor"
  abstract="false"
@@ -152025,6 +152614,27 @@
  deprecated="not deprecated"
  visibility="public"
 >
+<parameter name="x" type="int">
+</parameter>
+<parameter name="y" type="int">
+</parameter>
+<parameter name="width" type="int">
+</parameter>
+<parameter name="height" type="int">
+</parameter>
+<parameter name="force" type="boolean">
+</parameter>
+</method>
+<method name="update"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
 <parameter name="anchor" type="android.view.View">
 </parameter>
 <parameter name="width" type="int">
@@ -153753,6 +154363,22 @@
 <parameter name="c" type="android.database.Cursor">
 </parameter>
 </constructor>
+<constructor name="ResourceCursorAdapter"
+ type="android.widget.ResourceCursorAdapter"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="context" type="android.content.Context">
+</parameter>
+<parameter name="layout" type="int">
+</parameter>
+<parameter name="c" type="android.database.Cursor">
+</parameter>
+<parameter name="autoRequery" type="boolean">
+</parameter>
+</constructor>
 <method name="newView"
  return="android.view.View"
  abstract="false"
@@ -154270,6 +154896,28 @@
  visibility="public"
 >
 </method>
+<method name="getStartX"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getStartY"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="isFinished"
  return="boolean"
  abstract="false"
diff --git a/api/current.xml b/api/current.xml
index b8d40bf..4fbb581 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -28038,6 +28038,17 @@
  visibility="public"
 >
 </field>
+<field name="ACTION_INPUT_METHOD_CHANGED"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.action.INPUT_METHOD_CHANGED&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="ACTION_INSERT"
  type="java.lang.String"
  transient="false"
@@ -36750,6 +36761,23 @@
 <exception name="Resources.NotFoundException" type="android.content.res.Resources.NotFoundException">
 </exception>
 </method>
+<method name="openRawResource"
+ return="java.io.InputStream"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="id" type="int">
+</parameter>
+<parameter name="value" type="android.util.TypedValue">
+</parameter>
+<exception name="Resources.NotFoundException" type="android.content.res.Resources.NotFoundException">
+</exception>
+</method>
 <method name="openRawResourceFd"
  return="android.content.res.AssetFileDescriptor"
  abstract="false"
@@ -60643,6 +60671,17 @@
  visibility="public"
 >
 </method>
+<method name="isProximityCorrectionEnabled"
+ return="boolean"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="isShifted"
  return="boolean"
  abstract="false"
@@ -60805,6 +60844,19 @@
 <parameter name="previewEnabled" type="boolean">
 </parameter>
 </method>
+<method name="setProximityCorrectionEnabled"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="enabled" type="boolean">
+</parameter>
+</method>
 <method name="setShifted"
  return="boolean"
  abstract="false"
@@ -67565,6 +67617,17 @@
 <parameter name="context" type="android.content.Context">
 </parameter>
 </method>
+<method name="inferStreamType"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="isDefault"
  return="boolean"
  abstract="false"
@@ -78468,6 +78531,17 @@
  visibility="public"
 >
 </method>
+<method name="getThread"
+ return="java.lang.Thread"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="loop"
  return="void"
  abstract="false"
@@ -88611,6 +88685,17 @@
  visibility="public"
 >
 </field>
+<field name="NUMBER_OF_SONGS_FOR_ARTIST"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;numsongs_by_artist&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 </interface>
 <class name="MediaStore.Audio.Albums"
  extends="java.lang.Object"
@@ -91293,6 +91378,17 @@
  visibility="public"
 >
 </field>
+<field name="BACKGROUND_DATA"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;background_data&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="BLUETOOTH_ON"
  type="java.lang.String"
  transient="false"
@@ -91490,6 +91586,28 @@
  visibility="public"
 >
 </field>
+<field name="WIFI_MAX_DHCP_RETRY_COUNT"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;wifi_max_dhcp_retry_count&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;wifi_mobile_data_transition_wakelock_timeout_ms&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON"
  type="java.lang.String"
  transient="false"
@@ -91655,6 +91773,17 @@
  visibility="public"
 >
 </field>
+<field name="WIFI_WATCHDOG_WATCH_LIST"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;wifi_watchdog_watch_list&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 </class>
 <class name="Settings.SettingNotFoundException"
  extends="android.util.AndroidException"
@@ -92780,6 +92909,50 @@
  visibility="public"
 >
 </field>
+<field name="WIFI_SLEEP_POLICY"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;wifi_sleep_policy&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="WIFI_SLEEP_POLICY_DEFAULT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="0"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="WIFI_SLEEP_POLICY_NEVER"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="2"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="1"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="WIFI_STATIC_DNS1"
  type="java.lang.String"
  transient="false"
@@ -95143,6 +95316,17 @@
 <parameter name="events" type="int">
 </parameter>
 </method>
+<field name="ACTION_PHONE_STATE_CHANGED"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.action.PHONE_STATE&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="CALL_STATE_IDLE"
  type="int"
  transient="false"
@@ -95264,6 +95448,58 @@
  visibility="public"
 >
 </field>
+<field name="EXTRA_INCOMING_NUMBER"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;incoming_number&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="EXTRA_STATE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;state&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="EXTRA_STATE_IDLE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="EXTRA_STATE_OFFHOOK"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="EXTRA_STATE_RINGING"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="NETWORK_TYPE_EDGE"
  type="int"
  transient="false"
@@ -98084,6 +98320,89 @@
 </exception>
 </method>
 </class>
+<class name="ProviderTestCase2"
+ extends="android.test.AndroidTestCase"
+ abstract="true"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<constructor name="ProviderTestCase2"
+ type="android.test.ProviderTestCase2"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="providerClass" type="java.lang.Class&lt;T&gt;">
+</parameter>
+<parameter name="providerAuthority" type="java.lang.String">
+</parameter>
+</constructor>
+<method name="getMockContentResolver"
+ return="android.test.mock.MockContentResolver"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getMockContext"
+ return="android.test.IsolatedContext"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getProvider"
+ return="T"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="newResolverWithContentProviderFromSql"
+ return="android.content.ContentResolver"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="targetContext" type="android.content.Context">
+</parameter>
+<parameter name="filenamePrefix" type="java.lang.String">
+</parameter>
+<parameter name="providerClass" type="java.lang.Class&lt;T&gt;">
+</parameter>
+<parameter name="authority" type="java.lang.String">
+</parameter>
+<parameter name="databaseName" type="java.lang.String">
+</parameter>
+<parameter name="databaseVersion" type="int">
+</parameter>
+<parameter name="sql" type="java.lang.String">
+</parameter>
+<exception name="IllegalAccessException" type="java.lang.IllegalAccessException">
+</exception>
+<exception name="InstantiationException" type="java.lang.InstantiationException">
+</exception>
+</method>
+</class>
 <class name="RenamingDelegatingContext"
  extends="android.content.ContextWrapper"
  abstract="false"
@@ -119878,17 +120197,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_FORWARD"
- type="int"
- transient="false"
- volatile="false"
- value="90"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_G"
  type="int"
  transient="false"
@@ -120010,6 +120318,72 @@
  visibility="public"
 >
 </field>
+<field name="KEYCODE_MEDIA_FAST_FORWARD"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="90"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_NEXT"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="87"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_PLAY_PAUSE"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="85"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_PREVIOUS"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="88"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_REWIND"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="89"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="KEYCODE_MEDIA_STOP"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="86"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="KEYCODE_MENU"
  type="int"
  transient="false"
@@ -120054,17 +120428,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_NEXTSONG"
- type="int"
- transient="false"
- volatile="false"
- value="87"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_NOTIFICATION"
  type="int"
  transient="false"
@@ -120120,17 +120483,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_PLAYPAUSE"
- type="int"
- transient="false"
- volatile="false"
- value="85"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_PLUS"
  type="int"
  transient="false"
@@ -120164,17 +120516,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_PREVIOUSSONG"
- type="int"
- transient="false"
- volatile="false"
- value="88"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_Q"
  type="int"
  transient="false"
@@ -120197,17 +120538,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_REWIND"
- type="int"
- transient="false"
- volatile="false"
- value="89"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_RIGHT_BRACKET"
  type="int"
  transient="false"
@@ -120329,17 +120659,6 @@
  visibility="public"
 >
 </field>
-<field name="KEYCODE_STOP"
- type="int"
- transient="false"
- volatile="false"
- value="86"
- static="true"
- final="true"
- deprecated="not deprecated"
- visibility="public"
->
-</field>
 <field name="KEYCODE_SYM"
  type="int"
  transient="false"
@@ -127867,6 +128186,17 @@
 <parameter name="context" type="android.content.Context">
 </parameter>
 </method>
+<method name="getDoubleTapTimeout"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getEdgeSlop"
  return="int"
  abstract="false"
@@ -127955,6 +128285,17 @@
  visibility="public"
 >
 </method>
+<method name="getScaledDoubleTapSlop"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getScaledEdgeSlop"
  return="int"
  abstract="false"
@@ -128115,6 +128456,21 @@
  visibility="public"
 >
 </constructor>
+<method name="dumpCapturedView"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="tag" type="java.lang.String">
+</parameter>
+<parameter name="view" type="java.lang.Object">
+</parameter>
+</method>
 <method name="startHierarchyTracing"
  return="void"
  abstract="false"
@@ -128222,6 +128578,17 @@
 >
 </field>
 </class>
+<class name="ViewDebug.CapturedViewProperty"
+ extends="java.lang.Object"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="java.lang.annotation.Annotation">
+</implements>
+</class>
 <class name="ViewDebug.ExportedProperty"
  extends="java.lang.Object"
  abstract="true"
@@ -130415,6 +130782,19 @@
 <parameter name="listener" type="android.view.ViewTreeObserver.OnPreDrawListener">
 </parameter>
 </method>
+<method name="addOnScrollChangedListener"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="listener" type="android.view.ViewTreeObserver.OnScrollChangedListener">
+</parameter>
+</method>
 <method name="addOnTouchModeChangeListener"
  return="void"
  abstract="false"
@@ -130500,6 +130880,19 @@
 <parameter name="victim" type="android.view.ViewTreeObserver.OnPreDrawListener">
 </parameter>
 </method>
+<method name="removeOnScrollChangedListener"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="victim" type="android.view.ViewTreeObserver.OnScrollChangedListener">
+</parameter>
+</method>
 <method name="removeOnTouchModeChangeListener"
  return="void"
  abstract="false"
@@ -130575,6 +130968,25 @@
 >
 </method>
 </interface>
+<interface name="ViewTreeObserver.OnScrollChangedListener"
+ abstract="true"
+ static="true"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<method name="onScrollChanged"
+ return="void"
+ abstract="true"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+</interface>
 <interface name="ViewTreeObserver.OnTouchModeChangeListener"
  abstract="true"
  static="true"
@@ -140490,6 +140902,17 @@
  visibility="public"
 >
 </method>
+<method name="getOriginalUrl"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getTitle"
  return="java.lang.String"
  abstract="false"
@@ -142067,6 +142490,17 @@
 <parameter name="realm" type="java.lang.String">
 </parameter>
 </method>
+<method name="getOriginalUrl"
+ return="java.lang.String"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getPluginList"
  return="android.webkit.PluginList"
  abstract="false"
@@ -142563,6 +142997,19 @@
 <parameter name="setMap" type="boolean">
 </parameter>
 </method>
+<method name="setNetworkAvailable"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="networkUp" type="boolean">
+</parameter>
+</method>
 <method name="setPictureListener"
  return="void"
  abstract="false"
@@ -143376,6 +143823,17 @@
  visibility="public"
 >
 </method>
+<method name="getTextFilter"
+ return="java.lang.CharSequence"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="getTranscriptMode"
  return="int"
  abstract="false"
@@ -145084,6 +145542,126 @@
 </parameter>
 </method>
 </interface>
+<class name="AlphabetIndexer"
+ extends="android.database.DataSetObserver"
+ abstract="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<implements name="android.widget.SectionIndexer">
+</implements>
+<constructor name="AlphabetIndexer"
+ type="android.widget.AlphabetIndexer"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="cursor" type="android.database.Cursor">
+</parameter>
+<parameter name="sortedColumnIndex" type="int">
+</parameter>
+<parameter name="alphabet" type="java.lang.CharSequence">
+</parameter>
+</constructor>
+<method name="compare"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+<parameter name="word" type="java.lang.String">
+</parameter>
+<parameter name="letter" type="java.lang.String">
+</parameter>
+</method>
+<method name="getPositionForSection"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="sectionIndex" type="int">
+</parameter>
+</method>
+<method name="getSectionForPosition"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="position" type="int">
+</parameter>
+</method>
+<method name="getSections"
+ return="java.lang.Object[]"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="setCursor"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="cursor" type="android.database.Cursor">
+</parameter>
+</method>
+<field name="mAlphabet"
+ type="java.lang.CharSequence"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</field>
+<field name="mColumnIndex"
+ type="int"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</field>
+<field name="mDataCursor"
+ type="android.database.Cursor"
+ transient="false"
+ volatile="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</field>
+</class>
 <class name="AnalogClock"
  extends="android.view.View"
  abstract="false"
@@ -146958,6 +147536,17 @@
 <parameter name="parent" type="android.view.ViewGroup">
 </parameter>
 </method>
+<method name="onContentChanged"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="protected"
+>
+</method>
 <method name="runQueryOnBackgroundThread"
  return="android.database.Cursor"
  abstract="false"
@@ -152342,6 +152931,27 @@
  deprecated="not deprecated"
  visibility="public"
 >
+<parameter name="x" type="int">
+</parameter>
+<parameter name="y" type="int">
+</parameter>
+<parameter name="width" type="int">
+</parameter>
+<parameter name="height" type="int">
+</parameter>
+<parameter name="force" type="boolean">
+</parameter>
+</method>
+<method name="update"
+ return="void"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
 <parameter name="anchor" type="android.view.View">
 </parameter>
 <parameter name="width" type="int">
@@ -154070,6 +154680,22 @@
 <parameter name="c" type="android.database.Cursor">
 </parameter>
 </constructor>
+<constructor name="ResourceCursorAdapter"
+ type="android.widget.ResourceCursorAdapter"
+ static="false"
+ final="false"
+ deprecated="not deprecated"
+ visibility="public"
+>
+<parameter name="context" type="android.content.Context">
+</parameter>
+<parameter name="layout" type="int">
+</parameter>
+<parameter name="c" type="android.database.Cursor">
+</parameter>
+<parameter name="autoRequery" type="boolean">
+</parameter>
+</constructor>
 <method name="newView"
  return="android.view.View"
  abstract="false"
@@ -154587,6 +155213,28 @@
  visibility="public"
 >
 </method>
+<method name="getStartX"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
+<method name="getStartY"
+ return="int"
+ abstract="false"
+ native="false"
+ synchronized="false"
+ static="false"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</method>
 <method name="isFinished"
  return="boolean"
  abstract="false"
diff --git a/core/java/android/app/AlertDialog.java b/core/java/android/app/AlertDialog.java
index 021dc2e..20a579a 100644
--- a/core/java/android/app/AlertDialog.java
+++ b/core/java/android/app/AlertDialog.java
@@ -738,7 +738,10 @@
          * @return This Builder object to allow for chaining of calls to set
          *         methods
          *         
-         * @hide pending API review
+         * 
+         * This is currently hidden because it seems like people should just
+         * be able to put padding around the view.
+         * @hide
          */
         public Builder setView(View view, int viewSpacingLeft, int viewSpacingTop,
                 int viewSpacingRight, int viewSpacingBottom) {
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 429c060..2b6cded 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -1407,7 +1407,6 @@
 
     /**
      * Broadcast Action: An input method has been changed.
-     * {@hide pending API Council approval}
      */
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_INPUT_METHOD_CHANGED =
diff --git a/core/java/android/content/res/Configuration.java b/core/java/android/content/res/Configuration.java
index 7e4b7ac..956b15a 100644
--- a/core/java/android/content/res/Configuration.java
+++ b/core/java/android/content/res/Configuration.java
@@ -35,8 +35,9 @@
     public Locale locale;
 
     /**
-     * Locale should persist on setting
-     * @hide pending API council approval
+     * Locale should persist on setting.  This is hidden because it is really
+     * questionable whether this is the right way to expose the functionality.
+     * @hide
      */
     public boolean userSetLocale;
 
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index 1a963f6..e020462 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -756,7 +756,7 @@
 
     /**
      * Open a data stream for reading a raw resource.  This can only be used
-     * with resources whose value is the name of an asset files -- that is, it can be
+     * with resources whose value is the name of an asset file -- that is, it can be
      * used to open drawable, sound, and raw resources; it will fail on string
      * and color resources.
      *
@@ -766,8 +766,6 @@
      * @return InputStream Access to the resource data.
      *
      * @throws NotFoundException Throws NotFoundException if the given ID does not exist.
-     *
-     * @hide Pending API council approval
      */
     public InputStream openRawResource(int id, TypedValue value) throws NotFoundException {
         getValue(id, value, true);
diff --git a/core/java/android/database/AbstractCursor.java b/core/java/android/database/AbstractCursor.java
index 76f0860..038eedf 100644
--- a/core/java/android/database/AbstractCursor.java
+++ b/core/java/android/database/AbstractCursor.java
@@ -463,14 +463,16 @@
     }
     
     /**
-     * @hide pending API council approval
+     * This is hidden until the data set change model has been re-evaluated.
+     * @hide
      */
     protected void notifyDataSetChange() {
         mDataSetObservable.notifyChanged();
     }
     
     /**
-     * @hide pending API council approval
+     * This is hidden until the data set change model has been re-evaluated.
+     * @hide
      */
     protected DataSetObservable getDataSetObservable() {
         return mDataSetObservable;
diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java
index 2af080a..7d331dc 100644
--- a/core/java/android/database/sqlite/SQLiteDatabase.java
+++ b/core/java/android/database/sqlite/SQLiteDatabase.java
@@ -1143,7 +1143,10 @@
      * @param initialRead set the initial count of items to read from the cursor
      * @param maxRead set the count of items to read on each iteration after the first
      * @return A {@link Cursor} object, which is positioned before the first entry
-     * @hide pending API council approval
+     * 
+     * This work is incomplete and not fully tested or reviewed, so currently
+     * hidden.
+     * @hide
      */
     public Cursor rawQuery(String sql, String[] selectionArgs, 
             int initialRead, int maxRead) {
diff --git a/core/java/android/database/sqlite/SQLiteQuery.java b/core/java/android/database/sqlite/SQLiteQuery.java
index 1386a0d..cdd9f86 100644
--- a/core/java/android/database/sqlite/SQLiteQuery.java
+++ b/core/java/android/database/sqlite/SQLiteQuery.java
@@ -131,7 +131,6 @@
         }
     }
     
-    /** {@hide pending API Council approval} */
     @Override
     public String toString() {
         return "SQLiteQuery: " + mQuery;
diff --git a/core/java/android/inputmethodservice/KeyboardView.java b/core/java/android/inputmethodservice/KeyboardView.java
index 9b8b5db..65c9893 100755
--- a/core/java/android/inputmethodservice/KeyboardView.java
+++ b/core/java/android/inputmethodservice/KeyboardView.java
@@ -486,19 +486,17 @@
     }
 
     /**
-     * Enables or disables proximity correction. When enabled, {@link OnKeyboardActionListener#onKey}
-     * gets called with key codes for adjacent keys. Otherwise only the primary code is returned.
+     * When enabled, calls to {@link OnKeyboardActionListener#onKey} will include key
+     * codes for adjacent keys.  When disabled, only the primary key code will be
+     * reported.
      * @param enabled whether or not the proximity correction is enabled
-     * @hide Pending API Council approval
      */
     public void setProximityCorrectionEnabled(boolean enabled) {
         mProximityCorrectOn = enabled;
     }
 
     /**
-     * Returns the enabled state of the proximity correction.
-     * @return true if proximity correction is enabled, false otherwise
-     * @hide Pending API Council approval
+     * Returns true if proximity correction is enabled.
      */
     public boolean isProximityCorrectionEnabled() {
         return mProximityCorrectOn;
diff --git a/core/java/android/os/Looper.java b/core/java/android/os/Looper.java
index 9581893..69b3540 100644
--- a/core/java/android/os/Looper.java
+++ b/core/java/android/os/Looper.java
@@ -175,9 +175,6 @@
 
     /**
      * Return the Thread associated with this Looper.
-     * 
-     * @since CURRENT
-     * {@hide pending API Council approval}
      */
     public Thread getThread() {
         return mThread;
diff --git a/core/java/android/provider/Contacts.java b/core/java/android/provider/Contacts.java
index c2d3907..3141f1a 100644
--- a/core/java/android/provider/Contacts.java
+++ b/core/java/android/provider/Contacts.java
@@ -279,7 +279,9 @@
          * at least one E-mail or IM {@link ContactMethods} that match the
          * filter.
          * 
-         * @hide pending API council review
+         * Not exposed because we expect significant changes in the contacts
+         * schema and do not want to have to support this.
+         * @hide
          */
         public static final Uri WITH_EMAIL_OR_IM_FILTER_URI =
             Uri.parse("content://contacts/people/with_email_or_im_filter");
diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java
index b91bc9d..b6f96c4 100644
--- a/core/java/android/provider/MediaStore.java
+++ b/core/java/android/provider/MediaStore.java
@@ -1152,19 +1152,25 @@
              * and indicates the number of songs on the album by the given
              * artist.
              * <P>Type: INTEGER</P>
-             *
-             * @hide pending API Council approval
              */
             public static final String NUMBER_OF_SONGS_FOR_ARTIST = "numsongs_by_artist";
 
             /**
-             * The year in which the earliest and latest songs
-             * on this album were released. These will often
-             * be the same, but for compilation albums they
-             * might differ.
+             * The year in which the earliest songs
+             * on this album were released. This will often
+             * be the same as {@link #LAST_YEAR}, but for compilation albums
+             * they might differ.
              * <P>Type: INTEGER</P>
              */
             public static final String FIRST_YEAR = "minyear";
+            
+            /**
+             * The year in which the latest songs
+             * on this album were released. This will often
+             * be the same as {@link #FIRST_YEAR}, but for compilation albums
+             * they might differ.
+             * <P>Type: INTEGER</P>
+             */
             public static final String LAST_YEAR = "maxyear";
 
             /**
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 3fb46ed..4dd6524 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -885,8 +885,6 @@
          * Set to one of {@link #WIFI_SLEEP_POLICY_DEFAULT},
          * {@link #WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED}, or
          * {@link #WIFI_SLEEP_POLICY_NEVER}.
-         * 
-         * @hide pending API council
          */
         public static final String WIFI_SLEEP_POLICY = "wifi_sleep_policy";
 
@@ -894,8 +892,6 @@
          * Value for {@link #WIFI_SLEEP_POLICY} to use the default Wi-Fi sleep
          * policy, which is to sleep shortly after the turning off
          * according to the {@link #STAY_ON_WHILE_PLUGGED_IN} setting.
-         * 
-         * @hide pending API council
          */
         public static final int WIFI_SLEEP_POLICY_DEFAULT = 0;
 
@@ -903,15 +899,11 @@
          * Value for {@link #WIFI_SLEEP_POLICY} to use the default policy when
          * the device is on battery, and never go to sleep when the device is
          * plugged in.
-         * 
-         * @hide pending API council
          */
         public static final int WIFI_SLEEP_POLICY_NEVER_WHILE_PLUGGED = 1;
         
         /**
          * Value for {@link #WIFI_SLEEP_POLICY} to never go to sleep.
-         * 
-         * @hide pending API council
          */
         public static final int WIFI_SLEEP_POLICY_NEVER = 2;
         
@@ -2005,7 +1997,6 @@
 
         /**
          * A comma-separated list of SSIDs for which the Wi-Fi watchdog should be enabled.
-         * @hide pending API council
          */
         public static final String WIFI_WATCHDOG_WATCH_LIST = "wifi_watchdog_watch_list";
 
@@ -2028,16 +2019,12 @@
          * The maximum number of times we will retry a connection to an access
          * point for which we have failed in acquiring an IP address from DHCP.
          * A value of N means that we will make N+1 connection attempts in all.
-         * 
-         * @hide pending API Council approval
          */
         public static final String WIFI_MAX_DHCP_RETRY_COUNT = "wifi_max_dhcp_retry_count";
     
         /**
          * Maximum amount of time in milliseconds to hold a wakelock while waiting for mobile
          * data connectivity to be established after a disconnect from Wi-Fi.
-         * 
-         * @hide pending API Council approval
          */
         public static final String WIFI_MOBILE_DATA_TRANSITION_WAKELOCK_TIMEOUT_MS =
             "wifi_mobile_data_transition_wakelock_timeout_ms";
@@ -2045,8 +2032,6 @@
         /**
          * Whether background data usage is allowed by the user. See
          * ConnectivityManager for more info.
-         * 
-         * @hide pending API council
          */
         public static final String BACKGROUND_DATA = "background_data";
 
diff --git a/core/java/android/speech/srec/UlawEncoderInputStream.java b/core/java/android/speech/srec/UlawEncoderInputStream.java
index 132fe027..a488ead 100644
--- a/core/java/android/speech/srec/UlawEncoderInputStream.java
+++ b/core/java/android/speech/srec/UlawEncoderInputStream.java
@@ -26,8 +26,9 @@
 
 /**
  * InputStream which transforms 16 bit pcm data to ulaw data.
- *
- * @hide pending API council approval
+ * 
+ * Not yet ready to be supported, so
+ * @hide
  */
 public final class UlawEncoderInputStream extends InputStream {
     private final static String TAG = "UlawEncoderInputStream";
diff --git a/core/java/android/speech/srec/WaveHeader.java b/core/java/android/speech/srec/WaveHeader.java
index a99496d..4c3b172 100644
--- a/core/java/android/speech/srec/WaveHeader.java
+++ b/core/java/android/speech/srec/WaveHeader.java
@@ -30,7 +30,9 @@
  * <li> bitsPerSample - usually 16 for PCM, 8 for ALAW, or 8 for ULAW.
  * <li> numBytes - size of audio data after this header, in bytes.
  * </ul>
- * @hide pending API council approval
+ * 
+ * Not yet ready to be supported, so
+ * @hide
  */
 public class WaveHeader {
     
diff --git a/core/java/android/view/Gravity.java b/core/java/android/view/Gravity.java
index 36d8ce6..cf79638 100644
--- a/core/java/android/view/Gravity.java
+++ b/core/java/android/view/Gravity.java
@@ -231,7 +231,7 @@
     }
 
     /**
-     * Apply addition gravity behavior based on the overall "display" that an
+     * Apply additional gravity behavior based on the overall "display" that an
      * object exists in.  This can be used after
      * {@link #apply(int, int, int, Rect, int, int, Rect)} to place the object
      * within a visible display.  By default this moves or clips the object
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index 41779ba..6349288 100644
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
@@ -111,14 +111,13 @@
     public static final int KEYCODE_MENU            = 82;
     public static final int KEYCODE_NOTIFICATION    = 83;
     public static final int KEYCODE_SEARCH          = 84;
-    public static final int KEYCODE_PLAYPAUSE       = 85;
-    public static final int KEYCODE_STOP            = 86;
-    public static final int KEYCODE_NEXTSONG        = 87;
-    public static final int KEYCODE_PREVIOUSSONG    = 88;
-    public static final int KEYCODE_REWIND          = 89;
-    public static final int KEYCODE_FORWARD         = 90;
+    public static final int KEYCODE_MEDIA_PLAY_PAUSE= 85;
+    public static final int KEYCODE_MEDIA_STOP      = 86;
+    public static final int KEYCODE_MEDIA_NEXT      = 87;
+    public static final int KEYCODE_MEDIA_PREVIOUS  = 88;
+    public static final int KEYCODE_MEDIA_REWIND    = 89;
+    public static final int KEYCODE_MEDIA_FAST_FORWARD = 90;
     public static final int KEYCODE_MUTE            = 91;
-    private static final int LAST_KEYCODE           = KEYCODE_MUTE;
 
     // NOTE: If you add a new keycode here you must also add it to:
     //  isSystem()
@@ -127,7 +126,15 @@
     //  frameworks/base/core/res/res/values/attrs.xml
     //  commands/monkey/Monkey.java
     //  emulator?
+    //
+    //  Also Android currently does not reserve code ranges for vendor-
+    //  specific key codes.  If you have new key codes to have, you
+    //  MUST contribute a patch to the open source project to define
+    //  those new codes.  This is intended to maintain a consistent
+    //  set of key code definitions across all Android devices.
    
+    private static final int LAST_KEYCODE           = KEYCODE_MUTE;
+    
     /**
      * @deprecated There are now more than MAX_KEYCODE keycodes.
      * Use {@link #getMaxKeyCode()} instead.
@@ -582,12 +589,12 @@
         case KEYCODE_MUTE:
         case KEYCODE_POWER:
         case KEYCODE_HEADSETHOOK:
-        case KEYCODE_PLAYPAUSE:
-        case KEYCODE_STOP:
-        case KEYCODE_NEXTSONG:
-        case KEYCODE_PREVIOUSSONG:
-        case KEYCODE_REWIND:
-        case KEYCODE_FORWARD:
+        case KEYCODE_MEDIA_PLAY_PAUSE:
+        case KEYCODE_MEDIA_STOP:
+        case KEYCODE_MEDIA_NEXT:
+        case KEYCODE_MEDIA_PREVIOUS:
+        case KEYCODE_MEDIA_REWIND:
+        case KEYCODE_MEDIA_FAST_FORWARD:
         case KEYCODE_CAMERA:
         case KEYCODE_FOCUS:
         case KEYCODE_SEARCH:
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index b26be66..ec1c733 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -7462,7 +7462,9 @@
     }
 
     /**
-     * Provide haptic feedback to the user for this view.
+     * BZZZTT!!1!
+     * 
+     * <p>Provide haptic feedback to the user for this view.
      *
      * <p>The framework will provide haptic feedback for some built in actions,
      * such as long presses, but you may wish to provide feedback for your
@@ -7479,7 +7481,9 @@
     }
 
     /**
-     * Like {@link #performHapticFeedback(int)}, with additional options.
+     * BZZZTT!!1!
+     * 
+     * <p>Like {@link #performHapticFeedback(int)}, with additional options.
      *
      * @param feedbackConstant One of the constants defined in
      * {@link HapticFeedbackConstants}
diff --git a/core/java/android/view/ViewConfiguration.java b/core/java/android/view/ViewConfiguration.java
index d3f48c6..8e1524b 100644
--- a/core/java/android/view/ViewConfiguration.java
+++ b/core/java/android/view/ViewConfiguration.java
@@ -267,7 +267,6 @@
      * @return the duration in milliseconds between the first tap's up event and
      * the second tap's down event for an interaction to be considered a
      * double-tap.
-     * @hide pending API council
      */
     public static int getDoubleTapTimeout() {
         return DOUBLE_TAP_TIMEOUT;
@@ -324,7 +323,6 @@
     /**
      * @return Distance between the first touch and second touch to still be
      *         considered a double tap
-     * @hide pending API council
      */
     public int getScaledDoubleTapSlop() {
         return mDoubleTapSlop;
diff --git a/core/java/android/view/ViewDebug.java b/core/java/android/view/ViewDebug.java
index c1e9ed8..367c9a2 100644
--- a/core/java/android/view/ViewDebug.java
+++ b/core/java/android/view/ViewDebug.java
@@ -186,9 +186,7 @@
     /**
      * This annotation can be used to mark fields and methods to be dumped when
      * the view is captured. Methods with this annotation must have no arguments
-     * and must return <some type of data>.
-     * 
-     * @hide pending API Council approval
+     * and must return a valid type of data.
      */
     @Target({ ElementType.FIELD, ElementType.METHOD })
     @Retention(RetentionPolicy.RUNTIME)
@@ -1345,13 +1343,11 @@
     }
     
     /**
-     * dump view info for id based instrument test generation 
+     * Dump view info for id based instrument test generation 
      * (and possibly further data analysis). The results are dumped
      * to the log. 
      * @param tag for log
      * @param view for dump
-     * 
-     * @hide pending API Council approval
      */
     public static void dumpCapturedView(String tag, Object view) {        
         Class<?> klass = view.getClass();
diff --git a/core/java/android/view/ViewTreeObserver.java b/core/java/android/view/ViewTreeObserver.java
index 4230afa..26e5cbc 100644
--- a/core/java/android/view/ViewTreeObserver.java
+++ b/core/java/android/view/ViewTreeObserver.java
@@ -102,8 +102,6 @@
     /**
      * Interface definition for a callback to be invoked when
      * something in the view tree has been scrolled.
-     * 
-     * @hide pending API council approval
      */
     public interface OnScrollChangedListener {
         /**
@@ -115,7 +113,9 @@
 
     /**
      * Parameters used with OnComputeInternalInsetsListener.
-     * {@hide pending API Council approval}
+     * 
+     * We are not yet ready to commit to this API and support it, so
+     * @hide
      */
     public final static class InternalInsetsInfo {
         /**
@@ -200,7 +200,9 @@
     /**
      * Interface definition for a callback to be invoked when layout has
      * completed and the client can compute its interior insets.
-     * {@hide pending API Council approval}
+     * 
+     * We are not yet ready to commit to this API and support it, so
+     * @hide
      */
     public interface OnComputeInternalInsetsListener {
         /**
@@ -381,8 +383,6 @@
      * @param listener The callback to add
      *
      * @throws IllegalStateException If {@link #isAlive()} returns false
-     *
-     * @hide pending API council approval
      */
     public void addOnScrollChangedListener(OnScrollChangedListener listener) {
         checkIsAlive();
@@ -402,8 +402,6 @@
      * @throws IllegalStateException If {@link #isAlive()} returns false
      *
      * @see #addOnScrollChangedListener(OnScrollChangedListener)
-     *
-     * @hide pending API council approval
      */
     public void removeOnScrollChangedListener(OnScrollChangedListener victim) {
         checkIsAlive();
@@ -454,7 +452,9 @@
      * @param listener The callback to add
      *
      * @throws IllegalStateException If {@link #isAlive()} returns false
-     * {@hide pending API Council approval}
+     * 
+     * We are not yet ready to commit to this API and support it, so
+     * @hide
      */
     public void addOnComputeInternalInsetsListener(OnComputeInternalInsetsListener listener) {
         checkIsAlive();
@@ -475,7 +475,9 @@
      * @throws IllegalStateException If {@link #isAlive()} returns false
      *
      * @see #addOnComputeInternalInsetsListener(OnComputeInternalInsetsListener)
-     * {@hide pending API Council approval}
+     * 
+     * We are not yet ready to commit to this API and support it, so
+     * @hide
      */
     public void removeOnComputeInternalInsetsListener(OnComputeInternalInsetsListener victim) {
         checkIsAlive();
diff --git a/core/java/android/webkit/WebHistoryItem.java b/core/java/android/webkit/WebHistoryItem.java
index a408e06..fd26b98 100644
--- a/core/java/android/webkit/WebHistoryItem.java
+++ b/core/java/android/webkit/WebHistoryItem.java
@@ -101,8 +101,6 @@
      * url, the final url may be different as there might have been 
      * redirects while loading the site.
      * @return The original url of this history item.
-     * 
-     * @hide pending API Council approval
      */
     public String getOriginalUrl() {
         return mOriginalUrl;
diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java
index 1822ba4..a5846ed 100644
--- a/core/java/android/webkit/WebView.java
+++ b/core/java/android/webkit/WebView.java
@@ -909,8 +909,6 @@
      * the javascript property window.navigator.isOnline and
      * generates the online/offline event as specified in HTML5, sec. 5.7.7
      * @param networkUp boolean indicating if network is available
-     * 
-     * @hide pending API Council approval
      */
     public void setNetworkAvailable(boolean networkUp) {
         mWebViewCore.sendMessage(EventHub.SET_NETWORK_STATE,
@@ -1776,8 +1774,6 @@
      * Also, there may have been redirects resulting in a different url to that
      * originally requested.
      * @return The url that was originally requested for the current page.
-     * 
-     * @hide pending API Council approval
      */
     public String getOriginalUrl() {
         WebHistoryItem h = mCallbackProxy.getBackForwardList().getCurrentItem();
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 0563687..772ad89 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -944,7 +944,6 @@
     /**
      * Returns the list's text filter, if available. 
      * @return the list's text filter or null if filtering isn't enabled
-     * @hide pending API Council approval
      */
     public CharSequence getTextFilter() {
         if (mTextFilterEnabled && mTextFilter != null) {
diff --git a/core/java/android/widget/AlphabetIndexer.java b/core/java/android/widget/AlphabetIndexer.java
index bbabaaa..4e466a0 100644
--- a/core/java/android/widget/AlphabetIndexer.java
+++ b/core/java/android/widget/AlphabetIndexer.java
@@ -30,7 +30,6 @@
  * Your adapter is responsible for updating the cursor by calling {@link #setCursor} if the
  * cursor changes. {@link #getPositionForSection} method does the binary search for the starting 
  * index of a given section (alphabet).
- * @hide pending API council approval
  */
 public class AlphabetIndexer extends DataSetObserver implements SectionIndexer {
 
diff --git a/core/java/android/widget/CursorAdapter.java b/core/java/android/widget/CursorAdapter.java
index da90a9f4..baa6833 100644
--- a/core/java/android/widget/CursorAdapter.java
+++ b/core/java/android/widget/CursorAdapter.java
@@ -354,7 +354,6 @@
      * sub classes.
      * 
      * @see ContentObserver#onChange(boolean)
-     * @hide pending API Council approval
      */
     protected void onContentChanged() {
         if (mAutoRequery && mCursor != null && !mCursor.isClosed()) {
diff --git a/core/java/android/widget/MediaController.java b/core/java/android/widget/MediaController.java
index a2ec83f..b162a0e 100644
--- a/core/java/android/widget/MediaController.java
+++ b/core/java/android/widget/MediaController.java
@@ -388,12 +388,12 @@
         int keyCode = event.getKeyCode();
         if (event.getRepeatCount() == 0 && event.isDown() && (
                 keyCode ==  KeyEvent.KEYCODE_HEADSETHOOK ||
-                keyCode ==  KeyEvent.KEYCODE_PLAYPAUSE ||
+                keyCode ==  KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE ||
                 keyCode ==  KeyEvent.KEYCODE_SPACE)) {
             doPauseResume();
             show(sDefaultTimeout);
             return true;
-        } else if (keyCode ==  KeyEvent.KEYCODE_STOP) {
+        } else if (keyCode ==  KeyEvent.KEYCODE_MEDIA_STOP) {
             if (mPlayer.isPlaying()) {
                 mPlayer.pause();
                 updatePausePlay();
diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java
index f864690..2c9714e 100644
--- a/core/java/android/widget/PopupWindow.java
+++ b/core/java/android/widget/PopupWindow.java
@@ -1062,8 +1062,6 @@
      * @param height the new height, can be -1 to ignore
      * @param force reposition the window even if the specified position
      *              already seems to correspond to the LayoutParams
-     * 
-     * @hide pending API council approval
      */
     public void update(int x, int y, int width, int height, boolean force) {
         if (width != -1) {
diff --git a/core/java/android/widget/ResourceCursorAdapter.java b/core/java/android/widget/ResourceCursorAdapter.java
index a5dbd98..c9c217a 100644
--- a/core/java/android/widget/ResourceCursorAdapter.java
+++ b/core/java/android/widget/ResourceCursorAdapter.java
@@ -61,7 +61,6 @@
      * @param autoRequery If true the adapter will call requery() on the
      *                    cursor whenever it changes so the most recent
      *                    data is always displayed.
-     * @hide Pending API Council approval
      */
     public ResourceCursorAdapter(Context context, int layout, Cursor c, boolean autoRequery) {
         super(context, c, autoRequery);
diff --git a/core/java/android/widget/Scroller.java b/core/java/android/widget/Scroller.java
index febc956..c9ace0a 100644
--- a/core/java/android/widget/Scroller.java
+++ b/core/java/android/widget/Scroller.java
@@ -135,7 +135,6 @@
      * Returns the start X offset in the scroll. 
      * 
      * @return The start X offset as an absolute distance from the origin.
-     * @hide pending API council
      */
     public final int getStartX() {
         return mStartX;
@@ -145,7 +144,6 @@
      * Returns the start Y offset in the scroll. 
      * 
      * @return The start Y offset as an absolute distance from the origin.
-     * @hide pending API council
      */
     public final int getStartY() {
         return mStartY;
diff --git a/core/java/android/widget/VideoView.java b/core/java/android/widget/VideoView.java
index 4c5df2f..6d3a2d3 100644
--- a/core/java/android/widget/VideoView.java
+++ b/core/java/android/widget/VideoView.java
@@ -460,7 +460,7 @@
                 mMediaPlayer != null &&
                 mMediaController != null) {
             if (keyCode == KeyEvent.KEYCODE_HEADSETHOOK ||
-                    keyCode == KeyEvent.KEYCODE_PLAYPAUSE) {
+                    keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE) {
                 if (mMediaPlayer.isPlaying()) {
                     pause();
                     mMediaController.show();
@@ -469,7 +469,7 @@
                     mMediaController.hide();
                 }
                 return true;
-            } else if (keyCode == KeyEvent.KEYCODE_STOP 
+            } else if (keyCode == KeyEvent.KEYCODE_MEDIA_STOP 
                     && mMediaPlayer.isPlaying()) {
                 pause();
                 mMediaController.show();
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 3a70d9a..9f6ebed 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -203,12 +203,14 @@
     <!-- Allows an application to create mock location providers for testing -->
     <permission android:name="android.permission.ACCESS_MOCK_LOCATION"
         android:permissionGroup="android.permission-group.LOCATION"
+        android:protectionLevel="dangerous"
         android:label="@string/permlab_accessMockLocation"
         android:description="@string/permdesc_accessMockLocation" />
 
     <!-- Allows an application to access extra location provider commands -->
     <permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"
         android:permissionGroup="android.permission-group.LOCATION"
+        android:protectionLevel="normal"
         android:label="@string/permlab_accessLocationExtraCommands"
         android:description="@string/permdesc_accessLocationExtraCommands" />
 
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index e27227a..f90929a 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -850,12 +850,12 @@
         <enum name="KEYCODE_MENU" value="82" />
         <enum name="KEYCODE_NOTIFICATION" value="83" />
         <enum name="KEYCODE_SEARCH" value="84" />
-        <enum name="KEYCODE_PLAYPAUSE" value="85" />
-        <enum name="KEYCODE_STOP" value="86" />
-        <enum name="KEYCODE_NEXTSONG" value="87" />
-        <enum name="KEYCODE_PREVIOUSSONG" value="88" />
-        <enum name="KEYCODE_REWIND" value="89" />
-        <enum name="KEYCODE_FORWARD" value="90" />
+        <enum name="KEYCODE_MEDIA_PLAY_PAUSE" value="85" />
+        <enum name="KEYCODE_MEDIA_STOP" value="86" />
+        <enum name="KEYCODE_MEDIA_NEXT" value="87" />
+        <enum name="KEYCODE_MEDIA_PREVIOUS" value="88" />
+        <enum name="KEYCODE_MEDIA_REWIND" value="89" />
+        <enum name="KEYCODE_MEDIA_FAST_FORWARD" value="90" />
         <enum name="KEYCODE_MUTE" value="91" />
     </attr>
 
diff --git a/include/ui/KeycodeLabels.h b/include/ui/KeycodeLabels.h
index efa6d2b..571e47b 100644
--- a/include/ui/KeycodeLabels.h
+++ b/include/ui/KeycodeLabels.h
@@ -107,12 +107,12 @@
     { "MENU", 82 },
     { "NOTIFICATION", 83 },
     { "SEARCH", 84 },
-    { "PLAYPAUSE", 85 },
-    { "STOP", 86 },
-    { "NEXTSONG", 87 },
-    { "PREVIOUSSONG", 88 },
-    { "REWIND", 89 },
-    { "FORWARD", 90 },
+    { "MEDIA_PLAY_PAUSE", 85 },
+    { "MEDIA_STOP", 86 },
+    { "MEDIA_NEXT", 87 },
+    { "MEDIA_PREVIOUS", 88 },
+    { "MEDIA_REWIND", 89 },
+    { "MEDIA_FAST_FORWARD", 90 },
     { "MUTE", 91 },
 
     // NOTE: If you add a new keycode here you must also add it to:
diff --git a/media/java/android/media/RingtoneManager.java b/media/java/android/media/RingtoneManager.java
index 2f0007f..8f05cec 100644
--- a/media/java/android/media/RingtoneManager.java
+++ b/media/java/android/media/RingtoneManager.java
@@ -272,7 +272,6 @@
      * manager is returning.
      * 
      * @return The stream type.
-     * @hide Pending API Council approval
      */
     public int inferStreamType() {
         switch (mType) {
diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java
index 921ce77..559542a 100644
--- a/telephony/java/android/telephony/TelephonyManager.java
+++ b/telephony/java/android/telephony/TelephonyManager.java
@@ -104,8 +104,6 @@
      * @see #EXTRA_STATE
      * @see #EXTRA_INCOMING_NUMBER
      * @see #getCallState
-     * 
-     * @hide pending API Council approval
      */
     @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
     public static final String ACTION_PHONE_STATE_CHANGED =
@@ -122,32 +120,24 @@
      * <p class="note">
      * Retrieve with
      * {@link android.content.Intent#getStringExtra(String)}.
-     * 
-     * @hide pending API Council approval
      */
     public static final String EXTRA_STATE = Phone.STATE_KEY;
 
     /**
      * Value used with {@link #EXTRA_STATE} corresponding to
      * {@link #CALL_STATE_IDLE}.
-     * 
-     * @hide pending API Council approval
      */
     public static final String EXTRA_STATE_IDLE = Phone.State.IDLE.toString();
 
     /**
      * Value used with {@link #EXTRA_STATE} corresponding to
      * {@link #CALL_STATE_RINGING}.
-     * 
-     * @hide pending API Council approval
      */
     public static final String EXTRA_STATE_RINGING = Phone.State.RINGING.toString();
 
     /**
      * Value used with {@link #EXTRA_STATE} corresponding to
      * {@link #CALL_STATE_OFFHOOK}.
-     * 
-     * @hide pending API Council approval
      */
     public static final String EXTRA_STATE_OFFHOOK = Phone.State.OFFHOOK.toString();
 
@@ -159,8 +149,6 @@
      * <p class="note">
      * Retrieve with
      * {@link android.content.Intent#getStringExtra(String)}.
-     * 
-     * @hide pending API Council approval
      */
     public static final String EXTRA_INCOMING_NUMBER = "incoming_number";
 
diff --git a/test-runner/android/test/ProviderTestCase2.java b/test-runner/android/test/ProviderTestCase2.java
index 714b77b..ac17ebf 100644
--- a/test-runner/android/test/ProviderTestCase2.java
+++ b/test-runner/android/test/ProviderTestCase2.java
@@ -8,10 +8,15 @@
 import android.database.DatabaseUtils;
 
 /**
- * If you would like to test a single content provider with an
- * {@link android.test.InstrumentationTestCase}, this provides some of the boiler plate in
- * {@link #setUp} and {@link #tearDown}.
- * @hide pending API council approval
+ * This TestCase class provides a framework for isolated testing of a single
+ * ContentProvider.  It uses a {@link android.test.mock.MockContentResolver} to
+ * access the provider, restricts the provider to an isolated area of the
+ * filesystem (for safely creating & modifying databases & files), and injects
+ * {@link android.test.IsolatedContext} to isolate the ContentProvider from the
+ * rest of the running system.
+ *
+ * <p>This environment is created automatically by {@link #setUp} and {@link
+ * #tearDown}.
  */
 public abstract class ProviderTestCase2<T extends ContentProvider> extends AndroidTestCase {
 
@@ -79,4 +84,4 @@
 
         return resolver;
     }
-}
\ No newline at end of file
+}
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index d6277fa..3bee3b6 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -265,7 +265,6 @@
             wepKeys[i] = null;
     }
 
-    /** {@hide pending API Council approval} */
     public String toString() {
         StringBuffer sbuf = new StringBuffer();
         if (this.status == WifiConfiguration.Status.CURRENT) {