Emoji.smali
.class public Lim/tpelyyftgw/messenger/Emoji;
.super Ljava/lang/Object;
.source "Emoji.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lim/tpelyyftgw/messenger/Emoji$EmojiSpan;,
Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;,
Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
}
.end annotation
# static fields
.field private static final MAX_RECENT_EMOJI_COUNT:I = 0x30
.field private static bigImgSize:I = 0x0
.field private static final cols:[[I
.field private static drawImgSize:I = 0x0
.field private static emojiBmp:[[Landroid/graphics/Bitmap; = null
.field public static emojiColor:Ljava/util/HashMap; = null
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field public static emojiUseHistory:Ljava/util/HashMap; = null
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/String;",
"Ljava/lang/Integer;",
">;"
}
.end annotation
.end field
.field private static inited:Z = false
.field private static loadingEmoji:[[Z = null
.field private static placeholderPaint:Landroid/graphics/Paint; = null
.field public static recentEmoji:Ljava/util/ArrayList; = null
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private static recentEmojiLoaded:Z = false
.field private static rects:Ljava/util/HashMap; = null
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashMap<",
"Ljava/lang/CharSequence;",
"Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;",
">;"
}
.end annotation
.end field
.field private static final splitCount:I = 0x4
# direct methods
.method static constructor <clinit>()V
.registers 16
.line 32
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lim/tpelyyftgw/messenger/Emoji;->rects:Ljava/util/HashMap;
.line 35
const/4 v0, 0x0
sput-boolean v0, Lim/tpelyyftgw/messenger/Emoji;->inited:Z
.line 38
const/4 v1, 0x2
new-array v2, v1, [I
fill-array-data v2, :array_132
const-class v3, Landroid/graphics/Bitmap;
invoke-static {v3, v2}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v2
check-cast v2, [[Landroid/graphics/Bitmap;
sput-object v2, Lim/tpelyyftgw/messenger/Emoji;->emojiBmp:[[Landroid/graphics/Bitmap;
.line 39
new-array v2, v1, [I
fill-array-data v2, :array_13a
const-class v3, Z
invoke-static {v3, v2}, Ljava/lang/reflect/Array;->newInstance(Ljava/lang/Class;[I)Ljava/lang/Object;
move-result-object v2
check-cast v2, [[Z
sput-object v2, Lim/tpelyyftgw/messenger/Emoji;->loadingEmoji:[[Z
.line 41
new-instance v2, Ljava/util/HashMap;
invoke-direct {v2}, Ljava/util/HashMap;-><init>()V
sput-object v2, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
.line 42
new-instance v2, Ljava/util/ArrayList;
invoke-direct {v2}, Ljava/util/ArrayList;-><init>()V
sput-object v2, Lim/tpelyyftgw/messenger/Emoji;->recentEmoji:Ljava/util/ArrayList;
.line 43
new-instance v2, Ljava/util/HashMap;
invoke-direct {v2}, Ljava/util/HashMap;-><init>()V
sput-object v2, Lim/tpelyyftgw/messenger/Emoji;->emojiColor:Ljava/util/HashMap;
.line 48
const/16 v2, 0x8
new-array v2, v2, [[I
const/4 v3, 0x4
new-array v4, v3, [I
fill-array-data v4, :array_142
aput-object v4, v2, v0
new-array v4, v3, [I
fill-array-data v4, :array_14e
const/4 v5, 0x1
aput-object v4, v2, v5
new-array v4, v3, [I
fill-array-data v4, :array_15a
aput-object v4, v2, v1
new-array v1, v3, [I
fill-array-data v1, :array_166
const/4 v4, 0x3
aput-object v1, v2, v4
new-array v1, v3, [I
fill-array-data v1, :array_172
aput-object v1, v2, v3
new-array v1, v3, [I
fill-array-data v1, :array_17e
const/4 v4, 0x5
aput-object v1, v2, v4
new-array v1, v3, [I
fill-array-data v1, :array_18a
const/4 v4, 0x6
aput-object v1, v2, v4
new-array v1, v3, [I
fill-array-data v1, :array_196
const/4 v3, 0x7
aput-object v1, v2, v3
sput-object v2, Lim/tpelyyftgw/messenger/Emoji;->cols:[[I
.line 61
const/4 v1, 0x2
.line 62
.local v1, "add":I
sget v2, Lim/tpelyyftgw/messenger/AndroidUtilities;->density:F
const/high16 v3, 0x3f800000 # 1.0f
cmpg-float v2, v2, v3
if-gtz v2, :cond_8f
.line 63
const/16 v2, 0x21
.line 64
.local v2, "emojiFullSize":I
const/4 v1, 0x1
goto :goto_a7
.line 65
.end local v2 # "emojiFullSize":I
:cond_8f
sget v2, Lim/tpelyyftgw/messenger/AndroidUtilities;->density:F
const/high16 v3, 0x3fc00000 # 1.5f
cmpg-float v2, v2, v3
if-gtz v2, :cond_9a
.line 66
const/16 v2, 0x42
.restart local v2 # "emojiFullSize":I
goto :goto_a7
.line 67
.end local v2 # "emojiFullSize":I
:cond_9a
sget v2, Lim/tpelyyftgw/messenger/AndroidUtilities;->density:F
const/high16 v3, 0x40000000 # 2.0f
cmpg-float v2, v2, v3
if-gtz v2, :cond_a5
.line 68
const/16 v2, 0x42
.restart local v2 # "emojiFullSize":I
goto :goto_a7
.line 70
.end local v2 # "emojiFullSize":I
:cond_a5
const/16 v2, 0x42
.line 72
.restart local v2 # "emojiFullSize":I
:goto_a7
const/high16 v3, 0x41a00000 # 20.0f
invoke-static {v3}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v3
sput v3, Lim/tpelyyftgw/messenger/Emoji;->drawImgSize:I
.line 73
invoke-static {}, Lim/tpelyyftgw/messenger/AndroidUtilities;->isTablet()Z
move-result v3
if-eqz v3, :cond_b8
const/high16 v3, 0x42200000 # 40.0f
goto :goto_ba
:cond_b8
const/high16 v3, 0x42080000 # 34.0f
:goto_ba
invoke-static {v3}, Lim/tpelyyftgw/messenger/AndroidUtilities;->dp(F)I
move-result v3
sput v3, Lim/tpelyyftgw/messenger/Emoji;->bigImgSize:I
.line 75
const/4 v3, 0x0
.local v3, "j":I
:goto_c1
sget-object v4, Lim/tpelyyftgw/messenger/EmojiData;->data:[[Ljava/lang/String;
array-length v4, v4
if-ge v3, v4, :cond_126
.line 76
sget-object v4, Lim/tpelyyftgw/messenger/EmojiData;->data:[[Ljava/lang/String;
aget-object v4, v4, v3
array-length v4, v4
int-to-float v4, v4
const/high16 v5, 0x40800000 # 4.0f
div-float/2addr v4, v5
float-to-double v4, v4
invoke-static {v4, v5}, Ljava/lang/Math;->ceil(D)D
move-result-wide v4
double-to-int v4, v4
.line 78
.local v4, "count2":I
const/4 v5, 0x0
.local v5, "i":I
:goto_d6
sget-object v6, Lim/tpelyyftgw/messenger/EmojiData;->data:[[Ljava/lang/String;
aget-object v6, v6, v3
array-length v6, v6
if-ge v5, v6, :cond_123
.line 79
div-int v6, v5, v4
.line 80
.local v6, "page":I
mul-int v7, v6, v4
sub-int v7, v5, v7
.line 81
.local v7, "position":I
sget-object v8, Lim/tpelyyftgw/messenger/Emoji;->cols:[[I
aget-object v9, v8, v3
aget v9, v9, v6
rem-int v9, v7, v9
.line 82
.local v9, "row":I
aget-object v8, v8, v3
aget v8, v8, v6
div-int v8, v7, v8
.line 83
.local v8, "col":I
new-instance v10, Landroid/graphics/Rect;
mul-int v11, v9, v2
mul-int v12, v9, v1
add-int/2addr v11, v12
mul-int v12, v8, v2
mul-int v13, v8, v1
add-int/2addr v12, v13
add-int/lit8 v13, v9, 0x1
mul-int v13, v13, v2
mul-int v14, v9, v1
add-int/2addr v13, v14
add-int/lit8 v14, v8, 0x1
mul-int v14, v14, v2
mul-int v15, v8, v1
add-int/2addr v14, v15
invoke-direct {v10, v11, v12, v13, v14}, Landroid/graphics/Rect;-><init>(IIII)V
.line 84
.local v10, "rect":Landroid/graphics/Rect;
sget-object v11, Lim/tpelyyftgw/messenger/Emoji;->rects:Ljava/util/HashMap;
sget-object v12, Lim/tpelyyftgw/messenger/EmojiData;->data:[[Ljava/lang/String;
aget-object v12, v12, v3
aget-object v12, v12, v5
new-instance v13, Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;
int-to-byte v14, v3
int-to-byte v15, v6
invoke-direct {v13, v10, v14, v15, v5}, Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;-><init>(Landroid/graphics/Rect;BBI)V
invoke-virtual {v11, v12, v13}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 78
.end local v6 # "page":I
.end local v8 # "col":I
.end local v9 # "row":I
.end local v10 # "rect":Landroid/graphics/Rect;
add-int/lit8 v5, v5, 0x1
goto :goto_d6
.line 75
.end local v4 # "count2":I
.end local v5 # "i":I
.end local v7 # "position":I
:cond_123
add-int/lit8 v3, v3, 0x1
goto :goto_c1
.line 87
.end local v3 # "j":I
:cond_126
new-instance v3, Landroid/graphics/Paint;
invoke-direct {v3}, Landroid/graphics/Paint;-><init>()V
sput-object v3, Lim/tpelyyftgw/messenger/Emoji;->placeholderPaint:Landroid/graphics/Paint;
.line 88
invoke-virtual {v3, v0}, Landroid/graphics/Paint;->setColor(I)V
.line 89
.end local v1 # "add":I
.end local v2 # "emojiFullSize":I
return-void
nop
:array_132
.array-data 4
0x8
0x4
.end array-data
:array_13a
.array-data 4
0x8
0x4
.end array-data
:array_142
.array-data 4
0x10
0x10
0x10
0x10
.end array-data
:array_14e
.array-data 4
0x6
0x6
0x6
0x6
.end array-data
:array_15a
.array-data 4
0x5
0x5
0x5
0x5
.end array-data
:array_166
.array-data 4
0x7
0x7
0x7
0x7
.end array-data
:array_172
.array-data 4
0x5
0x5
0x5
0x5
.end array-data
:array_17e
.array-data 4
0x7
0x7
0x7
0x7
.end array-data
:array_18a
.array-data 4
0x8
0x8
0x8
0x8
.end array-data
:array_196
.array-data 4
0x8
0x8
0x8
0x8
.end array-data
.end method
.method public constructor <init>()V
.registers 1
.line 30
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static synthetic access$100()I
.registers 1
.line 30
sget v0, Lim/tpelyyftgw/messenger/Emoji;->bigImgSize:I
return v0
.end method
.method static synthetic access$200()I
.registers 1
.line 30
sget v0, Lim/tpelyyftgw/messenger/Emoji;->drawImgSize:I
return v0
.end method
.method static synthetic access$300()[[Landroid/graphics/Bitmap;
.registers 1
.line 30
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->emojiBmp:[[Landroid/graphics/Bitmap;
return-object v0
.end method
.method static synthetic access$400()[[Z
.registers 1
.line 30
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->loadingEmoji:[[Z
return-object v0
.end method
.method static synthetic access$500()Landroid/graphics/Paint;
.registers 1
.line 30
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->placeholderPaint:Landroid/graphics/Paint;
return-object v0
.end method
.method static synthetic access$600(II)V
.registers 2
.param p0, "x0" # I
.param p1, "x1" # I
.line 30
invoke-static {p0, p1}, Lim/tpelyyftgw/messenger/Emoji;->loadEmoji(II)V
return-void
.end method
.method public static addRecentEmoji(Ljava/lang/String;)V
.registers 5
.param p0, "code" # Ljava/lang/String;
.line 547
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
.line 548
.local v0, "count":Ljava/lang/Integer;
if-nez v0, :cond_f
.line 549
const/4 v1, 0x0
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
.line 551
:cond_f
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v1
if-nez v1, :cond_3d
sget-object v1, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v1}, Ljava/util/HashMap;->size()I
move-result v1
const/16 v2, 0x30
if-lt v1, v2, :cond_3d
.line 552
sget-object v1, Lim/tpelyyftgw/messenger/Emoji;->recentEmoji:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->size()I
move-result v2
add-int/lit8 v2, v2, -0x1
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->get(I)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
.line 553
.local v1, "emoji":Ljava/lang/String;
sget-object v2, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v2, v1}, Ljava/util/HashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 554
sget-object v2, Lim/tpelyyftgw/messenger/Emoji;->recentEmoji:Ljava/util/ArrayList;
invoke-virtual {v2}, Ljava/util/ArrayList;->size()I
move-result v3
add-int/lit8 v3, v3, -0x1
invoke-virtual {v2, v3, p0}, Ljava/util/ArrayList;->set(ILjava/lang/Object;)Ljava/lang/Object;
.line 556
.end local v1 # "emoji":Ljava/lang/String;
:cond_3d
sget-object v1, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v2
add-int/lit8 v2, v2, 0x1
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
move-object v0, v2
invoke-virtual {v1, p0, v2}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 557
return-void
.end method
.method public static clearRecentEmoji()V
.registers 4
.line 600
invoke-static {}, Lim/tpelyyftgw/messenger/MessagesController;->getGlobalEmojiSettings()Landroid/content/SharedPreferences;
move-result-object v0
.line 601
.local v0, "preferences":Landroid/content/SharedPreferences;
invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v1
const-string v2, "filled_default"
const/4 v3, 0x1
invoke-interface {v1, v2, v3}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;
move-result-object v1
invoke-interface {v1}, Landroid/content/SharedPreferences$Editor;->commit()Z
.line 602
sget-object v1, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v1}, Ljava/util/HashMap;->clear()V
.line 603
sget-object v1, Lim/tpelyyftgw/messenger/Emoji;->recentEmoji:Ljava/util/ArrayList;
invoke-virtual {v1}, Ljava/util/ArrayList;->clear()V
.line 604
invoke-static {}, Lim/tpelyyftgw/messenger/Emoji;->saveRecentEmoji()V
.line 605
return-void
.end method
.method public static fixEmoji(Ljava/lang/String;)Ljava/lang/String;
.registers 8
.param p0, "emoji" # Ljava/lang/String;
.line 163
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
.line 164
.local v0, "length":I
const/4 v1, 0x0
.local v1, "a":I
:goto_5
if-ge v1, v0, :cond_a2
.line 165
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v2
.line 166
.local v2, "ch":C
const-string/jumbo v3, "\ufe0f"
const/4 v4, 0x0
const v5, 0xd83c
if-lt v2, v5, :cond_63
const v6, 0xd83e
if-gt v2, v6, :cond_63
.line 167
if-ne v2, v5, :cond_60
add-int/lit8 v5, v0, -0x1
if-ge v1, v5, :cond_60
.line 168
add-int/lit8 v5, v1, 0x1
invoke-virtual {p0, v5}, Ljava/lang/String;->charAt(I)C
move-result v2
.line 169
const v5, 0xde2f
if-eq v2, v5, :cond_3d
const v5, 0xdc04
if-eq v2, v5, :cond_3d
const v5, 0xde1a
if-eq v2, v5, :cond_3d
const v5, 0xdd7f
if-ne v2, v5, :cond_3a
goto :goto_3d
.line 174
:cond_3a
add-int/lit8 v1, v1, 0x1
goto :goto_9e
.line 170
:cond_3d
:goto_3d
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
add-int/lit8 v6, v1, 0x2
invoke-virtual {p0, v4, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v4
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v3, v1, 0x2
invoke-virtual {p0, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 171
add-int/lit8 v0, v0, 0x1
.line 172
add-int/lit8 v1, v1, 0x2
goto :goto_9e
.line 177
:cond_60
add-int/lit8 v1, v1, 0x1
goto :goto_9e
.line 179
:cond_63
const/16 v5, 0x20e3
if-ne v2, v5, :cond_68
.line 180
return-object p0
.line 181
:cond_68
const/16 v5, 0x203c
if-lt v2, v5, :cond_9e
const/16 v5, 0x3299
if-gt v2, v5, :cond_9e
.line 182
sget-object v5, Lim/tpelyyftgw/messenger/EmojiData;->emojiToFE0FMap:Ljava/util/HashMap;
invoke-static {v2}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result v5
if-eqz v5, :cond_9e
.line 183
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
add-int/lit8 v6, v1, 0x1
invoke-virtual {p0, v4, v6}, Ljava/lang/String;->substring(II)Ljava/lang/String;
move-result-object v4
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
add-int/lit8 v3, v1, 0x1
invoke-virtual {p0, v3}, Ljava/lang/String;->substring(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
.line 184
add-int/lit8 v0, v0, 0x1
.line 185
add-int/lit8 v1, v1, 0x1
.line 164
:cond_9e
:goto_9e
add-int/lit8 v1, v1, 0x1
goto/16 :goto_5
.line 189
.end local v1 # "a":I
.end local v2 # "ch":C
:cond_a2
return-object p0
.end method
.method public static getEmojiBigDrawable(Ljava/lang/String;)Landroid/graphics/drawable/Drawable;
.registers 4
.param p0, "code" # Ljava/lang/String;
.line 223
invoke-static {p0}, Lim/tpelyyftgw/messenger/Emoji;->getEmojiDrawable(Ljava/lang/CharSequence;)Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
move-result-object v0
.line 224
.local v0, "ed":Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
if-nez v0, :cond_14
.line 225
sget-object v1, Lim/tpelyyftgw/messenger/EmojiData;->emojiAliasMap:Ljava/util/HashMap;
invoke-virtual {v1, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/CharSequence;
.line 226
.local v1, "newCode":Ljava/lang/CharSequence;
if-eqz v1, :cond_14
.line 227
invoke-static {v1}, Lim/tpelyyftgw/messenger/Emoji;->getEmojiDrawable(Ljava/lang/CharSequence;)Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
move-result-object v0
.line 230
.end local v1 # "newCode":Ljava/lang/CharSequence;
:cond_14
if-nez v0, :cond_18
.line 231
const/4 v1, 0x0
return-object v1
.line 233
:cond_18
sget v1, Lim/tpelyyftgw/messenger/Emoji;->bigImgSize:I
const/4 v2, 0x0
invoke-virtual {v0, v2, v2, v1, v1}, Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;->setBounds(IIII)V
.line 234
const/4 v1, 0x1
# setter for: Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;->fullSize:Z
invoke-static {v0, v1}, Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;->access$002(Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;Z)Z
.line 235
return-object v0
.end method
.method public static getEmojiDrawable(Ljava/lang/CharSequence;)Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
.registers 5
.param p0, "code" # Ljava/lang/CharSequence;
.line 193
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->rects:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;
.line 194
.local v0, "info":Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;
if-nez v0, :cond_1d
.line 195
sget-object v1, Lim/tpelyyftgw/messenger/EmojiData;->emojiAliasMap:Ljava/util/HashMap;
invoke-virtual {v1, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/CharSequence;
.line 196
.local v1, "newCode":Ljava/lang/CharSequence;
if-eqz v1, :cond_1d
.line 197
sget-object v2, Lim/tpelyyftgw/messenger/Emoji;->rects:Ljava/util/HashMap;
invoke-virtual {v2, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
move-object v0, v2
check-cast v0, Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;
.line 200
.end local v1 # "newCode":Ljava/lang/CharSequence;
:cond_1d
if-nez v0, :cond_39
.line 201
sget-boolean v1, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v1, :cond_37
.line 202
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "No drawable for emoji "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v1}, Lim/tpelyyftgw/messenger/FileLog;->d(Ljava/lang/String;)V
.line 204
:cond_37
const/4 v1, 0x0
return-object v1
.line 206
:cond_39
new-instance v1, Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
invoke-direct {v1, v0}, Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;-><init>(Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;)V
.line 207
.local v1, "ed":Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
sget v2, Lim/tpelyyftgw/messenger/Emoji;->drawImgSize:I
const/4 v3, 0x0
invoke-virtual {v1, v3, v3, v2, v2}, Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;->setBounds(IIII)V
.line 208
return-object v1
.end method
.method private static inArray(C[C)Z
.registers 6
.param p0, "c" # C
.param p1, "a" # [C
.line 325
array-length v0, p1
const/4 v1, 0x0
const/4 v2, 0x0
:goto_3
if-ge v2, v0, :cond_e
aget-char v3, p1, v2
.line 326
.local v3, "cc":C
if-ne v3, p0, :cond_b
.line 327
const/4 v0, 0x1
return v0
.line 325
.end local v3 # "cc":C
:cond_b
add-int/lit8 v2, v2, 0x1
goto :goto_3
.line 330
:cond_e
return v1
.end method
.method public static invalidateAll(Landroid/view/View;)V
.registers 4
.param p0, "view" # Landroid/view/View;
.line 150
instance-of v0, p0, Landroid/view/ViewGroup;
if-eqz v0, :cond_19
.line 151
move-object v0, p0
check-cast v0, Landroid/view/ViewGroup;
.line 152
.local v0, "g":Landroid/view/ViewGroup;
const/4 v1, 0x0
.local v1, "i":I
:goto_8
invoke-virtual {v0}, Landroid/view/ViewGroup;->getChildCount()I
move-result v2
if-ge v1, v2, :cond_18
.line 153
invoke-virtual {v0, v1}, Landroid/view/ViewGroup;->getChildAt(I)Landroid/view/View;
move-result-object v2
invoke-static {v2}, Lim/tpelyyftgw/messenger/Emoji;->invalidateAll(Landroid/view/View;)V
.line 152
add-int/lit8 v1, v1, 0x1
goto :goto_8
.end local v0 # "g":Landroid/view/ViewGroup;
.end local v1 # "i":I
:cond_18
goto :goto_21
.line 156
:cond_19
instance-of v0, p0, Landroid/widget/TextView;
if-eqz v0, :cond_21
.line 157
invoke-virtual {p0}, Landroid/view/View;->invalidate()V
goto :goto_22
.line 156
:cond_21
:goto_21
nop
.line 159
:goto_22
return-void
.end method
.method public static isValidEmoji(Ljava/lang/CharSequence;)Z
.registers 4
.param p0, "code" # Ljava/lang/CharSequence;
.line 212
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->rects:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;
.line 213
.local v0, "info":Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;
if-nez v0, :cond_1d
.line 214
sget-object v1, Lim/tpelyyftgw/messenger/EmojiData;->emojiAliasMap:Ljava/util/HashMap;
invoke-virtual {v1, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/CharSequence;
.line 215
.local v1, "newCode":Ljava/lang/CharSequence;
if-eqz v1, :cond_1d
.line 216
sget-object v2, Lim/tpelyyftgw/messenger/Emoji;->rects:Ljava/util/HashMap;
invoke-virtual {v2, v1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
move-object v0, v2
check-cast v0, Lim/tpelyyftgw/messenger/Emoji$DrawableInfo;
.line 219
.end local v1 # "newCode":Ljava/lang/CharSequence;
:cond_1d
if-eqz v0, :cond_21
const/4 v1, 0x1
goto :goto_22
:cond_21
const/4 v1, 0x0
:goto_22
return v1
.end method
.method static synthetic lambda$loadEmoji$0(IILandroid/graphics/Bitmap;)V
.registers 6
.param p0, "page" # I
.param p1, "page2" # I
.param p2, "finalBitmap" # Landroid/graphics/Bitmap;
.line 139
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->emojiBmp:[[Landroid/graphics/Bitmap;
aget-object v0, v0, p0
aput-object p2, v0, p1
.line 140
invoke-static {}, Lim/tpelyyftgw/messenger/NotificationCenter;->getGlobalInstance()Lim/tpelyyftgw/messenger/NotificationCenter;
move-result-object v0
sget v1, Lim/tpelyyftgw/messenger/NotificationCenter;->emojiDidLoad:I
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Object;
invoke-virtual {v0, v1, v2}, Lim/tpelyyftgw/messenger/NotificationCenter;->postNotificationName(I[Ljava/lang/Object;)V
.line 141
return-void
.end method
.method static synthetic lambda$sortEmoji$1(Ljava/lang/String;Ljava/lang/String;)I
.registers 7
.param p0, "lhs" # Ljava/lang/String;
.param p1, "rhs" # Ljava/lang/String;
.line 565
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v0, p0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/Integer;
.line 566
.local v0, "count1":Ljava/lang/Integer;
sget-object v1, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v1, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Integer;
.line 567
.local v1, "count2":Ljava/lang/Integer;
const/4 v2, 0x0
if-nez v0, :cond_17
.line 568
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
.line 570
:cond_17
if-nez v1, :cond_1d
.line 571
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
.line 573
:cond_1d
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v3
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v4
if-le v3, v4, :cond_29
.line 574
const/4 v2, -0x1
return v2
.line 575
:cond_29
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v3
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v4
if-ge v3, v4, :cond_35
.line 576
const/4 v2, 0x1
return v2
.line 578
:cond_35
return v2
.end method
.method private static loadEmoji(II)V
.registers 14
.param p0, "page" # I
.param p1, "page2" # I
.line 94
const/4 v0, 0x1
.line 95
.local v0, "imageResize":I
:try_start_1
sget v1, Lim/tpelyyftgw/messenger/AndroidUtilities;->density:F
const/high16 v2, 0x3f800000 # 1.0f
cmpg-float v1, v1, v2
if-gtz v1, :cond_d
.line 96
const/high16 v1, 0x40000000 # 2.0f
.line 97
.local v1, "scale":F
const/4 v0, 0x2
goto :goto_25
.line 98
.end local v1 # "scale":F
:cond_d
sget v1, Lim/tpelyyftgw/messenger/AndroidUtilities;->density:F
const/high16 v2, 0x3fc00000 # 1.5f
cmpg-float v1, v1, v2
if-gtz v1, :cond_18
.line 101
const/high16 v1, 0x40000000 # 2.0f
.restart local v1 # "scale":F
goto :goto_25
.line 102
.end local v1 # "scale":F
:cond_18
sget v1, Lim/tpelyyftgw/messenger/AndroidUtilities;->density:F
:try_end_1a
.catchall {:try_start_1 .. :try_end_1a} :catchall_c0
const/high16 v2, 0x40000000 # 2.0f
cmpg-float v1, v1, v2
if-gtz v1, :cond_23
.line 103
const/high16 v1, 0x40000000 # 2.0f
.restart local v1 # "scale":F
goto :goto_25
.line 105
.end local v1 # "scale":F
:cond_23
const/high16 v1, 0x40000000 # 2.0f
.line 112
.restart local v1 # "scale":F
:goto_25
const/16 v2, 0xc
.local v2, "a":I
:goto_27
const/16 v3, 0xe
const/4 v4, 0x2
const/4 v5, 0x3
const/4 v6, 0x1
const/4 v7, 0x0
if-ge v2, v3, :cond_63
.line 113
:try_start_2f
sget-object v3, Ljava/util/Locale;->US:Ljava/util/Locale;
const-string/jumbo v8, "v%d_emoji%.01fx_%d.png"
new-array v9, v5, [Ljava/lang/Object;
invoke-static {v2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v9, v7
invoke-static {v1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v10
aput-object v10, v9, v6
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
aput-object v10, v9, v4
invoke-static {v3, v8, v9}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
.line 114
.local v3, "imageName":Ljava/lang/String;
sget-object v8, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-virtual {v8, v3}, Landroid/content/Context;->getFileStreamPath(Ljava/lang/String;)Ljava/io/File;
move-result-object v8
.line 115
.local v8, "imageFile":Ljava/io/File;
invoke-virtual {v8}, Ljava/io/File;->exists()Z
move-result v9
if-eqz v9, :cond_5b
.line 116
invoke-virtual {v8}, Ljava/io/File;->delete()Z
:try_end_5b
.catch Ljava/lang/Exception; {:try_start_2f .. :try_end_5b} :catch_5e
.catchall {:try_start_2f .. :try_end_5b} :catchall_c0
.line 112
:cond_5b
add-int/lit8 v2, v2, 0x1
goto :goto_27
.line 119
.end local v2 # "a":I
.end local v3 # "imageName":Ljava/lang/String;
.end local v8 # "imageFile":Ljava/io/File;
:catch_5e
move-exception v2
.line 120
.local v2, "e":Ljava/lang/Exception;
:try_start_5f
invoke-static {v2}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
:try_end_62
.catchall {:try_start_5f .. :try_end_62} :catchall_c0
goto :goto_64
.line 121
.end local v2 # "e":Ljava/lang/Exception;
:cond_63
nop
.line 122
:goto_64
const/4 v2, 0x0
.line 124
.local v2, "bitmap":Landroid/graphics/Bitmap;
:try_start_65
sget-object v3, Lim/tpelyyftgw/messenger/ApplicationLoader;->applicationContext:Landroid/content/Context;
invoke-virtual {v3}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v3
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, "emoji/"
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
sget-object v9, Ljava/util/Locale;->US:Ljava/util/Locale;
const-string/jumbo v10, "v14_emoji%.01fx_%d_%d.png"
new-array v5, v5, [Ljava/lang/Object;
invoke-static {v1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float;
move-result-object v11
aput-object v11, v5, v7
invoke-static {p0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v11
aput-object v11, v5, v6
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
aput-object v6, v5, v4
invoke-static {v9, v10, v5}, Ljava/lang/String;->format(Ljava/util/Locale;Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v8, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v3, v4}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v3
.line 125
.local v3, "is":Ljava/io/InputStream;
new-instance v4, Landroid/graphics/BitmapFactory$Options;
invoke-direct {v4}, Landroid/graphics/BitmapFactory$Options;-><init>()V
.line 126
.local v4, "opts":Landroid/graphics/BitmapFactory$Options;
iput-boolean v7, v4, Landroid/graphics/BitmapFactory$Options;->inJustDecodeBounds:Z
.line 127
iput v0, v4, Landroid/graphics/BitmapFactory$Options;->inSampleSize:I
.line 128
sget v5, Landroid/os/Build$VERSION;->SDK_INT:I
.line 131
const/4 v5, 0x0
invoke-static {v3, v5, v4}, Landroid/graphics/BitmapFactory;->decodeStream(Ljava/io/InputStream;Landroid/graphics/Rect;Landroid/graphics/BitmapFactory$Options;)Landroid/graphics/Bitmap;
move-result-object v5
move-object v2, v5
.line 132
invoke-virtual {v3}, Ljava/io/InputStream;->close()V
:try_end_b1
.catchall {:try_start_65 .. :try_end_b1} :catchall_b2
.line 135
.end local v3 # "is":Ljava/io/InputStream;
.end local v4 # "opts":Landroid/graphics/BitmapFactory$Options;
goto :goto_b6
.line 133
:catchall_b2
move-exception v3
.line 134
.local v3, "e":Ljava/lang/Throwable;
:try_start_b3
invoke-static {v3}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 137
.end local v3 # "e":Ljava/lang/Throwable;
:goto_b6
move-object v3, v2
.line 138
.local v3, "finalBitmap":Landroid/graphics/Bitmap;
new-instance v4, Lim/tpelyyftgw/messenger/-$$Lambda$Emoji$DZiPlJ2wX7QWiDBIApNSZHa_WYc;
invoke-direct {v4, p0, p1, v3}, Lim/tpelyyftgw/messenger/-$$Lambda$Emoji$DZiPlJ2wX7QWiDBIApNSZHa_WYc;-><init>(IILandroid/graphics/Bitmap;)V
invoke-static {v4}, Lim/tpelyyftgw/messenger/AndroidUtilities;->runOnUIThread(Ljava/lang/Runnable;)V
:try_end_bf
.catchall {:try_start_b3 .. :try_end_bf} :catchall_c0
.line 146
.end local v0 # "imageResize":I
.end local v1 # "scale":F
.end local v2 # "bitmap":Landroid/graphics/Bitmap;
.end local v3 # "finalBitmap":Landroid/graphics/Bitmap;
goto :goto_ca
.line 142
:catchall_c0
move-exception v0
.line 143
.local v0, "x":Ljava/lang/Throwable;
sget-boolean v1, Lim/tpelyyftgw/messenger/BuildVars;->LOGS_ENABLED:Z
if-eqz v1, :cond_ca
.line 144
const-string v1, "Error loading emoji"
invoke-static {v1, v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 147
.end local v0 # "x":Ljava/lang/Throwable;
:cond_ca
:goto_ca
return-void
.end method
.method public static loadRecentEmoji()V
.registers 52
.line 608
const-string v0, "filled_default"
const-string v1, "="
const-string v2, ","
const-string v3, ""
const-string v4, "emojis"
sget-boolean v5, Lim/tpelyyftgw/messenger/Emoji;->recentEmojiLoaded:Z
if-eqz v5, :cond_f
.line 609
return-void
.line 611
:cond_f
const/4 v5, 0x1
sput-boolean v5, Lim/tpelyyftgw/messenger/Emoji;->recentEmojiLoaded:Z
.line 612
invoke-static {}, Lim/tpelyyftgw/messenger/MessagesController;->getGlobalEmojiSettings()Landroid/content/SharedPreferences;
move-result-object v6
.line 616
.local v6, "preferences":Landroid/content/SharedPreferences;
const/4 v7, 0x0
:try_start_17
sget-object v8, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v8}, Ljava/util/HashMap;->clear()V
.line 617
invoke-interface {v6, v4}, Landroid/content/SharedPreferences;->contains(Ljava/lang/String;)Z
move-result v8
if-eqz v8, :cond_b1
.line 618
invoke-interface {v6, v4, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v8
.line 619
.local v8, "str":Ljava/lang/String;
if-eqz v8, :cond_9e
invoke-virtual {v8}, Ljava/lang/String;->length()I
move-result v9
if-lez v9, :cond_9e
.line 620
invoke-virtual {v8, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v9
.line 621
.local v9, "args":[Ljava/lang/String;
array-length v10, v9
const/4 v11, 0x0
:goto_34
if-ge v11, v10, :cond_99
aget-object v12, v9, v11
.line 622
.local v12, "arg":Ljava/lang/String;
invoke-virtual {v12, v1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v13
.line 623
.local v13, "args2":[Ljava/lang/String;
aget-object v14, v13, v7
invoke-static {v14}, Lim/tpelyyftgw/messenger/Utilities;->parseLong(Ljava/lang/String;)Ljava/lang/Long;
move-result-object v14
invoke-virtual {v14}, Ljava/lang/Long;->longValue()J
move-result-wide v14
.line 624
.local v14, "value":J
new-instance v16, Ljava/lang/StringBuilder;
invoke-direct/range {v16 .. v16}, Ljava/lang/StringBuilder;-><init>()V
move-object/from16 v17, v16
.line 625
.local v17, "string":Ljava/lang/StringBuilder;
const/16 v16, 0x0
move/from16 v5, v16
.local v5, "a":I
:goto_51
const/4 v7, 0x4
if-ge v5, v7, :cond_74
.line 626
long-to-int v7, v14
int-to-char v7, v7
.line 627
.local v7, "ch":C
move-object/from16 v18, v8
move-object/from16 v8, v17
move-object/from16 v17, v9
const/4 v9, 0x0
.end local v9 # "args":[Ljava/lang/String;
.local v8, "string":Ljava/lang/StringBuilder;
.local v17, "args":[Ljava/lang/String;
.local v18, "str":Ljava/lang/String;
invoke-virtual {v8, v9, v7}, Ljava/lang/StringBuilder;->insert(IC)Ljava/lang/StringBuilder;
.line 628
const/16 v9, 0x10
shr-long/2addr v14, v9
.line 629
const-wide/16 v19, 0x0
cmp-long v9, v14, v19
if-nez v9, :cond_6a
.line 630
goto :goto_7a
.line 625
.end local v7 # "ch":C
:cond_6a
add-int/lit8 v5, v5, 0x1
move-object/from16 v9, v17
const/4 v7, 0x0
move-object/from16 v17, v8
move-object/from16 v8, v18
goto :goto_51
.end local v18 # "str":Ljava/lang/String;
.local v8, "str":Ljava/lang/String;
.restart local v9 # "args":[Ljava/lang/String;
.local v17, "string":Ljava/lang/StringBuilder;
:cond_74
move-object/from16 v18, v8
move-object/from16 v8, v17
move-object/from16 v17, v9
.line 633
.end local v5 # "a":I
.end local v9 # "args":[Ljava/lang/String;
.local v8, "string":Ljava/lang/StringBuilder;
.local v17, "args":[Ljava/lang/String;
.restart local v18 # "str":Ljava/lang/String;
:goto_7a
invoke-virtual {v8}, Ljava/lang/StringBuilder;->length()I
move-result v5
if-lez v5, :cond_90
.line 634
sget-object v5, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
const/4 v9, 0x1
aget-object v19, v13, v9
invoke-static/range {v19 .. v19}, Lim/tpelyyftgw/messenger/Utilities;->parseInt(Ljava/lang/CharSequence;)Ljava/lang/Integer;
move-result-object v9
invoke-virtual {v5, v7, v9}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 621
.end local v8 # "string":Ljava/lang/StringBuilder;
.end local v12 # "arg":Ljava/lang/String;
.end local v13 # "args2":[Ljava/lang/String;
.end local v14 # "value":J
:cond_90
add-int/lit8 v11, v11, 0x1
move-object/from16 v9, v17
move-object/from16 v8, v18
const/4 v5, 0x1
const/4 v7, 0x0
goto :goto_34
.end local v17 # "args":[Ljava/lang/String;
.end local v18 # "str":Ljava/lang/String;
.local v8, "str":Ljava/lang/String;
.restart local v9 # "args":[Ljava/lang/String;
:cond_99
move-object/from16 v18, v8
move-object/from16 v17, v9
.end local v8 # "str":Ljava/lang/String;
.end local v9 # "args":[Ljava/lang/String;
.restart local v17 # "args":[Ljava/lang/String;
.restart local v18 # "str":Ljava/lang/String;
goto :goto_a0
.line 619
.end local v17 # "args":[Ljava/lang/String;
.end local v18 # "str":Ljava/lang/String;
.restart local v8 # "str":Ljava/lang/String;
:cond_9e
move-object/from16 v18, v8
.line 638
.end local v8 # "str":Ljava/lang/String;
.restart local v18 # "str":Ljava/lang/String;
:goto_a0
invoke-interface {v6}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v5
invoke-interface {v5, v4}, Landroid/content/SharedPreferences$Editor;->remove(Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
move-result-object v4
invoke-interface {v4}, Landroid/content/SharedPreferences$Editor;->commit()Z
.line 639
invoke-static {}, Lim/tpelyyftgw/messenger/Emoji;->saveRecentEmoji()V
move-object/from16 v8, v18
goto :goto_e1
.line 641
.end local v18 # "str":Ljava/lang/String;
:cond_b1
const-string v4, "emojis2"
invoke-interface {v6, v4, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v4
move-object v8, v4
.line 642
.restart local v8 # "str":Ljava/lang/String;
if-eqz v8, :cond_e1
invoke-virtual {v8}, Ljava/lang/String;->length()I
move-result v4
if-lez v4, :cond_e1
.line 643
invoke-virtual {v8, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v4
.line 644
.local v4, "args":[Ljava/lang/String;
array-length v5, v4
const/4 v7, 0x0
:goto_c6
if-ge v7, v5, :cond_e1
aget-object v9, v4, v7
.line 645
.local v9, "arg":Ljava/lang/String;
invoke-virtual {v9, v1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v10
.line 646
.local v10, "args2":[Ljava/lang/String;
sget-object v11, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
const/4 v12, 0x0
aget-object v13, v10, v12
const/4 v12, 0x1
aget-object v14, v10, v12
invoke-static {v14}, Lim/tpelyyftgw/messenger/Utilities;->parseInt(Ljava/lang/CharSequence;)Ljava/lang/Integer;
move-result-object v12
invoke-virtual {v11, v13, v12}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 644
nop
.end local v9 # "arg":Ljava/lang/String;
.end local v10 # "args2":[Ljava/lang/String;
add-int/lit8 v7, v7, 0x1
goto :goto_c6
.line 650
.end local v4 # "args":[Ljava/lang/String;
:cond_e1
:goto_e1
sget-object v4, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v4}, Ljava/util/HashMap;->isEmpty()Z
move-result v4
if-eqz v4, :cond_17d
.line 651
const/4 v4, 0x0
invoke-interface {v6, v0, v4}, Landroid/content/SharedPreferences;->getBoolean(Ljava/lang/String;Z)Z
move-result v5
if-nez v5, :cond_17d
.line 652
const-string/jumbo v18, "\ud83d\ude02"
const-string/jumbo v19, "\ud83d\ude18"
const-string/jumbo v20, "\u2764"
const-string/jumbo v21, "\ud83d\ude0d"
const-string/jumbo v22, "\ud83d\ude0a"
const-string/jumbo v23, "\ud83d\ude01"
const-string/jumbo v24, "\ud83d\udc4d"
const-string/jumbo v25, "\u263a"
const-string/jumbo v26, "\ud83d\ude14"
const-string/jumbo v27, "\ud83d\ude04"
const-string/jumbo v28, "\ud83d\ude2d"
const-string/jumbo v29, "\ud83d\udc8b"
const-string/jumbo v30, "\ud83d\ude12"
const-string/jumbo v31, "\ud83d\ude33"
const-string/jumbo v32, "\ud83d\ude1c"
const-string/jumbo v33, "\ud83d\ude48"
const-string/jumbo v34, "\ud83d\ude09"
const-string/jumbo v35, "\ud83d\ude03"
const-string/jumbo v36, "\ud83d\ude22"
const-string/jumbo v37, "\ud83d\ude1d"
const-string/jumbo v38, "\ud83d\ude31"
const-string/jumbo v39, "\ud83d\ude21"
const-string/jumbo v40, "\ud83d\ude0f"
const-string/jumbo v41, "\ud83d\ude1e"
const-string/jumbo v42, "\ud83d\ude05"
const-string/jumbo v43, "\ud83d\ude1a"
const-string/jumbo v44, "\ud83d\ude4a"
const-string/jumbo v45, "\ud83d\ude0c"
const-string/jumbo v46, "\ud83d\ude00"
const-string/jumbo v47, "\ud83d\ude0b"
const-string/jumbo v48, "\ud83d\ude06"
const-string/jumbo v49, "\ud83d\udc4c"
const-string/jumbo v50, "\ud83d\ude10"
const-string/jumbo v51, "\ud83d\ude15"
filled-new-array/range {v18 .. v51}, [Ljava/lang/String;
move-result-object v4
.line 659
.local v4, "newRecent":[Ljava/lang/String;
const/4 v5, 0x0
.local v5, "i":I
:goto_15b
array-length v7, v4
if-ge v5, v7, :cond_16e
.line 660
sget-object v7, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
aget-object v9, v4, v5
array-length v10, v4
sub-int/2addr v10, v5
invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
invoke-virtual {v7, v9, v10}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 659
add-int/lit8 v5, v5, 0x1
goto :goto_15b
.line 662
.end local v5 # "i":I
:cond_16e
invoke-interface {v6}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v5
const/4 v7, 0x1
invoke-interface {v5, v0, v7}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;
move-result-object v0
invoke-interface {v0}, Landroid/content/SharedPreferences$Editor;->commit()Z
.line 663
invoke-static {}, Lim/tpelyyftgw/messenger/Emoji;->saveRecentEmoji()V
.line 666
.end local v4 # "newRecent":[Ljava/lang/String;
:cond_17d
invoke-static {}, Lim/tpelyyftgw/messenger/Emoji;->sortEmoji()V
:try_end_180
.catch Ljava/lang/Exception; {:try_start_17 .. :try_end_180} :catch_181
.line 669
goto :goto_185
.line 667
.end local v8 # "str":Ljava/lang/String;
:catch_181
move-exception v0
.line 668
.local v0, "e":Ljava/lang/Exception;
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 672
.end local v0 # "e":Ljava/lang/Exception;
:goto_185
:try_start_185
const-string v0, "color"
invoke-interface {v6, v0, v3}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 673
.local v0, "str":Ljava/lang/String;
if-eqz v0, :cond_1b0
invoke-virtual {v0}, Ljava/lang/String;->length()I
move-result v3
if-lez v3, :cond_1b0
.line 674
invoke-virtual {v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v2
.line 675
.local v2, "args":[Ljava/lang/String;
const/4 v3, 0x0
.local v3, "a":I
:goto_198
array-length v4, v2
if-ge v3, v4, :cond_1b0
.line 676
aget-object v4, v2, v3
.line 677
.local v4, "arg":Ljava/lang/String;
invoke-virtual {v4, v1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v5
.line 678
.local v5, "args2":[Ljava/lang/String;
sget-object v7, Lim/tpelyyftgw/messenger/Emoji;->emojiColor:Ljava/util/HashMap;
const/4 v8, 0x0
aget-object v9, v5, v8
const/4 v10, 0x1
aget-object v11, v5, v10
invoke-virtual {v7, v9, v11}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:try_end_1ac
.catch Ljava/lang/Exception; {:try_start_185 .. :try_end_1ac} :catch_1b1
.line 675
nop
.end local v4 # "arg":Ljava/lang/String;
.end local v5 # "args2":[Ljava/lang/String;
add-int/lit8 v3, v3, 0x1
goto :goto_198
.line 683
.end local v2 # "args":[Ljava/lang/String;
.end local v3 # "a":I
:cond_1b0
goto :goto_1b5
.line 681
.end local v0 # "str":Ljava/lang/String;
:catch_1b1
move-exception v0
.line 682
.local v0, "e":Ljava/lang/Exception;
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 684
.end local v0 # "e":Ljava/lang/Exception;
:goto_1b5
return-void
.end method
.method public static replaceEmoji(Ljava/lang/CharSequence;Landroid/graphics/Paint$FontMetricsInt;IZ)Ljava/lang/CharSequence;
.registers 5
.param p0, "cs" # Ljava/lang/CharSequence;
.param p1, "fontMetrics" # Landroid/graphics/Paint$FontMetricsInt;
.param p2, "size" # I
.param p3, "createNew" # Z
.line 334
const/4 v0, 0x0
invoke-static {p0, p1, p2, p3, v0}, Lim/tpelyyftgw/messenger/Emoji;->replaceEmoji(Ljava/lang/CharSequence;Landroid/graphics/Paint$FontMetricsInt;IZ[I)Ljava/lang/CharSequence;
move-result-object v0
return-object v0
.end method
.method public static replaceEmoji(Ljava/lang/CharSequence;Landroid/graphics/Paint$FontMetricsInt;IZ[I)Ljava/lang/CharSequence;
.registers 35
.param p0, "cs" # Ljava/lang/CharSequence;
.param p1, "fontMetrics" # Landroid/graphics/Paint$FontMetricsInt;
.param p2, "size" # I
.param p3, "createNew" # Z
.param p4, "emojiOnly" # [I
.line 338
move-object/from16 v1, p0
sget-boolean v0, Lim/tpelyyftgw/messenger/SharedConfig;->useSystemEmoji:Z
if-nez v0, :cond_2ef
if-eqz v1, :cond_2ef
invoke-interface/range {p0 .. p0}, Ljava/lang/CharSequence;->length()I
move-result v0
if-nez v0, :cond_12
move/from16 v5, p2
goto/16 :goto_2f1
.line 342
:cond_12
if-nez p3, :cond_1d
instance-of v0, v1, Landroid/text/Spannable;
if-eqz v0, :cond_1d
.line 343
move-object v0, v1
check-cast v0, Landroid/text/Spannable;
move-object v2, v0
.local v0, "s":Landroid/text/Spannable;
goto :goto_2a
.line 345
.end local v0 # "s":Landroid/text/Spannable;
:cond_1d
invoke-static {}, Landroid/text/Spannable$Factory;->getInstance()Landroid/text/Spannable$Factory;
move-result-object v0
invoke-interface/range {p0 .. p0}, Ljava/lang/CharSequence;->toString()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Landroid/text/Spannable$Factory;->newSpannable(Ljava/lang/CharSequence;)Landroid/text/Spannable;
move-result-object v0
move-object v2, v0
.line 347
.local v2, "s":Landroid/text/Spannable;
:goto_2a
const-wide/16 v3, 0x0
.line 348
.local v3, "buf":J
const/4 v0, 0x0
.line 350
.local v0, "emojiCount":I
const/4 v5, -0x1
.line 351
.local v5, "startIndex":I
const/4 v6, 0x0
.line 352
.local v6, "startLength":I
const/4 v7, 0x0
.line 353
.local v7, "previousGoodIndex":I
new-instance v8, Ljava/lang/StringBuilder;
const/16 v9, 0x10
invoke-direct {v8, v9}, Ljava/lang/StringBuilder;-><init>(I)V
.line 354
.local v8, "emojiCode":Ljava/lang/StringBuilder;
new-instance v10, Ljava/lang/StringBuilder;
const/4 v11, 0x2
invoke-direct {v10, v11}, Ljava/lang/StringBuilder;-><init>(I)V
.line 358
.local v10, "addionalCode":Ljava/lang/StringBuilder;
invoke-interface/range {p0 .. p0}, Ljava/lang/CharSequence;->length()I
move-result v12
.line 359
.local v12, "length":I
const/4 v13, 0x0
.line 365
.local v13, "doneEmoji":Z
const/4 v14, 0x0
move v15, v13
move v13, v6
move-wide/from16 v28, v3
move-object/from16 v3, p4
move v4, v0
move v0, v14
move v14, v7
move v7, v5
move-wide/from16 v5, v28
.end local v6 # "startLength":I
.end local p4 # "emojiOnly":[I
.local v0, "i":I
.local v3, "emojiOnly":[I
.local v4, "emojiCount":I
.local v5, "buf":J
.local v7, "startIndex":I
.local v13, "startLength":I
.local v14, "previousGoodIndex":I
.local v15, "doneEmoji":Z
:goto_4f
if-ge v0, v12, :cond_2e7
.line 366
:try_start_51
invoke-interface {v1, v0}, Ljava/lang/CharSequence;->charAt(I)C
move-result v16
:try_end_55
.catch Ljava/lang/Exception; {:try_start_51 .. :try_end_55} :catch_2dc
move/from16 p4, v16
.line 367
.local p4, "c":C
const v11, 0xd83c
move/from16 v9, p4
.end local p4 # "c":C
.local v9, "c":C
if-lt v9, v11, :cond_63
const v11, 0xd83e
if-le v9, v11, :cond_8a
:cond_63
const-wide/16 v22, 0x0
cmp-long v11, v5, v22
if-eqz v11, :cond_a3
const-wide v24, -0x100000000L
and-long v24, v5, v24
cmp-long v11, v24, v22
if-nez v11, :cond_a3
const-wide/32 v24, 0xffff
and-long v24, v5, v24
const-wide/32 v26, 0xd83c
cmp-long v11, v24, v26
if-nez v11, :cond_a3
const v11, 0xdde6
if-lt v9, v11, :cond_a3
const v11, 0xddff
if-gt v9, v11, :cond_a3
.line 368
:cond_8a
const/4 v11, -0x1
if-ne v7, v11, :cond_8e
.line 369
move v7, v0
.line 371
:cond_8e
:try_start_8e
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:try_end_91
.catch Ljava/lang/Exception; {:try_start_8e .. :try_end_91} :catch_9c
.line 372
add-int/lit8 v13, v13, 0x1
.line 373
const/16 v11, 0x10
shl-long/2addr v5, v11
.line 374
move/from16 v20, v12
.end local v12 # "length":I
.local v20, "length":I
int-to-long v11, v9
or-long/2addr v5, v11
goto/16 :goto_147
.line 485
.end local v0 # "i":I
.end local v9 # "c":C
.end local v20 # "length":I
.restart local v12 # "length":I
:catch_9c
move-exception v0
move-wide/from16 v25, v5
move/from16 v5, p2
.end local v12 # "length":I
.restart local v20 # "length":I
goto/16 :goto_2e3
.line 367
.end local v20 # "length":I
.restart local v0 # "i":I
.restart local v9 # "c":C
.restart local v12 # "length":I
:cond_a3
move/from16 v20, v12
.line 375
.end local v12 # "length":I
.restart local v20 # "length":I
:try_start_a5
invoke-virtual {v8}, Ljava/lang/StringBuilder;->length()I
move-result v11
:try_end_a9
.catch Ljava/lang/Exception; {:try_start_a5 .. :try_end_a9} :catch_2d2
if-lez v11, :cond_ca
const/16 v11, 0x2640
if-eq v9, v11, :cond_b7
const/16 v11, 0x2642
if-eq v9, v11, :cond_b7
const/16 v11, 0x2695
if-ne v9, v11, :cond_ca
.line 376
:cond_b7
:try_start_b7
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 377
add-int/lit8 v13, v13, 0x1
.line 378
const-wide/16 v5, 0x0
.line 379
const/4 v15, 0x1
goto/16 :goto_147
.line 485
.end local v0 # "i":I
.end local v9 # "c":C
:catch_c1
move-exception v0
move-wide/from16 v25, v5
move/from16 v12, v20
move/from16 v5, p2
goto/16 :goto_2e3
.line 380
.restart local v0 # "i":I
.restart local v9 # "c":C
:cond_ca
cmp-long v11, v5, v22
if-lez v11, :cond_e1
const v11, 0xf000
and-int/2addr v11, v9
const v12, 0xd000
if-ne v11, v12, :cond_e1
.line 381
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 382
add-int/lit8 v13, v13, 0x1
.line 383
const-wide/16 v5, 0x0
.line 384
const/4 v15, 0x1
goto/16 :goto_147
.line 385
:cond_e1
const/16 v11, 0x20e3
if-ne v9, v11, :cond_10a
.line 386
if-lez v0, :cond_147
.line 387
invoke-interface {v1, v14}, Ljava/lang/CharSequence;->charAt(I)C
move-result v11
.line 388
.local v11, "c2":C
const/16 v12, 0x30
if-lt v11, v12, :cond_f3
const/16 v12, 0x39
if-le v11, v12, :cond_fb
:cond_f3
const/16 v12, 0x23
if-eq v11, v12, :cond_fb
const/16 v12, 0x2a
if-ne v11, v12, :cond_109
.line 389
:cond_fb
move v7, v14
.line 390
sub-int v12, v0, v14
const/16 v21, 0x1
add-int/lit8 v13, v12, 0x1
.line 391
invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 392
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
:try_end_108
.catch Ljava/lang/Exception; {:try_start_b7 .. :try_end_108} :catch_c1
.line 393
const/4 v15, 0x1
.line 395
.end local v11 # "c2":C
:cond_109
goto :goto_147
.line 396
:cond_10a
const/16 v11, 0xa9
if-eq v9, v11, :cond_11a
const/16 v11, 0xae
if-eq v9, v11, :cond_11a
const/16 v11, 0x203c
if-lt v9, v11, :cond_131
const/16 v11, 0x3299
if-gt v9, v11, :cond_131
:cond_11a
:try_start_11a
sget-object v11, Lim/tpelyyftgw/messenger/EmojiData;->dataCharsMap:Ljava/util/HashMap;
invoke-static {v9}, Ljava/lang/Character;->valueOf(C)Ljava/lang/Character;
move-result-object v12
invoke-virtual {v11, v12}, Ljava/util/HashMap;->containsKey(Ljava/lang/Object;)Z
move-result v11
:try_end_124
.catch Ljava/lang/Exception; {:try_start_11a .. :try_end_124} :catch_2d2
if-eqz v11, :cond_131
.line 397
const/4 v11, -0x1
if-ne v7, v11, :cond_12a
.line 398
move v7, v0
.line 400
:cond_12a
add-int/lit8 v13, v13, 0x1
.line 401
:try_start_12c
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 402
const/4 v15, 0x1
goto :goto_147
.line 403
:cond_131
const/4 v11, -0x1
if-eq v7, v11, :cond_13c
.line 404
const/4 v11, 0x0
invoke-virtual {v8, v11}, Ljava/lang/StringBuilder;->setLength(I)V
.line 405
const/4 v7, -0x1
.line 406
const/4 v13, 0x0
.line 407
const/4 v15, 0x0
goto :goto_147
.line 408
:cond_13c
const v11, 0xfe0f
if-eq v9, v11, :cond_147
.line 409
if-eqz v3, :cond_147
.line 410
const/4 v11, 0x0
aput v11, v3, v11
:try_end_146
.catch Ljava/lang/Exception; {:try_start_12c .. :try_end_146} :catch_c1
.line 411
const/4 v3, 0x0
.line 414
:cond_147
:goto_147
if-eqz v15, :cond_1c4
add-int/lit8 v11, v0, 0x2
move/from16 v12, v20
.end local v20 # "length":I
.restart local v12 # "length":I
if-ge v11, v12, :cond_1c1
.line 415
add-int/lit8 v11, v0, 0x1
:try_start_151
invoke-interface {v1, v11}, Ljava/lang/CharSequence;->charAt(I)C
move-result v11
:try_end_155
.catch Ljava/lang/Exception; {:try_start_151 .. :try_end_155} :catch_1ba
.line 416
.local v11, "next":C
move-wide/from16 v25, v5
const v5, 0xd83c
.end local v5 # "buf":J
.local v25, "buf":J
if-ne v11, v5, :cond_17c
.line 417
add-int/lit8 v5, v0, 0x2
:try_start_15e
invoke-interface {v1, v5}, Ljava/lang/CharSequence;->charAt(I)C
move-result v5
.line 418
.end local v11 # "next":C
.local v5, "next":C
const v6, 0xdffb
if-lt v5, v6, :cond_1c8
const v6, 0xdfff
if-gt v5, v6, :cond_1c8
.line 419
add-int/lit8 v6, v0, 0x1
add-int/lit8 v11, v0, 0x3
invoke-interface {v1, v6, v11}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;
move-result-object v6
invoke-virtual {v8, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
.line 420
add-int/lit8 v13, v13, 0x2
.line 421
add-int/lit8 v0, v0, 0x2
goto :goto_1c8
.line 423
.end local v5 # "next":C
.restart local v11 # "next":C
:cond_17c
invoke-virtual {v8}, Ljava/lang/StringBuilder;->length()I
move-result v5
const/4 v6, 0x2
if-lt v5, v6, :cond_1c8
const/4 v5, 0x0
invoke-virtual {v8, v5}, Ljava/lang/StringBuilder;->charAt(I)C
move-result v6
const v5, 0xd83c
if-ne v6, v5, :cond_1c8
const/4 v5, 0x1
invoke-virtual {v8, v5}, Ljava/lang/StringBuilder;->charAt(I)C
move-result v6
const v5, 0xdff4
if-ne v6, v5, :cond_1c8
const v5, 0xdb40
if-ne v11, v5, :cond_1c8
.line 424
add-int/lit8 v0, v0, 0x1
.line 426
:cond_19e
add-int/lit8 v6, v0, 0x2
invoke-interface {v1, v0, v6}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;
move-result-object v6
invoke-virtual {v8, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
.line 427
add-int/lit8 v13, v13, 0x2
.line 428
add-int/lit8 v0, v0, 0x2
.line 429
invoke-interface/range {p0 .. p0}, Ljava/lang/CharSequence;->length()I
move-result v6
if-ge v0, v6, :cond_1b7
invoke-interface {v1, v0}, Ljava/lang/CharSequence;->charAt(I)C
move-result v6
if-eq v6, v5, :cond_19e
.line 430
:cond_1b7
add-int/lit8 v0, v0, -0x1
.line 431
goto :goto_1c8
.line 485
.end local v0 # "i":I
.end local v9 # "c":C
.end local v11 # "next":C
.end local v25 # "buf":J
.local v5, "buf":J
:catch_1ba
move-exception v0
move-wide/from16 v25, v5
move/from16 v5, p2
.end local v5 # "buf":J
.restart local v25 # "buf":J
goto/16 :goto_2e3
.line 414
.end local v25 # "buf":J
.restart local v0 # "i":I
.restart local v5 # "buf":J
.restart local v9 # "c":C
:cond_1c1
move-wide/from16 v25, v5
.end local v5 # "buf":J
.restart local v25 # "buf":J
goto :goto_1c8
.end local v12 # "length":I
.end local v25 # "buf":J
.restart local v5 # "buf":J
.restart local v20 # "length":I
:cond_1c4
move-wide/from16 v25, v5
move/from16 v12, v20
.line 437
.end local v5 # "buf":J
.end local v20 # "length":I
.restart local v12 # "length":I
.restart local v25 # "buf":J
:cond_1c8
:goto_1c8
move v14, v0
.line 438
move v5, v9
.line 439
.local v5, "prevCh":C
const/4 v6, 0x0
.local v6, "a":I
:goto_1cb
const/4 v11, 0x3
if-ge v6, v11, :cond_22c
.line 440
add-int/lit8 v11, v0, 0x1
if-ge v11, v12, :cond_226
.line 441
add-int/lit8 v11, v0, 0x1
invoke-interface {v1, v11}, Ljava/lang/CharSequence;->charAt(I)C
move-result v11
move v9, v11
.line 442
const/4 v11, 0x1
if-ne v6, v11, :cond_1f6
.line 443
const/16 v11, 0x200d
if-ne v9, v11, :cond_1f2
invoke-virtual {v8}, Ljava/lang/StringBuilder;->length()I
move-result v11
if-lez v11, :cond_1f2
.line 444
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
.line 445
add-int/lit8 v0, v0, 0x1
.line 446
add-int/lit8 v13, v13, 0x1
.line 447
const/4 v15, 0x0
const v11, 0xfe0f
goto :goto_229
.line 443
:cond_1f2
const v11, 0xfe0f
goto :goto_229
.line 449
:cond_1f6
const/4 v11, -0x1
if-ne v7, v11, :cond_20c
const/16 v11, 0x2a
if-eq v5, v11, :cond_20c
const/16 v11, 0x31
if-lt v5, v11, :cond_206
const/16 v11, 0x39
if-gt v5, v11, :cond_208
goto :goto_20e
:cond_206
const/16 v11, 0x39
:cond_208
const v11, 0xfe0f
goto :goto_229
:cond_20c
const/16 v11, 0x39
.line 450
:goto_20e
const v11, 0xfe00
if-lt v9, v11, :cond_21d
const v11, 0xfe0f
if-gt v9, v11, :cond_229
.line 451
add-int/lit8 v0, v0, 0x1
.line 452
add-int/lit8 v13, v13, 0x1
goto :goto_229
.line 450
:cond_21d
const v11, 0xfe0f
goto :goto_229
.line 485
.end local v0 # "i":I
.end local v5 # "prevCh":C
.end local v6 # "a":I
.end local v9 # "c":C
:catch_221
move-exception v0
move/from16 v5, p2
goto/16 :goto_2e3
.line 440
.restart local v0 # "i":I
.restart local v5 # "prevCh":C
.restart local v6 # "a":I
.restart local v9 # "c":C
:cond_226
const v11, 0xfe0f
.line 439
:cond_229
:goto_229
add-int/lit8 v6, v6, 0x1
goto :goto_1cb
.line 457
.end local v6 # "a":I
:cond_22c
if-eqz v15, :cond_262
add-int/lit8 v6, v0, 0x2
if-ge v6, v12, :cond_262
add-int/lit8 v6, v0, 0x1
invoke-interface {v1, v6}, Ljava/lang/CharSequence;->charAt(I)C
move-result v6
const v11, 0xd83c
if-ne v6, v11, :cond_262
.line 458
add-int/lit8 v6, v0, 0x2
invoke-interface {v1, v6}, Ljava/lang/CharSequence;->charAt(I)C
move-result v6
.line 459
.local v6, "next":C
const v11, 0xdffb
if-lt v6, v11, :cond_25f
const v11, 0xdfff
if-gt v6, v11, :cond_25f
.line 460
add-int/lit8 v11, v0, 0x1
move/from16 p4, v5
.end local v5 # "prevCh":C
.local p4, "prevCh":C
add-int/lit8 v5, v0, 0x3
invoke-interface {v1, v11, v5}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;
move-result-object v5
invoke-virtual {v8, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/CharSequence;)Ljava/lang/StringBuilder;
.line 461
add-int/lit8 v13, v13, 0x2
.line 462
add-int/lit8 v0, v0, 0x2
goto :goto_264
.line 459
.end local p4 # "prevCh":C
.restart local v5 # "prevCh":C
:cond_25f
move/from16 p4, v5
.end local v5 # "prevCh":C
.restart local p4 # "prevCh":C
goto :goto_264
.line 457
.end local v6 # "next":C
.end local p4 # "prevCh":C
.restart local v5 # "prevCh":C
:cond_262
move/from16 p4, v5
.line 465
.end local v5 # "prevCh":C
.restart local p4 # "prevCh":C
:goto_264
if-eqz v15, :cond_2b0
.line 466
if-eqz v3, :cond_26f
.line 467
const/4 v5, 0x0
aget v6, v3, v5
const/4 v11, 0x1
add-int/2addr v6, v11
aput v6, v3, v5
:try_end_26f
.catch Ljava/lang/Exception; {:try_start_15e .. :try_end_26f} :catch_221
.line 469
:cond_26f
:try_start_26f
invoke-virtual {v8}, Ljava/lang/StringBuilder;->length()I
move-result v5
const/4 v6, 0x0
invoke-virtual {v8, v6, v5}, Ljava/lang/StringBuilder;->subSequence(II)Ljava/lang/CharSequence;
move-result-object v5
.line 470
.local v5, "code":Ljava/lang/CharSequence;
invoke-static {v5}, Lim/tpelyyftgw/messenger/Emoji;->getEmojiDrawable(Ljava/lang/CharSequence;)Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
move-result-object v6
.line 471
.local v6, "drawable":Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
if-eqz v6, :cond_299
.line 472
new-instance v11, Lim/tpelyyftgw/messenger/Emoji$EmojiSpan;
:try_end_280
.catch Ljava/lang/Exception; {:try_start_26f .. :try_end_280} :catch_2aa
move-object/from16 v17, v3
move-object/from16 v18, v5
move/from16 v19, v9
const/4 v9, 0x0
move-object/from16 v3, p1
move/from16 v5, p2
.end local v3 # "emojiOnly":[I
.end local v5 # "code":Ljava/lang/CharSequence;
.end local v9 # "c":C
.local v17, "emojiOnly":[I
.local v18, "code":Ljava/lang/CharSequence;
.local v19, "c":C
:try_start_28b
invoke-direct {v11, v6, v9, v5, v3}, Lim/tpelyyftgw/messenger/Emoji$EmojiSpan;-><init>(Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;IILandroid/graphics/Paint$FontMetricsInt;)V
move-object v9, v11
.line 473
.local v9, "span":Lim/tpelyyftgw/messenger/Emoji$EmojiSpan;
add-int v11, v7, v13
const/16 v3, 0x21
invoke-interface {v2, v9, v7, v11, v3}, Landroid/text/Spannable;->setSpan(Ljava/lang/Object;III)V
.line 474
add-int/lit8 v4, v4, 0x1
goto :goto_2a1
.line 471
.end local v17 # "emojiOnly":[I
.end local v18 # "code":Ljava/lang/CharSequence;
.end local v19 # "c":C
.restart local v3 # "emojiOnly":[I
.restart local v5 # "code":Ljava/lang/CharSequence;
.local v9, "c":C
:cond_299
move-object/from16 v17, v3
move-object/from16 v18, v5
move/from16 v19, v9
move/from16 v5, p2
.line 476
.end local v3 # "emojiOnly":[I
.end local v5 # "code":Ljava/lang/CharSequence;
.end local v9 # "c":C
.restart local v17 # "emojiOnly":[I
.restart local v18 # "code":Ljava/lang/CharSequence;
.restart local v19 # "c":C
:goto_2a1
const/4 v13, 0x0
.line 477
const/4 v7, -0x1
.line 478
const/4 v3, 0x0
invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->setLength(I)V
.line 479
const/4 v3, 0x0
move v15, v3
.end local v15 # "doneEmoji":Z
.local v3, "doneEmoji":Z
goto :goto_2b6
.line 485
.end local v0 # "i":I
.end local v6 # "drawable":Lim/tpelyyftgw/messenger/Emoji$EmojiDrawable;
.end local v17 # "emojiOnly":[I
.end local v18 # "code":Ljava/lang/CharSequence;
.end local v19 # "c":C
.end local p4 # "prevCh":C
.local v3, "emojiOnly":[I
.restart local v15 # "doneEmoji":Z
:catch_2aa
move-exception v0
move/from16 v5, p2
move-object/from16 v17, v3
.end local v3 # "emojiOnly":[I
.restart local v17 # "emojiOnly":[I
goto :goto_2e3
.line 465
.end local v17 # "emojiOnly":[I
.restart local v0 # "i":I
.restart local v3 # "emojiOnly":[I
.restart local v9 # "c":C
.restart local p4 # "prevCh":C
:cond_2b0
move/from16 v5, p2
move-object/from16 v17, v3
move/from16 v19, v9
.line 481
.end local v3 # "emojiOnly":[I
.end local v9 # "c":C
.restart local v17 # "emojiOnly":[I
.restart local v19 # "c":C
:goto_2b6
sget v3, Landroid/os/Build$VERSION;->SDK_INT:I
:try_end_2b8
.catch Ljava/lang/Exception; {:try_start_28b .. :try_end_2b8} :catch_2ce
const/16 v6, 0x17
if-ge v3, v6, :cond_2c3
const/16 v3, 0x32
if-lt v4, v3, :cond_2c3
.line 482
move-object/from16 v3, v17
goto :goto_2ed
.line 365
.end local p4 # "prevCh":C
:cond_2c3
add-int/lit8 v0, v0, 0x1
move-object/from16 v3, v17
move-wide/from16 v5, v25
const/16 v9, 0x10
const/4 v11, 0x2
goto/16 :goto_4f
.line 485
.end local v0 # "i":I
.end local v19 # "c":C
:catch_2ce
move-exception v0
move-object/from16 v3, v17
goto :goto_2e3
.end local v12 # "length":I
.end local v17 # "emojiOnly":[I
.end local v25 # "buf":J
.restart local v3 # "emojiOnly":[I
.local v5, "buf":J
.restart local v20 # "length":I
:catch_2d2
move-exception v0
move-object/from16 v17, v3
move-wide/from16 v25, v5
move/from16 v12, v20
move/from16 v5, p2
.end local v3 # "emojiOnly":[I
.end local v5 # "buf":J
.end local v20 # "length":I
.restart local v12 # "length":I
.restart local v17 # "emojiOnly":[I
.restart local v25 # "buf":J
goto :goto_2e3
.end local v17 # "emojiOnly":[I
.end local v25 # "buf":J
.restart local v3 # "emojiOnly":[I
.restart local v5 # "buf":J
:catch_2dc
move-exception v0
move-object/from16 v17, v3
move-wide/from16 v25, v5
move/from16 v5, p2
.line 486
.end local v5 # "buf":J
.local v0, "e":Ljava/lang/Exception;
.restart local v25 # "buf":J
:goto_2e3
invoke-static {v0}, Lim/tpelyyftgw/messenger/FileLog;->e(Ljava/lang/Throwable;)V
.line 487
return-object v1
.line 365
.end local v25 # "buf":J
.local v0, "i":I
.restart local v5 # "buf":J
:cond_2e7
move-object/from16 v17, v3
move-wide/from16 v25, v5
move/from16 v5, p2
.line 488
.end local v0 # "i":I
.end local v5 # "buf":J
.restart local v25 # "buf":J
:goto_2ed
nop
.line 489
return-object v2
.line 338
.end local v2 # "s":Landroid/text/Spannable;
.end local v3 # "emojiOnly":[I
.end local v4 # "emojiCount":I
.end local v7 # "startIndex":I
.end local v8 # "emojiCode":Ljava/lang/StringBuilder;
.end local v10 # "addionalCode":Ljava/lang/StringBuilder;
.end local v12 # "length":I
.end local v13 # "startLength":I
.end local v14 # "previousGoodIndex":I
.end local v15 # "doneEmoji":Z
.end local v25 # "buf":J
.local p4, "emojiOnly":[I
:cond_2ef
move/from16 v5, p2
.line 339
:goto_2f1
return-object v1
.end method
.method public static saveEmojiColors()V
.registers 5
.line 687
invoke-static {}, Lim/tpelyyftgw/messenger/MessagesController;->getGlobalEmojiSettings()Landroid/content/SharedPreferences;
move-result-object v0
.line 688
.local v0, "preferences":Landroid/content/SharedPreferences;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 689
.local v1, "stringBuilder":Ljava/lang/StringBuilder;
sget-object v2, Lim/tpelyyftgw/messenger/Emoji;->emojiColor:Ljava/util/HashMap;
invoke-virtual {v2}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;
move-result-object v2
invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_13
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_42
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/util/Map$Entry;
.line 690
.local v3, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;"
invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I
move-result v4
if-eqz v4, :cond_2a
.line 691
const-string v4, ","
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 693
:cond_2a
invoke-interface {v3}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/String;
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 694
const-string v4, "="
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 695
invoke-interface {v3}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/String;
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 696
.end local v3 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;"
goto :goto_13
.line 697
:cond_42
invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v2
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
const-string v4, "color"
invoke-interface {v2, v4, v3}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
move-result-object v2
invoke-interface {v2}, Landroid/content/SharedPreferences$Editor;->commit()Z
.line 698
return-void
.end method
.method public static saveRecentEmoji()V
.registers 5
.line 586
invoke-static {}, Lim/tpelyyftgw/messenger/MessagesController;->getGlobalEmojiSettings()Landroid/content/SharedPreferences;
move-result-object v0
.line 587
.local v0, "preferences":Landroid/content/SharedPreferences;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
.line 588
.local v1, "stringBuilder":Ljava/lang/StringBuilder;
sget-object v2, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v2}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;
move-result-object v2
invoke-interface {v2}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v2
:goto_13
invoke-interface {v2}, Ljava/util/Iterator;->hasNext()Z
move-result v3
if-eqz v3, :cond_40
invoke-interface {v2}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljava/util/Map$Entry;
.line 589
.local v3, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;"
invoke-virtual {v1}, Ljava/lang/StringBuilder;->length()I
move-result v4
if-eqz v4, :cond_2a
.line 590
const-string v4, ","
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 592
:cond_2a
invoke-interface {v3}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v4
check-cast v4, Ljava/lang/String;
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 593
const-string v4, "="
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 594
invoke-interface {v3}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v4
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
.line 595
.end local v3 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;"
goto :goto_13
.line 596
:cond_40
invoke-interface {v0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object v2
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
const-string v4, "emojis2"
invoke-interface {v2, v4, v3}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
move-result-object v2
invoke-interface {v2}, Landroid/content/SharedPreferences$Editor;->commit()Z
.line 597
return-void
.end method
.method public static sortEmoji()V
.registers 4
.line 560
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->recentEmoji:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->clear()V
.line 561
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->emojiUseHistory:Ljava/util/HashMap;
invoke-virtual {v0}, Ljava/util/HashMap;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_f
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_25
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/Map$Entry;
.line 562
.local v1, "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;"
sget-object v2, Lim/tpelyyftgw/messenger/Emoji;->recentEmoji:Ljava/util/ArrayList;
invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 563
.end local v1 # "entry":Ljava/util/Map$Entry;, "Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Integer;>;"
goto :goto_f
.line 564
:cond_25
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->recentEmoji:Ljava/util/ArrayList;
sget-object v1, Lim/tpelyyftgw/messenger/-$$Lambda$Emoji$tgcPaTSd7TerVRaSWG4uv6W-KKo;->INSTANCE:Lim/tpelyyftgw/messenger/-$$Lambda$Emoji$tgcPaTSd7TerVRaSWG4uv6W-KKo;
invoke-static {v0, v1}, Ljava/util/Collections;->sort(Ljava/util/List;Ljava/util/Comparator;)V
.line 580
:goto_2c
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->recentEmoji:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v0
const/16 v1, 0x30
if-le v0, v1, :cond_42
.line 581
sget-object v0, Lim/tpelyyftgw/messenger/Emoji;->recentEmoji:Ljava/util/ArrayList;
invoke-virtual {v0}, Ljava/util/ArrayList;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->remove(I)Ljava/lang/Object;
goto :goto_2c
.line 583
:cond_42
return-void
.end method