From 99bf63fdafb011ccdd9b2315f73b351f28970644 Mon Sep 17 00:00:00 2001 From: Alan Viverette Date: Tue, 25 Aug 2015 13:45:38 -0400 Subject: [PATCH] Return asset manager with correct config from ContextThemeWrapper Bug: 23416037 Change-Id: Ia87bebbe6f23214c892bc2ca19d4112853023235 --- core/java/android/view/ContextThemeWrapper.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/core/java/android/view/ContextThemeWrapper.java b/core/java/android/view/ContextThemeWrapper.java index ce50091f515c6..9611edb734887 100644 --- a/core/java/android/view/ContextThemeWrapper.java +++ b/core/java/android/view/ContextThemeWrapper.java @@ -19,6 +19,7 @@ package android.view; import android.annotation.StyleRes; import android.content.Context; import android.content.ContextWrapper; +import android.content.res.AssetManager; import android.content.res.Configuration; import android.content.res.Resources; @@ -60,11 +61,12 @@ public class ContextThemeWrapper extends ContextWrapper { * information. * *

This method can only be called once, and must be called before any - * calls to {@link #getResources()} are made. + * calls to {@link #getResources()} or {@link #getAssets()} are made. */ public void applyOverrideConfiguration(Configuration overrideConfiguration) { if (mResources != null) { - throw new IllegalStateException("getResources() has already been called"); + throw new IllegalStateException( + "getResources() or getAssets() has already been called"); } if (mOverrideConfiguration != null) { throw new IllegalStateException("Override configuration has already been set"); @@ -72,6 +74,12 @@ public class ContextThemeWrapper extends ContextWrapper { mOverrideConfiguration = new Configuration(overrideConfiguration); } + @Override + public AssetManager getAssets() { + // Ensure we're returning assets with the correct configuration. + return getResources().getAssets(); + } + @Override public Resources getResources() { if (mResources != null) {