Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1eef726 authored by Nader Jawad's avatar Nader Jawad
Browse files

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
parent a454dd77
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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 {
+12 −1
Original line number Diff line number Diff line
@@ -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