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

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

Merge "Fix rare NPE in BridgeContext." into lmp-mr1-dev

parents 71518174 85d72c45
Loading
Loading
Loading
Loading
+32 −23
Original line number Diff line number Diff line
@@ -94,6 +94,7 @@ import java.util.Map;
/**
 * Custom implementation of Context/Activity to handle non compiled resources.
 */
@SuppressWarnings("deprecation")  // For use of Pair.
public final class BridgeContext extends Context {

    /** The map adds cookies to each view so that IDE can link xml tags to views. */
@@ -569,7 +570,7 @@ public final class BridgeContext extends Context {

        // Hint: for XmlPullParser, attach source //DEVICE_SRC/dalvik/libcore/xml/src/java
        if (set instanceof BridgeXmlBlockParser) {
            BridgeXmlBlockParser parser = null;
            BridgeXmlBlockParser parser;
            parser = (BridgeXmlBlockParser)set;

            isPlatformFile = parser.isPlatformFile();
@@ -590,7 +591,7 @@ public final class BridgeContext extends Context {
        } else if (set != null) { // null parser is ok
            // really this should not be happening since its instantiated in Bridge
            Bridge.getLog().error(LayoutLog.TAG_BROKEN,
                    "Parser is not a BridgeXmlBlockParser!", null /*data*/);
                    "Parser is not a BridgeXmlBlockParser!", null);
            return null;
        }

@@ -602,7 +603,7 @@ public final class BridgeContext extends Context {
        // look for a custom style.
        String customStyle = null;
        if (set != null) {
            customStyle = set.getAttributeValue(null /* namespace*/, "style");
            customStyle = set.getAttributeValue(null, "style");
        }

        StyleResourceValue customStyleValues = null;
@@ -625,6 +626,13 @@ public final class BridgeContext extends Context {
            // get the name from the int.
            Pair<String, Boolean> defStyleAttribute = searchAttr(defStyleAttr);

            if (defStyleAttribute == null) {
                // This should be rare. Happens trying to map R.style.foo to @style/foo fails.
                // This will happen if the user explicitly used a non existing int value for
                // defStyleAttr or there's something wrong with the project structure/build.
                Bridge.getLog().error(LayoutLog.TAG_RESOURCES_RESOLVE,
                        "Failed to find the style corresponding to the id " + defStyleAttr, null);
            } else {
                if (defaultPropMap != null) {
                    String defStyleName = defStyleAttribute.getFirst();
                    if (defStyleAttribute.getSecond()) {
@@ -649,7 +657,8 @@ public final class BridgeContext extends Context {
                            String.format(
                                    "Failed to find style '%s' in current theme",
                                    defStyleAttribute.getFirst()),
                        null /*data*/);
                            null);
                }
            }
        } else if (defStyleRes != 0) {
            boolean isFrameworkRes = true;