Files
rr3-apk/smali/androidx/emoji2/text/EmojiCompat.smali
Daniel Elliott f3960ee359 Add Discord APKTool decompilation (Smali source for modding)
- Imported from https://github.com/supermegamestre/Project-Real-Resurrection-3
- APKTool decompilation (Smali bytecode) for modding and rebuilding APK
- Supports both 32-bit (armeabi-v7a) and 64-bit (arm64-v8a) architectures
- Includes full Smali source, resources, and native libraries
- Ready to rebuild APK after modifications with apktool b command
- Added comprehensive README-apktool.md with modding guide

This branch complements the JADX branches:
- Use JADX (main/discord-community) to UNDERSTAND code (readable Java)
- Use APKTool (this branch) to MODIFY and REBUILD APK (editable Smali)

Total: 44,417 files, 538.51 MB Smali source code
2026-02-18 16:13:44 -08:00

1752 lines
51 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 private static final CONFIG_LOCK:Ljava/lang/Object;
.field public static final EDITOR_INFO_METAVERSION_KEY:Ljava/lang/String; = "android.support.text.emoji.emojiCompat_metadataVersion"
.field public static final EDITOR_INFO_REPLACE_ALL_KEY:Ljava/lang/String; = "android.support.text.emoji.emojiCompat_replaceAll"
.field static final EMOJI_COUNT_UNLIMITED:I = 0x7fffffff
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
.end field
.field public static final EMOJI_FALLBACK:I = 0x2
.field public static final EMOJI_SUPPORTED:I = 0x1
.field public static final EMOJI_UNSUPPORTED:I = 0x0
.field private static final INSTANCE_LOCK:Ljava/lang/Object;
.field public static final LOAD_STATE_DEFAULT:I = 0x3
.field public static final LOAD_STATE_FAILED:I = 0x2
.field public static final LOAD_STATE_LOADING:I = 0x0
.field public static final LOAD_STATE_SUCCEEDED:I = 0x1
.field public static final LOAD_STRATEGY_DEFAULT:I = 0x0
.field public static final LOAD_STRATEGY_MANUAL:I = 0x1
.field private static final NOT_INITIALIZED_ERROR_TEXT:Ljava/lang/String; = "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."
.field public static final REPLACE_STRATEGY_ALL:I = 0x1
.field public static final REPLACE_STRATEGY_DEFAULT:I = 0x0
.field public static final REPLACE_STRATEGY_NON_EXISTENT:I = 0x2
.field private static volatile sHasDoneDefaultConfigLookup:Z
.annotation build Landroidx/annotation/GuardedBy;
value = "CONFIG_LOCK"
.end annotation
.end field
.field private static volatile sInstance:Landroidx/emoji2/text/EmojiCompat;
.annotation build Landroidx/annotation/GuardedBy;
value = "INSTANCE_LOCK"
.end annotation
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
# instance fields
.field final mEmojiAsDefaultStyleExceptions:[I
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
.field private final mEmojiSpanIndicatorColor:I
.field private final mEmojiSpanIndicatorEnabled:Z
.field private final mGlyphChecker:Landroidx/emoji2/text/EmojiCompat$GlyphChecker;
.field private final mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
.field private final mInitCallbacks:Ljava/util/Set;
.annotation build Landroidx/annotation/GuardedBy;
value = "mInitLock"
.end annotation
.annotation build Landroidx/annotation/NonNull;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set<",
"Landroidx/emoji2/text/EmojiCompat$InitCallback;",
">;"
}
.end annotation
.end field
.field private final mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
.field private volatile mLoadState:I
.annotation build Landroidx/annotation/GuardedBy;
value = "mInitLock"
.end annotation
.end field
.field private final mMainHandler:Landroid/os/Handler;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
.field private final mMetadataLoadStrategy:I
.field final mMetadataLoader:Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
.field final mReplaceAll:Z
.field private final mSpanFactory:Landroidx/emoji2/text/EmojiCompat$SpanFactory;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end field
.field final mUseEmojiAsDefaultStyle:Z
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 349
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Landroidx/emoji2/text/EmojiCompat;->INSTANCE_LOCK:Ljava/lang/Object;
.line 350
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Landroidx/emoji2/text/EmojiCompat;->CONFIG_LOCK:Ljava/lang/Object;
return-void
.end method
.method private constructor <init>(Landroidx/emoji2/text/EmojiCompat$Config;)V
.locals 2
.param p1 # Landroidx/emoji2/text/EmojiCompat$Config;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 461
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 462
new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;-><init>()V
iput-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
const/4 v0, 0x3
iput v0, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
.line 464
iget-boolean v0, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mReplaceAll:Z
iput-boolean v0, p0, Landroidx/emoji2/text/EmojiCompat;->mReplaceAll:Z
.line 465
iget-boolean v0, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mUseEmojiAsDefaultStyle:Z
iput-boolean v0, p0, Landroidx/emoji2/text/EmojiCompat;->mUseEmojiAsDefaultStyle:Z
.line 466
iget-object v0, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mEmojiAsDefaultStyleExceptions:[I
iput-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mEmojiAsDefaultStyleExceptions:[I
.line 467
iget-boolean v0, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mEmojiSpanIndicatorEnabled:Z
iput-boolean v0, p0, Landroidx/emoji2/text/EmojiCompat;->mEmojiSpanIndicatorEnabled:Z
.line 468
iget v0, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mEmojiSpanIndicatorColor:I
iput v0, p0, Landroidx/emoji2/text/EmojiCompat;->mEmojiSpanIndicatorColor:I
.line 469
iget-object v0, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mMetadataLoader:Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;
iput-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mMetadataLoader:Landroidx/emoji2/text/EmojiCompat$MetadataRepoLoader;
.line 470
iget v0, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mMetadataLoadStrategy:I
iput v0, p0, Landroidx/emoji2/text/EmojiCompat;->mMetadataLoadStrategy:I
.line 471
iget-object v0, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mGlyphChecker:Landroidx/emoji2/text/EmojiCompat$GlyphChecker;
iput-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mGlyphChecker:Landroidx/emoji2/text/EmojiCompat$GlyphChecker;
.line 472
new-instance v0, Landroid/os/Handler;
invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;
move-result-object v1
invoke-direct {v0, v1}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V
iput-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mMainHandler:Landroid/os/Handler;
.line 473
new-instance v0, Landroidx/collection/ArraySet;
invoke-direct {v0}, Landroidx/collection/ArraySet;-><init>()V
iput-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitCallbacks:Ljava/util/Set;
.line 474
iget-object v1, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mSpanFactory:Landroidx/emoji2/text/EmojiCompat$SpanFactory;
if-eqz v1, :cond_0
goto :goto_0
.line 475
:cond_0
new-instance v1, Landroidx/emoji2/text/EmojiCompat$DefaultSpanFactory;
invoke-direct {v1}, Landroidx/emoji2/text/EmojiCompat$DefaultSpanFactory;-><init>()V
:goto_0
iput-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mSpanFactory:Landroidx/emoji2/text/EmojiCompat$SpanFactory;
.line 476
iget-object v1, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mInitCallbacks:Ljava/util/Set;
if-eqz v1, :cond_1
invoke-interface {v1}, Ljava/util/Set;->isEmpty()Z
move-result v1
if-nez v1, :cond_1
.line 477
iget-object p1, p1, Landroidx/emoji2/text/EmojiCompat$Config;->mInitCallbacks:Ljava/util/Set;
invoke-interface {v0, p1}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 479
:cond_1
new-instance p1, Landroidx/emoji2/text/EmojiCompat$CompatInternal19;
invoke-direct {p1, p0}, Landroidx/emoji2/text/EmojiCompat$CompatInternal19;-><init>(Landroidx/emoji2/text/EmojiCompat;)V
iput-object p1, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 481
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat;->loadMetadata()V
return-void
.end method
.method public static synthetic access$000(Landroidx/emoji2/text/EmojiCompat;)Landroidx/emoji2/text/EmojiCompat$SpanFactory;
.locals 0
.line 111
iget-object p0, p0, Landroidx/emoji2/text/EmojiCompat;->mSpanFactory:Landroidx/emoji2/text/EmojiCompat$SpanFactory;
return-object p0
.end method
.method public static synthetic access$100(Landroidx/emoji2/text/EmojiCompat;)Landroidx/emoji2/text/EmojiCompat$GlyphChecker;
.locals 0
.line 111
iget-object p0, p0, Landroidx/emoji2/text/EmojiCompat;->mGlyphChecker:Landroidx/emoji2/text/EmojiCompat$GlyphChecker;
return-object p0
.end method
.method public static get()Landroidx/emoji2/text/EmojiCompat;
.locals 4
.annotation build Landroidx/annotation/NonNull;
.end annotation
sget-object v0, Landroidx/emoji2/text/EmojiCompat;->INSTANCE_LOCK:Ljava/lang/Object;
.line 652
monitor-enter v0
:try_start_0
sget-object v1, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
if-eqz v1, :cond_0
const/4 v2, 0x1
goto :goto_0
:cond_0
const/4 v2, 0x0
: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 654
invoke-static {v2, v3}, Landroidx/core/util/Preconditions;->checkState(ZLjava/lang/String;)V
.line 655
monitor-exit v0
return-object v1
:catchall_0
move-exception v1
.line 656
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v1
.end method
.method public static handleDeleteSurroundingText(Landroid/view/inputmethod/InputConnection;Landroid/text/Editable;IIZ)Z
.locals 0
.param p0 # Landroid/view/inputmethod/InputConnection;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p1 # Landroid/text/Editable;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.param p3 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.line 896
invoke-static {p0, p1, p2, p3, p4}, Landroidx/emoji2/text/EmojiProcessor;->handleDeleteSurroundingText(Landroid/view/inputmethod/InputConnection;Landroid/text/Editable;IIZ)Z
move-result p0
return p0
.end method
.method public static handleOnKeyDown(Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
.locals 0
.param p0 # Landroid/text/Editable;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/view/KeyEvent;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 867
invoke-static {p0, p1, p2}, Landroidx/emoji2/text/EmojiProcessor;->handleOnKeyDown(Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
move-result p0
return p0
.end method
.method public static init(Landroid/content/Context;)Landroidx/emoji2/text/EmojiCompat;
.locals 1
.param p0 # Landroid/content/Context;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
const/4 v0, 0x0
.line 501
invoke-static {p0, v0}, Landroidx/emoji2/text/EmojiCompat;->init(Landroid/content/Context;Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;)Landroidx/emoji2/text/EmojiCompat;
move-result-object p0
return-object p0
.end method
.method public static init(Landroid/content/Context;Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;)Landroidx/emoji2/text/EmojiCompat;
.locals 1
.param p0 # Landroid/content/Context;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p1 # Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
sget-boolean v0, Landroidx/emoji2/text/EmojiCompat;->sHasDoneDefaultConfigLookup:Z
if-eqz v0, :cond_0
sget-object p0, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
return-object p0
:cond_0
if-eqz p1, :cond_1
goto :goto_0
.line 522
:cond_1
new-instance p1, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;
const/4 v0, 0x0
invoke-direct {p1, v0}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;-><init>(Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigHelper;)V
.line 523
:goto_0
invoke-virtual {p1, p0}, Landroidx/emoji2/text/DefaultEmojiCompatConfig$DefaultEmojiCompatConfigFactory;->create(Landroid/content/Context;)Landroidx/emoji2/text/EmojiCompat$Config;
move-result-object p0
sget-object p1, Landroidx/emoji2/text/EmojiCompat;->CONFIG_LOCK:Ljava/lang/Object;
.line 525
monitor-enter p1
:try_start_0
sget-boolean v0, Landroidx/emoji2/text/EmojiCompat;->sHasDoneDefaultConfigLookup:Z
if-nez v0, :cond_3
if-eqz p0, :cond_2
.line 530
invoke-static {p0}, Landroidx/emoji2/text/EmojiCompat;->init(Landroidx/emoji2/text/EmojiCompat$Config;)Landroidx/emoji2/text/EmojiCompat;
goto :goto_1
:catchall_0
move-exception p0
goto :goto_2
:cond_2
:goto_1
const/4 p0, 0x1
sput-boolean p0, Landroidx/emoji2/text/EmojiCompat;->sHasDoneDefaultConfigLookup:Z
:cond_3
sget-object p0, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
.line 536
monitor-exit p1
return-object p0
.line 537
:goto_2
monitor-exit p1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p0
.end method
.method public static init(Landroidx/emoji2/text/EmojiCompat$Config;)Landroidx/emoji2/text/EmojiCompat;
.locals 2
.param p0 # Landroidx/emoji2/text/EmojiCompat$Config;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
sget-object v0, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
if-nez v0, :cond_1
sget-object v1, Landroidx/emoji2/text/EmojiCompat;->INSTANCE_LOCK:Ljava/lang/Object;
.line 555
monitor-enter v1
:try_start_0
sget-object v0, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
if-nez v0, :cond_0
.line 558
new-instance v0, Landroidx/emoji2/text/EmojiCompat;
invoke-direct {v0, p0}, Landroidx/emoji2/text/EmojiCompat;-><init>(Landroidx/emoji2/text/EmojiCompat$Config;)V
sput-object v0, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
goto :goto_0
:catchall_0
move-exception p0
goto :goto_1
.line 561
:cond_0
:goto_0
monitor-exit v1
goto :goto_2
:goto_1
monitor-exit v1
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p0
:cond_1
:goto_2
return-object v0
.end method
.method public static isConfigured()Z
.locals 1
sget-object v0, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method private isInitialized()Z
.locals 2
.line 799
invoke-virtual {p0}, Landroidx/emoji2/text/EmojiCompat;->getLoadState()I
move-result v0
const/4 v1, 0x1
if-ne v0, v1, :cond_0
goto :goto_0
:cond_0
const/4 v1, 0x0
:goto_0
return v1
.end method
.method private loadMetadata()V
.locals 2
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 692
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
:try_start_0
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->mMetadataLoadStrategy:I
if-nez v0, :cond_0
const/4 v0, 0x0
iput v0, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
goto :goto_0
:catchall_0
move-exception v0
goto :goto_1
:cond_0
:goto_0
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 698
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 701
invoke-virtual {p0}, Landroidx/emoji2/text/EmojiCompat;->getLoadState()I
move-result v0
if-nez v0, :cond_1
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 702
invoke-virtual {v0}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->loadMetadata()V
:cond_1
return-void
:goto_1
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 698
invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 699
throw v0
.end method
.method public static reset(Landroidx/emoji2/text/EmojiCompat$Config;)Landroidx/emoji2/text/EmojiCompat;
.locals 2
.param p0 # Landroidx/emoji2/text/EmojiCompat$Config;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
sget-object v0, Landroidx/emoji2/text/EmojiCompat;->INSTANCE_LOCK:Ljava/lang/Object;
.line 609
monitor-enter v0
.line 610
:try_start_0
new-instance v1, Landroidx/emoji2/text/EmojiCompat;
invoke-direct {v1, p0}, Landroidx/emoji2/text/EmojiCompat;-><init>(Landroidx/emoji2/text/EmojiCompat$Config;)V
sput-object v1, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
.line 612
monitor-exit v0
return-object v1
:catchall_0
move-exception p0
.line 613
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p0
.end method
.method public static reset(Landroidx/emoji2/text/EmojiCompat;)Landroidx/emoji2/text/EmojiCompat;
.locals 1
.param p0 # Landroidx/emoji2/text/EmojiCompat;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->TESTS:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
sget-object v0, Landroidx/emoji2/text/EmojiCompat;->INSTANCE_LOCK:Ljava/lang/Object;
.line 624
monitor-enter v0
:try_start_0
sput-object p0, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
sget-object p0, Landroidx/emoji2/text/EmojiCompat;->sInstance:Landroidx/emoji2/text/EmojiCompat;
.line 626
monitor-exit v0
return-object p0
:catchall_0
move-exception p0
.line 627
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p0
.end method
.method public static skipDefaultConfigurationLookup(Z)V
.locals 1
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->TESTS:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
sget-object v0, Landroidx/emoji2/text/EmojiCompat;->CONFIG_LOCK:Ljava/lang/Object;
.line 637
monitor-enter v0
:try_start_0
sput-boolean p0, Landroidx/emoji2/text/EmojiCompat;->sHasDoneDefaultConfigLookup:Z
.line 639
monitor-exit v0
return-void
:catchall_0
move-exception p0
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw p0
.end method
# virtual methods
.method public getAssetSignature()Ljava/lang/String;
.locals 2
.annotation build Landroidx/annotation/NonNull;
.end annotation
.line 1146
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat;->isInitialized()Z
move-result v0
const-string v1, "Not initialized yet"
invoke-static {v0, v1}, Landroidx/core/util/Preconditions;->checkState(ZLjava/lang/String;)V
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 1147
invoke-virtual {v0}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->getAssetSignature()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public getEmojiEnd(Ljava/lang/CharSequence;I)I
.locals 1
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 841
invoke-virtual {v0, p1, p2}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->getEmojiEnd(Ljava/lang/CharSequence;I)I
move-result p1
return p1
.end method
.method public getEmojiMatch(Ljava/lang/CharSequence;I)I
.locals 2
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.line 962
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat;->isInitialized()Z
move-result v0
const-string v1, "Not initialized yet"
invoke-static {v0, v1}, Landroidx/core/util/Preconditions;->checkState(ZLjava/lang/String;)V
const-string v0, "sequence cannot be null"
.line 963
invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 964
invoke-virtual {v0, p1, p2}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->getEmojiMatch(Ljava/lang/CharSequence;I)I
move-result p1
return p1
.end method
.method public getEmojiSpanIndicatorColor()I
.locals 1
.annotation build Landroidx/annotation/ColorInt;
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->mEmojiSpanIndicatorColor:I
return v0
.end method
.method public getEmojiStart(Ljava/lang/CharSequence;I)I
.locals 1
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 833
invoke-virtual {v0, p1, p2}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->getEmojiStart(Ljava/lang/CharSequence;I)I
move-result p1
return p1
.end method
.method public getLoadState()I
.locals 2
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 787
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
:try_start_0
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 791
invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
return v0
:catchall_0
move-exception v0
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->readLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 792
throw v0
.end method
.method public hasEmojiGlyph(Ljava/lang/CharSequence;)Z
.locals 2
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 917
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat;->isInitialized()Z
move-result v0
const-string v1, "Not initialized yet"
invoke-static {v0, v1}, Landroidx/core/util/Preconditions;->checkState(ZLjava/lang/String;)V
const-string v0, "sequence cannot be null"
.line 918
invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 919
invoke-virtual {v0, p1}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->hasEmojiGlyph(Ljava/lang/CharSequence;)Z
move-result p1
return p1
.end method
.method public hasEmojiGlyph(Ljava/lang/CharSequence;I)Z
.locals 2
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 939
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat;->isInitialized()Z
move-result v0
const-string v1, "Not initialized yet"
invoke-static {v0, v1}, Landroidx/core/util/Preconditions;->checkState(ZLjava/lang/String;)V
const-string v0, "sequence cannot be null"
.line 940
invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 941
invoke-virtual {v0, p1, p2}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->hasEmojiGlyph(Ljava/lang/CharSequence;I)Z
move-result p1
return p1
.end method
.method public isEmojiSpanIndicatorEnabled()Z
.locals 1
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
iget-boolean v0, p0, Landroidx/emoji2/text/EmojiCompat;->mEmojiSpanIndicatorEnabled:Z
return v0
.end method
.method public load()V
.locals 3
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->mMetadataLoadStrategy:I
const/4 v1, 0x0
const/4 v2, 0x1
if-ne v0, v2, :cond_0
goto :goto_0
:cond_0
move v2, v1
:goto_0
const-string v0, "Set metadataLoadStrategy to LOAD_STRATEGY_MANUAL to execute manual loading"
.line 676
invoke-static {v2, v0}, Landroidx/core/util/Preconditions;->checkState(ZLjava/lang/String;)V
.line 678
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat;->isInitialized()Z
move-result v0
if-eqz v0, :cond_1
return-void
:cond_1
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 680
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
:try_start_0
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
if-nez v0, :cond_2
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 685
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
return-void
:cond_2
:try_start_1
iput v1, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
:try_end_1
.catchall {:try_start_1 .. :try_end_1} :catchall_0
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 688
invoke-virtual {v0}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->loadMetadata()V
return-void
:catchall_0
move-exception v0
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 685
invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 686
throw v0
.end method
.method public onMetadataLoadFailed(Ljava/lang/Throwable;)V
.locals 4
.param p1 # Ljava/lang/Throwable;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 723
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 724
invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
const/4 v1, 0x2
:try_start_0
iput v1, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitCallbacks:Ljava/util/Set;
.line 727
invoke-interface {v0, v1}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitCallbacks:Ljava/util/Set;
.line 728
invoke-interface {v1}, Ljava/util/Set;->clear()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 730
invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mMainHandler:Landroid/os/Handler;
.line 732
new-instance v2, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;
iget v3, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
invoke-direct {v2, v0, v3, p1}, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;-><init>(Ljava/util/Collection;ILjava/lang/Throwable;)V
invoke-virtual {v1, v2}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
:catchall_0
move-exception p1
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 730
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 731
throw p1
.end method
.method public onMetadataLoadSuccess()V
.locals 4
.line 708
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 709
invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->lock()V
const/4 v1, 0x1
:try_start_0
iput v1, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitCallbacks:Ljava/util/Set;
.line 712
invoke-interface {v0, v1}, Ljava/util/Collection;->addAll(Ljava/util/Collection;)Z
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitCallbacks:Ljava/util/Set;
.line 713
invoke-interface {v1}, Ljava/util/Set;->clear()V
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 715
invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mMainHandler:Landroid/os/Handler;
.line 718
new-instance v2, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;
iget v3, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
invoke-direct {v2, v0, v3}, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;-><init>(Ljava/util/Collection;I)V
invoke-virtual {v1, v2}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
return-void
:catchall_0
move-exception v0
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 715
invoke-interface {v1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v1
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 716
throw v0
.end method
.method public process(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
.locals 2
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/CheckResult;
.end annotation
.annotation build Landroidx/annotation/Nullable;
.end annotation
const/4 v0, 0x0
if-nez p1, :cond_0
move v1, v0
goto :goto_0
.line 984
:cond_0
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result v1
.line 985
:goto_0
invoke-virtual {p0, p1, v0, v1}, Landroidx/emoji2/text/EmojiCompat;->process(Ljava/lang/CharSequence;II)Ljava/lang/CharSequence;
move-result-object p1
return-object p1
.end method
.method public process(Ljava/lang/CharSequence;II)Ljava/lang/CharSequence;
.locals 1
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.param p2 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.param p3 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.annotation build Landroidx/annotation/CheckResult;
.end annotation
.annotation build Landroidx/annotation/Nullable;
.end annotation
const v0, 0x7fffffff
.line 1019
invoke-virtual {p0, p1, p2, p3, v0}, Landroidx/emoji2/text/EmojiCompat;->process(Ljava/lang/CharSequence;III)Ljava/lang/CharSequence;
move-result-object p1
return-object p1
.end method
.method public process(Ljava/lang/CharSequence;III)Ljava/lang/CharSequence;
.locals 6
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.param p2 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.param p3 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.param p4 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.annotation build Landroidx/annotation/CheckResult;
.end annotation
.annotation build Landroidx/annotation/Nullable;
.end annotation
const/4 v5, 0x0
move-object v0, p0
move-object v1, p1
move v2, p2
move v3, p3
move v4, p4
.line 1057
invoke-virtual/range {v0 .. v5}, Landroidx/emoji2/text/EmojiCompat;->process(Ljava/lang/CharSequence;IIII)Ljava/lang/CharSequence;
move-result-object p1
return-object p1
.end method
.method public process(Ljava/lang/CharSequence;IIII)Ljava/lang/CharSequence;
.locals 7
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.param p2 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.param p3 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.param p4 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
.annotation build Landroidx/annotation/CheckResult;
.end annotation
.annotation build Landroidx/annotation/Nullable;
.end annotation
.line 1099
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat;->isInitialized()Z
move-result v0
const-string v1, "Not initialized yet"
invoke-static {v0, v1}, Landroidx/core/util/Preconditions;->checkState(ZLjava/lang/String;)V
const-string v0, "start cannot be negative"
.line 1100
invoke-static {p2, v0}, Landroidx/core/util/Preconditions;->checkArgumentNonnegative(ILjava/lang/String;)I
const-string v0, "end cannot be negative"
.line 1101
invoke-static {p3, v0}, Landroidx/core/util/Preconditions;->checkArgumentNonnegative(ILjava/lang/String;)I
const-string v0, "maxEmojiCount cannot be negative"
.line 1102
invoke-static {p4, v0}, Landroidx/core/util/Preconditions;->checkArgumentNonnegative(ILjava/lang/String;)I
const/4 v0, 0x0
const/4 v1, 0x1
if-gt p2, p3, :cond_0
move v2, v1
goto :goto_0
:cond_0
move v2, v0
:goto_0
const-string v3, "start should be <= than end"
.line 1103
invoke-static {v2, v3}, Landroidx/core/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V
if-nez p1, :cond_1
const/4 p1, 0x0
return-object p1
.line 1110
:cond_1
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result v2
if-gt p2, v2, :cond_2
move v2, v1
goto :goto_1
:cond_2
move v2, v0
:goto_1
const-string v3, "start should be < than charSequence length"
invoke-static {v2, v3}, Landroidx/core/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V
.line 1112
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result v2
if-gt p3, v2, :cond_3
move v2, v1
goto :goto_2
:cond_3
move v2, v0
:goto_2
const-string v3, "end should be < than charSequence length"
invoke-static {v2, v3}, Landroidx/core/util/Preconditions;->checkArgument(ZLjava/lang/Object;)V
.line 1116
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result v2
if-eqz v2, :cond_7
if-ne p2, p3, :cond_4
goto :goto_4
:cond_4
if-eq p5, v1, :cond_6
const/4 v1, 0x2
if-eq p5, v1, :cond_5
iget-boolean v0, p0, Landroidx/emoji2/text/EmojiCompat;->mReplaceAll:Z
:cond_5
move v6, v0
goto :goto_3
:cond_6
move v6, v1
:goto_3
iget-object v1, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
move-object v2, p1
move v3, p2
move v4, p3
move v5, p4
.line 1134
invoke-virtual/range {v1 .. v6}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->process(Ljava/lang/CharSequence;IIIZ)Ljava/lang/CharSequence;
move-result-object p1
:cond_7
:goto_4
return-object p1
.end method
.method public registerInitCallback(Landroidx/emoji2/text/EmojiCompat$InitCallback;)V
.locals 3
.param p1 # Landroidx/emoji2/text/EmojiCompat$InitCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
const-string v0, "initCallback cannot be null"
.line 750
invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 752
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
:try_start_0
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
const/4 v1, 0x1
if-eq v0, v1, :cond_1
iget v0, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
const/4 v1, 0x2
if-ne v0, v1, :cond_0
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitCallbacks:Ljava/util/Set;
.line 757
invoke-interface {v0, p1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_1
:catchall_0
move-exception p1
goto :goto_2
:cond_1
:goto_0
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mMainHandler:Landroid/os/Handler;
.line 755
new-instance v1, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;
iget v2, p0, Landroidx/emoji2/text/EmojiCompat;->mLoadState:I
invoke-direct {v1, p1, v2}, Landroidx/emoji2/text/EmojiCompat$ListenerDispatcher;-><init>(Landroidx/emoji2/text/EmojiCompat$InitCallback;I)V
invoke-virtual {v0, v1}, Landroid/os/Handler;->post(Ljava/lang/Runnable;)Z
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:goto_1
iget-object p1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 760
invoke-interface {p1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object p1
invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V
return-void
:goto_2
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 761
throw p1
.end method
.method public unregisterInitCallback(Landroidx/emoji2/text/EmojiCompat$InitCallback;)V
.locals 1
.param p1 # Landroidx/emoji2/text/EmojiCompat$InitCallback;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
const-string v0, "initCallback cannot be null"
.line 770
invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 771
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
:try_start_0
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitCallbacks:Ljava/util/Set;
.line 773
invoke-interface {v0, p1}, Ljava/util/Set;->remove(Ljava/lang/Object;)Z
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
iget-object p1, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
.line 775
invoke-interface {p1}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object p1
invoke-interface {p1}, Ljava/util/concurrent/locks/Lock;->unlock()V
return-void
:catchall_0
move-exception p1
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mInitLock:Ljava/util/concurrent/locks/ReadWriteLock;
invoke-interface {v0}, Ljava/util/concurrent/locks/ReadWriteLock;->writeLock()Ljava/util/concurrent/locks/Lock;
move-result-object v0
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 776
throw p1
.end method
.method public updateEditorInfo(Landroid/view/inputmethod/EditorInfo;)V
.locals 1
.param p1 # Landroid/view/inputmethod/EditorInfo;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 1171
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat;->isInitialized()Z
move-result v0
if-eqz v0, :cond_2
if-nez p1, :cond_0
goto :goto_0
.line 1174
:cond_0
iget-object v0, p1, Landroid/view/inputmethod/EditorInfo;->extras:Landroid/os/Bundle;
if-nez v0, :cond_1
.line 1175
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
iput-object v0, p1, Landroid/view/inputmethod/EditorInfo;->extras:Landroid/os/Bundle;
:cond_1
iget-object v0, p0, Landroidx/emoji2/text/EmojiCompat;->mHelper:Landroidx/emoji2/text/EmojiCompat$CompatInternal;
.line 1177
invoke-virtual {v0, p1}, Landroidx/emoji2/text/EmojiCompat$CompatInternal;->updateEditorInfoAttrs(Landroid/view/inputmethod/EditorInfo;)V
:cond_2
:goto_0
return-void
.end method