@@ -262,35 +262,35 @@ private void handleStartTag(String tag, Attributes attributes, int nestingLevel)
262262 } else if (tag .equalsIgnoreCase ("aztec_cursor" )) {
263263 handleCursor (spannableStringBuilder );
264264 } else if (tag .equalsIgnoreCase ("strong" )) {
265- start (spannableStringBuilder , TextFormat .FORMAT_BOLD , attributes , nestingLevel );
265+ start (spannableStringBuilder , TextFormat .FORMAT_BOLD , attributes );
266266 } else if (tag .equalsIgnoreCase ("b" )) {
267- start (spannableStringBuilder , TextFormat .FORMAT_BOLD , attributes , nestingLevel );
267+ start (spannableStringBuilder , TextFormat .FORMAT_BOLD , attributes );
268268 } else if (tag .equalsIgnoreCase ("em" )) {
269- start (spannableStringBuilder , TextFormat .FORMAT_ITALIC , attributes , nestingLevel );
269+ start (spannableStringBuilder , TextFormat .FORMAT_ITALIC , attributes );
270270 } else if (tag .equalsIgnoreCase ("cite" )) {
271- start (spannableStringBuilder , TextFormat .FORMAT_ITALIC , attributes , nestingLevel );
271+ start (spannableStringBuilder , TextFormat .FORMAT_ITALIC , attributes );
272272 } else if (tag .equalsIgnoreCase ("dfn" )) {
273- start (spannableStringBuilder , TextFormat .FORMAT_ITALIC , attributes , nestingLevel );
273+ start (spannableStringBuilder , TextFormat .FORMAT_ITALIC , attributes );
274274 } else if (tag .equalsIgnoreCase ("i" )) {
275- start (spannableStringBuilder , TextFormat .FORMAT_ITALIC , attributes , nestingLevel );
275+ start (spannableStringBuilder , TextFormat .FORMAT_ITALIC , attributes );
276276 } else if (tag .equalsIgnoreCase ("big" )) {
277- start (spannableStringBuilder , TextFormat .FORMAT_BIG , attributes , nestingLevel );
277+ start (spannableStringBuilder , TextFormat .FORMAT_BIG , attributes );
278278 } else if (tag .equalsIgnoreCase ("small" )) {
279- start (spannableStringBuilder , TextFormat .FORMAT_SMALL , attributes , nestingLevel );
279+ start (spannableStringBuilder , TextFormat .FORMAT_SMALL , attributes );
280280 } else if (tag .equalsIgnoreCase ("font" )) {
281- start (spannableStringBuilder , TextFormat .FORMAT_FONT , attributes , nestingLevel );
281+ start (spannableStringBuilder , TextFormat .FORMAT_FONT , attributes );
282282 } else if (tag .equalsIgnoreCase ("tt" )) {
283- start (spannableStringBuilder , TextFormat .FORMAT_MONOSPACE , attributes , nestingLevel );
283+ start (spannableStringBuilder , TextFormat .FORMAT_MONOSPACE , attributes );
284284 } else if (tag .equalsIgnoreCase ("a" )) {
285- start (spannableStringBuilder , TextFormat .FORMAT_LINK , attributes , nestingLevel );
285+ start (spannableStringBuilder , TextFormat .FORMAT_LINK , attributes );
286286 } else if (tag .equalsIgnoreCase ("u" )) {
287- start (spannableStringBuilder , TextFormat .FORMAT_UNDERLINE , attributes , nestingLevel );
287+ start (spannableStringBuilder , TextFormat .FORMAT_UNDERLINE , attributes );
288288 } else if (tag .equalsIgnoreCase ("sup" )) {
289- start (spannableStringBuilder , TextFormat .FORMAT_SUPERSCRIPT , attributes , nestingLevel );
289+ start (spannableStringBuilder , TextFormat .FORMAT_SUPERSCRIPT , attributes );
290290 } else if (tag .equalsIgnoreCase ("sub" )) {
291- start (spannableStringBuilder , TextFormat .FORMAT_SUBSCRIPT , attributes , nestingLevel );
291+ start (spannableStringBuilder , TextFormat .FORMAT_SUBSCRIPT , attributes );
292292 } else if (tag .equalsIgnoreCase ("code" )) {
293- start (spannableStringBuilder , TextFormat .FORMAT_CODE , attributes , nestingLevel );
293+ start (spannableStringBuilder , TextFormat .FORMAT_CODE , attributes );
294294 } else {
295295 if (tagHandler != null ) {
296296 boolean tagHandled = tagHandler .handleTag (true , tag , spannableStringBuilder , onMediaTappedListener ,
@@ -367,7 +367,7 @@ private void handleEndTag(String tag, int nestingLevel) {
367367 } else if (tag .equalsIgnoreCase ("code" )) {
368368 end (spannableStringBuilder , TextFormat .FORMAT_CODE );
369369 } else if (tagHandler != null ) {
370- tagHandler .handleTag (false , tag , spannableStringBuilder , onMediaTappedListener , context , null ,
370+ tagHandler .handleTag (false , tag , spannableStringBuilder , onMediaTappedListener , context , new AztecAttributes () ,
371371 nestingLevel );
372372 }
373373 }
@@ -402,45 +402,44 @@ private static Object getLast(Spanned text, Class kind) {
402402 }
403403 }
404404
405- private static void start (SpannableStringBuilder text , TextFormat textFormat , Attributes attributes ,
406- int nestingLevel ) {
407- final String attrs = Html .stringifyAttributes (attributes ).toString ();
405+ private static void start (SpannableStringBuilder text , TextFormat textFormat , Attributes attrs ) {
406+ final AztecAttributes attributes = new AztecAttributes (attrs );
408407 AztecInlineSpan newSpan ;
409408
410409 switch (textFormat ) {
411410 case FORMAT_BOLD :
412- newSpan = new AztecStyleBoldSpan (attrs );
411+ newSpan = new AztecStyleBoldSpan (attributes );
413412 break ;
414413 case FORMAT_ITALIC :
415- newSpan = new AztecStyleItalicSpan (attrs );
414+ newSpan = new AztecStyleItalicSpan (attributes );
416415 break ;
417416 case FORMAT_UNDERLINE :
418- newSpan = new AztecUnderlineSpan (attrs );
417+ newSpan = new AztecUnderlineSpan (attributes );
419418 break ;
420419 case FORMAT_LINK :
421- String url = attributes .getValue ("href" ) == null ? "" : attributes .getValue ("href" );
422- newSpan = new AztecURLSpan (url , attrs );
420+ String url = attributes .hasAttribute ("href" ) ? attributes .getValue ("href" ) : "" ;
421+ newSpan = new AztecURLSpan (url , attributes );
423422 break ;
424423 case FORMAT_BIG :
425- newSpan = new AztecRelativeSizeBigSpan (attrs );
424+ newSpan = new AztecRelativeSizeBigSpan (attributes );
426425 break ;
427426 case FORMAT_SMALL :
428- newSpan = new AztecRelativeSizeSmallSpan (attrs );
427+ newSpan = new AztecRelativeSizeSmallSpan (attributes );
429428 break ;
430429 case FORMAT_SUPERSCRIPT :
431- newSpan = new AztecSuperscriptSpan (attrs );
430+ newSpan = new AztecSuperscriptSpan (attributes );
432431 break ;
433432 case FORMAT_SUBSCRIPT :
434- newSpan = new AztecSubscriptSpan (attrs );
433+ newSpan = new AztecSubscriptSpan (attributes );
435434 break ;
436435 case FORMAT_MONOSPACE :
437- newSpan = new AztecTypefaceMonospaceSpan (attrs );
436+ newSpan = new AztecTypefaceMonospaceSpan (attributes );
438437 break ;
439438 case FORMAT_FONT :
440- newSpan = new FontSpan (attrs , attributes );
439+ newSpan = new FontSpan (attributes );
441440 break ;
442441 case FORMAT_CODE :
443- newSpan = new AztecCodeSpan (attrs );
442+ newSpan = new AztecCodeSpan (attributes );
444443 break ;
445444 default :
446445 throw new IllegalArgumentException ("Style not supported" );
@@ -504,7 +503,7 @@ private static void endFont(SpannableStringBuilder text) {
504503
505504 if (font != null && where != len ) {
506505
507- String color = font .getAttrs ().getValue ("color" );
506+ String color = font .getAttributes ().getValue ("color" );
508507
509508 if (!TextUtils .isEmpty (color )) {
510509 if (color .startsWith ("@" )) {
@@ -531,7 +530,7 @@ private static void endFont(SpannableStringBuilder text) {
531530 }
532531 }
533532
534- String face = font .getAttrs ().getValue ("face" );
533+ String face = font .getAttributes ().getValue ("face" );
535534
536535 if (face != null ) {
537536 text .setSpan (new TypefaceSpan (face ), where , len ,
0 commit comments