@@ -310,42 +310,47 @@ private SpannableStringBuilder addClickablePart(RichElement richElement) {
310310 richObject .getId (),
311311 name
312312 );
313-
314- DisplayUtils .setAvatar (
315- currentAccountProvider .getUser (),
316- richObject .getId (),
317- name ,
318- this ,
319- context .getResources ().getDimension (R .dimen .avatar_icon_radius ),
320- context .getResources (),
321- drawableForChip ,
322- context
323- );
313+
314+ if (richObject .getId () != null ) {
315+ DisplayUtils .setAvatar (
316+ currentAccountProvider .getUser (),
317+ richObject .getId (),
318+ name ,
319+ this ,
320+ context .getResources ().getDimension (R .dimen .avatar_icon_radius ),
321+ context .getResources (),
322+ drawableForChip ,
323+ context
324+ );
325+ }
324326
325327 ssb .setSpan (mentionChipSpan , idx1 , idx2 , Spannable .SPAN_INCLUSIVE_EXCLUSIVE );
326328 } else {
327329 String name = richObject .getName ();
328- ssb .replace (idx1 , idx2 , name );
329- text = ssb .toString ();
330- idx2 = idx1 + name .length ();
331- ssb .setSpan (new ClickableSpan () {
332- @ Override
333- public void onClick (@ NonNull View widget ) {
334- activityListInterface .onActivityClicked (richObject );
335- }
336-
337- @ Override
338- public void updateDrawState (@ NonNull TextPaint ds ) {
339- ds .setUnderlineText (false );
340- }
341- }, idx1 , idx2 , 0 );
342- ssb .setSpan (new StyleSpan (android .graphics .Typeface .BOLD ), idx1 , idx2 , 0 );
343- ssb .setSpan (
344- new ForegroundColorSpan (context .getResources ().getColor (R .color .text_color )),
345- idx1 ,
346- idx2 ,
347- Spannable .SPAN_EXCLUSIVE_EXCLUSIVE
348- );
330+
331+ if (name != null ) {
332+ ssb .replace (idx1 , idx2 , name );
333+ text = ssb .toString ();
334+ idx2 = idx1 + name .length ();
335+ ssb .setSpan (new ClickableSpan () {
336+ @ Override
337+ public void onClick (@ NonNull View widget ) {
338+ activityListInterface .onActivityClicked (richObject );
339+ }
340+
341+ @ Override
342+ public void updateDrawState (@ NonNull TextPaint ds ) {
343+ ds .setUnderlineText (false );
344+ }
345+ }, idx1 , idx2 , 0 );
346+ ssb .setSpan (new StyleSpan (android .graphics .Typeface .BOLD ), idx1 , idx2 , 0 );
347+ ssb .setSpan (
348+ new ForegroundColorSpan (context .getResources ().getColor (R .color .text_color )),
349+ idx1 ,
350+ idx2 ,
351+ Spannable .SPAN_EXCLUSIVE_EXCLUSIVE
352+ );
353+ }
349354 }
350355 }
351356 idx1 = text .indexOf ('{' , idx2 );
@@ -356,7 +361,7 @@ public void updateDrawState(@NonNull TextPaint ds) {
356361
357362 private RichObject searchObjectByName (List <RichObject > richObjectList , String name ) {
358363 for (RichObject richObject : richObjectList ) {
359- if (richObject .getTag ().equalsIgnoreCase (name )) {
364+ if (richObject .getTag () != null && richObject . getTag () .equalsIgnoreCase (name )) {
360365 return richObject ;
361366 }
362367 }
0 commit comments