Deprecate Resources constructor and updateConfiguration() method

These methods were never meant to be public. Instead, developers
can use Context#createConfigurationContext().

Bug:30088019
Bug:29999297
Change-Id: I2b864136163deda0af99fa3bfe9ef4ee1077341a
diff --git a/api/current.txt b/api/current.txt
index d3ee682..c0fd25b 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -10321,7 +10321,7 @@
   }
 
   public class Resources {
-    ctor public Resources(android.content.res.AssetManager, android.util.DisplayMetrics, android.content.res.Configuration);
+    ctor public deprecated Resources(android.content.res.AssetManager, android.util.DisplayMetrics, android.content.res.Configuration);
     method public final void finishPreloading();
     method public final void flushLayoutCache();
     method public android.content.res.XmlResourceParser getAnimation(int) throws android.content.res.Resources.NotFoundException;
@@ -10372,7 +10372,7 @@
     method public android.content.res.AssetFileDescriptor openRawResourceFd(int) throws android.content.res.Resources.NotFoundException;
     method public void parseBundleExtra(java.lang.String, android.util.AttributeSet, android.os.Bundle) throws org.xmlpull.v1.XmlPullParserException;
     method public void parseBundleExtras(android.content.res.XmlResourceParser, android.os.Bundle) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
+    method public deprecated void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
   }
 
   public static class Resources.NotFoundException extends java.lang.RuntimeException {
diff --git a/api/system-current.txt b/api/system-current.txt
index 13ad2d6..e407eb4 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -10760,7 +10760,7 @@
   }
 
   public class Resources {
-    ctor public Resources(android.content.res.AssetManager, android.util.DisplayMetrics, android.content.res.Configuration);
+    ctor public deprecated Resources(android.content.res.AssetManager, android.util.DisplayMetrics, android.content.res.Configuration);
     method public final void finishPreloading();
     method public final void flushLayoutCache();
     method public android.content.res.XmlResourceParser getAnimation(int) throws android.content.res.Resources.NotFoundException;
@@ -10811,7 +10811,7 @@
     method public android.content.res.AssetFileDescriptor openRawResourceFd(int) throws android.content.res.Resources.NotFoundException;
     method public void parseBundleExtra(java.lang.String, android.util.AttributeSet, android.os.Bundle) throws org.xmlpull.v1.XmlPullParserException;
     method public void parseBundleExtras(android.content.res.XmlResourceParser, android.os.Bundle) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
+    method public deprecated void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
   }
 
   public static class Resources.NotFoundException extends java.lang.RuntimeException {
diff --git a/api/test-current.txt b/api/test-current.txt
index c6359dd..53f87f4 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -10335,7 +10335,7 @@
   }
 
   public class Resources {
-    ctor public Resources(android.content.res.AssetManager, android.util.DisplayMetrics, android.content.res.Configuration);
+    ctor public deprecated Resources(android.content.res.AssetManager, android.util.DisplayMetrics, android.content.res.Configuration);
     method public final void finishPreloading();
     method public final void flushLayoutCache();
     method public android.content.res.XmlResourceParser getAnimation(int) throws android.content.res.Resources.NotFoundException;
@@ -10386,7 +10386,7 @@
     method public android.content.res.AssetFileDescriptor openRawResourceFd(int) throws android.content.res.Resources.NotFoundException;
     method public void parseBundleExtra(java.lang.String, android.util.AttributeSet, android.os.Bundle) throws org.xmlpull.v1.XmlPullParserException;
     method public void parseBundleExtras(android.content.res.XmlResourceParser, android.os.Bundle) throws java.io.IOException, org.xmlpull.v1.XmlPullParserException;
-    method public void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
+    method public deprecated void updateConfiguration(android.content.res.Configuration, android.util.DisplayMetrics);
   }
 
   public static class Resources.NotFoundException extends java.lang.RuntimeException {
diff --git a/core/java/android/content/res/Resources.java b/core/java/android/content/res/Resources.java
index 8d3940c..ad11307 100644
--- a/core/java/android/content/res/Resources.java
+++ b/core/java/android/content/res/Resources.java
@@ -201,12 +201,16 @@
      * Create a new Resources object on top of an existing set of assets in an
      * AssetManager.
      *
+     * @deprecated Resources should not be constructed by apps.
+     * See {@link android.content.Context#createConfigurationContext(Configuration)}.
+     *
      * @param assets Previously created AssetManager.
      * @param metrics Current display metrics to consider when
      *                selecting/computing resource values.
      * @param config Desired device configuration to consider when
      *               selecting/computing resource values (optional).
      */
+    @Deprecated
     public Resources(AssetManager assets, DisplayMetrics metrics, Configuration config) {
         this(null);
         mResourcesImpl = new ResourcesImpl(assets, metrics, config, new DisplayAdjustments());
@@ -1762,7 +1766,10 @@
 
     /**
      * Store the newly updated configuration.
+     *
+     * @deprecated See {@link android.content.Context#createConfigurationContext(Configuration)}.
      */
+    @Deprecated
     public void updateConfiguration(Configuration config, DisplayMetrics metrics) {
         updateConfiguration(config, metrics, null);
     }