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

Commit a96d258f authored by Deepanshu Gupta's avatar Deepanshu Gupta Committed by Android (Google) Code Review
Browse files

Merge "Add guard around getXmlFileParser() call" into nyc-dev

parents b9893ec6 cd6e47e4
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.layoutlib.bridge.android;

import com.android.ide.common.rendering.api.LayoutlibCallback;
import com.android.ide.common.rendering.api.RenderParams;
import com.android.ide.common.rendering.api.SessionParams.Key;

@@ -42,11 +43,16 @@ public final class RenderParamsFlags {
    public static final Key<Boolean> FLAG_KEY_RECYCLER_VIEW_SUPPORT =
            new Key<Boolean>("recyclerViewSupport", Boolean.class);
    /**
     * The application package name. Used via
     * {@link com.android.ide.common.rendering.api.LayoutlibCallback#getFlag(Key)}
     * The application package name. Used via {@link LayoutlibCallback#getFlag(Key)}
     */
    public static final Key<String> FLAG_KEY_APPLICATION_PACKAGE =
            new Key<String>("applicationPackage", String.class);
    /**
     * To tell LayoutLib that IDE supports providing XML Parser for a file (useful for getting in
     * memory contents of the file). Used via {@link LayoutlibCallback#getFlag(Key)}
     */
    public static final Key<Boolean> FLAG_KEY_XML_FILE_PARSER_SUPPORT =
            new Key<Boolean>("xmlFileParser", Boolean.class);

    // Disallow instances.
    private RenderParamsFlags() {}
+7 −1
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ import com.android.internal.util.XmlUtils;
import com.android.layoutlib.bridge.Bridge;
import com.android.layoutlib.bridge.android.BridgeContext;
import com.android.layoutlib.bridge.android.BridgeXmlBlockParser;
import com.android.layoutlib.bridge.android.RenderParamsFlags;
import com.android.ninepatch.NinePatch;
import com.android.ninepatch.NinePatchChunk;
import com.android.resources.Density;
@@ -142,8 +143,13 @@ public final class ResourceHelper {
            return null;
        }

        XmlPullParser parser = null;
        // first check if the value is a file (xml most likely)
        XmlPullParser parser = context.getLayoutlibCallback().getXmlFileParser(value);
        Boolean psiParserSupport = context.getLayoutlibCallback().getFlag(
                RenderParamsFlags.FLAG_KEY_XML_FILE_PARSER_SUPPORT);
        if (psiParserSupport != null && psiParserSupport) {
            parser = context.getLayoutlibCallback().getXmlFileParser(value);
        }
        if (parser == null) {
            File f = new File(value);
            if (f.isFile()) {