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

Commit 21b56457 authored by Deepanshu Gupta's avatar Deepanshu Gupta
Browse files

Fix include tag rendering.

A missing catch clause caused rendering to be failed when there is an
include tag that doesn't specify layout_width and layout_height. Also
improve the error messages to make debugging easier next time.

Change-Id: I617762636973a010b34da167c7b5fcd328b7d178
parent 5f1bf496
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -444,7 +444,7 @@ public final class BridgeTypedArray extends TypedArray {
    @Override
    public int getDimensionPixelSize(int index, int defValue) {
        try {
            return getDimension(index);
            return getDimension(index, null);
        } catch (RuntimeException e) {
            String s = getString(index);

@@ -474,12 +474,12 @@ public final class BridgeTypedArray extends TypedArray {
    @Override
    public int getLayoutDimension(int index, String name) {
        try {
            // this will throw an exception
            return getDimension(index);
            // this will throw an exception if not found.
            return getDimension(index, name);
        } catch (RuntimeException e) {

            if (LayoutInflater_Delegate.sIsInInclude) {
                throw new RuntimeException();
                throw new RuntimeException("Layout Dimension '" + name + "' not found.");
            }

            Bridge.getLog().warning(LayoutLog.TAG_RESOURCES_FORMAT,
@@ -494,9 +494,13 @@ public final class BridgeTypedArray extends TypedArray {
        return getDimensionPixelSize(index, defValue);
    }

    private int getDimension(int index) {
    /** @param name attribute name, used for error reporting. */
    private int getDimension(int index, @Nullable String name) {
        String s = getString(index);
        if (s == null) {
            if (name != null) {
                throw new RuntimeException("Attribute '" + name + "' not found");
            }
            throw new RuntimeException();
        }
        // Check if the value is a magic constant that doesn't require a unit.
+2 −1
Original line number Diff line number Diff line
@@ -181,7 +181,8 @@ public class LayoutInflater_Delegate {
                            // ---- END CHANGES

                            params = group.generateLayoutParams(attrs);

                        } catch (RuntimeException ignored) {
                            // Ignore, just fail over to child attrs.
                        } finally {
                            // ---- START CHANGES
                            sIsInInclude = false;