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
This commit is contained in:
2026-02-18 16:13:44 -08:00
parent c080f0d97f
commit f3960ee359
44288 changed files with 10998761 additions and 0 deletions

View File

@@ -0,0 +1,79 @@
.class Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "HelperInternal"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 231
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public getKeyListener(Landroid/text/method/KeyListener;)Landroid/text/method/KeyListener;
.locals 0
.param p1 # Landroid/text/method/KeyListener;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
return-object p1
.end method
.method public isEnabled()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public onCreateInputConnection(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
.locals 0
.param p1 # Landroid/view/inputmethod/InputConnection;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/view/inputmethod/EditorInfo;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
return-object p1
.end method
.method public setEmojiReplaceStrategy(I)V
.locals 0
return-void
.end method
.method public setEnabled(Z)V
.locals 0
return-void
.end method
.method public setMaxEmojiCount(I)V
.locals 0
return-void
.end method

View File

@@ -0,0 +1,173 @@
.class Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;
.super Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
.source "SourceFile"
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "HelperInternal19"
.end annotation
# instance fields
.field private final mEditText:Landroid/widget/EditText;
.field private final mTextWatcher:Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
# direct methods
.method public constructor <init>(Landroid/widget/EditText;Z)V
.locals 1
.param p1 # Landroid/widget/EditText;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 265
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;-><init>()V
iput-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;->mEditText:Landroid/widget/EditText;
.line 267
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
invoke-direct {v0, p1, p2}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;-><init>(Landroid/widget/EditText;Z)V
iput-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;->mTextWatcher:Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
.line 268
invoke-virtual {p1, v0}, Landroid/widget/TextView;->addTextChangedListener(Landroid/text/TextWatcher;)V
.line 269
invoke-static {}, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;->getInstance()Landroid/text/Editable$Factory;
move-result-object p2
invoke-virtual {p1, p2}, Landroid/widget/TextView;->setEditableFactory(Landroid/text/Editable$Factory;)V
return-void
.end method
# virtual methods
.method public getKeyListener(Landroid/text/method/KeyListener;)Landroid/text/method/KeyListener;
.locals 1
.param p1 # Landroid/text/method/KeyListener;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 284
instance-of v0, p1, Landroidx/emoji2/viewsintegration/EmojiKeyListener;
if-eqz v0, :cond_0
return-object p1
:cond_0
if-nez p1, :cond_1
const/4 p1, 0x0
return-object p1
.line 293
:cond_1
instance-of v0, p1, Landroid/text/method/NumberKeyListener;
if-eqz v0, :cond_2
return-object p1
.line 299
:cond_2
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiKeyListener;
invoke-direct {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiKeyListener;-><init>(Landroid/text/method/KeyListener;)V
return-object v0
.end method
.method public isEnabled()Z
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;->mTextWatcher:Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
.line 324
invoke-virtual {v0}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->isEnabled()Z
move-result v0
return v0
.end method
.method public onCreateInputConnection(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
.locals 2
.param p1 # Landroid/view/inputmethod/InputConnection;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/view/inputmethod/EditorInfo;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 305
instance-of v0, p1, Landroidx/emoji2/viewsintegration/EmojiInputConnection;
if-eqz v0, :cond_0
return-object p1
.line 310
:cond_0
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiInputConnection;
iget-object v1, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;->mEditText:Landroid/widget/EditText;
invoke-direct {v0, v1, p1, p2}, Landroidx/emoji2/viewsintegration/EmojiInputConnection;-><init>(Landroid/widget/TextView;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V
return-object v0
.end method
.method public setEmojiReplaceStrategy(I)V
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;->mTextWatcher:Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
.line 279
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->setEmojiReplaceStrategy(I)V
return-void
.end method
.method public setEnabled(Z)V
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;->mTextWatcher:Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
.line 315
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->setEnabled(Z)V
return-void
.end method
.method public setMaxEmojiCount(I)V
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;->mTextWatcher:Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
.line 274
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->setMaxEmojiCount(I)V
return-void
.end method

View File

@@ -0,0 +1,207 @@
.class public final Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;,
Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;
}
.end annotation
# instance fields
.field private mEmojiReplaceStrategy:I
.field private final mHelper:Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
.field private mMaxEmojiCount:I
# direct methods
.method public constructor <init>(Landroid/widget/EditText;)V
.locals 1
.param p1 # Landroid/widget/EditText;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
const/4 v0, 0x1
.line 83
invoke-direct {p0, p1, v0}, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;-><init>(Landroid/widget/EditText;Z)V
return-void
.end method
.method public constructor <init>(Landroid/widget/EditText;Z)V
.locals 1
.param p1 # Landroid/widget/EditText;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 105
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const v0, 0x7fffffff
iput v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mMaxEmojiCount:I
const/4 v0, 0x0
iput v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mEmojiReplaceStrategy:I
const-string v0, "editText cannot be null"
.line 106
invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 110
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;
invoke-direct {v0, p1, p2}, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal19;-><init>(Landroid/widget/EditText;Z)V
iput-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
return-void
.end method
# virtual methods
.method public getEmojiReplaceStrategy()I
.locals 1
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
iget v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mEmojiReplaceStrategy:I
return v0
.end method
.method public getKeyListener(Landroid/text/method/KeyListener;)Landroid/text/method/KeyListener;
.locals 1
.param p1 # Landroid/text/method/KeyListener;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
.line 155
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;->getKeyListener(Landroid/text/method/KeyListener;)Landroid/text/method/KeyListener;
move-result-object p1
return-object p1
.end method
.method public getMaxEmojiCount()I
.locals 1
iget v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mMaxEmojiCount:I
return v0
.end method
.method public isEnabled()Z
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
.line 214
invoke-virtual {v0}, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;->isEnabled()Z
move-result v0
return v0
.end method
.method public onCreateInputConnection(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
.locals 1
.param p1 # Landroid/view/inputmethod/InputConnection;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.param p2 # Landroid/view/inputmethod/EditorInfo;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
if-nez p1, :cond_0
const/4 p1, 0x0
return-object p1
:cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
.line 174
invoke-virtual {v0, p1, p2}, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;->onCreateInputConnection(Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)Landroid/view/inputmethod/InputConnection;
move-result-object p1
return-object p1
.end method
.method public setEmojiReplaceStrategy(I)V
.locals 1
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY_GROUP:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
iput p1, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mEmojiReplaceStrategy:I
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
.line 190
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;->setEmojiReplaceStrategy(I)V
return-void
.end method
.method public setEnabled(Z)V
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
.line 227
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;->setEnabled(Z)V
return-void
.end method
.method public setMaxEmojiCount(I)V
.locals 1
.param p1 # I
.annotation build Landroidx/annotation/IntRange;
from = 0x0L
.end annotation
.end param
const-string v0, "maxEmojiCount should be greater than 0"
.line 126
invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkArgumentNonnegative(ILjava/lang/String;)I
iput p1, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mMaxEmojiCount:I
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;
.line 129
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiEditTextHelper$HelperInternal;->setMaxEmojiCount(I)V
return-void
.end method

View File

@@ -0,0 +1,156 @@
.class final Landroidx/emoji2/viewsintegration/EmojiEditableFactory;
.super Landroid/text/Editable$Factory;
.source "SourceFile"
# static fields
.field private static final INSTANCE_LOCK:Ljava/lang/Object;
.field private static volatile sInstance:Landroid/text/Editable$Factory;
.annotation build Landroidx/annotation/GuardedBy;
value = "INSTANCE_LOCK"
.end annotation
.end field
.field private static sWatcherClass:Ljava/lang/Class;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.locals 1
.line 44
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;->INSTANCE_LOCK:Ljava/lang/Object;
return-void
.end method
.method private constructor <init>()V
.locals 3
.annotation build Landroid/annotation/SuppressLint;
value = {
"PrivateApi"
}
.end annotation
.line 51
invoke-direct {p0}, Landroid/text/Editable$Factory;-><init>()V
:try_start_0
const-string v0, "android.text.DynamicLayout$ChangeWatcher"
const-class v1, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;
.line 54
invoke-virtual {v1}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v1
const/4 v2, 0x0
invoke-static {v0, v2, v1}, Ljava/lang/Class;->forName(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
move-result-object v0
sput-object v0, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;->sWatcherClass:Ljava/lang/Class;
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
:catchall_0
return-void
.end method
.method public static getInstance()Landroid/text/Editable$Factory;
.locals 2
sget-object v0, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;->sInstance:Landroid/text/Editable$Factory;
if-nez v0, :cond_1
sget-object v0, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;->INSTANCE_LOCK:Ljava/lang/Object;
.line 63
monitor-enter v0
:try_start_0
sget-object v1, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;->sInstance:Landroid/text/Editable$Factory;
if-nez v1, :cond_0
.line 65
new-instance v1, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;
invoke-direct {v1}, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;-><init>()V
sput-object v1, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;->sInstance:Landroid/text/Editable$Factory;
goto :goto_0
:catchall_0
move-exception v1
goto :goto_1
.line 67
:cond_0
:goto_0
monitor-exit v0
goto :goto_2
:goto_1
monitor-exit v0
:try_end_0
.catchall {:try_start_0 .. :try_end_0} :catchall_0
throw v1
:cond_1
:goto_2
sget-object v0, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;->sInstance:Landroid/text/Editable$Factory;
return-object v0
.end method
# virtual methods
.method public newEditable(Ljava/lang/CharSequence;)Landroid/text/Editable;
.locals 1
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
sget-object v0, Landroidx/emoji2/viewsintegration/EmojiEditableFactory;->sWatcherClass:Ljava/lang/Class;
if-eqz v0, :cond_0
.line 75
invoke-static {v0, p1}, Landroidx/emoji2/text/SpannableBuilder;->create(Ljava/lang/Class;Ljava/lang/CharSequence;)Landroidx/emoji2/text/SpannableBuilder;
move-result-object p1
return-object p1
.line 77
:cond_0
invoke-super {p0, p1}, Landroid/text/Editable$Factory;->newEditable(Ljava/lang/CharSequence;)Landroid/text/Editable;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,81 @@
.class public Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/emoji2/viewsintegration/EmojiInputConnection;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "EmojiCompatDeleteHelper"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 83
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public handleDeleteSurroundingText(Landroid/view/inputmethod/InputConnection;Landroid/text/Editable;IIZ)Z
.locals 0
.param p1 # Landroid/view/inputmethod/InputConnection;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/text/Editable;
.annotation build Landroidx/annotation/NonNull;
.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
.line 90
invoke-static {p1, p2, p3, p4, p5}, Landroidx/emoji2/text/EmojiCompat;->handleDeleteSurroundingText(Landroid/view/inputmethod/InputConnection;Landroid/text/Editable;IIZ)Z
move-result p1
return p1
.end method
.method public updateEditorInfoAttrs(Landroid/view/inputmethod/EditorInfo;)V
.locals 1
.param p1 # Landroid/view/inputmethod/EditorInfo;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 95
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->isConfigured()Z
move-result v0
if-eqz v0, :cond_0
.line 96
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object v0
invoke-virtual {v0, p1}, Landroidx/emoji2/text/EmojiCompat;->updateEditorInfo(Landroid/view/inputmethod/EditorInfo;)V
:cond_0
return-void
.end method

View File

@@ -0,0 +1,197 @@
.class final Landroidx/emoji2/viewsintegration/EmojiInputConnection;
.super Landroid/view/inputmethod/InputConnectionWrapper;
.source "SourceFile"
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;
}
.end annotation
# instance fields
.field private final mEmojiCompatDeleteHelper:Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;
.field private final mTextView:Landroid/widget/TextView;
# direct methods
.method public constructor <init>(Landroid/widget/TextView;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;)V
.locals 1
.param p1 # Landroid/widget/TextView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/view/inputmethod/InputConnection;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p3 # Landroid/view/inputmethod/EditorInfo;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 49
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;
invoke-direct {v0}, Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;-><init>()V
invoke-direct {p0, p1, p2, p3, v0}, Landroidx/emoji2/viewsintegration/EmojiInputConnection;-><init>(Landroid/widget/TextView;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;)V
return-void
.end method
.method public constructor <init>(Landroid/widget/TextView;Landroid/view/inputmethod/InputConnection;Landroid/view/inputmethod/EditorInfo;Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;)V
.locals 1
.param p1 # Landroid/widget/TextView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p2 # Landroid/view/inputmethod/InputConnection;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p3 # Landroid/view/inputmethod/EditorInfo;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p4 # Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
const/4 v0, 0x0
.line 58
invoke-direct {p0, p2, v0}, Landroid/view/inputmethod/InputConnectionWrapper;-><init>(Landroid/view/inputmethod/InputConnection;Z)V
iput-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiInputConnection;->mTextView:Landroid/widget/TextView;
iput-object p4, p0, Landroidx/emoji2/viewsintegration/EmojiInputConnection;->mEmojiCompatDeleteHelper:Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;
.line 61
invoke-virtual {p4, p3}, Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;->updateEditorInfoAttrs(Landroid/view/inputmethod/EditorInfo;)V
return-void
.end method
.method private getEditable()Landroid/text/Editable;
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiInputConnection;->mTextView:Landroid/widget/TextView;
.line 80
invoke-virtual {v0}, Landroid/widget/TextView;->getEditableText()Landroid/text/Editable;
move-result-object v0
return-object v0
.end method
# virtual methods
.method public deleteSurroundingText(II)Z
.locals 6
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiInputConnection;->mEmojiCompatDeleteHelper:Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;
.line 67
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiInputConnection;->getEditable()Landroid/text/Editable;
move-result-object v2
const/4 v5, 0x0
move-object v1, p0
move v3, p1
move v4, p2
.line 66
invoke-virtual/range {v0 .. v5}, Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;->handleDeleteSurroundingText(Landroid/view/inputmethod/InputConnection;Landroid/text/Editable;IIZ)Z
move-result v0
if-nez v0, :cond_1
.line 68
invoke-super {p0, p1, p2}, Landroid/view/inputmethod/InputConnectionWrapper;->deleteSurroundingText(II)Z
move-result p1
if-eqz p1, :cond_0
goto :goto_0
:cond_0
const/4 p1, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p1, 0x1
:goto_1
return p1
.end method
.method public deleteSurroundingTextInCodePoints(II)Z
.locals 6
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiInputConnection;->mEmojiCompatDeleteHelper:Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;
.line 75
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiInputConnection;->getEditable()Landroid/text/Editable;
move-result-object v2
const/4 v5, 0x1
move-object v1, p0
move v3, p1
move v4, p2
.line 74
invoke-virtual/range {v0 .. v5}, Landroidx/emoji2/viewsintegration/EmojiInputConnection$EmojiCompatDeleteHelper;->handleDeleteSurroundingText(Landroid/view/inputmethod/InputConnection;Landroid/text/Editable;IIZ)Z
move-result v0
if-nez v0, :cond_1
.line 76
invoke-super {p0, p1, p2}, Landroid/view/inputmethod/InputConnectionWrapper;->deleteSurroundingTextInCodePoints(II)Z
move-result p1
if-eqz p1, :cond_0
goto :goto_0
:cond_0
const/4 p1, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p1, 0x1
:goto_1
return p1
.end method

View File

@@ -0,0 +1,211 @@
.class Landroidx/emoji2/viewsintegration/EmojiInputFilter$InitCallbackImpl;
.super Landroidx/emoji2/text/EmojiCompat$InitCallback;
.source "SourceFile"
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/emoji2/viewsintegration/EmojiInputFilter;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "InitCallbackImpl"
.end annotation
# instance fields
.field private final mEmojiInputFilterReference:Ljava/lang/ref/Reference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ref/Reference<",
"Landroidx/emoji2/viewsintegration/EmojiInputFilter;",
">;"
}
.end annotation
.end field
.field private final mViewRef:Ljava/lang/ref/Reference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ref/Reference<",
"Landroid/widget/TextView;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Landroid/widget/TextView;Landroidx/emoji2/viewsintegration/EmojiInputFilter;)V
.locals 1
.line 105
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat$InitCallback;-><init>()V
.line 106
new-instance v0, Ljava/lang/ref/WeakReference;
invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
iput-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter$InitCallbackImpl;->mViewRef:Ljava/lang/ref/Reference;
.line 107
new-instance p1, Ljava/lang/ref/WeakReference;
invoke-direct {p1, p2}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
iput-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter$InitCallbackImpl;->mEmojiInputFilterReference:Ljava/lang/ref/Reference;
return-void
.end method
.method private isInputFilterCurrentlyRegisteredOnTextView(Landroid/widget/TextView;Landroid/text/InputFilter;)Z
.locals 3
.param p1 # Landroid/widget/TextView;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.param p2 # Landroid/text/InputFilter;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
const/4 v0, 0x0
if-eqz p2, :cond_3
if-nez p1, :cond_0
goto :goto_1
.line 148
:cond_0
invoke-virtual {p1}, Landroid/widget/TextView;->getFilters()[Landroid/text/InputFilter;
move-result-object p1
if-nez p1, :cond_1
return v0
:cond_1
move v1, v0
.line 153
:goto_0
array-length v2, p1
if-ge v1, v2, :cond_3
.line 154
aget-object v2, p1, v1
if-ne v2, p2, :cond_2
const/4 p1, 0x1
return p1
:cond_2
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_3
:goto_1
return v0
.end method
# virtual methods
.method public onInitialized()V
.locals 4
.line 112
invoke-super {p0}, Landroidx/emoji2/text/EmojiCompat$InitCallback;->onInitialized()V
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter$InitCallbackImpl;->mViewRef:Ljava/lang/ref/Reference;
.line 113
invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/widget/TextView;
iget-object v1, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter$InitCallbackImpl;->mEmojiInputFilterReference:Ljava/lang/ref/Reference;
.line 114
invoke-virtual {v1}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/text/InputFilter;
.line 115
invoke-direct {p0, v0, v1}, Landroidx/emoji2/viewsintegration/EmojiInputFilter$InitCallbackImpl;->isInputFilterCurrentlyRegisteredOnTextView(Landroid/widget/TextView;Landroid/text/InputFilter;)Z
move-result v1
if-nez v1, :cond_0
return-void
.line 116
:cond_0
invoke-virtual {v0}, Landroid/view/View;->isAttachedToWindow()Z
move-result v1
if-eqz v1, :cond_2
.line 117
invoke-virtual {v0}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence;
move-result-object v1
.line 118
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object v2
invoke-virtual {v2, v1}, Landroidx/emoji2/text/EmojiCompat;->process(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
move-result-object v2
if-ne v1, v2, :cond_1
return-void
.line 131
:cond_1
invoke-static {v2}, Landroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I
move-result v1
.line 132
invoke-static {v2}, Landroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I
move-result v3
.line 134
invoke-virtual {v0, v2}, Landroid/widget/TextView;->setText(Ljava/lang/CharSequence;)V
.line 136
instance-of v0, v2, Landroid/text/Spannable;
if-eqz v0, :cond_2
.line 137
check-cast v2, Landroid/text/Spannable;
invoke-static {v2, v1, v3}, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->updateSelection(Landroid/text/Spannable;II)V
:cond_2
return-void
.end method

View File

@@ -0,0 +1,216 @@
.class final Landroidx/emoji2/viewsintegration/EmojiInputFilter;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/text/InputFilter;
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/emoji2/viewsintegration/EmojiInputFilter$InitCallbackImpl;
}
.end annotation
# instance fields
.field private mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
.field private final mTextView:Landroid/widget/TextView;
# direct methods
.method public constructor <init>(Landroid/widget/TextView;)V
.locals 0
.param p1 # Landroid/widget/TextView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 49
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->mTextView:Landroid/widget/TextView;
return-void
.end method
.method private getInitCallback()Landroidx/emoji2/text/EmojiCompat$InitCallback;
.locals 2
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
if-nez v0, :cond_0
.line 94
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiInputFilter$InitCallbackImpl;
iget-object v1, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->mTextView:Landroid/widget/TextView;
invoke-direct {v0, v1, p0}, Landroidx/emoji2/viewsintegration/EmojiInputFilter$InitCallbackImpl;-><init>(Landroid/widget/TextView;Landroidx/emoji2/viewsintegration/EmojiInputFilter;)V
iput-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
:cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
return-object v0
.end method
.method public static updateSelection(Landroid/text/Spannable;II)V
.locals 0
if-ltz p1, :cond_0
if-ltz p2, :cond_0
.line 164
invoke-static {p0, p1, p2}, Landroid/text/Selection;->setSelection(Landroid/text/Spannable;II)V
goto :goto_0
:cond_0
if-ltz p1, :cond_1
.line 166
invoke-static {p0, p1}, Landroid/text/Selection;->setSelection(Landroid/text/Spannable;I)V
goto :goto_0
:cond_1
if-ltz p2, :cond_2
.line 168
invoke-static {p0, p2}, Landroid/text/Selection;->setSelection(Landroid/text/Spannable;I)V
:cond_2
:goto_0
return-void
.end method
# virtual methods
.method public filter(Ljava/lang/CharSequence;IILandroid/text/Spanned;II)Ljava/lang/CharSequence;
.locals 2
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->mTextView:Landroid/widget/TextView;
.line 56
invoke-virtual {v0}, Landroid/view/View;->isInEditMode()Z
move-result v0
if-eqz v0, :cond_0
return-object p1
.line 60
:cond_0
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object v0
invoke-virtual {v0}, Landroidx/emoji2/text/EmojiCompat;->getLoadState()I
move-result v0
if-eqz v0, :cond_5
const/4 v1, 0x1
if-eq v0, v1, :cond_1
const/4 p2, 0x3
if-eq v0, p2, :cond_5
return-object p1
:cond_1
if-nez p6, :cond_2
if-nez p5, :cond_2
.line 63
invoke-interface {p4}, Ljava/lang/CharSequence;->length()I
move-result p4
if-nez p4, :cond_2
iget-object p4, p0, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->mTextView:Landroid/widget/TextView;
.line 64
invoke-virtual {p4}, Landroid/widget/TextView;->getText()Ljava/lang/CharSequence;
move-result-object p4
if-ne p1, p4, :cond_2
goto :goto_1
:cond_2
if-eqz p1, :cond_4
if-nez p2, :cond_3
.line 72
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result p4
if-ne p3, p4, :cond_3
goto :goto_0
.line 75
:cond_3
invoke-interface {p1, p2, p3}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence;
move-result-object p1
.line 77
:goto_0
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object p2
invoke-interface {p1}, Ljava/lang/CharSequence;->length()I
move-result p3
const/4 p4, 0x0
invoke-virtual {p2, p1, p4, p3}, Landroidx/emoji2/text/EmojiCompat;->process(Ljava/lang/CharSequence;II)Ljava/lang/CharSequence;
move-result-object p1
:cond_4
:goto_1
return-object p1
.line 83
:cond_5
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object p2
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->getInitCallback()Landroidx/emoji2/text/EmojiCompat$InitCallback;
move-result-object p3
invoke-virtual {p2, p3}, Landroidx/emoji2/text/EmojiCompat;->registerInitCallback(Landroidx/emoji2/text/EmojiCompat$InitCallback;)V
return-object p1
.end method

View File

@@ -0,0 +1,46 @@
.class public Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/emoji2/viewsintegration/EmojiKeyListener;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "EmojiCompatHandleKeyDownHelper"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 76
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public handleKeyDown(Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
.locals 0
.param p1 # Landroid/text/Editable;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.param p3 # Landroid/view/KeyEvent;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 79
invoke-static {p1, p2, p3}, Landroidx/emoji2/text/EmojiCompat;->handleOnKeyDown(Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
move-result p1
return p1
.end method

View File

@@ -0,0 +1,146 @@
.class final Landroidx/emoji2/viewsintegration/EmojiKeyListener;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/text/method/KeyListener;
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;
}
.end annotation
# instance fields
.field private final mEmojiCompatHandleKeyDownHelper:Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;
.field private final mKeyListener:Landroid/text/method/KeyListener;
# direct methods
.method public constructor <init>(Landroid/text/method/KeyListener;)V
.locals 1
.line 40
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;
invoke-direct {v0}, Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;-><init>()V
invoke-direct {p0, p1, v0}, Landroidx/emoji2/viewsintegration/EmojiKeyListener;-><init>(Landroid/text/method/KeyListener;Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;)V
return-void
.end method
.method public constructor <init>(Landroid/text/method/KeyListener;Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;)V
.locals 0
.line 44
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiKeyListener;->mKeyListener:Landroid/text/method/KeyListener;
iput-object p2, p0, Landroidx/emoji2/viewsintegration/EmojiKeyListener;->mEmojiCompatHandleKeyDownHelper:Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;
return-void
.end method
# virtual methods
.method public clearMetaKeyState(Landroid/view/View;Landroid/text/Editable;I)V
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiKeyListener;->mKeyListener:Landroid/text/method/KeyListener;
.line 73
invoke-interface {v0, p1, p2, p3}, Landroid/text/method/KeyListener;->clearMetaKeyState(Landroid/view/View;Landroid/text/Editable;I)V
return-void
.end method
.method public getInputType()I
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiKeyListener;->mKeyListener:Landroid/text/method/KeyListener;
.line 51
invoke-interface {v0}, Landroid/text/method/KeyListener;->getInputType()I
move-result v0
return v0
.end method
.method public onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiKeyListener;->mEmojiCompatHandleKeyDownHelper:Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;
.line 57
invoke-virtual {v0, p2, p3, p4}, Landroidx/emoji2/viewsintegration/EmojiKeyListener$EmojiCompatHandleKeyDownHelper;->handleKeyDown(Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
move-result v0
if-nez v0, :cond_1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiKeyListener;->mKeyListener:Landroid/text/method/KeyListener;
.line 58
invoke-interface {v0, p1, p2, p3, p4}, Landroid/text/method/KeyListener;->onKeyDown(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
move-result p1
if-eqz p1, :cond_0
goto :goto_0
:cond_0
const/4 p1, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 p1, 0x1
:goto_1
return p1
.end method
.method public onKeyOther(Landroid/view/View;Landroid/text/Editable;Landroid/view/KeyEvent;)Z
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiKeyListener;->mKeyListener:Landroid/text/method/KeyListener;
.line 68
invoke-interface {v0, p1, p2, p3}, Landroid/text/method/KeyListener;->onKeyOther(Landroid/view/View;Landroid/text/Editable;Landroid/view/KeyEvent;)Z
move-result p1
return p1
.end method
.method public onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiKeyListener;->mKeyListener:Landroid/text/method/KeyListener;
.line 63
invoke-interface {v0, p1, p2, p3, p4}, Landroid/text/method/KeyListener;->onKeyUp(Landroid/view/View;Landroid/text/Editable;ILandroid/view/KeyEvent;)Z
move-result p1
return p1
.end method

View File

@@ -0,0 +1,77 @@
.class Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "HelperInternal"
.end annotation
# direct methods
.method public constructor <init>()V
.locals 0
.line 184
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public getFilters([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
.locals 0
.param p1 # [Landroid/text/InputFilter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
return-object p1
.end method
.method public isEnabled()Z
.locals 1
const/4 v0, 0x0
return v0
.end method
.method public setAllCaps(Z)V
.locals 0
return-void
.end method
.method public setEnabled(Z)V
.locals 0
return-void
.end method
.method public updateTransformationMethod()V
.locals 0
return-void
.end method
.method public wrapTransformationMethod(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
.locals 0
.param p1 # Landroid/text/method/TransformationMethod;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
return-object p1
.end method

View File

@@ -0,0 +1,432 @@
.class Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
.super Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
.source "SourceFile"
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "HelperInternal19"
.end annotation
# instance fields
.field private final mEmojiInputFilter:Landroidx/emoji2/viewsintegration/EmojiInputFilter;
.field private mEnabled:Z
.field private final mTextView:Landroid/widget/TextView;
# direct methods
.method public constructor <init>(Landroid/widget/TextView;)V
.locals 1
.line 322
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;-><init>()V
iput-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mTextView:Landroid/widget/TextView;
const/4 v0, 0x1
iput-boolean v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mEnabled:Z
.line 325
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiInputFilter;
invoke-direct {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiInputFilter;-><init>(Landroid/widget/TextView;)V
iput-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mEmojiInputFilter:Landroidx/emoji2/viewsintegration/EmojiInputFilter;
return-void
.end method
.method private addEmojiInputFilterIfMissing([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
.locals 5
.param p1 # [Landroid/text/InputFilter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
.line 365
array-length v0, p1
const/4 v1, 0x0
move v2, v1
:goto_0
if-ge v2, v0, :cond_1
.line 367
aget-object v3, p1, v2
iget-object v4, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mEmojiInputFilter:Landroidx/emoji2/viewsintegration/EmojiInputFilter;
if-ne v3, v4, :cond_0
return-object p1
:cond_0
add-int/lit8 v2, v2, 0x1
goto :goto_0
.line 371
:cond_1
array-length v2, p1
add-int/lit8 v2, v2, 0x1
new-array v2, v2, [Landroid/text/InputFilter;
.line 372
invoke-static {p1, v1, v2, v1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iget-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mEmojiInputFilter:Landroidx/emoji2/viewsintegration/EmojiInputFilter;
.line 373
aput-object p1, v2, v0
return-object v2
.end method
.method private getEmojiInputFilterPositionArray([Landroid/text/InputFilter;)Landroid/util/SparseArray;
.locals 4
.param p1 # [Landroid/text/InputFilter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Landroid/text/InputFilter;",
")",
"Landroid/util/SparseArray<",
"Landroid/text/InputFilter;",
">;"
}
.end annotation
.line 409
new-instance v0, Landroid/util/SparseArray;
const/4 v1, 0x1
invoke-direct {v0, v1}, Landroid/util/SparseArray;-><init>(I)V
const/4 v1, 0x0
.line 410
:goto_0
array-length v2, p1
if-ge v1, v2, :cond_1
.line 411
aget-object v2, p1, v1
instance-of v3, v2, Landroidx/emoji2/viewsintegration/EmojiInputFilter;
if-eqz v3, :cond_0
.line 412
invoke-virtual {v0, v1, v2}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
:cond_0
add-int/lit8 v1, v1, 0x1
goto :goto_0
:cond_1
return-object v0
.end method
.method private removeEmojiInputFilterIfPresent([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
.locals 6
.param p1 # [Landroid/text/InputFilter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
.line 385
invoke-direct {p0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->getEmojiInputFilterPositionArray([Landroid/text/InputFilter;)Landroid/util/SparseArray;
move-result-object v0
.line 386
invoke-virtual {v0}, Landroid/util/SparseArray;->size()I
move-result v1
if-nez v1, :cond_0
return-object p1
.line 391
:cond_0
array-length v1, p1
.line 392
array-length v2, p1
invoke-virtual {v0}, Landroid/util/SparseArray;->size()I
move-result v3
sub-int/2addr v2, v3
.line 393
new-array v2, v2, [Landroid/text/InputFilter;
const/4 v3, 0x0
move v4, v3
:goto_0
if-ge v3, v1, :cond_2
.line 396
invoke-virtual {v0, v3}, Landroid/util/SparseArray;->indexOfKey(I)I
move-result v5
if-gez v5, :cond_1
.line 397
aget-object v5, p1, v3
aput-object v5, v2, v4
add-int/lit8 v4, v4, 0x1
:cond_1
add-int/lit8 v3, v3, 0x1
goto :goto_0
:cond_2
return-object v2
.end method
.method private unwrapForDisabled(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
.locals 1
.param p1 # Landroid/text/method/TransformationMethod;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
.line 435
instance-of v0, p1, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;
if-eqz v0, :cond_0
.line 436
check-cast p1, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;
.line 438
invoke-virtual {p1}, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;->getOriginalTransformationMethod()Landroid/text/method/TransformationMethod;
move-result-object p1
:cond_0
return-object p1
.end method
.method private updateFilters()V
.locals 2
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mTextView:Landroid/widget/TextView;
.line 342
invoke-virtual {v0}, Landroid/widget/TextView;->getFilters()[Landroid/text/InputFilter;
move-result-object v0
iget-object v1, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mTextView:Landroid/widget/TextView;
.line 343
invoke-virtual {p0, v0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->getFilters([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
move-result-object v0
invoke-virtual {v1, v0}, Landroid/widget/TextView;->setFilters([Landroid/text/InputFilter;)V
return-void
.end method
.method private wrapForEnabled(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
.locals 1
.param p1 # Landroid/text/method/TransformationMethod;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
.line 452
instance-of v0, p1, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;
if-eqz v0, :cond_0
return-object p1
.line 454
:cond_0
instance-of v0, p1, Landroid/text/method/PasswordTransformationMethod;
if-eqz v0, :cond_1
return-object p1
.line 457
:cond_1
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;
invoke-direct {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;-><init>(Landroid/text/method/TransformationMethod;)V
return-object v0
.end method
# virtual methods
.method public getFilters([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
.locals 1
.param p1 # [Landroid/text/InputFilter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
iget-boolean v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mEnabled:Z
if-nez v0, :cond_0
.line 351
invoke-direct {p0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->removeEmojiInputFilterIfPresent([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
move-result-object p1
return-object p1
.line 353
:cond_0
invoke-direct {p0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->addEmojiInputFilterIfMissing([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
move-result-object p1
return-object p1
.end method
.method public isEnabled()Z
.locals 1
iget-boolean v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mEnabled:Z
return v0
.end method
.method public setAllCaps(Z)V
.locals 0
if-eqz p1, :cond_0
.line 466
invoke-virtual {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->updateTransformationMethod()V
:cond_0
return-void
.end method
.method public setEnabled(Z)V
.locals 0
iput-boolean p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mEnabled:Z
.line 473
invoke-virtual {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->updateTransformationMethod()V
.line 474
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->updateFilters()V
return-void
.end method
.method public setEnabledUnsafe(Z)V
.locals 0
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
iput-boolean p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mEnabled:Z
return-void
.end method
.method public updateTransformationMethod()V
.locals 2
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mTextView:Landroid/widget/TextView;
.line 334
invoke-virtual {v0}, Landroid/widget/TextView;->getTransformationMethod()Landroid/text/method/TransformationMethod;
move-result-object v0
invoke-virtual {p0, v0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->wrapTransformationMethod(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
move-result-object v0
iget-object v1, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mTextView:Landroid/widget/TextView;
.line 335
invoke-virtual {v1, v0}, Landroid/widget/TextView;->setTransformationMethod(Landroid/text/method/TransformationMethod;)V
return-void
.end method
.method public wrapTransformationMethod(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
.locals 1
.param p1 # Landroid/text/method/TransformationMethod;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
iget-boolean v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->mEnabled:Z
if-eqz v0, :cond_0
.line 423
invoke-direct {p0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->wrapForEnabled(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
move-result-object p1
return-object p1
.line 425
:cond_0
invoke-direct {p0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->unwrapForDisabled(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,195 @@
.class Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;
.super Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
.source "SourceFile"
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "SkippingHelper19"
.end annotation
# instance fields
.field private final mHelperDelegate:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
# direct methods
.method public constructor <init>(Landroid/widget/TextView;)V
.locals 1
.line 232
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;-><init>()V
.line 233
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
invoke-direct {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;-><init>(Landroid/widget/TextView;)V
iput-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->mHelperDelegate:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
return-void
.end method
.method private skipBecauseEmojiCompatNotInitialized()Z
.locals 1
.line 237
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->isConfigured()Z
move-result v0
xor-int/lit8 v0, v0, 0x1
return v0
.end method
# virtual methods
.method public getFilters([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
.locals 1
.param p1 # [Landroid/text/InputFilter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
.line 261
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->skipBecauseEmojiCompatNotInitialized()Z
move-result v0
if-eqz v0, :cond_0
return-object p1
:cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->mHelperDelegate:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
.line 264
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->getFilters([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
move-result-object p1
return-object p1
.end method
.method public isEnabled()Z
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->mHelperDelegate:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
.line 312
invoke-virtual {v0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->isEnabled()Z
move-result v0
return v0
.end method
.method public setAllCaps(Z)V
.locals 1
.line 289
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->skipBecauseEmojiCompatNotInitialized()Z
move-result v0
if-eqz v0, :cond_0
return-void
:cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->mHelperDelegate:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
.line 292
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->setAllCaps(Z)V
return-void
.end method
.method public setEnabled(Z)V
.locals 1
.line 303
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->skipBecauseEmojiCompatNotInitialized()Z
move-result v0
if-eqz v0, :cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->mHelperDelegate:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
.line 304
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->setEnabledUnsafe(Z)V
goto :goto_0
:cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->mHelperDelegate:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
.line 306
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->setEnabled(Z)V
:goto_0
return-void
.end method
.method public updateTransformationMethod()V
.locals 1
.line 247
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->skipBecauseEmojiCompatNotInitialized()Z
move-result v0
if-eqz v0, :cond_0
return-void
:cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->mHelperDelegate:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
.line 250
invoke-virtual {v0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->updateTransformationMethod()V
return-void
.end method
.method public wrapTransformationMethod(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
.locals 1
.param p1 # Landroid/text/method/TransformationMethod;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
.line 276
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->skipBecauseEmojiCompatNotInitialized()Z
move-result v0
if-eqz v0, :cond_0
return-object p1
:cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;->mHelperDelegate:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
.line 279
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;->wrapTransformationMethod(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,158 @@
.class public final Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;,
Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;,
Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
}
.end annotation
# instance fields
.field private final mHelper:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
# direct methods
.method public constructor <init>(Landroid/widget/TextView;)V
.locals 1
.param p1 # Landroid/widget/TextView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
const/4 v0, 0x1
.line 75
invoke-direct {p0, p1, v0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;-><init>(Landroid/widget/TextView;Z)V
return-void
.end method
.method public constructor <init>(Landroid/widget/TextView;Z)V
.locals 1
.param p1 # Landroid/widget/TextView;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 96
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const-string v0, "textView cannot be null"
.line 97
invoke-static {p1, v0}, Landroidx/core/util/Preconditions;->checkNotNull(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
if-nez p2, :cond_0
.line 101
new-instance p2, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;
invoke-direct {p2, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$SkippingHelper19;-><init>(Landroid/widget/TextView;)V
iput-object p2, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
goto :goto_0
.line 103
:cond_0
new-instance p2, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;
invoke-direct {p2, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal19;-><init>(Landroid/widget/TextView;)V
iput-object p2, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
:goto_0
return-void
.end method
# virtual methods
.method public getFilters([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
.locals 1
.param p1 # [Landroid/text/InputFilter;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.annotation build Landroidx/annotation/NonNull;
.end annotation
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
.line 132
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;->getFilters([Landroid/text/InputFilter;)[Landroid/text/InputFilter;
move-result-object p1
return-object p1
.end method
.method public isEnabled()Z
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
.line 180
invoke-virtual {v0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;->isEnabled()Z
move-result v0
return v0
.end method
.method public setAllCaps(Z)V
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
.line 173
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;->setAllCaps(Z)V
return-void
.end method
.method public setEnabled(Z)V
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
.line 163
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;->setEnabled(Z)V
return-void
.end method
.method public updateTransformationMethod()V
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
.line 115
invoke-virtual {v0}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;->updateTransformationMethod()V
return-void
.end method
.method public wrapTransformationMethod(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
.locals 1
.param p1 # Landroid/text/method/TransformationMethod;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.annotation build Landroidx/annotation/Nullable;
.end annotation
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper;->mHelper:Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;
.line 145
invoke-virtual {v0, p1}, Landroidx/emoji2/viewsintegration/EmojiTextViewHelper$HelperInternal;->wrapTransformationMethod(Landroid/text/method/TransformationMethod;)Landroid/text/method/TransformationMethod;
move-result-object p1
return-object p1
.end method

View File

@@ -0,0 +1,73 @@
.class Landroidx/emoji2/viewsintegration/EmojiTextWatcher$InitCallbackImpl;
.super Landroidx/emoji2/text/EmojiCompat$InitCallback;
.source "SourceFile"
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation system Ldalvik/annotation/EnclosingClass;
value = Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
name = "InitCallbackImpl"
.end annotation
# instance fields
.field private final mViewRef:Ljava/lang/ref/Reference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/ref/Reference<",
"Landroid/widget/EditText;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>(Landroid/widget/EditText;)V
.locals 1
.line 138
invoke-direct {p0}, Landroidx/emoji2/text/EmojiCompat$InitCallback;-><init>()V
.line 139
new-instance v0, Ljava/lang/ref/WeakReference;
invoke-direct {v0, p1}, Ljava/lang/ref/WeakReference;-><init>(Ljava/lang/Object;)V
iput-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher$InitCallbackImpl;->mViewRef:Ljava/lang/ref/Reference;
return-void
.end method
# virtual methods
.method public onInitialized()V
.locals 2
.line 144
invoke-super {p0}, Landroidx/emoji2/text/EmojiCompat$InitCallback;->onInitialized()V
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher$InitCallbackImpl;->mViewRef:Ljava/lang/ref/Reference;
.line 145
invoke-virtual {v0}, Ljava/lang/ref/Reference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/widget/EditText;
const/4 v1, 0x1
.line 146
invoke-static {v0, v1}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->processTextOnEnablingEvent(Landroid/widget/EditText;I)V
return-void
.end method

View File

@@ -0,0 +1,354 @@
.class final Landroidx/emoji2/viewsintegration/EmojiTextWatcher;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/text/TextWatcher;
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroidx/emoji2/viewsintegration/EmojiTextWatcher$InitCallbackImpl;
}
.end annotation
# instance fields
.field private final mEditText:Landroid/widget/EditText;
.field private mEmojiReplaceStrategy:I
.field private mEnabled:Z
.field private final mExpectInitializedEmojiCompat:Z
.field private mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
.field private mMaxEmojiCount:I
# direct methods
.method public constructor <init>(Landroid/widget/EditText;Z)V
.locals 1
.line 49
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const v0, 0x7fffffff
iput v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mMaxEmojiCount:I
const/4 v0, 0x0
iput v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEmojiReplaceStrategy:I
iput-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEditText:Landroid/widget/EditText;
iput-boolean p2, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mExpectInitializedEmojiCompat:Z
const/4 p1, 0x1
iput-boolean p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEnabled:Z
return-void
.end method
.method private getInitCallback()Landroidx/emoji2/text/EmojiCompat$InitCallback;
.locals 2
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
if-nez v0, :cond_0
.line 113
new-instance v0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher$InitCallbackImpl;
iget-object v1, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEditText:Landroid/widget/EditText;
invoke-direct {v0, v1}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher$InitCallbackImpl;-><init>(Landroid/widget/EditText;)V
iput-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
:cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
return-object v0
.end method
.method public static processTextOnEnablingEvent(Landroid/widget/EditText;I)V
.locals 2
.param p0 # Landroid/widget/EditText;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
const/4 v0, 0x1
if-ne p1, v0, :cond_0
if-eqz p0, :cond_0
.line 152
invoke-virtual {p0}, Landroid/view/View;->isAttachedToWindow()Z
move-result p1
if-eqz p1, :cond_0
.line 153
invoke-virtual {p0}, Landroid/widget/TextView;->getEditableText()Landroid/text/Editable;
move-result-object p0
.line 155
invoke-static {p0}, Landroid/text/Selection;->getSelectionStart(Ljava/lang/CharSequence;)I
move-result p1
.line 156
invoke-static {p0}, Landroid/text/Selection;->getSelectionEnd(Ljava/lang/CharSequence;)I
move-result v0
.line 158
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object v1
invoke-virtual {v1, p0}, Landroidx/emoji2/text/EmojiCompat;->process(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
.line 160
invoke-static {p0, p1, v0}, Landroidx/emoji2/viewsintegration/EmojiInputFilter;->updateSelection(Landroid/text/Spannable;II)V
:cond_0
return-void
.end method
.method private shouldSkipForDisabledOrNotConfigured()Z
.locals 1
iget-boolean v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEnabled:Z
if-eqz v0, :cond_1
iget-boolean v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mExpectInitializedEmojiCompat:Z
if-nez v0, :cond_0
.line 98
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->isConfigured()Z
move-result v0
if-nez v0, :cond_0
goto :goto_0
:cond_0
const/4 v0, 0x0
goto :goto_1
:cond_1
:goto_0
const/4 v0, 0x1
:goto_1
return v0
.end method
# virtual methods
.method public afterTextChanged(Landroid/text/Editable;)V
.locals 0
return-void
.end method
.method public beforeTextChanged(Ljava/lang/CharSequence;III)V
.locals 0
return-void
.end method
.method public getEmojiReplaceStrategy()I
.locals 1
iget v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEmojiReplaceStrategy:I
return v0
.end method
.method public getMaxEmojiCount()I
.locals 1
iget v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mMaxEmojiCount:I
return v0
.end method
.method public isEnabled()Z
.locals 1
iget-boolean v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEnabled:Z
return v0
.end method
.method public onTextChanged(Ljava/lang/CharSequence;III)V
.locals 6
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEditText:Landroid/widget/EditText;
.line 74
invoke-virtual {v0}, Landroid/view/View;->isInEditMode()Z
move-result v0
if-nez v0, :cond_3
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->shouldSkipForDisabledOrNotConfigured()Z
move-result v0
if-eqz v0, :cond_0
goto :goto_0
:cond_0
if-gt p3, p4, :cond_3
.line 79
instance-of p3, p1, Landroid/text/Spannable;
if-eqz p3, :cond_3
.line 80
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object p3
invoke-virtual {p3}, Landroidx/emoji2/text/EmojiCompat;->getLoadState()I
move-result p3
if-eqz p3, :cond_2
const/4 v0, 0x1
if-eq p3, v0, :cond_1
const/4 p1, 0x3
if-eq p3, p1, :cond_2
goto :goto_0
.line 82
:cond_1
move-object v1, p1
check-cast v1, Landroid/text/Spannable;
.line 83
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object v0
add-int v3, p2, p4
iget v4, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mMaxEmojiCount:I
iget v5, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEmojiReplaceStrategy:I
move v2, p2
invoke-virtual/range {v0 .. v5}, Landroidx/emoji2/text/EmojiCompat;->process(Ljava/lang/CharSequence;IIII)Ljava/lang/CharSequence;
goto :goto_0
.line 88
:cond_2
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object p1
invoke-direct {p0}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->getInitCallback()Landroidx/emoji2/text/EmojiCompat$InitCallback;
move-result-object p2
invoke-virtual {p1, p2}, Landroidx/emoji2/text/EmojiCompat;->registerInitCallback(Landroidx/emoji2/text/EmojiCompat$InitCallback;)V
:cond_3
:goto_0
return-void
.end method
.method public setEmojiReplaceStrategy(I)V
.locals 0
iput p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEmojiReplaceStrategy:I
return-void
.end method
.method public setEnabled(Z)V
.locals 2
iget-boolean v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEnabled:Z
if-eq v0, p1, :cond_1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
if-eqz v0, :cond_0
.line 125
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object v0
iget-object v1, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mInitCallback:Landroidx/emoji2/text/EmojiCompat$InitCallback;
invoke-virtual {v0, v1}, Landroidx/emoji2/text/EmojiCompat;->unregisterInitCallback(Landroidx/emoji2/text/EmojiCompat$InitCallback;)V
:cond_0
iput-boolean p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEnabled:Z
if-eqz p1, :cond_1
iget-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mEditText:Landroid/widget/EditText;
.line 129
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object v0
invoke-virtual {v0}, Landroidx/emoji2/text/EmojiCompat;->getLoadState()I
move-result v0
invoke-static {p1, v0}, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->processTextOnEnablingEvent(Landroid/widget/EditText;I)V
:cond_1
return-void
.end method
.method public setMaxEmojiCount(I)V
.locals 0
iput p1, p0, Landroidx/emoji2/viewsintegration/EmojiTextWatcher;->mMaxEmojiCount:I
return-void
.end method

View File

@@ -0,0 +1,139 @@
.class Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Landroid/text/method/TransformationMethod;
# annotations
.annotation build Landroidx/annotation/RequiresApi;
value = 0x13
.end annotation
.annotation build Landroidx/annotation/RestrictTo;
value = {
.enum Landroidx/annotation/RestrictTo$Scope;->LIBRARY:Landroidx/annotation/RestrictTo$Scope;
}
.end annotation
# instance fields
.field private final mTransformationMethod:Landroid/text/method/TransformationMethod;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end field
# direct methods
.method public constructor <init>(Landroid/text/method/TransformationMethod;)V
.locals 0
.param p1 # Landroid/text/method/TransformationMethod;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.line 39
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput-object p1, p0, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;->mTransformationMethod:Landroid/text/method/TransformationMethod;
return-void
.end method
# virtual methods
.method public getOriginalTransformationMethod()Landroid/text/method/TransformationMethod;
.locals 1
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;->mTransformationMethod:Landroid/text/method/TransformationMethod;
return-object v0
.end method
.method public getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
.locals 1
.param p1 # Ljava/lang/CharSequence;
.annotation build Landroidx/annotation/Nullable;
.end annotation
.end param
.param p2 # Landroid/view/View;
.annotation build Landroidx/annotation/NonNull;
.end annotation
.end param
.line 45
invoke-virtual {p2}, Landroid/view/View;->isInEditMode()Z
move-result v0
if-eqz v0, :cond_0
return-object p1
:cond_0
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;->mTransformationMethod:Landroid/text/method/TransformationMethod;
if-eqz v0, :cond_1
.line 50
invoke-interface {v0, p1, p2}, Landroid/text/method/TransformationMethod;->getTransformation(Ljava/lang/CharSequence;Landroid/view/View;)Ljava/lang/CharSequence;
move-result-object p1
:cond_1
if-eqz p1, :cond_3
.line 54
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object p2
invoke-virtual {p2}, Landroidx/emoji2/text/EmojiCompat;->getLoadState()I
move-result p2
const/4 v0, 0x1
if-eq p2, v0, :cond_2
goto :goto_0
.line 56
:cond_2
invoke-static {}, Landroidx/emoji2/text/EmojiCompat;->get()Landroidx/emoji2/text/EmojiCompat;
move-result-object p2
invoke-virtual {p2, p1}, Landroidx/emoji2/text/EmojiCompat;->process(Ljava/lang/CharSequence;)Ljava/lang/CharSequence;
move-result-object p1
:cond_3
:goto_0
return-object p1
.end method
.method public onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V
.locals 6
iget-object v0, p0, Landroidx/emoji2/viewsintegration/EmojiTransformationMethod;->mTransformationMethod:Landroid/text/method/TransformationMethod;
if-eqz v0, :cond_0
move-object v1, p1
move-object v2, p2
move v3, p3
move v4, p4
move-object v5, p5
.line 71
invoke-interface/range {v0 .. v5}, Landroid/text/method/TransformationMethod;->onFocusChanged(Landroid/view/View;Ljava/lang/CharSequence;ZILandroid/graphics/Rect;)V
:cond_0
return-void
.end method

View File

@@ -0,0 +1,13 @@
.class public final Landroidx/emoji2/viewsintegration/R;
.super Ljava/lang/Object;
.source "SourceFile"
# direct methods
.method private constructor <init>()V
.locals 0
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method