f.smali
.class public final Landroidx/emoji/text/f;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/emoji/text/f$a;,
Landroidx/emoji/text/f$b;,
Landroidx/emoji/text/f$e;,
Landroidx/emoji/text/f$c;,
Landroidx/emoji/text/f$g;,
Landroidx/emoji/text/f$f;,
Landroidx/emoji/text/f$d;,
Landroidx/emoji/text/f$h;
}
.end annotation
# static fields
.field public static final h:Ljava/lang/Object;
.field public static volatile i:Landroidx/emoji/text/f;
# instance fields
.field public final a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
.field public final b:Landroidx/collection/c;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set<",
"Landroidx/emoji/text/f$d;",
">;"
}
.end annotation
.end field
.field public c:I
.field public final d:Landroid/os/Handler;
.field public final e:Landroidx/emoji/text/f$a;
.field public final f:Landroidx/emoji/text/f$f;
.field public final g:Z
# direct methods
.method public static constructor <clinit>()V
.registers 1
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Landroidx/emoji/text/f;->h:Ljava/lang/Object;
return-void
.end method
.method public constructor <init>(Landroidx/emoji/text/f$c;)V
.registers 6
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
iput-object v0, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
const/4 v1, 0x3
.line 3
iput v1, p0, Landroidx/emoji/text/f;->c:I
.line 4
iget-boolean v1, p1, Landroidx/emoji/text/f$c;->b:Z
iput-boolean v1, p0, Landroidx/emoji/text/f;->g:Z
const/4 v1, 0x0
.line 5
iget-object v2, p1, Landroidx/emoji/text/f$c;->a:Landroidx/emoji/text/f$f;
iput-object v2, p0, Landroidx/emoji/text/f;->f:Landroidx/emoji/text/f$f;
.line 6
new-instance v2, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v3
invoke-direct {v2, v3}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v2, p0, Landroidx/emoji/text/f;->d:Landroid/os/Handler;
.line 7
new-instance v2, Landroidx/collection/c;
.line 8
invoke-direct {v2, v1}, Landroidx/collection/c;-><init>(I)V
.line 9
iput-object v2, p0, Landroidx/emoji/text/f;->b:Landroidx/collection/c;
.line 10
iget-object v3, p1, Landroidx/emoji/text/f$c;->c:Landroidx/collection/c;
if-eqz v3, :cond_37
invoke-virtual {v3}, Landroidx/collection/c;->isEmpty()Z
move-result v3
if-nez v3, :cond_37
.line 11
iget-object p1, p1, Landroidx/emoji/text/f$c;->c:Landroidx/collection/c;
invoke-virtual {v2, p1}, Landroidx/collection/c;->addAll(Ljava/util/Collection;)Z
.line 12
:cond_37
new-instance p1, Landroidx/emoji/text/f$a;
invoke-direct {p1, p0}, Landroidx/emoji/text/f$a;-><init>(Landroidx/emoji/text/f;)V
iput-object p1, p0, Landroidx/emoji/text/f;->e:Landroidx/emoji/text/f$a;
.line 13
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v2
invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 14
:try_start_45
iput v1, p0, Landroidx/emoji/text/f;->c:I
:try_end_47
.catchall {:try_start_45 .. :try_end_47} :catchall_58
.line 15
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 16
invoke-virtual {p0}, Landroidx/emoji/text/f;->b()I
move-result v0
if-nez v0, :cond_57
.line 17
invoke-virtual {p1}, Landroidx/emoji/text/f$a;->a()V
:cond_57
return-void
:catchall_58
move-exception p1
.line 18
iget-object v0, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 19
throw p1
.end method
.method public static a()Landroidx/emoji/text/f;
.registers 3
.line 1
sget-object v0, Landroidx/emoji/text/f;->h:Ljava/lang/Object;
monitor-enter v0
.line 2
:try_start_3
sget-object v1, Landroidx/emoji/text/f;->i:Landroidx/emoji/text/f;
if-eqz v1, :cond_9
const/4 v1, 0x1
goto :goto_a
:cond_9
const/4 v1, 0x0
:goto_a
const-string v2, "EmojiCompat is not initialized. Please call EmojiCompat.init() first"
if-eqz v1, :cond_12
.line 3
sget-object v1, Landroidx/emoji/text/f;->i:Landroidx/emoji/text/f;
monitor-exit v0
return-object v1
.line 4
:cond_12
new-instance v1, Ljava/lang/IllegalStateException;
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
:catchall_18
move-exception v1
.line 5
monitor-exit v0
:try_end_1a
.catchall {:try_start_3 .. :try_end_1a} :catchall_18
throw v1
.end method
.method public static c(Landroid/view/inputmethod/InputConnection;Landroid/text/Editable;IIZ)Z
.registers 12
const/4 v0, 0x0
const/4 v1, 0x1
if-eqz p1, :cond_f9
if-nez p0, :cond_8
goto/16 :goto_f9
:cond_8
if-ltz p2, :cond_f9
if-gez p3, :cond_e
goto/16 :goto_f9
.line 1
:cond_e
invoke-static {p1}, Landroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I
move-result v2
.line 2
invoke-static {p1}, Landroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I
move-result v3
const/4 v4, -0x1
if-eq v2, v4, :cond_20
if-eq v3, v4, :cond_20
if-eq v2, v3, :cond_1e
goto :goto_20
:cond_1e
const/4 v5, 0x0
goto :goto_21
:cond_20
:goto_20
const/4 v5, 0x1
:goto_21
if-eqz v5, :cond_25
goto/16 :goto_f9
:cond_25
if-eqz p4, :cond_af
.line 3
invoke-static {p2, v0}, Ljava/lang/Math;->max(II)I
move-result p2
.line 4
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result p4
if-ltz v2, :cond_66
if-ge p4, v2, :cond_34
goto :goto_66
:cond_34
if-gez p2, :cond_37
goto :goto_66
:cond_37
:goto_37
const/4 p4, 0x0
:goto_38
if-nez p2, :cond_3b
goto :goto_67
:cond_3b
add-int/lit8 v2, v2, -0x1
if-gez v2, :cond_44
if-eqz p4, :cond_42
goto :goto_66
:cond_42
const/4 v2, 0x0
goto :goto_67
.line 5
:cond_44
invoke-interface {p1, v2}, Ljava/lang/CharSequence;->charAt(I)C
move-result v5
if-eqz p4, :cond_54
.line 6
invoke-static {v5}, Ljava/lang/Character;->isHighSurrogate(C)Z
move-result p4
if-nez p4, :cond_51
goto :goto_66
:cond_51
add-int/lit8 p2, p2, -0x1
goto :goto_37
.line 7
:cond_54
invoke-static {v5}, Ljava/lang/Character;->isSurrogate(C)Z
move-result v6
if-nez v6, :cond_5d
add-int/lit8 p2, p2, -0x1
goto :goto_38
.line 8
:cond_5d
invoke-static {v5}, Ljava/lang/Character;->isHighSurrogate(C)Z
move-result p4
if-eqz p4, :cond_64
goto :goto_66
:cond_64
const/4 p4, 0x1
goto :goto_38
:cond_66
:goto_66
const/4 v2, -0x1
.line 9
:goto_67
invoke-static {p3, v0}, Ljava/lang/Math;->max(II)I
move-result p2
.line 10
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result p3
if-ltz v3, :cond_a9
if-ge p3, v3, :cond_74
goto :goto_a9
:cond_74
if-gez p2, :cond_77
goto :goto_a9
:cond_77
:goto_77
const/4 p4, 0x0
:goto_78
if-nez p2, :cond_7c
move p3, v3
goto :goto_aa
:cond_7c
if-lt v3, p3, :cond_81
if-eqz p4, :cond_aa
goto :goto_a9
.line 11
:cond_81
invoke-interface {p1, v3}, Ljava/lang/CharSequence;->charAt(I)C
move-result v5
if-eqz p4, :cond_93
.line 12
invoke-static {v5}, Ljava/lang/Character;->isLowSurrogate(C)Z
move-result p4
if-nez p4, :cond_8e
goto :goto_a9
:cond_8e
add-int/lit8 p2, p2, -0x1
add-int/lit8 v3, v3, 0x1
goto :goto_77
.line 13
:cond_93
invoke-static {v5}, Ljava/lang/Character;->isSurrogate(C)Z
move-result v6
if-nez v6, :cond_9e
add-int/lit8 p2, p2, -0x1
add-int/lit8 v3, v3, 0x1
goto :goto_78
.line 14
:cond_9e
invoke-static {v5}, Ljava/lang/Character;->isLowSurrogate(C)Z
move-result p4
if-eqz p4, :cond_a5
goto :goto_a9
:cond_a5
add-int/lit8 v3, v3, 0x1
const/4 p4, 0x1
goto :goto_78
:cond_a9
:goto_a9
const/4 p3, -0x1
:cond_aa
:goto_aa
if-eq v2, v4, :cond_f9
if-ne p3, v4, :cond_bd
goto :goto_f9
:cond_af
sub-int/2addr v2, p2
.line 15
invoke-static {v2, v0}, Ljava/lang/Math;->max(II)I
move-result v2
add-int/2addr v3, p3
.line 16
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result p2
invoke-static {v3, p2}, Ljava/lang/Math;->min(II)I
move-result p3
.line 17
:cond_bd
const-class p2, Landroidx/emoji/text/i;
invoke-interface {p1, v2, p3, p2}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
move-result-object p2
check-cast p2, [Landroidx/emoji/text/i;
if-eqz p2, :cond_f9
.line 18
array-length p4, p2
if-lez p4, :cond_f9
.line 19
array-length p4, p2
const/4 v3, 0x0
:goto_cc
if-ge v3, p4, :cond_e3
.line 20
aget-object v4, p2, v3
.line 21
invoke-interface {p1, v4}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I
move-result v5
.line 22
invoke-interface {p1, v4}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I
move-result v4
.line 23
invoke-static {v5, v2}, Ljava/lang/Math;->min(II)I
move-result v2
.line 24
invoke-static {v4, p3}, Ljava/lang/Math;->max(II)I
move-result p3
add-int/lit8 v3, v3, 0x1
goto :goto_cc
.line 25
:cond_e3
invoke-static {v2, v0}, Ljava/lang/Math;->max(II)I
move-result p2
.line 26
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result p4
invoke-static {p3, p4}, Ljava/lang/Math;->min(II)I
move-result p3
.line 27
invoke-interface {p0}, Landroid/view/inputmethod/InputConnection;->beginBatchEdit()Z
.line 28
invoke-interface {p1, p2, p3}, Landroid/text/Editable;->delete(II)Landroid/text/Editable;
.line 29
invoke-interface {p0}, Landroid/view/inputmethod/InputConnection;->endBatchEdit()Z
const/4 v0, 0x1
:cond_f9
:goto_f9
return v0
.end method
.method public static d(Landroidx/emoji/text/f$c;)Landroidx/emoji/text/f;
.registers 3
.line 1
sget-object v0, Landroidx/emoji/text/f;->i:Landroidx/emoji/text/f;
if-nez v0, :cond_17
.line 2
sget-object v0, Landroidx/emoji/text/f;->h:Ljava/lang/Object;
monitor-enter v0
.line 3
:try_start_7
sget-object v1, Landroidx/emoji/text/f;->i:Landroidx/emoji/text/f;
if-nez v1, :cond_12
.line 4
new-instance v1, Landroidx/emoji/text/f;
invoke-direct {v1, p0}, Landroidx/emoji/text/f;-><init>(Landroidx/emoji/text/f$c;)V
sput-object v1, Landroidx/emoji/text/f;->i:Landroidx/emoji/text/f;
.line 5
:cond_12
monitor-exit v0
goto :goto_17
:catchall_14
move-exception p0
monitor-exit v0
:try_end_16
.catchall {:try_start_7 .. :try_end_16} :catchall_14
throw p0
.line 6
:cond_17
:goto_17
sget-object p0, Landroidx/emoji/text/f;->i:Landroidx/emoji/text/f;
return-object p0
.end method
# virtual methods
.method public final b()I
.registers 3
.line 1
iget-object v0, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 2
:try_start_9
iget v0, p0, Landroidx/emoji/text/f;->c:I
:try_end_b
.catchall {:try_start_9 .. :try_end_b} :catchall_15
.line 3
iget-object v1, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
return v0
:catchall_15
move-exception v0
iget-object v1, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 4
throw v0
.end method
.method public final e(Ljava/lang/Throwable;)V
.registers 6
.line 1
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 2
iget-object v1, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
const/4 v1, 0x2
.line 3
:try_start_f
iput v1, p0, Landroidx/emoji/text/f;->c:I
.line 4
iget-object v1, p0, Landroidx/emoji/text/f;->b:Landroidx/collection/c;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
.line 5
iget-object v1, p0, Landroidx/emoji/text/f;->b:Landroidx/collection/c;
invoke-virtual {v1}, Landroidx/collection/c;->clear()V
:try_end_1b
.catchall {:try_start_f .. :try_end_1b} :catchall_31
.line 6
iget-object v1, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 7
iget-object v1, p0, Landroidx/emoji/text/f;->d:Landroid/os/Handler;
new-instance v2, Landroidx/emoji/text/f$e;
iget v3, p0, Landroidx/emoji/text/f;->c:I
invoke-direct {v2, v0, v3, p1}, Landroidx/emoji/text/f$e;-><init>(Ljava/util/Collection;ILjava/lang/Throwable;)V
invoke-virtual {v1, v2}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
:catchall_31
move-exception p1
.line 8
iget-object v0, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 9
throw p1
.end method
.method public final f()V
.registers 6
.line 1
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 2
iget-object v1, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
const/4 v1, 0x1
.line 3
:try_start_f
iput v1, p0, Landroidx/emoji/text/f;->c:I
.line 4
iget-object v1, p0, Landroidx/emoji/text/f;->b:Landroidx/collection/c;
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
.line 5
iget-object v1, p0, Landroidx/emoji/text/f;->b:Landroidx/collection/c;
invoke-virtual {v1}, Landroidx/collection/c;->clear()V
:try_end_1b
.catchall {:try_start_f .. :try_end_1b} :catchall_32
.line 6
iget-object v1, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 7
iget-object v1, p0, Landroidx/emoji/text/f;->d:Landroid/os/Handler;
new-instance v2, Landroidx/emoji/text/f$e;
iget v3, p0, Landroidx/emoji/text/f;->c:I
const/4 v4, 0x0
.line 8
invoke-direct {v2, v0, v3, v4}, Landroidx/emoji/text/f$e;-><init>(Ljava/util/Collection;ILjava/lang/Throwable;)V
.line 9
invoke-virtual {v1, v2}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
:catchall_32
move-exception v0
.line 10
iget-object v1, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 11
throw v0
.end method
.method public final g(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
.registers 9
if-nez p1, :cond_5
const/4 v0, 0x0
const/4 v4, 0x0
goto :goto_a
.line 1
:cond_5
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result v0
move v4, v0
:goto_a
const/4 v3, 0x0
const/4 v6, 0x0
const v5, 0x7fffffff
move-object v1, p0
move-object v2, p1
.line 2
invoke-virtual/range {v1 .. v6}, Landroidx/emoji/text/f;->h(Ljava/lang/CharSequence;IIII)Ljava/lang/CharSequence;
move-result-object p1
return-object p1
.end method
.method public final h(Ljava/lang/CharSequence;IIII)Ljava/lang/CharSequence;
.registers 22
move-object/from16 v1, p0
move-object/from16 v2, p1
move/from16 v0, p2
move/from16 v3, p3
move/from16 v4, p4
move/from16 v5, p5
.line 1
invoke-virtual/range {p0 .. p0}, Landroidx/emoji/text/f;->b()I
move-result v6
const/4 v7, 0x0
const/4 v8, 0x1
if-ne v6, v8, :cond_16
const/4 v6, 0x1
goto :goto_17
:cond_16
const/4 v6, 0x0
:goto_17
if-eqz v6, :cond_1b9
const-string v6, "start cannot be negative"
.line 2
invoke-static {v0, v6}, Landroidx/appcompat/f;->g(ILjava/lang/String;)I
const-string v6, "end cannot be negative"
.line 3
invoke-static {v3, v6}, Landroidx/appcompat/f;->g(ILjava/lang/String;)I
const-string v6, "maxEmojiCount cannot be negative"
.line 4
invoke-static {v4, v6}, Landroidx/appcompat/f;->g(ILjava/lang/String;)I
if-gt v0, v3, :cond_2c
const/4 v6, 0x1
goto :goto_2d
:cond_2c
const/4 v6, 0x0
:goto_2d
const-string v9, "start should be <= than end"
.line 5
invoke-static {v6, v9}, Landroidx/appcompat/f;->e(ZLjava/lang/Object;)V
if-nez v2, :cond_35
return-object v2
.line 6
:cond_35
invoke-interface/range {p1 .. p1}, Ljava/lang/CharSequence;->length()I
move-result v6
if-gt v0, v6, :cond_3d
const/4 v6, 0x1
goto :goto_3e
:cond_3d
const/4 v6, 0x0
:goto_3e
const-string v9, "start should be < than charSequence length"
invoke-static {v6, v9}, Landroidx/appcompat/f;->e(ZLjava/lang/Object;)V
.line 7
invoke-interface/range {p1 .. p1}, Ljava/lang/CharSequence;->length()I
move-result v6
if-gt v3, v6, :cond_4b
const/4 v6, 0x1
goto :goto_4c
:cond_4b
const/4 v6, 0x0
:goto_4c
const-string v9, "end should be < than charSequence length"
invoke-static {v6, v9}, Landroidx/appcompat/f;->e(ZLjava/lang/Object;)V
.line 8
invoke-interface/range {p1 .. p1}, Ljava/lang/CharSequence;->length()I
move-result v6
if-eqz v6, :cond_1b8
if-ne v0, v3, :cond_5b
goto/16 :goto_1b8
:cond_5b
const/4 v6, 0x2
if-eq v5, v8, :cond_65
if-eq v5, v6, :cond_63
.line 9
iget-boolean v5, v1, Landroidx/emoji/text/f;->g:Z
goto :goto_66
:cond_63
const/4 v5, 0x0
goto :goto_66
:cond_65
const/4 v5, 0x1
.line 10
:goto_66
iget-object v9, v1, Landroidx/emoji/text/f;->e:Landroidx/emoji/text/f$a;
.line 11
iget-object v9, v9, Landroidx/emoji/text/f$a;->b:Landroidx/emoji/text/h;
invoke-static {v9}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 12
instance-of v10, v2, Landroidx/emoji/widget/j;
if-eqz v10, :cond_77
.line 13
move-object v11, v2
check-cast v11, Landroidx/emoji/widget/j;
.line 14
invoke-virtual {v11}, Landroidx/emoji/widget/j;->a()V
:cond_77
const/4 v11, 0x0
if-nez v10, :cond_98
.line 15
:try_start_7a
instance-of v12, v2, Landroid/text/Spannable;
if-eqz v12, :cond_7f
goto :goto_98
.line 16
:cond_7f
instance-of v12, v2, Landroid/text/Spanned;
if-eqz v12, :cond_9b
.line 17
move-object v12, v2
check-cast v12, Landroid/text/Spanned;
add-int/lit8 v13, v0, -0x1
add-int/lit8 v14, v3, 0x1
const-class v15, Landroidx/emoji/text/i;
invoke-interface {v12, v13, v14, v15}, Landroid/text/Spanned;->nextSpanTransition(IILjava/lang/Class;)I
move-result v12
if-gt v12, v3, :cond_9b
.line 18
new-instance v11, Landroid/text/SpannableString;
invoke-direct {v11, v2}, Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
goto :goto_9b
.line 19
:cond_98
:goto_98
move-object v11, v2
check-cast v11, Landroid/text/Spannable;
:cond_9b
:goto_9b
if-eqz v11, :cond_ca
.line 20
const-class v12, Landroidx/emoji/text/i;
invoke-interface {v11, v0, v3, v12}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
move-result-object v12
check-cast v12, [Landroidx/emoji/text/i;
if-eqz v12, :cond_ca
.line 21
array-length v13, v12
if-lez v13, :cond_ca
.line 22
array-length v13, v12
const/4 v14, 0x0
:goto_ac
if-ge v14, v13, :cond_ca
.line 23
aget-object v15, v12, v14
.line 24
invoke-interface {v11, v15}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I
move-result v6
.line 25
invoke-interface {v11, v15}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I
move-result v8
if-eq v6, v3, :cond_bd
.line 26
invoke-interface {v11, v15}, Landroid/text/Spannable;->removeSpan(Ljava/lang/Object;)V
.line 27
:cond_bd
invoke-static {v6, v0}, Ljava/lang/Math;->min(II)I
move-result v0
.line 28
invoke-static {v8, v3}, Ljava/lang/Math;->max(II)I
move-result v3
add-int/lit8 v14, v14, 0x1
const/4 v6, 0x2
const/4 v8, 0x1
goto :goto_ac
:cond_ca
if-eq v0, v3, :cond_1a5
.line 29
invoke-interface/range {p1 .. p1}, Ljava/lang/CharSequence;->length()I
move-result v6
if-lt v0, v6, :cond_d4
goto/16 :goto_1a5
:cond_d4
const v6, 0x7fffffff
if-eq v4, v6, :cond_e9
if-eqz v11, :cond_e9
.line 30
invoke-interface {v11}, Ljava/lang/CharSequence;->length()I
move-result v6
const-class v8, Landroidx/emoji/text/i;
invoke-interface {v11, v7, v6, v8}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
move-result-object v6
check-cast v6, [Landroidx/emoji/text/i;
array-length v6, v6
sub-int/2addr v4, v6
.line 31
:cond_e9
new-instance v6, Landroidx/emoji/text/h$b;
iget-object v8, v9, Landroidx/emoji/text/h;->b:Landroidx/emoji/text/o;
.line 32
iget-object v8, v8, Landroidx/emoji/text/o;->c:Landroidx/emoji/text/o$a;
.line 33
iget-boolean v12, v9, Landroidx/emoji/text/h;->d:Z
iget-object v13, v9, Landroidx/emoji/text/h;->e:[I
invoke-direct {v6, v8, v12, v13}, Landroidx/emoji/text/h$b;-><init>(Landroidx/emoji/text/o$a;Z[I)V
.line 34
invoke-static {v2, v0}, Ljava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I
move-result v8
const/4 v12, 0x0
:goto_fb
move v13, v8
move v8, v0
:goto_fd
const/16 v14, 0x21
if-ge v0, v3, :cond_158
if-ge v12, v4, :cond_158
.line 35
invoke-virtual {v6, v13}, Landroidx/emoji/text/h$b;->a(I)I
move-result v15
const/4 v7, 0x1
if-eq v15, v7, :cond_146
const/4 v7, 0x2
if-eq v15, v7, :cond_13a
const/4 v7, 0x3
if-eq v15, v7, :cond_111
goto :goto_156
:cond_111
if-nez v5, :cond_11d
.line 36
iget-object v7, v6, Landroidx/emoji/text/h$b;->d:Landroidx/emoji/text/o$a;
.line 37
iget-object v7, v7, Landroidx/emoji/text/o$a;->b:Landroidx/emoji/text/g;
.line 38
invoke-virtual {v9, v2, v8, v0, v7}, Landroidx/emoji/text/h;->b(Ljava/lang/CharSequence;IILandroidx/emoji/text/g;)Z
move-result v7
if-nez v7, :cond_137
:cond_11d
if-nez v11, :cond_124
.line 39
new-instance v11, Landroid/text/SpannableString;
invoke-direct {v11, v2}, Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
.line 40
:cond_124
iget-object v7, v6, Landroidx/emoji/text/h$b;->d:Landroidx/emoji/text/o$a;
.line 41
iget-object v7, v7, Landroidx/emoji/text/o$a;->b:Landroidx/emoji/text/g;
.line 42
iget-object v15, v9, Landroidx/emoji/text/h;->a:Landroidx/emoji/text/f$h;
invoke-static {v15}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 43
new-instance v15, Landroidx/emoji/text/q;
invoke-direct {v15, v7}, Landroidx/emoji/text/q;-><init>(Landroidx/emoji/text/g;)V
.line 44
invoke-interface {v11, v15, v8, v0, v14}, Landroid/text/Spannable;->setSpan(Ljava/lang/Object;III)V
add-int/lit8 v12, v12, 0x1
:cond_137
move v8, v13
const/4 v7, 0x0
goto :goto_fb
.line 45
:cond_13a
invoke-static {v13}, Ljava/lang/Character;->charCount(I)I
move-result v7
add-int/2addr v0, v7
if-ge v0, v3, :cond_156
.line 46
invoke-static {v2, v0}, Ljava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I
move-result v13
goto :goto_156
.line 47
:cond_146
invoke-static {v2, v8}, Ljava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I
move-result v0
invoke-static {v0}, Ljava/lang/Character;->charCount(I)I
move-result v0
add-int/2addr v0, v8
if-ge v0, v3, :cond_155
.line 48
invoke-static {v2, v0}, Ljava/lang/Character;->codePointAt(Ljava/lang/CharSequence;I)I
move-result v13
:cond_155
move v8, v0
:cond_156
:goto_156
const/4 v7, 0x0
goto :goto_fd
.line 49
:cond_158
iget v3, v6, Landroidx/emoji/text/h$b;->a:I
const/4 v7, 0x2
if-ne v3, v7, :cond_16f
iget-object v3, v6, Landroidx/emoji/text/h$b;->c:Landroidx/emoji/text/o$a;
.line 50
iget-object v3, v3, Landroidx/emoji/text/o$a;->b:Landroidx/emoji/text/g;
if-eqz v3, :cond_16f
.line 51
iget v3, v6, Landroidx/emoji/text/h$b;->f:I
const/4 v7, 0x1
if-gt v3, v7, :cond_170
.line 52
invoke-virtual {v6}, Landroidx/emoji/text/h$b;->c()Z
move-result v3
if-eqz v3, :cond_16f
goto :goto_170
:cond_16f
const/4 v7, 0x0
:cond_170
:goto_170
if-eqz v7, :cond_199
if-ge v12, v4, :cond_199
if-nez v5, :cond_180
.line 53
iget-object v3, v6, Landroidx/emoji/text/h$b;->c:Landroidx/emoji/text/o$a;
.line 54
iget-object v3, v3, Landroidx/emoji/text/o$a;->b:Landroidx/emoji/text/g;
.line 55
invoke-virtual {v9, v2, v8, v0, v3}, Landroidx/emoji/text/h;->b(Ljava/lang/CharSequence;IILandroidx/emoji/text/g;)Z
move-result v3
if-nez v3, :cond_199
:cond_180
if-nez v11, :cond_188
.line 56
new-instance v3, Landroid/text/SpannableString;
invoke-direct {v3, v2}, Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
move-object v11, v3
.line 57
:cond_188
iget-object v3, v6, Landroidx/emoji/text/h$b;->c:Landroidx/emoji/text/o$a;
.line 58
iget-object v3, v3, Landroidx/emoji/text/o$a;->b:Landroidx/emoji/text/g;
.line 59
iget-object v4, v9, Landroidx/emoji/text/h;->a:Landroidx/emoji/text/f$h;
invoke-static {v4}, Ljava/util/Objects;->requireNonNull(Ljava/lang/Object;)Ljava/lang/Object;
.line 60
new-instance v4, Landroidx/emoji/text/q;
invoke-direct {v4, v3}, Landroidx/emoji/text/q;-><init>(Landroidx/emoji/text/g;)V
.line 61
invoke-interface {v11, v4, v8, v0, v14}, Landroid/text/Spannable;->setSpan(Ljava/lang/Object;III)V
:try_end_199
.catchall {:try_start_7a .. :try_end_199} :catchall_1af
:cond_199
if-nez v11, :cond_19c
move-object v11, v2
:cond_19c
if-eqz v10, :cond_1ae
.line 62
move-object v0, v2
check-cast v0, Landroidx/emoji/widget/j;
invoke-virtual {v0}, Landroidx/emoji/widget/j;->b()V
goto :goto_1ae
:cond_1a5
:goto_1a5
if-eqz v10, :cond_1ad
move-object v0, v2
check-cast v0, Landroidx/emoji/widget/j;
invoke-virtual {v0}, Landroidx/emoji/widget/j;->b()V
:cond_1ad
move-object v11, v2
:cond_1ae
:goto_1ae
return-object v11
:catchall_1af
move-exception v0
if-eqz v10, :cond_1b7
check-cast v2, Landroidx/emoji/widget/j;
invoke-virtual {v2}, Landroidx/emoji/widget/j;->b()V
.line 63
:cond_1b7
throw v0
:cond_1b8
:goto_1b8
return-object v2
.line 64
:cond_1b9
new-instance v0, Ljava/lang/IllegalStateException;
const-string v2, "Not initialized yet"
invoke-direct {v0, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public final i(Landroidx/emoji/text/f$d;)V
.registers 7
const-string v0, "initCallback cannot be null"
.line 1
invoke-static {p1, v0}, Landroidx/appcompat/f;->h(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 2
iget-object v0, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 3
:try_start_e
iget v0, p0, Landroidx/emoji/text/f;->c:I
const/4 v1, 0x1
if-eq v0, v1, :cond_1d
const/4 v2, 0x2
if-ne v0, v2, :cond_17
goto :goto_1d
.line 4
:cond_17
iget-object v0, p0, Landroidx/emoji/text/f;->b:Landroidx/collection/c;
invoke-virtual {v0, p1}, Landroidx/collection/c;->add(Ljava/lang/Object;)Z
goto :goto_31
.line 5
:cond_1d
:goto_1d
iget-object v2, p0, Landroidx/emoji/text/f;->d:Landroid/os/Handler;
new-instance v3, Landroidx/emoji/text/f$e;
new-array v1, v1, [Landroidx/emoji/text/f$d;
const/4 v4, 0x0
aput-object p1, v1, v4
.line 6
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object p1
const/4 v1, 0x0
invoke-direct {v3, p1, v0, v1}, Landroidx/emoji/text/f$e;-><init>(Ljava/util/Collection;ILjava/lang/Throwable;)V
.line 7
invoke-virtual {v2, v3}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:try_end_31
.catchall {:try_start_e .. :try_end_31} :catchall_3b
.line 8
:goto_31
iget-object p1, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object p1
invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V
return-void
:catchall_3b
move-exception p1
iget-object v0, p0, Landroidx/emoji/text/f;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 9
throw p1
.end method