Don't hold on to AssetManager instances

If we enter multi-window mode or load WebView
assets into a Resources object, then the underlying
AssetManager instance may change.

crbug.com/627586

Bug:30118654

Change-Id: I837637bdad5370809db7f060d7d8536b536cad9e
diff --git a/core/java/android/content/res/TypedArray.java b/core/java/android/content/res/TypedArray.java
index 92134ee..1e44a5c 100644
--- a/core/java/android/content/res/TypedArray.java
+++ b/core/java/android/content/res/TypedArray.java
@@ -49,6 +49,10 @@
             attrs.mLength = len;
             attrs.mRecycled = false;
 
+            // Reset the assets, which may have changed due to configuration changes
+            // or further resource loading.
+            attrs.mAssets = res.getAssets();
+
             final int fullLen = len * AssetManager.STYLE_NUM_ENTRIES;
             if (attrs.mData.length >= fullLen) {
                 return attrs;
@@ -66,7 +70,7 @@
 
     private final Resources mResources;
     private final DisplayMetrics mMetrics;
-    private final AssetManager mAssets;
+    private AssetManager mAssets;
 
     private boolean mRecycled;
 
@@ -1086,6 +1090,7 @@
         // These may have been set by the client.
         mXml = null;
         mTheme = null;
+        mAssets = null;
 
         mResources.mTypedArrayPool.release(this);
     }