docs: @NonNull
      public static Spanned style(@NonNull Context ctx,
                                  @Nullable HashMap<String, ITypeface> fonts,
                                  @NonNull Spanned textSpanned,
                                  @Nullable List<CharacterStyle> styles,
                                  @Nullable HashMap<String, List<CharacterStyle>> stylesFor) {
          fonts = init(ctx, fonts);
  
          //find all icons which should be replaced with the iconFont
          TextStyleContainer textStyleContainer = IconicsUtils.findIcons(textSpanned, fonts);
  
          //create spannableString to set the spans on
          SpannableString sb = SpannableString.valueOf(textStyleContainer.spannableStringBuilder);
  
          //set all the icons and styles
          IconicsUtils.applyStyles(ctx, sb, textStyleContainer.styleContainers, styles, stylesFor);
  
          return sb;
      }