.class public final Lcom/discord/utilities/textprocessing/MessageUtils; .super Ljava/lang/Object; .source "MessageUtils.kt" # static fields .field public static final INSTANCE:Lcom/discord/utilities/textprocessing/MessageUtils; .field public static final WELCOME_MESSAGES:[I # direct methods .method public static constructor ()V .locals 1 new-instance v0, Lcom/discord/utilities/textprocessing/MessageUtils; invoke-direct {v0}, Lcom/discord/utilities/textprocessing/MessageUtils;->()V sput-object v0, Lcom/discord/utilities/textprocessing/MessageUtils;->INSTANCE:Lcom/discord/utilities/textprocessing/MessageUtils; const/16 v0, 0x27 new-array v0, v0, [I fill-array-data v0, :array_0 sput-object v0, Lcom/discord/utilities/textprocessing/MessageUtils;->WELCOME_MESSAGES:[I return-void nop :array_0 .array-data 4 0x7f121217 0x7f121218 0x7f121219 0x7f12121a 0x7f12121b 0x7f12121c 0x7f12121d 0x7f12121e 0x7f12121f 0x7f121220 0x7f121221 0x7f121222 0x7f121223 0x7f121224 0x7f121225 0x7f121226 0x7f121227 0x7f121228 0x7f121229 0x7f12122a 0x7f12122b 0x7f12122c 0x7f12122d 0x7f12122e 0x7f12122f 0x7f121230 0x7f121231 0x7f121232 0x7f121233 0x7f121234 0x7f121235 0x7f121236 0x7f121237 0x7f121238 0x7f121239 0x7f12123a 0x7f12123b 0x7f12123c 0x7f12123d .end array-data .end method .method public constructor ()V .locals 0 invoke-direct {p0}, Ljava/lang/Object;->()V return-void .end method .method private final cleanEmojisInQuotedText(Ljava/lang/String;)Ljava/lang/String; .locals 2 new-instance v0, Lkotlin/text/Regex; const-string v1, "<(a)?:([a-zA-Z_0-9]+):(\\d+)>" invoke-direct {v0, v1}, Lkotlin/text/Regex;->(Ljava/lang/String;)V new-instance v1, Lcom/discord/utilities/textprocessing/MessageUtils$cleanEmojisInQuotedText$1; invoke-direct {v1, p1}, Lcom/discord/utilities/textprocessing/MessageUtils$cleanEmojisInQuotedText$1;->(Ljava/lang/String;)V invoke-virtual {v0, p1, v1}, Lkotlin/text/Regex;->replace(Ljava/lang/CharSequence;Lkotlin/jvm/functions/Function1;)Ljava/lang/String; move-result-object p1 return-object p1 .end method .method private final cleanTextOfQuotes(Ljava/lang/String;)Ljava/lang/String; .locals 10 const/4 v0, 0x1 new-array v1, v0, [C const/4 v2, 0x0 const/16 v3, 0xa aput-char v3, v1, v2 const/4 v3, 0x6 invoke-static {p1, v1, v2, v2, v3}, Lt/a0/s;->split$default(Ljava/lang/CharSequence;[CZII)Ljava/util/List; move-result-object p1 new-instance v1, Ljava/util/ArrayList; invoke-direct {v1}, Ljava/util/ArrayList;->()V invoke-interface {p1}, Ljava/lang/Iterable;->iterator()Ljava/util/Iterator; move-result-object p1 :cond_0 :goto_0 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v3 if-eqz v3, :cond_1 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v3 move-object v4, v3 check-cast v4, Ljava/lang/String; const/4 v5, 0x2 const-string v6, "> " invoke-static {v4, v6, v2, v5}, Lt/a0/n;->startsWith$default(Ljava/lang/String;Ljava/lang/String;ZI)Z move-result v4 xor-int/2addr v4, v0 if-eqz v4, :cond_0 invoke-interface {v1, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z goto :goto_0 :cond_1 invoke-interface {v1}, Ljava/util/List;->iterator()Ljava/util/Iterator; move-result-object p1 :goto_1 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v3 const/4 v4, -0x1 if-eqz v3, :cond_3 invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v3 check-cast v3, Ljava/lang/String; invoke-static {v3}, Lt/a0/n;->isBlank(Ljava/lang/CharSequence;)Z move-result v3 xor-int/2addr v3, v0 if-eqz v3, :cond_2 goto :goto_2 :cond_2 add-int/lit8 v2, v2, 0x1 goto :goto_1 :cond_3 const/4 v2, -0x1 :goto_2 if-ne v2, v4, :cond_4 const/4 p1, 0x0 return-object p1 :cond_4 invoke-interface {v1}, Ljava/util/List;->size()I move-result p1 invoke-static {v2, p1}, Lt/x/c;->until(II)Lkotlin/ranges/IntRange; move-result-object p1 invoke-static {v1, p1}, Lt/q/l;->slice(Ljava/util/List;Lkotlin/ranges/IntRange;)Ljava/util/List; move-result-object v2 const/4 v4, 0x0 const/4 v5, 0x0 const/4 v6, 0x0 const/4 v7, 0x0 const/4 v8, 0x0 const/16 v9, 0x3e const-string v3, "\n" invoke-static/range {v2 .. v9}, Lt/q/l;->joinToString$default(Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;I)Ljava/lang/String; move-result-object p1 return-object p1 .end method .method private final formatTextAsQuote(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; .locals 11 const-string v0, "\n" filled-new-array {v0}, [Ljava/lang/String; move-result-object v0 const/4 v1, 0x0 const/4 v2, 0x6 invoke-static {p1, v0, v1, v1, v2}, Lt/a0/s;->split$default(Ljava/lang/CharSequence;[Ljava/lang/String;ZII)Ljava/util/List; move-result-object v3 sget-object v9, Lcom/discord/utilities/textprocessing/MessageUtils$formatTextAsQuote$formattedText$1;->INSTANCE:Lcom/discord/utilities/textprocessing/MessageUtils$formatTextAsQuote$formattedText$1; const-string v4, "" const/4 v5, 0x0 const/4 v6, 0x0 const/4 v7, 0x0 const/4 v8, 0x0 const/16 v10, 0x1e invoke-static/range {v3 .. v10}, Lt/q/l;->joinToString$default(Ljava/lang/Iterable;Ljava/lang/CharSequence;Ljava/lang/CharSequence;Ljava/lang/CharSequence;ILjava/lang/CharSequence;Lkotlin/jvm/functions/Function1;I)Ljava/lang/String; move-result-object p1 if-eqz p2, :cond_0 invoke-static {p1, p2}, Le/e/b/a/a;->a(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p1 :cond_0 return-object p1 .end method .method public static final getNickOrUsernames(Lcom/discord/models/domain/ModelMessage;Lcom/discord/models/domain/ModelChannel;Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map; .locals 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/discord/models/domain/ModelMessage;", "Lcom/discord/models/domain/ModelChannel;", "Ljava/util/Map<", "Ljava/lang/Long;", "+", "Lcom/discord/models/domain/ModelGuildMember$Computed;", ">;", "Ljava/util/Map<", "Ljava/lang/Long;", "+", "Lcom/discord/models/domain/ModelChannel$RecipientNick;", ">;)", "Ljava/util/Map<", "Ljava/lang/Long;", "Ljava/lang/String;", ">;" } .end annotation const/4 v0, 0x0 if-eqz p0, :cond_2 if-eqz p2, :cond_1 if-eqz p3, :cond_0 invoke-virtual {p0}, Lcom/discord/models/domain/ModelMessage;->getMentions()Ljava/util/List; move-result-object v0 const-string v1, "message.mentions" invoke-static {v0, v1}, Lt/u/b/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-virtual {p0}, Lcom/discord/models/domain/ModelMessage;->getAuthor()Lcom/discord/models/domain/ModelUser; move-result-object p0 invoke-static {v0, p0}, Lt/q/l;->plus(Ljava/util/Collection;Ljava/lang/Object;)Ljava/util/List; move-result-object p0 invoke-static {p0, p1, p2, p3}, Lcom/discord/utilities/channel/ChannelUtils;->getNickOrUsernames(Ljava/lang/Iterable;Lcom/discord/models/domain/ModelChannel;Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map; move-result-object p0 return-object p0 :cond_0 const-string p0, "nicks" invoke-static {p0}, Lt/u/b/j;->a(Ljava/lang/String;)V throw v0 :cond_1 const-string p0, "channelMembers" invoke-static {p0}, Lt/u/b/j;->a(Ljava/lang/String;)V throw v0 :cond_2 const-string p0, "message" invoke-static {p0}, Lt/u/b/j;->a(Ljava/lang/String;)V throw v0 .end method .method public static synthetic getNickOrUsernames$default(Lcom/discord/models/domain/ModelMessage;Lcom/discord/models/domain/ModelChannel;Ljava/util/Map;Ljava/util/Map;ILjava/lang/Object;)Ljava/util/Map; .locals 0 and-int/lit8 p4, p4, 0x8 if-eqz p4, :cond_0 invoke-static {}, Lt/q/l;->emptyMap()Ljava/util/Map; move-result-object p3 :cond_0 invoke-static {p0, p1, p2, p3}, Lcom/discord/utilities/textprocessing/MessageUtils;->getNickOrUsernames(Lcom/discord/models/domain/ModelMessage;Lcom/discord/models/domain/ModelChannel;Ljava/util/Map;Ljava/util/Map;)Ljava/util/Map; move-result-object p0 return-object p0 .end method .method public static final getSystemMessageUserJoin(Landroid/content/Context;J)I .locals 3 const/4 v0, 0x0 if-eqz p0, :cond_4 sget v1, Landroid/os/Build$VERSION;->SDK_INT:I const/16 v2, 0x18 if-lt v1, v2, :cond_0 invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object p0 if-eqz p0, :cond_1 invoke-virtual {p0}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration; move-result-object p0 if-eqz p0, :cond_1 invoke-virtual {p0}, Landroid/content/res/Configuration;->getLocales()Landroid/os/LocaleList; move-result-object p0 if-eqz p0, :cond_1 const/4 v1, 0x0 invoke-virtual {p0, v1}, Landroid/os/LocaleList;->get(I)Ljava/util/Locale; move-result-object p0 goto :goto_0 :cond_0 invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources; move-result-object p0 if-eqz p0, :cond_1 invoke-virtual {p0}, Landroid/content/res/Resources;->getConfiguration()Landroid/content/res/Configuration; move-result-object p0 if-eqz p0, :cond_1 iget-object p0, p0, Landroid/content/res/Configuration;->locale:Ljava/util/Locale; goto :goto_0 :cond_1 move-object p0, v0 :goto_0 new-instance v1, Ljava/util/Locale; const-string v2, "en" invoke-direct {v1, v2}, Ljava/util/Locale;->(Ljava/lang/String;)V if-eqz p0, :cond_2 invoke-virtual {p0}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; move-result-object v0 :cond_2 invoke-virtual {v1}, Ljava/util/Locale;->getLanguage()Ljava/lang/String; move-result-object p0 invoke-static {v0, p0}, Lt/u/b/j;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z move-result p0 xor-int/lit8 p0, p0, 0x1 if-eqz p0, :cond_3 const-wide/16 p0, 0x0 goto :goto_1 :cond_3 invoke-static {p1, p2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object p0 invoke-static {p0}, Lcom/discord/utilities/time/TimeUtils;->parseSnowflake(Ljava/lang/Long;)J move-result-wide p0 sget-object p2, Lcom/discord/utilities/textprocessing/MessageUtils;->WELCOME_MESSAGES:[I array-length p2, p2 int-to-long v0, p2 rem-long/2addr p0, v0 :goto_1 sget-object p2, Lcom/discord/utilities/textprocessing/MessageUtils;->WELCOME_MESSAGES:[I long-to-int p1, p0 aget p0, p2, p1 return p0 :cond_4 const-string p0, "context" invoke-static {p0}, Lt/u/b/j;->a(Ljava/lang/String;)V throw v0 .end method # virtual methods .method public final createQuotedText(Lcom/discord/models/domain/ModelMessage;Lcom/discord/models/domain/ModelChannel;)Ljava/lang/String; .locals 3 const/4 v0, 0x0 if-eqz p1, :cond_3 if-eqz p2, :cond_2 invoke-virtual {p1}, Lcom/discord/models/domain/ModelMessage;->getContent()Ljava/lang/String; move-result-object v1 const-string v2, "message.content" invoke-static {v1, v2}, Lt/u/b/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-direct {p0, v1}, Lcom/discord/utilities/textprocessing/MessageUtils;->cleanTextOfQuotes(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 if-eqz v1, :cond_1 invoke-direct {p0, v1}, Lcom/discord/utilities/textprocessing/MessageUtils;->cleanEmojisInQuotedText(Ljava/lang/String;)Ljava/lang/String; move-result-object v1 invoke-virtual {p2}, Lcom/discord/models/domain/ModelChannel;->isDM()Z move-result p2 if-eqz p2, :cond_0 goto :goto_0 :cond_0 const/16 p2, 0x40 invoke-static {p2}, Le/e/b/a/a;->a(C)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p1}, Lcom/discord/models/domain/ModelMessage;->getAuthor()Lcom/discord/models/domain/ModelUser; move-result-object p1 const-string v0, "message.author" invoke-static {p1, v0}, Lt/u/b/j;->checkExpressionValueIsNotNull(Ljava/lang/Object;Ljava/lang/String;)V invoke-virtual {p1}, Lcom/discord/models/domain/ModelUser;->getUserNameWithDiscriminator()Ljava/lang/String; move-result-object p1 invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; const/16 p1, 0x20 invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 :goto_0 invoke-direct {p0, v1, v0}, Lcom/discord/utilities/textprocessing/MessageUtils;->formatTextAsQuote(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; move-result-object p1 return-object p1 :cond_1 return-object v0 :cond_2 const-string p1, "channel" invoke-static {p1}, Lt/u/b/j;->a(Ljava/lang/String;)V throw v0 :cond_3 const-string p1, "message" invoke-static {p1}, Lt/u/b/j;->a(Ljava/lang/String;)V throw v0 .end method .method public final isContentQuotable(Lcom/discord/models/domain/ModelMessage;)Z .locals 1 if-eqz p1, :cond_2 invoke-virtual {p1}, Lcom/discord/models/domain/ModelMessage;->getContent()Ljava/lang/String; move-result-object p1 const/4 v0, 0x0 if-nez p1, :cond_0 goto :goto_0 :cond_0 invoke-direct {p0, p1}, Lcom/discord/utilities/textprocessing/MessageUtils;->cleanTextOfQuotes(Ljava/lang/String;)Ljava/lang/String; move-result-object p1 if-eqz p1, :cond_1 const/4 v0, 0x1 :cond_1 :goto_0 return v0 :cond_2 const-string p1, "message" invoke-static {p1}, Lt/u/b/j;->a(Ljava/lang/String;)V const/4 p1, 0x0 throw p1 .end method