* Decompile and recreate Soul Browser v1.4.85 with APK CI builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix CI build: include bundled google.jks and remove PR trigger The apktool build failed in CI because app/unknown/.../google.jks was excluded by the *.jks gitignore rule. Whitelist app-bundled JKS files and commit the missing resource. Also remove the redundant pull_request workflow trigger. Co-authored-by: KaKi87 <KaKi87@pm.me> * Change package ID to com.github.kaki87.soulbrowser Rename the application ID so the rebuilt APK can be installed alongside the original Soul Browser from Google Play. - Update AndroidManifest package, permissions, providers, and actions - Update R class references in smali (com/github/kaki87/soulbrowser/R) - Update shortcuts.xml targetPackage - Rename app label to "Soul Rebuild" for easy identification Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install compatibility: remove split APK metadata and bundle native libs The rebuilt APK still declared requiredSplitTypes and Play Store split metadata, causing Android to reject standalone installs as incompatible. - Remove requiredSplitTypes and split-related manifest meta-data - Merge native libs from all ABI splits with uncompressed storage - Page-align before signing for extractNativeLibs=false - Add .so to apktool doNotCompress list Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix install failure: use apksigner v2/v3 and bundle arm64 native libs Target SDK 36 requires APK Signature Scheme v2+, but jarsigner only produces v1 signatures, causing Android to reject the install. - Sign with apksigner (v1+v2+v3) instead of jarsigner - Add arm64-v8a native libraries from universal Soul Browser 1.4.79 - Set extractNativeLibs=true for reliable sideload installs - Commit stable debug keystore for consistent signatures across builds Co-authored-by: KaKi87 <KaKi87@pm.me> * Add committed debug keystore for consistent APK signatures Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix startup crash: use original classes2.dex desugar libraries Apktool recompiles smali_classes2 into a broken classes2.dex, causing ClassNotFoundException for j$.com.android.tools.r8.a at ML Kit init. Inject the original classes2.dex (Java 8+ desugar libs) after apktool build instead of using the recompiled version. Co-authored-by: KaKi87 <KaKi87@pm.me> * Fix missing drawable resources from density split APKs The base APK is an app bundle module; density-specific drawables like seek_thumb_nor_b live in config.xhdpi.apk and were missing after rebuild, causing Resources$NotFoundException at runtime. - Merge non-9-patch resources from split APKs before apktool build - Sync public.xml IDs from R smali only when backing files exist - Add 713 density-specific resource IDs to public.xml Co-authored-by: KaKi87 <KaKi87@pm.me> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2376 lines
46 KiB
Smali
2376 lines
46 KiB
Smali
.class public Landroidx/emoji2/text/EmojiCompat;
|
|
.super Ljava/lang/Object;
|
|
.source "SourceFile"
|
|
|
|
|
|
# annotations
|
|
.annotation build Landroidx/annotation/AnyThread;
|
|
.end annotation
|
|
|
|
.annotation system Ldalvik/annotation/MemberClasses;
|
|
value = {
|
|
Landroidx/emoji2/text/EmojiCompat$GlyphChecker;,
|
|
Landroidx/emoji2/text/EmojiCompat$SpanFactory;,
|
|
Landroidx/emoji2/text/EmojiCompat$Config;,
|
|
Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;,
|
|
Landroidx/emoji2/text/EmojiCompat$DefaultSpanFactory;,
|
|
Landroidx/emoji2/text/EmojiCompat$CompatInternal;,
|
|
Landroidx/emoji2/text/EmojiCompat$CompatInternal19;,
|
|
Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;,
|
|
Landroidx/emoji2/text/EmojiCompat$InitCallback;,
|
|
Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoaderCallback;,
|
|
Landroidx/emoji2/text/EmojiCompat$CodepointSequenceMatchResult;,
|
|
Landroidx/emoji2/text/EmojiCompat$LoadStrategy;,
|
|
Landroidx/emoji2/text/EmojiCompat$ReplaceStrategy;
|
|
}
|
|
.end annotation
|
|
|
|
|
|
# static fields
|
|
.field public static final j:Ljava/lang/Object;
|
|
|
|
.field public static volatile k:Landroidx/emoji2/text/EmojiCompat;
|
|
|
|
|
|
# instance fields
|
|
.field public final a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.field public final b:Landroidx/collection/ArraySet;
|
|
|
|
.field public volatile c:I
|
|
|
|
.field public final d:Landroid/os/Handler;
|
|
|
|
.field public final e:Landroidx/emoji2/text/EmojiCompat$CompatInternal19;
|
|
|
|
.field public final f:Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;
|
|
|
|
.field public final g:Landroidx/emoji2/text/EmojiCompat$DefaultSpanFactory;
|
|
|
|
.field public final h:I
|
|
|
|
.field public final i:Landroidx/emoji2/text/EmojiCompat$GlyphChecker;
|
|
|
|
|
|
# direct methods
|
|
.method static constructor <clinit>()V
|
|
.locals 1
|
|
|
|
.line 1
|
|
new-instance v0, Ljava/lang/Object;
|
|
|
|
.line 2
|
|
.line 3
|
|
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 4
|
|
.line 5
|
|
.line 6
|
|
sput-object v0, Landroidx/emoji2/text/EmojiCompat;->j:Ljava/lang/Object;
|
|
|
|
.line 7
|
|
.line 8
|
|
return-void
|
|
.end method
|
|
|
|
.method public constructor <init>(Landroidx/emoji2/text/EmojiCompat$Config;)V
|
|
.locals 5
|
|
|
|
.line 1
|
|
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 2
|
|
.line 3
|
|
.line 4
|
|
new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 5
|
|
.line 6
|
|
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
|
|
|
|
.line 7
|
|
.line 8
|
|
.line 9
|
|
iput-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 10
|
|
.line 11
|
|
const/4 v1, 0x3
|
|
|
|
.line 12
|
|
iput v1, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
|
|
.line 13
|
|
.line 14
|
|
iget-object v1, p1, Landroidx/emoji2/text/EmojiCompat$Config;->a:Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;
|
|
|
|
.line 15
|
|
.line 16
|
|
iput-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->f:Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;
|
|
|
|
.line 17
|
|
.line 18
|
|
iget v2, p1, Landroidx/emoji2/text/EmojiCompat$Config;->b:I
|
|
|
|
.line 19
|
|
.line 20
|
|
iput v2, p0, Landroidx/emoji2/text/EmojiCompat;->h:I
|
|
|
|
.line 21
|
|
.line 22
|
|
iget-object p1, p1, Landroidx/emoji2/text/EmojiCompat$Config;->c:Landroidx/emoji2/text/EmojiCompat$GlyphChecker;
|
|
|
|
.line 23
|
|
.line 24
|
|
iput-object p1, p0, Landroidx/emoji2/text/EmojiCompat;->i:Landroidx/emoji2/text/EmojiCompat$GlyphChecker;
|
|
|
|
.line 25
|
|
.line 26
|
|
new-instance p1, Landroid/os/Handler;
|
|
|
|
.line 27
|
|
.line 28
|
|
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
|
|
|
|
.line 29
|
|
.line 30
|
|
.line 31
|
|
move-result-object v3
|
|
|
|
.line 32
|
|
invoke-direct {p1, v3}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
|
|
|
|
.line 33
|
|
.line 34
|
|
.line 35
|
|
iput-object p1, p0, Landroidx/emoji2/text/EmojiCompat;->d:Landroid/os/Handler;
|
|
|
|
.line 36
|
|
.line 37
|
|
new-instance p1, Landroidx/collection/ArraySet;
|
|
|
|
.line 38
|
|
.line 39
|
|
const/4 v3, 0x0
|
|
|
|
.line 40
|
|
invoke-direct {p1, v3}, Landroidx/collection/ArraySet;-><init>(I)V
|
|
|
|
.line 41
|
|
.line 42
|
|
.line 43
|
|
iput-object p1, p0, Landroidx/emoji2/text/EmojiCompat;->b:Landroidx/collection/ArraySet;
|
|
|
|
.line 44
|
|
.line 45
|
|
new-instance p1, Landroidx/emoji2/text/EmojiCompat$DefaultSpanFactory;
|
|
|
|
.line 46
|
|
.line 47
|
|
invoke-direct {p1}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 48
|
|
.line 49
|
|
.line 50
|
|
iput-object p1, p0, Landroidx/emoji2/text/EmojiCompat;->g:Landroidx/emoji2/text/EmojiCompat$DefaultSpanFactory;
|
|
|
|
.line 51
|
|
.line 52
|
|
new-instance p1, Landroidx/emoji2/text/EmojiCompat$CompatInternal19;
|
|
|
|
.line 53
|
|
.line 54
|
|
invoke-direct {p1, p0}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;-><init>(Landroidx/emoji2/text/EmojiCompat;)V
|
|
|
|
.line 55
|
|
.line 56
|
|
.line 57
|
|
iput-object p1, p0, Landroidx/emoji2/text/EmojiCompat;->e:Landroidx/emoji2/text/EmojiCompat$CompatInternal19;
|
|
|
|
.line 58
|
|
.line 59
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 60
|
|
.line 61
|
|
.line 62
|
|
move-result-object v4
|
|
|
|
.line 63
|
|
invoke-interface {v4}, Ljava/util/concurrent/locks/Lock;->lock()V
|
|
|
|
.line 64
|
|
.line 65
|
|
.line 66
|
|
if-nez v2, :cond_0
|
|
|
|
.line 67
|
|
.line 68
|
|
:try_start_0
|
|
iput v3, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 69
|
|
.line 70
|
|
goto :goto_0
|
|
|
|
.line 71
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
.line 72
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 73
|
|
.line 74
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 75
|
|
.line 76
|
|
.line 77
|
|
move-result-object v0
|
|
|
|
.line 78
|
|
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 79
|
|
.line 80
|
|
.line 81
|
|
throw p1
|
|
|
|
.line 82
|
|
:cond_0
|
|
:goto_0
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 83
|
|
.line 84
|
|
.line 85
|
|
move-result-object v0
|
|
|
|
.line 86
|
|
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 87
|
|
.line 88
|
|
.line 89
|
|
invoke-virtual {p0}, Landroidx/emoji2/text/EmojiCompat;->b()I
|
|
|
|
.line 90
|
|
.line 91
|
|
.line 92
|
|
move-result v0
|
|
|
|
.line 93
|
|
if-nez v0, :cond_1
|
|
|
|
.line 94
|
|
.line 95
|
|
:try_start_1
|
|
new-instance v0, Landroidx/emoji2/text/EmojiCompat$CompatInternal19$1;
|
|
|
|
.line 96
|
|
.line 97
|
|
invoke-direct {v0, p1}, Landroidx/emoji2/text/EmojiCompat$CompatInternal19$1;-><init>(Landroidx/emoji2/text/EmojiCompat$CompatInternal19;)V
|
|
|
|
.line 98
|
|
.line 99
|
|
.line 100
|
|
invoke-interface {v1, v0}, Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;->a(Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoaderCallback;)V
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_1
|
|
|
|
.line 101
|
|
.line 102
|
|
.line 103
|
|
return-void
|
|
|
|
.line 104
|
|
:catchall_1
|
|
move-exception p1
|
|
|
|
.line 105
|
|
invoke-virtual {p0, p1}, Landroidx/emoji2/text/EmojiCompat;->f(Ljava/lang/Throwable;)V
|
|
|
|
.line 106
|
|
.line 107
|
|
.line 108
|
|
:cond_1
|
|
return-void
|
|
.end method
|
|
|
|
.method public static a()Landroidx/emoji2/text/EmojiCompat;
|
|
.locals 4
|
|
|
|
.line 1
|
|
sget-object v0, Landroidx/emoji2/text/EmojiCompat;->j:Ljava/lang/Object;
|
|
|
|
.line 2
|
|
.line 3
|
|
monitor-enter v0
|
|
|
|
.line 4
|
|
:try_start_0
|
|
sget-object v1, Landroidx/emoji2/text/EmojiCompat;->k:Landroidx/emoji2/text/EmojiCompat;
|
|
|
|
.line 5
|
|
.line 6
|
|
if-eqz v1, :cond_0
|
|
|
|
.line 7
|
|
.line 8
|
|
const/4 v2, 0x1
|
|
|
|
.line 9
|
|
goto :goto_0
|
|
|
|
.line 10
|
|
:cond_0
|
|
const/4 v2, 0x0
|
|
|
|
.line 11
|
|
:goto_0
|
|
const-string v3, "EmojiCompat is not initialized.\n\nYou must initialize EmojiCompat prior to referencing the EmojiCompat instance.\n\nThe most likely cause of this error is disabling the EmojiCompatInitializer\neither explicitly in AndroidManifest.xml, or by including\nandroidx.emoji2:emoji2-bundled.\n\nAutomatic initialization is typically performed by EmojiCompatInitializer. If\nyou are not expecting to initialize EmojiCompat manually in your application,\nplease check to ensure it has not been removed from your APK\'s manifest. You can\ndo this in Android Studio using Build > Analyze APK.\n\nIn the APK Analyzer, ensure that the startup entry for\nEmojiCompatInitializer and InitializationProvider is present in\n AndroidManifest.xml. If it is missing or contains tools:node=\"remove\", and you\nintend to use automatic configuration, verify:\n\n 1. Your application does not include emoji2-bundled\n 2. All modules do not contain an exclusion manifest rule for\n EmojiCompatInitializer or InitializationProvider. For more information\n about manifest exclusions see the documentation for the androidx startup\n library.\n\nIf you intend to use emoji2-bundled, please call EmojiCompat.init. You can\nlearn more in the documentation for BundledEmojiCompatConfig.\n\nIf you intended to perform manual configuration, it is recommended that you call\nEmojiCompat.init immediately on application startup.\n\nIf you still cannot resolve this issue, please open a bug with your specific\nconfiguration to help improve error message."
|
|
|
|
.line 12
|
|
.line 13
|
|
if-eqz v2, :cond_1
|
|
|
|
.line 14
|
|
.line 15
|
|
monitor-exit v0
|
|
|
|
.line 16
|
|
return-object v1
|
|
|
|
.line 17
|
|
:catchall_0
|
|
move-exception v1
|
|
|
|
.line 18
|
|
goto :goto_1
|
|
|
|
.line 19
|
|
:cond_1
|
|
new-instance v1, Ljava/lang/IllegalStateException;
|
|
|
|
.line 20
|
|
.line 21
|
|
invoke-direct {v1, v3}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
|
|
|
|
.line 22
|
|
.line 23
|
|
.line 24
|
|
throw v1
|
|
|
|
.line 25
|
|
:goto_1
|
|
monitor-exit v0
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 26
|
|
throw v1
|
|
.end method
|
|
|
|
.method public static c(Landroid/view/inputmethod/InputConnection;Landroid/text/Editable;IIZ)Z
|
|
.locals 7
|
|
|
|
.line 1
|
|
const/4 v0, 0x0
|
|
|
|
.line 2
|
|
if-eqz p1, :cond_19
|
|
|
|
.line 3
|
|
.line 4
|
|
if-ltz p2, :cond_19
|
|
|
|
.line 5
|
|
.line 6
|
|
if-gez p3, :cond_0
|
|
|
|
.line 7
|
|
.line 8
|
|
goto/16 :goto_9
|
|
|
|
.line 9
|
|
.line 10
|
|
:cond_0
|
|
invoke-static {p1}, Landroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I
|
|
|
|
.line 11
|
|
.line 12
|
|
.line 13
|
|
move-result v1
|
|
|
|
.line 14
|
|
invoke-static {p1}, Landroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I
|
|
|
|
.line 15
|
|
.line 16
|
|
.line 17
|
|
move-result v2
|
|
|
|
.line 18
|
|
const/4 v3, -0x1
|
|
|
|
.line 19
|
|
if-eq v1, v3, :cond_19
|
|
|
|
.line 20
|
|
.line 21
|
|
if-eq v2, v3, :cond_19
|
|
|
|
.line 22
|
|
.line 23
|
|
if-eq v1, v2, :cond_1
|
|
|
|
.line 24
|
|
.line 25
|
|
goto/16 :goto_9
|
|
|
|
.line 26
|
|
.line 27
|
|
:cond_1
|
|
const/4 v4, 0x1
|
|
|
|
.line 28
|
|
if-eqz p4, :cond_16
|
|
|
|
.line 29
|
|
.line 30
|
|
invoke-static {p2, v0}, Ljava/lang/Math;->max(II)I
|
|
|
|
.line 31
|
|
.line 32
|
|
.line 33
|
|
move-result p2
|
|
|
|
.line 34
|
|
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
|
|
|
|
.line 35
|
|
.line 36
|
|
.line 37
|
|
move-result p4
|
|
|
|
.line 38
|
|
if-ltz v1, :cond_3
|
|
|
|
.line 39
|
|
.line 40
|
|
if-ge p4, v1, :cond_2
|
|
|
|
.line 41
|
|
.line 42
|
|
goto :goto_0
|
|
|
|
.line 43
|
|
:cond_2
|
|
if-gez p2, :cond_4
|
|
|
|
.line 44
|
|
.line 45
|
|
:cond_3
|
|
:goto_0
|
|
move v1, v3
|
|
|
|
.line 46
|
|
goto :goto_3
|
|
|
|
.line 47
|
|
:cond_4
|
|
:goto_1
|
|
move p4, v0
|
|
|
|
.line 48
|
|
:goto_2
|
|
if-nez p2, :cond_5
|
|
|
|
.line 49
|
|
.line 50
|
|
goto :goto_3
|
|
|
|
.line 51
|
|
:cond_5
|
|
add-int/lit8 v1, v1, -0x1
|
|
|
|
.line 52
|
|
.line 53
|
|
if-gez v1, :cond_7
|
|
|
|
.line 54
|
|
.line 55
|
|
if-eqz p4, :cond_6
|
|
|
|
.line 56
|
|
.line 57
|
|
goto :goto_0
|
|
|
|
.line 58
|
|
:cond_6
|
|
move v1, v0
|
|
|
|
.line 59
|
|
goto :goto_3
|
|
|
|
.line 60
|
|
:cond_7
|
|
invoke-interface {p1, v1}, Ljava/lang/CharSequence;->charAt(I)C
|
|
|
|
.line 61
|
|
.line 62
|
|
.line 63
|
|
move-result v5
|
|
|
|
.line 64
|
|
if-eqz p4, :cond_9
|
|
|
|
.line 65
|
|
.line 66
|
|
invoke-static {v5}, Ljava/lang/Character;->isHighSurrogate(C)Z
|
|
|
|
.line 67
|
|
.line 68
|
|
.line 69
|
|
move-result p4
|
|
|
|
.line 70
|
|
if-nez p4, :cond_8
|
|
|
|
.line 71
|
|
.line 72
|
|
goto :goto_0
|
|
|
|
.line 73
|
|
:cond_8
|
|
add-int/lit8 p2, p2, -0x1
|
|
|
|
.line 74
|
|
.line 75
|
|
goto :goto_1
|
|
|
|
.line 76
|
|
:cond_9
|
|
invoke-static {v5}, Ljava/lang/Character;->isSurrogate(C)Z
|
|
|
|
.line 77
|
|
.line 78
|
|
.line 79
|
|
move-result v6
|
|
|
|
.line 80
|
|
if-nez v6, :cond_a
|
|
|
|
.line 81
|
|
.line 82
|
|
add-int/lit8 p2, p2, -0x1
|
|
|
|
.line 83
|
|
.line 84
|
|
goto :goto_2
|
|
|
|
.line 85
|
|
:cond_a
|
|
invoke-static {v5}, Ljava/lang/Character;->isHighSurrogate(C)Z
|
|
|
|
.line 86
|
|
.line 87
|
|
.line 88
|
|
move-result p4
|
|
|
|
.line 89
|
|
if-eqz p4, :cond_b
|
|
|
|
.line 90
|
|
.line 91
|
|
goto :goto_0
|
|
|
|
.line 92
|
|
:cond_b
|
|
move p4, v4
|
|
|
|
.line 93
|
|
goto :goto_2
|
|
|
|
.line 94
|
|
:goto_3
|
|
invoke-static {p3, v0}, Ljava/lang/Math;->max(II)I
|
|
|
|
.line 95
|
|
.line 96
|
|
.line 97
|
|
move-result p2
|
|
|
|
.line 98
|
|
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
|
|
|
|
.line 99
|
|
.line 100
|
|
.line 101
|
|
move-result p3
|
|
|
|
.line 102
|
|
if-ltz v2, :cond_d
|
|
|
|
.line 103
|
|
.line 104
|
|
if-ge p3, v2, :cond_c
|
|
|
|
.line 105
|
|
.line 106
|
|
goto :goto_4
|
|
|
|
.line 107
|
|
:cond_c
|
|
if-gez p2, :cond_e
|
|
|
|
.line 108
|
|
.line 109
|
|
:cond_d
|
|
:goto_4
|
|
move p3, v3
|
|
|
|
.line 110
|
|
goto :goto_7
|
|
|
|
.line 111
|
|
:cond_e
|
|
:goto_5
|
|
move p4, v0
|
|
|
|
.line 112
|
|
:goto_6
|
|
if-nez p2, :cond_f
|
|
|
|
.line 113
|
|
.line 114
|
|
move p3, v2
|
|
|
|
.line 115
|
|
goto :goto_7
|
|
|
|
.line 116
|
|
:cond_f
|
|
if-lt v2, p3, :cond_10
|
|
|
|
.line 117
|
|
.line 118
|
|
if-eqz p4, :cond_15
|
|
|
|
.line 119
|
|
.line 120
|
|
goto :goto_4
|
|
|
|
.line 121
|
|
:cond_10
|
|
invoke-interface {p1, v2}, Ljava/lang/CharSequence;->charAt(I)C
|
|
|
|
.line 122
|
|
.line 123
|
|
.line 124
|
|
move-result v5
|
|
|
|
.line 125
|
|
if-eqz p4, :cond_12
|
|
|
|
.line 126
|
|
.line 127
|
|
invoke-static {v5}, Ljava/lang/Character;->isLowSurrogate(C)Z
|
|
|
|
.line 128
|
|
.line 129
|
|
.line 130
|
|
move-result p4
|
|
|
|
.line 131
|
|
if-nez p4, :cond_11
|
|
|
|
.line 132
|
|
.line 133
|
|
goto :goto_4
|
|
|
|
.line 134
|
|
:cond_11
|
|
add-int/lit8 p2, p2, -0x1
|
|
|
|
.line 135
|
|
.line 136
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
.line 137
|
|
.line 138
|
|
goto :goto_5
|
|
|
|
.line 139
|
|
:cond_12
|
|
invoke-static {v5}, Ljava/lang/Character;->isSurrogate(C)Z
|
|
|
|
.line 140
|
|
.line 141
|
|
.line 142
|
|
move-result v6
|
|
|
|
.line 143
|
|
if-nez v6, :cond_13
|
|
|
|
.line 144
|
|
.line 145
|
|
add-int/lit8 p2, p2, -0x1
|
|
|
|
.line 146
|
|
.line 147
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
.line 148
|
|
.line 149
|
|
goto :goto_6
|
|
|
|
.line 150
|
|
:cond_13
|
|
invoke-static {v5}, Ljava/lang/Character;->isLowSurrogate(C)Z
|
|
|
|
.line 151
|
|
.line 152
|
|
.line 153
|
|
move-result p4
|
|
|
|
.line 154
|
|
if-eqz p4, :cond_14
|
|
|
|
.line 155
|
|
.line 156
|
|
goto :goto_4
|
|
|
|
.line 157
|
|
:cond_14
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
.line 158
|
|
.line 159
|
|
move p4, v4
|
|
|
|
.line 160
|
|
goto :goto_6
|
|
|
|
.line 161
|
|
:cond_15
|
|
:goto_7
|
|
if-eq v1, v3, :cond_19
|
|
|
|
.line 162
|
|
.line 163
|
|
if-ne p3, v3, :cond_17
|
|
|
|
.line 164
|
|
.line 165
|
|
goto :goto_9
|
|
|
|
.line 166
|
|
:cond_16
|
|
sub-int/2addr v1, p2
|
|
|
|
.line 167
|
|
invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
|
|
|
|
.line 168
|
|
.line 169
|
|
.line 170
|
|
move-result v1
|
|
|
|
.line 171
|
|
add-int/2addr v2, p3
|
|
|
|
.line 172
|
|
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
|
|
|
|
.line 173
|
|
.line 174
|
|
.line 175
|
|
move-result p2
|
|
|
|
.line 176
|
|
invoke-static {v2, p2}, Ljava/lang/Math;->min(II)I
|
|
|
|
.line 177
|
|
.line 178
|
|
.line 179
|
|
move-result p3
|
|
|
|
.line 180
|
|
:cond_17
|
|
const-class p2, Landroidx/emoji2/text/EmojiSpan;
|
|
|
|
.line 181
|
|
.line 182
|
|
invoke-interface {p1, v1, p3, p2}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
|
|
|
|
.line 183
|
|
.line 184
|
|
.line 185
|
|
move-result-object p2
|
|
|
|
.line 186
|
|
check-cast p2, [Landroidx/emoji2/text/EmojiSpan;
|
|
|
|
.line 187
|
|
.line 188
|
|
if-eqz p2, :cond_19
|
|
|
|
.line 189
|
|
.line 190
|
|
array-length p4, p2
|
|
|
|
.line 191
|
|
if-lez p4, :cond_19
|
|
|
|
.line 192
|
|
.line 193
|
|
array-length p4, p2
|
|
|
|
.line 194
|
|
move v2, v0
|
|
|
|
.line 195
|
|
:goto_8
|
|
if-ge v2, p4, :cond_18
|
|
|
|
.line 196
|
|
.line 197
|
|
aget-object v3, p2, v2
|
|
|
|
.line 198
|
|
.line 199
|
|
invoke-interface {p1, v3}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I
|
|
|
|
.line 200
|
|
.line 201
|
|
.line 202
|
|
move-result v5
|
|
|
|
.line 203
|
|
invoke-interface {p1, v3}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I
|
|
|
|
.line 204
|
|
.line 205
|
|
.line 206
|
|
move-result v3
|
|
|
|
.line 207
|
|
invoke-static {v5, v1}, Ljava/lang/Math;->min(II)I
|
|
|
|
.line 208
|
|
.line 209
|
|
.line 210
|
|
move-result v1
|
|
|
|
.line 211
|
|
invoke-static {v3, p3}, Ljava/lang/Math;->max(II)I
|
|
|
|
.line 212
|
|
.line 213
|
|
.line 214
|
|
move-result p3
|
|
|
|
.line 215
|
|
add-int/lit8 v2, v2, 0x1
|
|
|
|
.line 216
|
|
.line 217
|
|
goto :goto_8
|
|
|
|
.line 218
|
|
:cond_18
|
|
invoke-static {v1, v0}, Ljava/lang/Math;->max(II)I
|
|
|
|
.line 219
|
|
.line 220
|
|
.line 221
|
|
move-result p2
|
|
|
|
.line 222
|
|
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
|
|
|
|
.line 223
|
|
.line 224
|
|
.line 225
|
|
move-result p4
|
|
|
|
.line 226
|
|
invoke-static {p3, p4}, Ljava/lang/Math;->min(II)I
|
|
|
|
.line 227
|
|
.line 228
|
|
.line 229
|
|
move-result p3
|
|
|
|
.line 230
|
|
check-cast p0, Landroid/view/inputmethod/InputConnectionWrapper;
|
|
|
|
.line 231
|
|
.line 232
|
|
invoke-virtual {p0}, Landroid/view/inputmethod/InputConnectionWrapper;->beginBatchEdit()Z
|
|
|
|
.line 233
|
|
.line 234
|
|
.line 235
|
|
invoke-interface {p1, p2, p3}, Landroid/text/Editable;->delete(II)Landroid/text/Editable;
|
|
|
|
.line 236
|
|
.line 237
|
|
.line 238
|
|
invoke-virtual {p0}, Landroid/view/inputmethod/InputConnectionWrapper;->endBatchEdit()Z
|
|
|
|
.line 239
|
|
.line 240
|
|
.line 241
|
|
return v4
|
|
|
|
.line 242
|
|
:cond_19
|
|
:goto_9
|
|
return v0
|
|
.end method
|
|
|
|
.method public static d(Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
|
|
.locals 3
|
|
|
|
.line 1
|
|
const/16 v0, 0x43
|
|
|
|
.line 2
|
|
.line 3
|
|
const/4 v1, 0x1
|
|
|
|
.line 4
|
|
const/4 v2, 0x0
|
|
|
|
.line 5
|
|
if-eq p1, v0, :cond_1
|
|
|
|
.line 6
|
|
.line 7
|
|
const/16 v0, 0x70
|
|
|
|
.line 8
|
|
.line 9
|
|
if-eq p1, v0, :cond_0
|
|
|
|
.line 10
|
|
.line 11
|
|
move p1, v2
|
|
|
|
.line 12
|
|
goto :goto_0
|
|
|
|
.line 13
|
|
:cond_0
|
|
invoke-static {p0, p2, v1}, Landroidx/emoji2/text/EmojiProcessor;->a(Landroid/text/Editable;Landroid/view/KeyEvent;Z)Z
|
|
|
|
.line 14
|
|
.line 15
|
|
.line 16
|
|
move-result p1
|
|
|
|
.line 17
|
|
goto :goto_0
|
|
|
|
.line 18
|
|
:cond_1
|
|
invoke-static {p0, p2, v2}, Landroidx/emoji2/text/EmojiProcessor;->a(Landroid/text/Editable;Landroid/view/KeyEvent;Z)Z
|
|
|
|
.line 19
|
|
.line 20
|
|
.line 21
|
|
move-result p1
|
|
|
|
.line 22
|
|
:goto_0
|
|
if-eqz p1, :cond_2
|
|
|
|
.line 23
|
|
.line 24
|
|
invoke-static {p0}, Landroid/text/method/MetaKeyKeyListener;->adjustMetaAfterKeypress(Landroid/text/Spannable;)V
|
|
|
|
.line 25
|
|
.line 26
|
|
.line 27
|
|
return v1
|
|
|
|
.line 28
|
|
:cond_2
|
|
return v2
|
|
.end method
|
|
|
|
|
|
# virtual methods
|
|
.method public final b()I
|
|
.locals 2
|
|
|
|
.line 1
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 2
|
|
.line 3
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 4
|
|
.line 5
|
|
.line 6
|
|
move-result-object v0
|
|
|
|
.line 7
|
|
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
|
|
|
|
.line 8
|
|
.line 9
|
|
.line 10
|
|
:try_start_0
|
|
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 11
|
|
.line 12
|
|
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 13
|
|
.line 14
|
|
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 15
|
|
.line 16
|
|
.line 17
|
|
move-result-object v1
|
|
|
|
.line 18
|
|
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 19
|
|
.line 20
|
|
.line 21
|
|
return v0
|
|
|
|
.line 22
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
.line 23
|
|
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 24
|
|
.line 25
|
|
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 26
|
|
.line 27
|
|
.line 28
|
|
move-result-object v1
|
|
|
|
.line 29
|
|
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 30
|
|
.line 31
|
|
.line 32
|
|
throw v0
|
|
.end method
|
|
|
|
.method public final e()V
|
|
.locals 3
|
|
|
|
.line 1
|
|
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->h:I
|
|
|
|
.line 2
|
|
.line 3
|
|
const/4 v1, 0x0
|
|
|
|
.line 4
|
|
const/4 v2, 0x1
|
|
|
|
.line 5
|
|
if-ne v0, v2, :cond_0
|
|
|
|
.line 6
|
|
.line 7
|
|
move v0, v2
|
|
|
|
.line 8
|
|
goto :goto_0
|
|
|
|
.line 9
|
|
:cond_0
|
|
move v0, v1
|
|
|
|
.line 10
|
|
:goto_0
|
|
if-eqz v0, :cond_3
|
|
|
|
.line 11
|
|
.line 12
|
|
invoke-virtual {p0}, Landroidx/emoji2/text/EmojiCompat;->b()I
|
|
|
|
.line 13
|
|
.line 14
|
|
.line 15
|
|
move-result v0
|
|
|
|
.line 16
|
|
if-ne v0, v2, :cond_1
|
|
|
|
.line 17
|
|
.line 18
|
|
return-void
|
|
|
|
.line 19
|
|
:cond_1
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 20
|
|
.line 21
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 22
|
|
.line 23
|
|
.line 24
|
|
move-result-object v0
|
|
|
|
.line 25
|
|
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
|
|
|
|
.line 26
|
|
.line 27
|
|
.line 28
|
|
:try_start_0
|
|
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_1
|
|
|
|
.line 29
|
|
.line 30
|
|
if-nez v0, :cond_2
|
|
|
|
.line 31
|
|
.line 32
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 33
|
|
.line 34
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 35
|
|
.line 36
|
|
.line 37
|
|
move-result-object v0
|
|
|
|
.line 38
|
|
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 39
|
|
.line 40
|
|
.line 41
|
|
return-void
|
|
|
|
.line 42
|
|
:cond_2
|
|
:try_start_1
|
|
iput v1, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_1
|
|
|
|
.line 43
|
|
.line 44
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 45
|
|
.line 46
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 47
|
|
.line 48
|
|
.line 49
|
|
move-result-object v0
|
|
|
|
.line 50
|
|
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 51
|
|
.line 52
|
|
.line 53
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->e:Landroidx/emoji2/text/EmojiCompat$CompatInternal19;
|
|
|
|
.line 54
|
|
.line 55
|
|
iget-object v1, v0, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->a:Landroidx/emoji2/text/EmojiCompat;
|
|
|
|
.line 56
|
|
.line 57
|
|
:try_start_2
|
|
new-instance v2, Landroidx/emoji2/text/EmojiCompat$CompatInternal19$1;
|
|
|
|
.line 58
|
|
.line 59
|
|
invoke-direct {v2, v0}, Landroidx/emoji2/text/EmojiCompat$CompatInternal19$1;-><init>(Landroidx/emoji2/text/EmojiCompat$CompatInternal19;)V
|
|
|
|
.line 60
|
|
.line 61
|
|
.line 62
|
|
iget-object v0, v1, Landroidx/emoji2/text/EmojiCompat;->f:Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;
|
|
|
|
.line 63
|
|
.line 64
|
|
invoke-interface {v0, v2}, Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;->a(Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoaderCallback;)V
|
|
:try_end_2
|
|
.catchall {:try_start_2 .. :try_end_2} :catchall_0
|
|
|
|
.line 65
|
|
.line 66
|
|
.line 67
|
|
return-void
|
|
|
|
.line 68
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
.line 69
|
|
invoke-virtual {v1, v0}, Landroidx/emoji2/text/EmojiCompat;->f(Ljava/lang/Throwable;)V
|
|
|
|
.line 70
|
|
.line 71
|
|
.line 72
|
|
return-void
|
|
|
|
.line 73
|
|
:catchall_1
|
|
move-exception v0
|
|
|
|
.line 74
|
|
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 75
|
|
.line 76
|
|
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 77
|
|
.line 78
|
|
.line 79
|
|
move-result-object v1
|
|
|
|
.line 80
|
|
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 81
|
|
.line 82
|
|
.line 83
|
|
throw v0
|
|
|
|
.line 84
|
|
:cond_3
|
|
new-instance v0, Ljava/lang/IllegalStateException;
|
|
|
|
.line 85
|
|
.line 86
|
|
const-string v1, "Set metadataLoadStrategy to LOAD_STRATEGY_MANUAL to execute manual loading"
|
|
|
|
.line 87
|
|
.line 88
|
|
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
|
|
|
|
.line 89
|
|
.line 90
|
|
.line 91
|
|
throw v0
|
|
.end method
|
|
|
|
.method public final f(Ljava/lang/Throwable;)V
|
|
.locals 4
|
|
|
|
.line 1
|
|
new-instance v0, Ljava/util/ArrayList;
|
|
|
|
.line 2
|
|
.line 3
|
|
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
|
|
|
|
.line 4
|
|
.line 5
|
|
.line 6
|
|
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 7
|
|
.line 8
|
|
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 9
|
|
.line 10
|
|
.line 11
|
|
move-result-object v1
|
|
|
|
.line 12
|
|
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
|
|
|
|
.line 13
|
|
.line 14
|
|
.line 15
|
|
const/4 v1, 0x2
|
|
|
|
.line 16
|
|
:try_start_0
|
|
iput v1, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
|
|
.line 17
|
|
.line 18
|
|
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->b:Landroidx/collection/ArraySet;
|
|
|
|
.line 19
|
|
.line 20
|
|
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->addAll(Ljava/util/Collection;)Z
|
|
|
|
.line 21
|
|
.line 22
|
|
.line 23
|
|
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->b:Landroidx/collection/ArraySet;
|
|
|
|
.line 24
|
|
.line 25
|
|
invoke-virtual {v1}, Landroidx/collection/ArraySet;->clear()V
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 26
|
|
.line 27
|
|
.line 28
|
|
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 29
|
|
.line 30
|
|
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 31
|
|
.line 32
|
|
.line 33
|
|
move-result-object v1
|
|
|
|
.line 34
|
|
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 35
|
|
.line 36
|
|
.line 37
|
|
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->d:Landroid/os/Handler;
|
|
|
|
.line 38
|
|
.line 39
|
|
new-instance v2, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;
|
|
|
|
.line 40
|
|
.line 41
|
|
iget v3, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
|
|
.line 42
|
|
.line 43
|
|
invoke-direct {v2, v0, v3, p1}, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;-><init>(Ljava/util/List;ILjava/lang/Throwable;)V
|
|
|
|
.line 44
|
|
.line 45
|
|
.line 46
|
|
invoke-virtual {v1, v2}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
|
|
|
|
.line 47
|
|
.line 48
|
|
.line 49
|
|
return-void
|
|
|
|
.line 50
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
.line 51
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 52
|
|
.line 53
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 54
|
|
.line 55
|
|
.line 56
|
|
move-result-object v0
|
|
|
|
.line 57
|
|
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 58
|
|
.line 59
|
|
.line 60
|
|
throw p1
|
|
.end method
|
|
|
|
.method public final g(Ljava/lang/CharSequence;II)Ljava/lang/CharSequence;
|
|
.locals 10
|
|
|
|
.line 1
|
|
invoke-virtual {p0}, Landroidx/emoji2/text/EmojiCompat;->b()I
|
|
|
|
.line 2
|
|
.line 3
|
|
.line 4
|
|
move-result v0
|
|
|
|
.line 5
|
|
const/4 v1, 0x0
|
|
|
|
.line 6
|
|
const/4 v2, 0x1
|
|
|
|
.line 7
|
|
if-ne v0, v2, :cond_0
|
|
|
|
.line 8
|
|
.line 9
|
|
move v0, v2
|
|
|
|
.line 10
|
|
goto :goto_0
|
|
|
|
.line 11
|
|
:cond_0
|
|
move v0, v1
|
|
|
|
.line 12
|
|
:goto_0
|
|
if-eqz v0, :cond_15
|
|
|
|
.line 13
|
|
.line 14
|
|
if-ltz p2, :cond_14
|
|
|
|
.line 15
|
|
.line 16
|
|
if-ltz p3, :cond_13
|
|
|
|
.line 17
|
|
.line 18
|
|
if-gt p2, p3, :cond_1
|
|
|
|
.line 19
|
|
.line 20
|
|
move v0, v2
|
|
|
|
.line 21
|
|
goto :goto_1
|
|
|
|
.line 22
|
|
:cond_1
|
|
move v0, v1
|
|
|
|
.line 23
|
|
:goto_1
|
|
const-string v3, "start should be <= than end"
|
|
|
|
.line 24
|
|
.line 25
|
|
invoke-static {v3, v0}, Landroidx/core/util/Preconditions;->a(Ljava/lang/String;Z)V
|
|
|
|
.line 26
|
|
.line 27
|
|
.line 28
|
|
const/4 v0, 0x0
|
|
|
|
.line 29
|
|
if-nez p1, :cond_2
|
|
|
|
.line 30
|
|
.line 31
|
|
return-object v0
|
|
|
|
.line 32
|
|
:cond_2
|
|
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
|
|
|
|
.line 33
|
|
.line 34
|
|
.line 35
|
|
move-result v3
|
|
|
|
.line 36
|
|
if-gt p2, v3, :cond_3
|
|
|
|
.line 37
|
|
.line 38
|
|
move v3, v2
|
|
|
|
.line 39
|
|
goto :goto_2
|
|
|
|
.line 40
|
|
:cond_3
|
|
move v3, v1
|
|
|
|
.line 41
|
|
:goto_2
|
|
const-string v4, "start should be < than charSequence length"
|
|
|
|
.line 42
|
|
.line 43
|
|
invoke-static {v4, v3}, Landroidx/core/util/Preconditions;->a(Ljava/lang/String;Z)V
|
|
|
|
.line 44
|
|
.line 45
|
|
.line 46
|
|
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
|
|
|
|
.line 47
|
|
.line 48
|
|
.line 49
|
|
move-result v3
|
|
|
|
.line 50
|
|
if-gt p3, v3, :cond_4
|
|
|
|
.line 51
|
|
.line 52
|
|
goto :goto_3
|
|
|
|
.line 53
|
|
:cond_4
|
|
move v2, v1
|
|
|
|
.line 54
|
|
:goto_3
|
|
const-string v3, "end should be < than charSequence length"
|
|
|
|
.line 55
|
|
.line 56
|
|
invoke-static {v3, v2}, Landroidx/core/util/Preconditions;->a(Ljava/lang/String;Z)V
|
|
|
|
.line 57
|
|
.line 58
|
|
.line 59
|
|
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
|
|
|
|
.line 60
|
|
.line 61
|
|
.line 62
|
|
move-result v2
|
|
|
|
.line 63
|
|
if-eqz v2, :cond_5
|
|
|
|
.line 64
|
|
.line 65
|
|
if-ne p2, p3, :cond_6
|
|
|
|
.line 66
|
|
.line 67
|
|
:cond_5
|
|
move-object v4, p1
|
|
|
|
.line 68
|
|
goto/16 :goto_c
|
|
|
|
.line 69
|
|
.line 70
|
|
:cond_6
|
|
iget-object v2, p0, Landroidx/emoji2/text/EmojiCompat;->e:Landroidx/emoji2/text/EmojiCompat$CompatInternal19;
|
|
|
|
.line 71
|
|
.line 72
|
|
iget-object v3, v2, Landroidx/emoji2/text/EmojiCompat$CompatInternal19;->b:Landroidx/emoji2/text/EmojiProcessor;
|
|
|
|
.line 73
|
|
.line 74
|
|
invoke-virtual {v3}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
|
|
|
|
.line 75
|
|
.line 76
|
|
.line 77
|
|
instance-of v2, p1, Landroidx/emoji2/text/SpannableBuilder;
|
|
|
|
.line 78
|
|
.line 79
|
|
if-eqz v2, :cond_7
|
|
|
|
.line 80
|
|
.line 81
|
|
move-object v4, p1
|
|
|
|
.line 82
|
|
check-cast v4, Landroidx/emoji2/text/SpannableBuilder;
|
|
|
|
.line 83
|
|
.line 84
|
|
invoke-virtual {v4}, Landroidx/emoji2/text/SpannableBuilder;->a()V
|
|
|
|
.line 85
|
|
.line 86
|
|
.line 87
|
|
:cond_7
|
|
const-class v4, Landroidx/emoji2/text/EmojiSpan;
|
|
|
|
.line 88
|
|
.line 89
|
|
if-nez v2, :cond_9
|
|
|
|
.line 90
|
|
.line 91
|
|
:try_start_0
|
|
instance-of v5, p1, Landroid/text/Spannable;
|
|
|
|
.line 92
|
|
.line 93
|
|
if-eqz v5, :cond_8
|
|
|
|
.line 94
|
|
.line 95
|
|
goto :goto_5
|
|
|
|
.line 96
|
|
:cond_8
|
|
instance-of v5, p1, Landroid/text/Spanned;
|
|
|
|
.line 97
|
|
.line 98
|
|
if-eqz v5, :cond_a
|
|
|
|
.line 99
|
|
.line 100
|
|
move-object v5, p1
|
|
|
|
.line 101
|
|
check-cast v5, Landroid/text/Spanned;
|
|
|
|
.line 102
|
|
.line 103
|
|
add-int/lit8 v6, p2, -0x1
|
|
|
|
.line 104
|
|
.line 105
|
|
add-int/lit8 v7, p3, 0x1
|
|
|
|
.line 106
|
|
.line 107
|
|
invoke-interface {v5, v6, v7, v4}, Landroid/text/Spanned;->nextSpanTransition(IILjava/lang/Class;)I
|
|
|
|
.line 108
|
|
.line 109
|
|
.line 110
|
|
move-result v5
|
|
|
|
.line 111
|
|
if-gt v5, p3, :cond_a
|
|
|
|
.line 112
|
|
.line 113
|
|
new-instance v0, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;
|
|
|
|
.line 114
|
|
.line 115
|
|
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
|
|
|
|
.line 116
|
|
.line 117
|
|
.line 118
|
|
iput-boolean v1, v0, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;->c:Z
|
|
|
|
.line 119
|
|
.line 120
|
|
new-instance v5, Landroid/text/SpannableString;
|
|
|
|
.line 121
|
|
.line 122
|
|
invoke-direct {v5, p1}, Landroid/text/SpannableString;-><init>(Ljava/lang/CharSequence;)V
|
|
|
|
.line 123
|
|
.line 124
|
|
.line 125
|
|
iput-object v5, v0, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;->f:Landroid/text/Spannable;
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 126
|
|
.line 127
|
|
goto :goto_6
|
|
|
|
.line 128
|
|
:goto_4
|
|
move-object v4, p1
|
|
|
|
.line 129
|
|
goto/16 :goto_b
|
|
|
|
.line 130
|
|
.line 131
|
|
:catchall_0
|
|
move-exception v0
|
|
|
|
.line 132
|
|
move-object p2, v0
|
|
|
|
.line 133
|
|
goto :goto_4
|
|
|
|
.line 134
|
|
:cond_9
|
|
:goto_5
|
|
:try_start_1
|
|
new-instance v0, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;
|
|
|
|
.line 135
|
|
.line 136
|
|
move-object v5, p1
|
|
|
|
.line 137
|
|
check-cast v5, Landroid/text/Spannable;
|
|
|
|
.line 138
|
|
.line 139
|
|
invoke-direct {v0, v5}, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;-><init>(Landroid/text/Spannable;)V
|
|
:try_end_1
|
|
.catchall {:try_start_1 .. :try_end_1} :catchall_2
|
|
|
|
.line 140
|
|
.line 141
|
|
.line 142
|
|
:cond_a
|
|
:goto_6
|
|
if-eqz v0, :cond_c
|
|
|
|
.line 143
|
|
.line 144
|
|
:try_start_2
|
|
iget-object v5, v0, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;->f:Landroid/text/Spannable;
|
|
|
|
.line 145
|
|
.line 146
|
|
invoke-interface {v5, p2, p3, v4}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;
|
|
|
|
.line 147
|
|
.line 148
|
|
.line 149
|
|
move-result-object v4
|
|
|
|
.line 150
|
|
check-cast v4, [Landroidx/emoji2/text/EmojiSpan;
|
|
|
|
.line 151
|
|
.line 152
|
|
if-eqz v4, :cond_c
|
|
|
|
.line 153
|
|
.line 154
|
|
array-length v5, v4
|
|
|
|
.line 155
|
|
if-lez v5, :cond_c
|
|
|
|
.line 156
|
|
.line 157
|
|
array-length v5, v4
|
|
|
|
.line 158
|
|
:goto_7
|
|
if-ge v1, v5, :cond_c
|
|
|
|
.line 159
|
|
.line 160
|
|
aget-object v6, v4, v1
|
|
|
|
.line 161
|
|
.line 162
|
|
iget-object v7, v0, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;->f:Landroid/text/Spannable;
|
|
|
|
.line 163
|
|
.line 164
|
|
invoke-interface {v7, v6}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I
|
|
|
|
.line 165
|
|
.line 166
|
|
.line 167
|
|
move-result v7
|
|
|
|
.line 168
|
|
iget-object v8, v0, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;->f:Landroid/text/Spannable;
|
|
|
|
.line 169
|
|
.line 170
|
|
invoke-interface {v8, v6}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I
|
|
|
|
.line 171
|
|
.line 172
|
|
.line 173
|
|
move-result v8
|
|
|
|
.line 174
|
|
if-eq v7, p3, :cond_b
|
|
|
|
.line 175
|
|
.line 176
|
|
invoke-virtual {v0, v6}, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;->removeSpan(Ljava/lang/Object;)V
|
|
|
|
.line 177
|
|
.line 178
|
|
.line 179
|
|
:cond_b
|
|
invoke-static {v7, p2}, Ljava/lang/Math;->min(II)I
|
|
|
|
.line 180
|
|
.line 181
|
|
.line 182
|
|
move-result p2
|
|
|
|
.line 183
|
|
invoke-static {v8, p3}, Ljava/lang/Math;->max(II)I
|
|
|
|
.line 184
|
|
.line 185
|
|
.line 186
|
|
move-result p3
|
|
:try_end_2
|
|
.catchall {:try_start_2 .. :try_end_2} :catchall_0
|
|
|
|
.line 187
|
|
add-int/lit8 v1, v1, 0x1
|
|
|
|
.line 188
|
|
.line 189
|
|
goto :goto_7
|
|
|
|
.line 190
|
|
:cond_c
|
|
move v5, p2
|
|
|
|
.line 191
|
|
move v6, p3
|
|
|
|
.line 192
|
|
if-eq v5, v6, :cond_d
|
|
|
|
.line 193
|
|
.line 194
|
|
:try_start_3
|
|
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
|
|
|
|
.line 195
|
|
.line 196
|
|
.line 197
|
|
move-result p2
|
|
|
|
.line 198
|
|
if-lt v5, p2, :cond_e
|
|
|
|
.line 199
|
|
.line 200
|
|
:cond_d
|
|
move-object v4, p1
|
|
|
|
.line 201
|
|
goto :goto_a
|
|
|
|
.line 202
|
|
:cond_e
|
|
new-instance v9, Landroidx/emoji2/text/EmojiProcessor$EmojiProcessAddSpanCallback;
|
|
|
|
.line 203
|
|
.line 204
|
|
iget-object p2, v3, Landroidx/emoji2/text/EmojiProcessor;->a:Landroidx/emoji2/text/EmojiCompat$SpanFactory;
|
|
|
|
.line 205
|
|
.line 206
|
|
invoke-direct {v9, v0, p2}, Landroidx/emoji2/text/EmojiProcessor$EmojiProcessAddSpanCallback;-><init>(Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;Landroidx/emoji2/text/EmojiCompat$SpanFactory;)V
|
|
:try_end_3
|
|
.catchall {:try_start_3 .. :try_end_3} :catchall_2
|
|
|
|
.line 207
|
|
.line 208
|
|
.line 209
|
|
const/4 v8, 0x0
|
|
|
|
.line 210
|
|
const v7, 0x7fffffff
|
|
|
|
.line 211
|
|
.line 212
|
|
.line 213
|
|
move-object v4, p1
|
|
|
|
.line 214
|
|
:try_start_4
|
|
invoke-virtual/range {v3 .. v9}, Landroidx/emoji2/text/EmojiProcessor;->c(Ljava/lang/CharSequence;IIIZLandroidx/emoji2/text/EmojiProcessor$EmojiProcessCallback;)Ljava/lang/Object;
|
|
|
|
.line 215
|
|
.line 216
|
|
.line 217
|
|
move-result-object p1
|
|
|
|
.line 218
|
|
check-cast p1, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;
|
|
|
|
.line 219
|
|
.line 220
|
|
if-eqz p1, :cond_10
|
|
|
|
.line 221
|
|
.line 222
|
|
iget-object p1, p1, Landroidx/emoji2/text/UnprecomputeTextOnModificationSpannable;->f:Landroid/text/Spannable;
|
|
:try_end_4
|
|
.catchall {:try_start_4 .. :try_end_4} :catchall_1
|
|
|
|
.line 223
|
|
.line 224
|
|
if-eqz v2, :cond_f
|
|
|
|
.line 225
|
|
.line 226
|
|
move-object p2, v4
|
|
|
|
.line 227
|
|
check-cast p2, Landroidx/emoji2/text/SpannableBuilder;
|
|
|
|
.line 228
|
|
.line 229
|
|
invoke-virtual {p2}, Landroidx/emoji2/text/SpannableBuilder;->b()V
|
|
|
|
.line 230
|
|
.line 231
|
|
.line 232
|
|
:cond_f
|
|
return-object p1
|
|
|
|
.line 233
|
|
:catchall_1
|
|
move-exception v0
|
|
|
|
.line 234
|
|
:goto_8
|
|
move-object p2, v0
|
|
|
|
.line 235
|
|
goto :goto_b
|
|
|
|
.line 236
|
|
:cond_10
|
|
if-eqz v2, :cond_12
|
|
|
|
.line 237
|
|
.line 238
|
|
:goto_9
|
|
move-object p1, v4
|
|
|
|
.line 239
|
|
check-cast p1, Landroidx/emoji2/text/SpannableBuilder;
|
|
|
|
.line 240
|
|
.line 241
|
|
invoke-virtual {p1}, Landroidx/emoji2/text/SpannableBuilder;->b()V
|
|
|
|
.line 242
|
|
.line 243
|
|
.line 244
|
|
return-object v4
|
|
|
|
.line 245
|
|
:catchall_2
|
|
move-exception v0
|
|
|
|
.line 246
|
|
move-object v4, p1
|
|
|
|
.line 247
|
|
goto :goto_8
|
|
|
|
.line 248
|
|
:goto_a
|
|
if-eqz v2, :cond_12
|
|
|
|
.line 249
|
|
.line 250
|
|
goto :goto_9
|
|
|
|
.line 251
|
|
:goto_b
|
|
if-eqz v2, :cond_11
|
|
|
|
.line 252
|
|
.line 253
|
|
move-object p1, v4
|
|
|
|
.line 254
|
|
check-cast p1, Landroidx/emoji2/text/SpannableBuilder;
|
|
|
|
.line 255
|
|
.line 256
|
|
invoke-virtual {p1}, Landroidx/emoji2/text/SpannableBuilder;->b()V
|
|
|
|
.line 257
|
|
.line 258
|
|
.line 259
|
|
:cond_11
|
|
throw p2
|
|
|
|
.line 260
|
|
:cond_12
|
|
:goto_c
|
|
return-object v4
|
|
|
|
.line 261
|
|
:cond_13
|
|
new-instance p1, Ljava/lang/IllegalArgumentException;
|
|
|
|
.line 262
|
|
.line 263
|
|
const-string p2, "end cannot be negative"
|
|
|
|
.line 264
|
|
.line 265
|
|
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
|
|
|
|
.line 266
|
|
.line 267
|
|
.line 268
|
|
throw p1
|
|
|
|
.line 269
|
|
:cond_14
|
|
new-instance p1, Ljava/lang/IllegalArgumentException;
|
|
|
|
.line 270
|
|
.line 271
|
|
const-string p2, "start cannot be negative"
|
|
|
|
.line 272
|
|
.line 273
|
|
invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
|
|
|
|
.line 274
|
|
.line 275
|
|
.line 276
|
|
throw p1
|
|
|
|
.line 277
|
|
:cond_15
|
|
new-instance p1, Ljava/lang/IllegalStateException;
|
|
|
|
.line 278
|
|
.line 279
|
|
const-string p2, "Not initialized yet"
|
|
|
|
.line 280
|
|
.line 281
|
|
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
|
|
|
|
.line 282
|
|
.line 283
|
|
.line 284
|
|
throw p1
|
|
.end method
|
|
|
|
.method public final h(Landroidx/emoji2/text/EmojiCompat$InitCallback;)V
|
|
.locals 5
|
|
|
|
.line 1
|
|
const-string v0, "initCallback cannot be null"
|
|
|
|
.line 2
|
|
.line 3
|
|
invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->c(Ljava/lang/Object;Ljava/lang/String;)V
|
|
|
|
.line 4
|
|
.line 5
|
|
.line 6
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 7
|
|
.line 8
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 9
|
|
.line 10
|
|
.line 11
|
|
move-result-object v0
|
|
|
|
.line 12
|
|
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
|
|
|
|
.line 13
|
|
.line 14
|
|
.line 15
|
|
:try_start_0
|
|
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
|
|
.line 16
|
|
.line 17
|
|
const/4 v1, 0x1
|
|
|
|
.line 18
|
|
if-eq v0, v1, :cond_1
|
|
|
|
.line 19
|
|
.line 20
|
|
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
|
|
.line 21
|
|
.line 22
|
|
const/4 v2, 0x2
|
|
|
|
.line 23
|
|
if-ne v0, v2, :cond_0
|
|
|
|
.line 24
|
|
.line 25
|
|
goto :goto_0
|
|
|
|
.line 26
|
|
:cond_0
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->b:Landroidx/collection/ArraySet;
|
|
|
|
.line 27
|
|
.line 28
|
|
invoke-virtual {v0, p1}, Landroidx/collection/ArraySet;->add(Ljava/lang/Object;)Z
|
|
|
|
.line 29
|
|
.line 30
|
|
.line 31
|
|
goto :goto_1
|
|
|
|
.line 32
|
|
:catchall_0
|
|
move-exception p1
|
|
|
|
.line 33
|
|
goto :goto_2
|
|
|
|
.line 34
|
|
:cond_1
|
|
:goto_0
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->d:Landroid/os/Handler;
|
|
|
|
.line 35
|
|
.line 36
|
|
new-instance v2, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;
|
|
|
|
.line 37
|
|
.line 38
|
|
iget v3, p0, Landroidx/emoji2/text/EmojiCompat;->c:I
|
|
|
|
.line 39
|
|
.line 40
|
|
new-array v1, v1, [Landroidx/emoji2/text/EmojiCompat$InitCallback;
|
|
|
|
.line 41
|
|
.line 42
|
|
const/4 v4, 0x0
|
|
|
|
.line 43
|
|
aput-object p1, v1, v4
|
|
|
|
.line 44
|
|
.line 45
|
|
invoke-static {v1}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
|
|
|
|
.line 46
|
|
.line 47
|
|
.line 48
|
|
move-result-object p1
|
|
|
|
.line 49
|
|
const/4 v1, 0x0
|
|
|
|
.line 50
|
|
invoke-direct {v2, p1, v3, v1}, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;-><init>(Ljava/util/List;ILjava/lang/Throwable;)V
|
|
|
|
.line 51
|
|
.line 52
|
|
.line 53
|
|
invoke-virtual {v0, v2}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
|
|
:try_end_0
|
|
.catchall {:try_start_0 .. :try_end_0} :catchall_0
|
|
|
|
.line 54
|
|
.line 55
|
|
.line 56
|
|
:goto_1
|
|
iget-object p1, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 57
|
|
.line 58
|
|
invoke-virtual {p1}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 59
|
|
.line 60
|
|
.line 61
|
|
move-result-object p1
|
|
|
|
.line 62
|
|
invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 63
|
|
.line 64
|
|
.line 65
|
|
return-void
|
|
|
|
.line 66
|
|
:goto_2
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->a:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
|
|
|
|
.line 67
|
|
.line 68
|
|
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
|
|
|
|
.line 69
|
|
.line 70
|
|
.line 71
|
|
move-result-object v0
|
|
|
|
.line 72
|
|
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
|
|
|
|
.line 73
|
|
.line 74
|
|
.line 75
|
|
throw p1
|
|
.end method
|
|
|
|
.method public final i(Landroid/view/inputmethod/EditorInfo;)V
|
|
.locals 5
|
|
|
|
.line 1
|
|
invoke-virtual {p0}, Landroidx/emoji2/text/EmojiCompat;->b()I
|
|
|
|
.line 2
|
|
.line 3
|
|
.line 4
|
|
move-result v0
|
|
|
|
.line 5
|
|
const/4 v1, 0x1
|
|
|
|
.line 6
|
|
if-ne v0, v1, :cond_3
|
|
|
|
.line 7
|
|
.line 8
|
|
if-nez p1, :cond_0
|
|
|
|
.line 9
|
|
.line 10
|
|
return-void
|
|
|
|
.line 11
|
|
:cond_0
|
|
iget-object v0, p1, Landroid/view/inputmethod/EditorInfo;->extras:Landroid/os/Bundle;
|
|
|
|
.line 12
|
|
.line 13
|
|
if-nez v0, :cond_1
|
|
|
|
.line 14
|
|
.line 15
|
|
new-instance v0, Landroid/os/Bundle;
|
|
|
|
.line 16
|
|
.line 17
|
|
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
|
|
|
|
.line 18
|
|
.line 19
|
|
.line 20
|
|
iput-object v0, p1, Landroid/view/inputmethod/EditorInfo;->extras:Landroid/os/Bundle;
|
|
|
|
.line 21
|
|
.line 22
|
|
:cond_1
|
|
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->e:Landroidx/emoji2/text/EmojiCompat$CompatInternal19;
|
|
|
|
.line 23
|
|
.line 24
|
|
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
|
|
|
|
.line 25
|
|
.line 26
|
|
.line 27
|
|
iget-object v1, p1, Landroid/view/inputmethod/EditorInfo;->extras:Landroid/os/Bundle;
|
|
|
|
.line 28
|
|
.line 29
|
|
iget-object v0, v0, Landroidx/emoji2/text/EmojiCompat$CompatInternal19;->c:Landroidx/emoji2/text/MetadataRepo;
|
|
|
|
.line 30
|
|
.line 31
|
|
iget-object v0, v0, Landroidx/emoji2/text/MetadataRepo;->a:Landroidx/emoji2/text/flatbuffer/MetadataList;
|
|
|
|
.line 32
|
|
.line 33
|
|
const/4 v2, 0x4
|
|
|
|
.line 34
|
|
invoke-virtual {v0, v2}, Landroidx/emoji2/text/flatbuffer/Table;->a(I)I
|
|
|
|
.line 35
|
|
.line 36
|
|
.line 37
|
|
move-result v2
|
|
|
|
.line 38
|
|
const/4 v3, 0x0
|
|
|
|
.line 39
|
|
if-eqz v2, :cond_2
|
|
|
|
.line 40
|
|
.line 41
|
|
iget-object v4, v0, Landroidx/emoji2/text/flatbuffer/Table;->b:Ljava/nio/ByteBuffer;
|
|
|
|
.line 42
|
|
.line 43
|
|
iget v0, v0, Landroidx/emoji2/text/flatbuffer/Table;->a:I
|
|
|
|
.line 44
|
|
.line 45
|
|
add-int/2addr v2, v0
|
|
|
|
.line 46
|
|
invoke-virtual {v4, v2}, Ljava/nio/ByteBuffer;->getInt(I)I
|
|
|
|
.line 47
|
|
.line 48
|
|
.line 49
|
|
move-result v0
|
|
|
|
.line 50
|
|
goto :goto_0
|
|
|
|
.line 51
|
|
:cond_2
|
|
move v0, v3
|
|
|
|
.line 52
|
|
:goto_0
|
|
const-string v2, "android.support.text.emoji.emojiCompat_metadataVersion"
|
|
|
|
.line 53
|
|
.line 54
|
|
invoke-virtual {v1, v2, v0}, Landroid/os/BaseBundle;->putInt(Ljava/lang/String;I)V
|
|
|
|
.line 55
|
|
.line 56
|
|
.line 57
|
|
iget-object p1, p1, Landroid/view/inputmethod/EditorInfo;->extras:Landroid/os/Bundle;
|
|
|
|
.line 58
|
|
.line 59
|
|
const-string v0, "android.support.text.emoji.emojiCompat_replaceAll"
|
|
|
|
.line 60
|
|
.line 61
|
|
invoke-virtual {p1, v0, v3}, Landroid/os/BaseBundle;->putBoolean(Ljava/lang/String;Z)V
|
|
|
|
.line 62
|
|
.line 63
|
|
.line 64
|
|
:cond_3
|
|
return-void
|
|
.end method
|