.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 ()V .locals 1 .line 349 new-instance v0, Ljava/lang/Object; invoke-direct {v0}, Ljava/lang/Object;->()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;->()V sput-object v0, Landroidx/emoji2/text/EmojiCompat;->CONFIG_LOCK:Ljava/lang/Object; return-void .end method .method private constructor (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;->()V .line 462 new-instance v0, Ljava/util/concurrent/locks/ReentrantReadWriteLock; invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantReadWriteLock;->()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;->(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;->()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;->()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;->(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;->(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;->(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;->(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;->()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;->(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;->()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;->(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;->(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;->()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