Annotated mTheme field on ContextThemeWrapper with maxTargetSdk P

Added ContextThemeWrapper#setTheme(Theme) method to programmatically
assign the theme without using a resource id

Change-Id: I043253e65a535abdf8d89d9421d2cff2b41bdb05
Fixes: 123768723
Test: Added CTS test to verify setTheme
This commit is contained in:
Nader Jawad
2019-02-06 14:52:39 -08:00
parent a454dd772c
commit a1eef72673
2 changed files with 13 additions and 1 deletions

View File

@@ -49250,6 +49250,7 @@ package android.view {
ctor public ContextThemeWrapper(android.content.Context, android.content.res.Resources.Theme);
method public void applyOverrideConfiguration(android.content.res.Configuration);
method protected void onApplyThemeResource(android.content.res.Resources.Theme, int, boolean);
method public void setTheme(@Nullable android.content.res.Resources.Theme);
}
public final class Display {

View File

@@ -16,6 +16,7 @@
package android.view;
import android.annotation.Nullable;
import android.annotation.StyleRes;
import android.annotation.UnsupportedAppUsage;
import android.content.Context;
@@ -23,6 +24,7 @@ import android.content.ContextWrapper;
import android.content.res.AssetManager;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.Build;
/**
* A context wrapper that allows you to modify or replace the theme of the
@@ -31,7 +33,7 @@ import android.content.res.Resources;
public class ContextThemeWrapper extends ContextWrapper {
@UnsupportedAppUsage
private int mThemeResource;
@UnsupportedAppUsage
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P, trackingBug = 123768723)
private Resources.Theme mTheme;
@UnsupportedAppUsage
private LayoutInflater mInflater;
@@ -146,6 +148,15 @@ public class ContextThemeWrapper extends ContextWrapper {
}
}
/**
* Set the configure the current theme. If null is provided then the default Theme is returned
* on the next call to {@link #getTheme()}
* @param theme Theme to consume in the wrapper, a value of null resets the theme to the default
*/
public void setTheme(@Nullable Resources.Theme theme) {
mTheme = theme;
}
/** @hide */
@Override
@UnsupportedAppUsage