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

Commit 7ac8a67b authored by Deepanshu Gupta's avatar Deepanshu Gupta Committed by Android Git Automerger
Browse files

am 60f1d270: am db42c336: Merge "Remove kxml dependency." into mnc-dev

* commit '60f1d270':
  Remove kxml dependency.
parents cdd4444e 60f1d270
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -22,7 +22,6 @@ LOCAL_JAVACFLAGS := -source 6 -target 6


LOCAL_JAVA_LIBRARIES := \
	kxml2-2.3.0 \
	icu4j \
	layoutlib_api-prebuilt \
	tools-common-prebuilt
+2 −3
Original line number Diff line number Diff line
@@ -25,11 +25,11 @@
    <orderEntry type="inheritedJdk" />
    <orderEntry type="sourceFolder" forTests="false" />
    <orderEntry type="library" name="icu4j" level="project" />
    <orderEntry type="library" name="kxml2-2.3.0" level="project" />
    <orderEntry type="library" name="layoutlib_api-prebuilt" level="project" />
    <orderEntry type="library" name="ninepatch-prebuilt" level="project" />
    <orderEntry type="library" name="tools-common-prebuilt" level="project" />
    <orderEntry type="library" name="framework.jar" level="project" />
    <orderEntry type="library" scope="TEST" name="kxml2-2.3.0" level="project" />
    <orderEntry type="library" scope="TEST" name="guava" level="project" />
    <orderEntry type="module-library" scope="TEST">
      <library>
@@ -45,4 +45,3 @@
    <orderEntry type="library" scope="TEST" name="JUnit4" level="application" />
  </component>
</module>
 No newline at end of file
+2 −6
Original line number Diff line number Diff line
@@ -17,9 +17,9 @@
package android.util;

import com.android.layoutlib.bridge.impl.DelegateManager;
import com.android.layoutlib.bridge.impl.ParserFactory;
import com.android.tools.layoutlib.annotations.LayoutlibDelegate;

import org.kxml2.io.KXmlParser;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

@@ -37,11 +37,7 @@ public class Xml_Delegate {
    @LayoutlibDelegate
    /*package*/ static XmlPullParser newPullParser() {
        try {
            KXmlParser parser = new KXmlParser();
            // The prebuilt kxml2 library with the IDE doesn't support DOCECL.
//            parser.setFeature(XmlPullParser.FEATURE_PROCESS_DOCDECL, true);
            parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
            return parser;
            return ParserFactory.instantiateParser(null);
        } catch (XmlPullParserException e) {
            throw new AssertionError();
        }
+31 −30
Original line number Diff line number Diff line
@@ -17,7 +17,10 @@
package com.android.layoutlib.bridge.impl;


import org.kxml2.io.KXmlParser;
import com.android.annotations.NonNull;
import com.android.annotations.Nullable;
import com.android.ide.common.rendering.api.LayoutlibCallback;

import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;

@@ -35,24 +38,35 @@ import java.io.InputStream;
 */
public class ParserFactory {

    public final static boolean LOG_PARSER = false;

    private final static String ENCODING = "UTF-8"; //$NON-NLS-1$

    public final static boolean LOG_PARSER = false;
    // Used to get a new XmlPullParser from the client.
    @Nullable
    private static LayoutlibCallback sLayoutlibCallback;

    public static XmlPullParser create(File f)
    public static void setLayoutlibCallback(@Nullable LayoutlibCallback callback) {
        sLayoutlibCallback = callback;
    }

    @NonNull
    public static XmlPullParser create(@NonNull File f)
            throws XmlPullParserException, FileNotFoundException {
        InputStream stream = new FileInputStream(f);
        return create(stream, f.getName(), f.length());
    }

    public static XmlPullParser create(InputStream stream, String name)
    @NonNull
    public static XmlPullParser create(@NonNull InputStream stream, @Nullable String name)
        throws XmlPullParserException {
        return create(stream, name, -1);
    }

    private static XmlPullParser create(InputStream stream, String name, long size)
            throws XmlPullParserException {
        KXmlParser parser = instantiateParser(name);
    @NonNull
    private static XmlPullParser create(@NonNull InputStream stream, @Nullable String name,
            long size) throws XmlPullParserException {
        XmlPullParser parser = instantiateParser(name);

        stream = readAndClose(stream, name, size);

@@ -60,19 +74,20 @@ public class ParserFactory {
        return parser;
    }

    private static KXmlParser instantiateParser(String name) throws XmlPullParserException {
        KXmlParser parser;
        if (name != null) {
            parser = new CustomParser(name);
        } else {
            parser = new KXmlParser();
    @NonNull
    public static XmlPullParser instantiateParser(@Nullable String name)
            throws XmlPullParserException {
        if (sLayoutlibCallback == null) {
            throw new XmlPullParserException("ParserFactory not initialized.");
        }
        XmlPullParser parser = sLayoutlibCallback.createParser(name);
        parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, true);
        return parser;
    }

    private static InputStream readAndClose(InputStream stream, String name, long size)
            throws XmlPullParserException {
    @NonNull
    private static InputStream readAndClose(@NonNull InputStream stream, @Nullable String name,
            long size) throws XmlPullParserException {
        // just a sanity check. It's doubtful we'll have such big files!
        if (size > Integer.MAX_VALUE) {
            throw new XmlPullParserException("File " + name + " is too big to be parsed");
@@ -121,22 +136,8 @@ public class ParserFactory {
        } finally {
            try {
                bufferedStream.close();
            } catch (IOException e) {
            }
        }
            } catch (IOException ignored) {
            }

    private static class CustomParser extends KXmlParser {
        private final String mName;

        CustomParser(String name) {
            super();
            mName = name;
        }

        @Override
        public String toString() {
            return mName;
        }
    }
}
+6 −0
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ import android.view.inputmethod.InputMethodManager_Accessor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;

import javax.swing.text.html.parser.Parser;

import static com.android.ide.common.rendering.api.Result.Status.ERROR_LOCK_INTERRUPTED;
import static com.android.ide.common.rendering.api.Result.Status.ERROR_TIMEOUT;
import static com.android.ide.common.rendering.api.Result.Status.SUCCESS;
@@ -99,6 +101,9 @@ public abstract class RenderAction<T extends RenderParams> extends FrameworkReso
            return result;
        }

        // setup the ParserFactory
        ParserFactory.setLayoutlibCallback(mParams.getLayoutlibCallback());

        HardwareConfig hardwareConfig = mParams.getHardwareConfig();

        // setup the display Metrics.
@@ -271,6 +276,7 @@ public abstract class RenderAction<T extends RenderParams> extends FrameworkReso
            mContext.getRenderResources().setFrameworkResourceIdProvider(null);
            mContext.getRenderResources().setLogger(null);
        }
        ParserFactory.setLayoutlibCallback(null);

    }

Loading