.class public Lcom/forum/im/utils/SmileUtils; .super Ljava/lang/Object; .source "SmileUtils.java" # static fields .field private static final emoticons:Ljava/util/Map; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Map<", "Ljava/util/regex/Pattern;", "Ljava/lang/Integer;", ">;" } .end annotation .end field .field public static final f1:Ljava/lang/String; = "[:f1]" .field public static final f10:Ljava/lang/String; = "[:f10]" .field public static final f11:Ljava/lang/String; = "[:f11]" .field public static final f12:Ljava/lang/String; = "[:f12]" .field public static final f13:Ljava/lang/String; = "[:f13]" .field public static final f14:Ljava/lang/String; = "[:f14]" .field public static final f15:Ljava/lang/String; = "[:f15]" .field public static final f16:Ljava/lang/String; = "[:f16]" .field public static final f17:Ljava/lang/String; = "[:f17]" .field public static final f18:Ljava/lang/String; = "[:f18]" .field public static final f19:Ljava/lang/String; = "[:f19]" .field public static final f2:Ljava/lang/String; = "[:f2]" .field public static final f20:Ljava/lang/String; = "[:f20]" .field public static final f21:Ljava/lang/String; = "[:f21]" .field public static final f22:Ljava/lang/String; = "[:f22]" .field public static final f23:Ljava/lang/String; = "[:f23]" .field public static final f24:Ljava/lang/String; = "[:f24]" .field public static final f25:Ljava/lang/String; = "[:f25]" .field public static final f26:Ljava/lang/String; = "[:f26]" .field public static final f27:Ljava/lang/String; = "[:f27]" .field public static final f28:Ljava/lang/String; = "[:f28]" .field public static final f29:Ljava/lang/String; = "[:f29]" .field public static final f3:Ljava/lang/String; = "[:f3]" .field public static final f30:Ljava/lang/String; = "[:f30]" .field public static final f31:Ljava/lang/String; = "[:f31]" .field public static final f32:Ljava/lang/String; = "[:f32]" .field public static final f33:Ljava/lang/String; = "[:f33]" .field public static final f34:Ljava/lang/String; = "[:f34]" .field public static final f35:Ljava/lang/String; = "[:f35]" .field public static final f36:Ljava/lang/String; = "[:f36]" .field public static final f37:Ljava/lang/String; = "[:f37]" .field public static final f38:Ljava/lang/String; = "[:f38]" .field public static final f39:Ljava/lang/String; = "[:f39]" .field public static final f4:Ljava/lang/String; = "[:f4]" .field public static final f40:Ljava/lang/String; = "[:f40]" .field public static final f5:Ljava/lang/String; = "[:f5]" .field public static final f6:Ljava/lang/String; = "[:f6]" .field public static final f7:Ljava/lang/String; = "[:f7]" .field public static final f8:Ljava/lang/String; = "[:f8]" .field public static final f9:Ljava/lang/String; = "[:f9]" .field private static final spannableFactory:Landroid/text/Spannable$Factory; # direct methods .method static constructor ()V .registers 1 .line 71 invoke-static {}, Landroid/text/Spannable$Factory;->getInstance()Landroid/text/Spannable$Factory; move-result-object v0 sput-object v0, Lcom/forum/im/utils/SmileUtils;->spannableFactory:Landroid/text/Spannable$Factory; .line 73 new-instance v0, Ljava/util/HashMap; invoke-direct {v0}, Ljava/util/HashMap;->()V sput-object v0, Lcom/forum/im/utils/SmileUtils;->emoticons:Ljava/util/Map; return-void .end method .method public constructor ()V .registers 1 .line 28 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method private static addPattern(Ljava/util/Map;Ljava/lang/String;I)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Map<", "Ljava/util/regex/Pattern;", "Ljava/lang/Integer;", ">;", "Ljava/lang/String;", "I)V" } .end annotation .line 123 invoke-static {p1}, Ljava/util/regex/Pattern;->quote(Ljava/lang/String;)Ljava/lang/String; move-result-object p1 invoke-static {p1}, Ljava/util/regex/Pattern;->compile(Ljava/lang/String;)Ljava/util/regex/Pattern; move-result-object p1 invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object p2 invoke-interface {p0, p1, p2}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; return-void .end method .method public static addSmiles(Landroid/content/Context;Landroid/text/Spannable;)Z .registers 13 .line 135 sget-object v0, Lcom/forum/im/utils/SmileUtils;->emoticons:Ljava/util/Map; invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 const/4 v1, 0x0 move v2, v1 :cond_c invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v3 if-eqz v3, :cond_76 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/util/Map$Entry; .line 136 invoke-interface {v3}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v4 check-cast v4, Ljava/util/regex/Pattern; invoke-virtual {v4, p1}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object v4 .line 137 :cond_22 :goto_22 invoke-virtual {v4}, Ljava/util/regex/Matcher;->find()Z move-result v5 if-eqz v5, :cond_c .line 139 invoke-virtual {v4}, Ljava/util/regex/Matcher;->start()I move-result v5 .line 140 invoke-virtual {v4}, Ljava/util/regex/Matcher;->end()I move-result v6 const-class v7, Landroid/text/style/ImageSpan; .line 139 invoke-interface {p1, v5, v6, v7}, Landroid/text/Spannable;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object; move-result-object v5 check-cast v5, [Landroid/text/style/ImageSpan; array-length v6, v5 move v7, v1 :goto_3a if-ge v7, v6, :cond_58 aget-object v8, v5, v7 .line 141 invoke-interface {p1, v8}, Landroid/text/Spannable;->getSpanStart(Ljava/lang/Object;)I move-result v9 invoke-virtual {v4}, Ljava/util/regex/Matcher;->start()I move-result v10 if-lt v9, v10, :cond_22 .line 142 invoke-interface {p1, v8}, Landroid/text/Spannable;->getSpanEnd(Ljava/lang/Object;)I move-result v9 invoke-virtual {v4}, Ljava/util/regex/Matcher;->end()I move-result v10 if-gt v9, v10, :cond_22 .line 143 invoke-interface {p1, v8}, Landroid/text/Spannable;->removeSpan(Ljava/lang/Object;)V add-int/lit8 v7, v7, 0x1 goto :goto_3a .line 150 :cond_58 new-instance v2, Landroid/text/style/ImageSpan; invoke-interface {v3}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object; move-result-object v5 check-cast v5, Ljava/lang/Integer; invoke-virtual {v5}, Ljava/lang/Integer;->intValue()I move-result v5 invoke-direct {v2, p0, v5}, Landroid/text/style/ImageSpan;->(Landroid/content/Context;I)V .line 151 invoke-virtual {v4}, Ljava/util/regex/Matcher;->start()I move-result v5 invoke-virtual {v4}, Ljava/util/regex/Matcher;->end()I move-result v6 const/16 v7, 0x21 .line 150 invoke-interface {p1, v2, v5, v6, v7}, Landroid/text/Spannable;->setSpan(Ljava/lang/Object;III)V const/4 v2, 0x1 goto :goto_22 :cond_76 return v2 .end method .method public static containsKey(Ljava/lang/String;)Z .registers 3 .line 167 sget-object v0, Lcom/forum/im/utils/SmileUtils;->emoticons:Ljava/util/Map; invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_a invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_28 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/Map$Entry; .line 168 invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v1 check-cast v1, Ljava/util/regex/Pattern; invoke-virtual {v1, p0}, Ljava/util/regex/Pattern;->matcher(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher; move-result-object v1 .line 169 invoke-virtual {v1}, Ljava/util/regex/Matcher;->find()Z move-result v1 if-eqz v1, :cond_a const/4 p0, 0x1 goto :goto_29 :cond_28 const/4 p0, 0x0 :goto_29 return p0 .end method .method public static getSmiledText(Landroid/content/Context;Ljava/lang/CharSequence;)Landroid/text/Spannable; .registers 3 .line 160 sget-object v0, Lcom/forum/im/utils/SmileUtils;->spannableFactory:Landroid/text/Spannable$Factory; invoke-virtual {v0, p1}, Landroid/text/Spannable$Factory;->newSpannable(Ljava/lang/CharSequence;)Landroid/text/Spannable; move-result-object p1 .line 161 invoke-static {p0, p1}, Lcom/forum/im/utils/SmileUtils;->addSmiles(Landroid/content/Context;Landroid/text/Spannable;)Z return-object p1 .end method