Fix issue #2631417: Expose FLAG_EXTERNAL_STORAGE

Also update 8.xml to match the current API.

Change-Id: I668fe56f6c156c2e8daa458baa7410fdb8ebef52
diff --git a/api/8.xml b/api/8.xml
index 8cffff1b..ff4afc7 100644
--- a/api/8.xml
+++ b/api/8.xml
@@ -27144,7 +27144,7 @@
  deprecated="not deprecated"
  visibility="public"
 >
-<parameter name="fd" type="android.os.ParcelFileDescriptor">
+<parameter name="newState" type="android.os.ParcelFileDescriptor">
 </parameter>
 </method>
 </interface>
@@ -37923,6 +37923,28 @@
  visibility="public"
 >
 </field>
+<field name="ACTION_EXTERNAL_APPLICATIONS_AVAILABLE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.action.EXTERNAL_APPLICATIONS_AVAILABLE&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.action.EXTERNAL_APPLICATIONS_UNAVAILABLE&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="ACTION_FACTORY_TEST"
  type="java.lang.String"
  transient="false"
@@ -38890,6 +38912,28 @@
  visibility="public"
 >
 </field>
+<field name="EXTRA_CHANGED_PACKAGE_LIST"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.extra.changed_package_list&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
+<field name="EXTRA_CHANGED_UID_LIST"
+ type="java.lang.String"
+ transient="false"
+ volatile="false"
+ value="&quot;android.intent.extra.changed_uid_list&quot;"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="EXTRA_DATA_REMOVED"
  type="java.lang.String"
  transient="false"
@@ -42658,6 +42702,17 @@
  visibility="public"
 >
 </field>
+<field name="FLAG_EXTERNAL_STORAGE"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="524288"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="FLAG_FACTORY_TEST"
  type="int"
  transient="false"
diff --git a/api/current.xml b/api/current.xml
index db28cba..ff4afc7 100644
--- a/api/current.xml
+++ b/api/current.xml
@@ -42702,6 +42702,17 @@
  visibility="public"
 >
 </field>
+<field name="FLAG_EXTERNAL_STORAGE"
+ type="int"
+ transient="false"
+ volatile="false"
+ value="524288"
+ static="true"
+ final="true"
+ deprecated="not deprecated"
+ visibility="public"
+>
+</field>
 <field name="FLAG_FACTORY_TEST"
  type="int"
  transient="false"
diff --git a/core/java/android/content/pm/ApplicationInfo.java b/core/java/android/content/pm/ApplicationInfo.java
index 0a04e5b..29b9d4c 100644
--- a/core/java/android/content/pm/ApplicationInfo.java
+++ b/core/java/android/content/pm/ApplicationInfo.java
@@ -252,20 +252,22 @@
     public static final int FLAG_RESTORE_ANY_VERSION = 1<<17;
 
     /**
+     * Value for {@link #flags}: Set to true if the application is
+     * currently installed on external/removable/unprotected storage.  Such
+     * applications may not be available if their storage is not currently
+     * mounted.  When the storage it is on is not available, it will look like
+     * the application has been uninstalled (its .apk is no longer available)
+     * but its persistent data is not removed.
+     */
+    public static final int FLAG_EXTERNAL_STORAGE = 1<<19;
+
+    /**
      * Value for {@link #flags}: Set to true if the application has been
      * installed using the forward lock option.
      *
      * {@hide}
      */
-    public static final int FLAG_FORWARD_LOCK = 1<<19;
-
-    /**
-     * Value for {@link #flags}: Set to true if the application is
-     * currently installed on the sdcard.
-     *
-     * {@hide}
-     */
-    public static final int FLAG_EXTERNAL_STORAGE = 1<<20;
+    public static final int FLAG_FORWARD_LOCK = 1<<20;
 
     /**
      * Value for {@link #flags}: Set to true if the application is