Loading java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java +5 −5 Original line number Diff line number Diff line Loading @@ -301,8 +301,8 @@ public final class KeyboardLayoutSet { final int xmlId = mResources.getIdentifier(keyboardLayoutSetName, "xml", packageName); try { parseKeyboardLayoutSet(mResources, xmlId); } catch (Exception e) { throw new RuntimeException(e.getMessage() + " in " + keyboardLayoutSetName); } catch (final Exception e) { throw new RuntimeException(e.getMessage() + " in " + keyboardLayoutSetName, e); } return new KeyboardLayoutSet(mContext, mParams); } Loading @@ -318,7 +318,7 @@ public final class KeyboardLayoutSet { if (TAG_KEYBOARD_SET.equals(tag)) { parseKeyboardLayoutSetContent(parser); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD_SET); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_KEYBOARD_SET); } } } Loading @@ -336,14 +336,14 @@ public final class KeyboardLayoutSet { if (TAG_ELEMENT.equals(tag)) { parseKeyboardLayoutSetElement(parser); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD_SET); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_KEYBOARD_SET); } } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); if (TAG_KEYBOARD_SET.equals(tag)) { break; } else { throw new XmlParseUtils.IllegalEndTag(parser, TAG_KEYBOARD_SET); throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_KEYBOARD_SET); } } } Loading java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java +9 −9 Original line number Diff line number Diff line Loading @@ -220,7 +220,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { parseKeyboardContent(parser, false); break; } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_KEYBOARD); } } } Loading Loading @@ -321,7 +321,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { } else if (TAG_KEY_STYLE.equals(tag)) { parseKeyStyle(parser, skip); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_ROW); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_ROW); } } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); Loading @@ -333,7 +333,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { || TAG_MERGE.equals(tag)) { break; } else { throw new XmlParseUtils.IllegalEndTag(parser, TAG_ROW); throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_ROW); } } } Loading @@ -345,10 +345,10 @@ public class KeyboardBuilder<KP extends KeyboardParams> { R.styleable.Keyboard); try { if (a.hasValue(R.styleable.Keyboard_horizontalGap)) { throw new XmlParseUtils.IllegalAttribute(parser, "horizontalGap"); throw new XmlParseUtils.IllegalAttribute(parser, TAG_ROW, "horizontalGap"); } if (a.hasValue(R.styleable.Keyboard_verticalGap)) { throw new XmlParseUtils.IllegalAttribute(parser, "verticalGap"); throw new XmlParseUtils.IllegalAttribute(parser, TAG_ROW, "verticalGap"); } return new KeyboardRow(mResources, mParams, parser, mCurrentY); } finally { Loading @@ -373,7 +373,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { } else if (TAG_KEY_STYLE.equals(tag)) { parseKeyStyle(parser, skip); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEY); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_ROW); } } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); Loading @@ -387,7 +387,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { || TAG_MERGE.equals(tag)) { break; } else { throw new XmlParseUtils.IllegalEndTag(parser, TAG_KEY); throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_ROW); } } } Loading Loading @@ -548,7 +548,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { } else if (TAG_DEFAULT.equals(tag)) { selected |= parseDefault(parser, row, selected ? true : skip); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEY); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_SWITCH); } } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); Loading @@ -556,7 +556,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { if (DEBUG) endTag("</%s>", TAG_SWITCH); break; } else { throw new XmlParseUtils.IllegalEndTag(parser, TAG_KEY); throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_SWITCH); } } } Loading java/src/com/android/inputmethod/latin/XmlParseUtils.java +16 −13 Original line number Diff line number Diff line Loading @@ -30,50 +30,53 @@ public final class XmlParseUtils { @SuppressWarnings("serial") public static class ParseException extends XmlPullParserException { public ParseException(String msg, XmlPullParser parser) { public ParseException(final String msg, final XmlPullParser parser) { super(msg + " at " + parser.getPositionDescription()); } } @SuppressWarnings("serial") public static final class IllegalStartTag extends ParseException { public IllegalStartTag(XmlPullParser parser, String parent) { super("Illegal start tag " + parser.getName() + " in " + parent, parser); public IllegalStartTag(final XmlPullParser parser, final String tag, final String parent) { super("Illegal start tag " + tag + " in " + parent, parser); } } @SuppressWarnings("serial") public static final class IllegalEndTag extends ParseException { public IllegalEndTag(XmlPullParser parser, String parent) { super("Illegal end tag " + parser.getName() + " in " + parent, parser); public IllegalEndTag(final XmlPullParser parser, final String tag, final String parent) { super("Illegal end tag " + tag + " in " + parent, parser); } } @SuppressWarnings("serial") public static final class IllegalAttribute extends ParseException { public IllegalAttribute(XmlPullParser parser, String attribute) { super("Tag " + parser.getName() + " has illegal attribute " + attribute, parser); public IllegalAttribute(final XmlPullParser parser, final String tag, final String attribute) { super("Tag " + tag + " has illegal attribute " + attribute, parser); } } @SuppressWarnings("serial") public static final class NonEmptyTag extends ParseException{ public NonEmptyTag(String tag, XmlPullParser parser) { public NonEmptyTag(final XmlPullParser parser, final String tag) { super(tag + " must be empty tag", parser); } } public static void checkEndTag(String tag, XmlPullParser parser) public static void checkEndTag(final String tag, final XmlPullParser parser) throws XmlPullParserException, IOException { if (parser.next() == XmlPullParser.END_TAG && tag.equals(parser.getName())) return; throw new NonEmptyTag(tag, parser); throw new NonEmptyTag(parser, tag); } public static void checkAttributeExists(TypedArray attr, int attrId, String attrName, String tag, XmlPullParser parser) throws XmlPullParserException { if (attr.hasValue(attrId)) public static void checkAttributeExists(final TypedArray attr, final int attrId, final String attrName, final String tag, final XmlPullParser parser) throws XmlPullParserException { if (attr.hasValue(attrId)) { return; } throw new ParseException( "No " + attrName + " attribute found in <" + tag + "/>", parser); } Loading Loading
java/src/com/android/inputmethod/keyboard/KeyboardLayoutSet.java +5 −5 Original line number Diff line number Diff line Loading @@ -301,8 +301,8 @@ public final class KeyboardLayoutSet { final int xmlId = mResources.getIdentifier(keyboardLayoutSetName, "xml", packageName); try { parseKeyboardLayoutSet(mResources, xmlId); } catch (Exception e) { throw new RuntimeException(e.getMessage() + " in " + keyboardLayoutSetName); } catch (final Exception e) { throw new RuntimeException(e.getMessage() + " in " + keyboardLayoutSetName, e); } return new KeyboardLayoutSet(mContext, mParams); } Loading @@ -318,7 +318,7 @@ public final class KeyboardLayoutSet { if (TAG_KEYBOARD_SET.equals(tag)) { parseKeyboardLayoutSetContent(parser); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD_SET); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_KEYBOARD_SET); } } } Loading @@ -336,14 +336,14 @@ public final class KeyboardLayoutSet { if (TAG_ELEMENT.equals(tag)) { parseKeyboardLayoutSetElement(parser); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD_SET); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_KEYBOARD_SET); } } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); if (TAG_KEYBOARD_SET.equals(tag)) { break; } else { throw new XmlParseUtils.IllegalEndTag(parser, TAG_KEYBOARD_SET); throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_KEYBOARD_SET); } } } Loading
java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java +9 −9 Original line number Diff line number Diff line Loading @@ -220,7 +220,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { parseKeyboardContent(parser, false); break; } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEYBOARD); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_KEYBOARD); } } } Loading Loading @@ -321,7 +321,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { } else if (TAG_KEY_STYLE.equals(tag)) { parseKeyStyle(parser, skip); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_ROW); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_ROW); } } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); Loading @@ -333,7 +333,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { || TAG_MERGE.equals(tag)) { break; } else { throw new XmlParseUtils.IllegalEndTag(parser, TAG_ROW); throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_ROW); } } } Loading @@ -345,10 +345,10 @@ public class KeyboardBuilder<KP extends KeyboardParams> { R.styleable.Keyboard); try { if (a.hasValue(R.styleable.Keyboard_horizontalGap)) { throw new XmlParseUtils.IllegalAttribute(parser, "horizontalGap"); throw new XmlParseUtils.IllegalAttribute(parser, TAG_ROW, "horizontalGap"); } if (a.hasValue(R.styleable.Keyboard_verticalGap)) { throw new XmlParseUtils.IllegalAttribute(parser, "verticalGap"); throw new XmlParseUtils.IllegalAttribute(parser, TAG_ROW, "verticalGap"); } return new KeyboardRow(mResources, mParams, parser, mCurrentY); } finally { Loading @@ -373,7 +373,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { } else if (TAG_KEY_STYLE.equals(tag)) { parseKeyStyle(parser, skip); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEY); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_ROW); } } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); Loading @@ -387,7 +387,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { || TAG_MERGE.equals(tag)) { break; } else { throw new XmlParseUtils.IllegalEndTag(parser, TAG_KEY); throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_ROW); } } } Loading Loading @@ -548,7 +548,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { } else if (TAG_DEFAULT.equals(tag)) { selected |= parseDefault(parser, row, selected ? true : skip); } else { throw new XmlParseUtils.IllegalStartTag(parser, TAG_KEY); throw new XmlParseUtils.IllegalStartTag(parser, tag, TAG_SWITCH); } } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); Loading @@ -556,7 +556,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> { if (DEBUG) endTag("</%s>", TAG_SWITCH); break; } else { throw new XmlParseUtils.IllegalEndTag(parser, TAG_KEY); throw new XmlParseUtils.IllegalEndTag(parser, tag, TAG_SWITCH); } } } Loading
java/src/com/android/inputmethod/latin/XmlParseUtils.java +16 −13 Original line number Diff line number Diff line Loading @@ -30,50 +30,53 @@ public final class XmlParseUtils { @SuppressWarnings("serial") public static class ParseException extends XmlPullParserException { public ParseException(String msg, XmlPullParser parser) { public ParseException(final String msg, final XmlPullParser parser) { super(msg + " at " + parser.getPositionDescription()); } } @SuppressWarnings("serial") public static final class IllegalStartTag extends ParseException { public IllegalStartTag(XmlPullParser parser, String parent) { super("Illegal start tag " + parser.getName() + " in " + parent, parser); public IllegalStartTag(final XmlPullParser parser, final String tag, final String parent) { super("Illegal start tag " + tag + " in " + parent, parser); } } @SuppressWarnings("serial") public static final class IllegalEndTag extends ParseException { public IllegalEndTag(XmlPullParser parser, String parent) { super("Illegal end tag " + parser.getName() + " in " + parent, parser); public IllegalEndTag(final XmlPullParser parser, final String tag, final String parent) { super("Illegal end tag " + tag + " in " + parent, parser); } } @SuppressWarnings("serial") public static final class IllegalAttribute extends ParseException { public IllegalAttribute(XmlPullParser parser, String attribute) { super("Tag " + parser.getName() + " has illegal attribute " + attribute, parser); public IllegalAttribute(final XmlPullParser parser, final String tag, final String attribute) { super("Tag " + tag + " has illegal attribute " + attribute, parser); } } @SuppressWarnings("serial") public static final class NonEmptyTag extends ParseException{ public NonEmptyTag(String tag, XmlPullParser parser) { public NonEmptyTag(final XmlPullParser parser, final String tag) { super(tag + " must be empty tag", parser); } } public static void checkEndTag(String tag, XmlPullParser parser) public static void checkEndTag(final String tag, final XmlPullParser parser) throws XmlPullParserException, IOException { if (parser.next() == XmlPullParser.END_TAG && tag.equals(parser.getName())) return; throw new NonEmptyTag(tag, parser); throw new NonEmptyTag(parser, tag); } public static void checkAttributeExists(TypedArray attr, int attrId, String attrName, String tag, XmlPullParser parser) throws XmlPullParserException { if (attr.hasValue(attrId)) public static void checkAttributeExists(final TypedArray attr, final int attrId, final String attrName, final String tag, final XmlPullParser parser) throws XmlPullParserException { if (attr.hasValue(attrId)) { return; } throw new ParseException( "No " + attrName + " attribute found in <" + tag + "/>", parser); } Loading