am 4db1aca5: am f93bba5b: Merge "Allow ContextImpl.setTheme(int) to be called after getTheme()" into mnc-dev

* commit '4db1aca592019976ab684ff0084c8ec5aae03565':
  Allow ContextImpl.setTheme(int) to be called after getTheme()
This commit is contained in:
Alan Viverette
2015-05-08 21:36:51 +00:00
committed by Android Git Automerger
2 changed files with 25 additions and 10 deletions

View File

@@ -237,8 +237,11 @@ class ContextImpl extends Context {
}
@Override
public void setTheme(int resid) {
mThemeResource = resid;
public void setTheme(int resId) {
if (mThemeResource != resId) {
mThemeResource = resId;
initializeTheme();
}
}
@Override
@@ -248,15 +251,24 @@ class ContextImpl extends Context {
@Override
public Resources.Theme getTheme() {
if (mTheme == null) {
mThemeResource = Resources.selectDefaultTheme(mThemeResource,
getOuterContext().getApplicationInfo().targetSdkVersion);
mTheme = mResources.newTheme();
mTheme.applyStyle(mThemeResource, true);
if (mTheme != null) {
return mTheme;
}
mThemeResource = Resources.selectDefaultTheme(mThemeResource,
getOuterContext().getApplicationInfo().targetSdkVersion);
initializeTheme();
return mTheme;
}
private void initializeTheme() {
if (mTheme == null) {
mTheme = mResources.newTheme();
}
mTheme.applyStyle(mThemeResource, true);
}
@Override
public ClassLoader getClassLoader() {
return mPackageInfo != null ?

View File

@@ -87,9 +87,12 @@ public class ContextThemeWrapper extends ContextWrapper {
}
}
@Override public void setTheme(int resid) {
mThemeResource = resid;
initializeTheme();
@Override
public void setTheme(int resid) {
if (mThemeResource != resid) {
mThemeResource = resid;
initializeTheme();
}
}
/** @hide */