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

Commit eb14ccf0 authored by Alan Viverette's avatar Alan Viverette
Browse files

Revert "Allow Views to specify a theme override"

Inheriting the parent view's Context breaks RemoteView inflation.

This reverts commit dd923325.

Change-Id: I1c9a940a31169cd42b7356ad58548597a2efbb24
parent dd923325
Loading
Loading
Loading
Loading
+9 −32
Original line number Diff line number Diff line
@@ -91,8 +91,6 @@ public abstract class LayoutInflater {
    private static final String TAG_1995 = "blink";
    private static final String TAG_REQUEST_FOCUS = "requestFocus";

    private static final String ATTR_THEME = "theme";

    /**
     * Hook to allow clients of the LayoutInflater to restrict the set of Views that are allowed
     * to be inflated.
@@ -679,45 +677,24 @@ public abstract class LayoutInflater {
            name = attrs.getAttributeValue(null, "class");
        }

        // Apply a theme override, if necessary.
        final Context viewContext;
        final int themeResId = attrs.getAttributeResourceValue(null, ATTR_THEME, 0);
        if (themeResId != 0) {
            viewContext = new ContextThemeWrapper(mContext, themeResId);
        } else if (parent != null) {
            viewContext = parent.getContext();
        } else {
            viewContext = mContext;
        }

        if (DEBUG) System.out.println("******** Creating view: " + name);

        try {
            View view;
            if (mFactory2 != null) {
                view = mFactory2.onCreateView(parent, name, viewContext, attrs);
            } else if (mFactory != null) {
                view = mFactory.onCreateView(name, viewContext, attrs);
            } else {
                view = null;
            }
            if (mFactory2 != null) view = mFactory2.onCreateView(parent, name, mContext, attrs);
            else if (mFactory != null) view = mFactory.onCreateView(name, mContext, attrs);
            else view = null;

            if (view == null && mPrivateFactory != null) {
                view = mPrivateFactory.onCreateView(parent, name, viewContext, attrs);
                view = mPrivateFactory.onCreateView(parent, name, mContext, attrs);
            }
            
            if (view == null) {
                final Object lastContext = mConstructorArgs[0];
                mConstructorArgs[0] = viewContext;
                try {
                if (-1 == name.indexOf('.')) {
                    view = onCreateView(parent, name, attrs);
                } else {
                    view = createView(name, null, attrs);
                }
                } finally {
                    mConstructorArgs[0] = lastContext;
                }
            }

            if (DEBUG) System.out.println("Created view is: " + view);