final class android.widget.SelectionActionModeHelper$SelectionTracker
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: android.widget.SelectionActionModeHelper$SelectionTracker
super_class: java.lang.Object
{
private final android.widget.TextView mTextView;
descriptor: Landroid/widget/TextView;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.widget.SelectionActionModeHelper$SelectionMetricsLogger mLogger;
descriptor: Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
flags: (0x0002) ACC_PRIVATE
private int mOriginalStart;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mOriginalEnd;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mSelectionStart;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mSelectionEnd;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean mAllowReset;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable mDelayedLogAbandon;
descriptor: Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(android.widget.TextView);
descriptor: (Landroid/widget/TextView;)V
flags: (0x0000)
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable
dup
aload 0
invokespecial android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable.<init>:(Landroid/widget/SelectionActionModeHelper$SelectionTracker;)V
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mDelayedLogAbandon:Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;
2: aload 0
aload 1
invokestatic com.android.internal.util.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.widget.TextView
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mTextView:Landroid/widget/TextView;
3: aload 0
new android.widget.SelectionActionModeHelper$SelectionMetricsLogger
dup
aload 1
invokespecial android.widget.SelectionActionModeHelper$SelectionMetricsLogger.<init>:(Landroid/widget/TextView;)V
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mLogger:Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
0 5 1 textView Landroid/widget/TextView;
MethodParameters:
Name Flags
textView
public void onOriginalSelection(java.lang.CharSequence, int, int, boolean);
descriptor: (Ljava/lang/CharSequence;IIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mDelayedLogAbandon:Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable.flush:()V
1: aload 0
aload 0
iload 2
dup_x1
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionStart:I
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mOriginalStart:I
2: aload 0
aload 0
iload 3
dup_x1
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionEnd:I
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mOriginalEnd:I
3: aload 0
iconst_0
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mAllowReset:Z
4: aload 0
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.maybeInvalidateLogger:()V
5: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mLogger:Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mTextView:Landroid/widget/TextView;
invokevirtual android.widget.TextView.getTextClassificationSession:()Landroid/view/textclassifier/TextClassifier;
6: aload 1
iload 2
7: iload 4
ifeq 8
iconst_2
goto 9
StackMap locals: android.widget.SelectionActionModeHelper$SelectionTracker java.lang.CharSequence int int int
StackMap stack: android.widget.SelectionActionModeHelper$SelectionMetricsLogger android.view.textclassifier.TextClassifier java.lang.CharSequence int
8: iconst_1
9: StackMap locals: android.widget.SelectionActionModeHelper$SelectionTracker java.lang.CharSequence int int int
StackMap stack: android.widget.SelectionActionModeHelper$SelectionMetricsLogger android.view.textclassifier.TextClassifier java.lang.CharSequence int int
invokevirtual android.widget.SelectionActionModeHelper$SelectionMetricsLogger.logSelectionStarted:(Landroid/view/textclassifier/TextClassifier;Ljava/lang/CharSequence;II)V
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
0 11 1 text Ljava/lang/CharSequence;
0 11 2 selectionStart I
0 11 3 selectionEnd I
0 11 4 isLink Z
MethodParameters:
Name Flags
text
selectionStart
selectionEnd
isLink
public void onSmartSelection(android.widget.SelectionActionModeHelper$SelectionResult);
descriptor: (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onClassifiedSelection:(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
1: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mLogger:Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
2: aload 1
getfield android.widget.SelectionActionModeHelper$SelectionResult.mStart:I
aload 1
getfield android.widget.SelectionActionModeHelper$SelectionResult.mEnd:I
aload 1
getfield android.widget.SelectionActionModeHelper$SelectionResult.mClassification:Landroid/view/textclassifier/TextClassification;
aload 1
getfield android.widget.SelectionActionModeHelper$SelectionResult.mSelection:Landroid/view/textclassifier/TextSelection;
3: invokevirtual android.widget.SelectionActionModeHelper$SelectionMetricsLogger.logSelectionModified:(IILandroid/view/textclassifier/TextClassification;Landroid/view/textclassifier/TextSelection;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
0 5 1 result Landroid/widget/SelectionActionModeHelper$SelectionResult;
MethodParameters:
Name Flags
result
public void onLinkSelected(android.widget.SelectionActionModeHelper$SelectionResult);
descriptor: (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onClassifiedSelection:(Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
0 2 1 result Landroid/widget/SelectionActionModeHelper$SelectionResult;
MethodParameters:
Name Flags
result
private void onClassifiedSelection(android.widget.SelectionActionModeHelper$SelectionResult);
descriptor: (Landroid/widget/SelectionActionModeHelper$SelectionResult;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.isSelectionStarted:()Z
ifeq 6
1: aload 0
aload 1
getfield android.widget.SelectionActionModeHelper$SelectionResult.mStart:I
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionStart:I
2: aload 0
aload 1
getfield android.widget.SelectionActionModeHelper$SelectionResult.mEnd:I
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionEnd:I
3: aload 0
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionStart:I
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mOriginalStart:I
if_icmpne 4
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionEnd:I
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mOriginalEnd:I
if_icmpne 4
iconst_0
goto 5
StackMap locals:
StackMap stack: android.widget.SelectionActionModeHelper$SelectionTracker
4: iconst_1
StackMap locals: android.widget.SelectionActionModeHelper$SelectionTracker android.widget.SelectionActionModeHelper$SelectionResult
StackMap stack: android.widget.SelectionActionModeHelper$SelectionTracker int
5: putfield android.widget.SelectionActionModeHelper$SelectionTracker.mAllowReset:Z
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
0 7 1 result Landroid/widget/SelectionActionModeHelper$SelectionResult;
MethodParameters:
Name Flags
result
public void onSelectionUpdated(int, int, android.view.textclassifier.TextClassification);
descriptor: (IILandroid/view/textclassifier/TextClassification;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.isSelectionStarted:()Z
ifeq 5
1: aload 0
iload 1
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionStart:I
2: aload 0
iload 2
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionEnd:I
3: aload 0
iconst_0
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mAllowReset:Z
4: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mLogger:Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
iload 1
iload 2
aload 3
aconst_null
invokevirtual android.widget.SelectionActionModeHelper$SelectionMetricsLogger.logSelectionModified:(IILandroid/view/textclassifier/TextClassification;Landroid/view/textclassifier/TextSelection;)V
5: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
0 6 1 selectionStart I
0 6 2 selectionEnd I
0 6 3 classification Landroid/view/textclassifier/TextClassification;
MethodParameters:
Name Flags
selectionStart
selectionEnd
classification
public void onSelectionDestroyed();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mAllowReset:Z
1: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mDelayedLogAbandon:Landroid/widget/SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable;
bipush 100
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable.schedule:(I)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
public void onSelectionAction(int, int, int, android.view.textclassifier.TextClassification);
descriptor: (IIILandroid/view/textclassifier/TextClassification;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.isSelectionStarted:()Z
ifeq 3
1: aload 0
iconst_0
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mAllowReset:Z
2: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mLogger:Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
iload 1
iload 2
iload 3
aload 4
invokevirtual android.widget.SelectionActionModeHelper$SelectionMetricsLogger.logSelectionAction:(IIILandroid/view/textclassifier/TextClassification;)V
3: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
0 4 1 selectionStart I
0 4 2 selectionEnd I
0 4 3 action I
0 4 4 classification Landroid/view/textclassifier/TextClassification;
MethodParameters:
Name Flags
selectionStart
selectionEnd
action
classification
public boolean resetSelection(int, android.widget.Editor);
descriptor: (ILandroid/widget/Editor;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokevirtual android.widget.Editor.getTextView:()Landroid/widget/TextView;
astore 3
start local 3 1: aload 0
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.isSelectionStarted:()Z
ifeq 15
2: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mAllowReset:Z
ifeq 15
3: iload 1
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionStart:I
if_icmplt 15
iload 1
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionEnd:I
if_icmpgt 15
4: aload 3
invokestatic android.widget.SelectionActionModeHelper.getText:(Landroid/widget/TextView;)Ljava/lang/CharSequence;
instanceof android.text.Spannable
ifeq 15
5: aload 0
iconst_0
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mAllowReset:Z
6: aload 2
invokevirtual android.widget.Editor.selectCurrentWord:()Z
istore 4
start local 4 7: iload 4
ifeq 14
8: aload 0
aload 2
invokevirtual android.widget.Editor.getTextView:()Landroid/widget/TextView;
invokevirtual android.widget.TextView.getSelectionStart:()I
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionStart:I
9: aload 0
aload 2
invokevirtual android.widget.Editor.getTextView:()Landroid/widget/TextView;
invokevirtual android.widget.TextView.getSelectionEnd:()I
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionEnd:I
10: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mLogger:Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
11: aload 3
invokevirtual android.widget.TextView.getSelectionStart:()I
aload 3
invokevirtual android.widget.TextView.getSelectionEnd:()I
12: sipush 201
aconst_null
13: invokevirtual android.widget.SelectionActionModeHelper$SelectionMetricsLogger.logSelectionAction:(IIILandroid/view/textclassifier/TextClassification;)V
14: StackMap locals: android.widget.TextView int
StackMap stack:
iload 4
ireturn
end local 4 15: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
0 16 1 textIndex I
0 16 2 editor Landroid/widget/Editor;
1 16 3 textView Landroid/widget/TextView;
7 15 4 selected Z
MethodParameters:
Name Flags
textIndex
editor
public void onTextChanged(int, int, android.view.textclassifier.TextClassification);
descriptor: (IILandroid/view/textclassifier/TextClassification;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.isSelectionStarted:()Z
ifeq 2
iload 1
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionStart:I
if_icmpne 2
iload 2
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionEnd:I
if_icmpne 2
1: aload 0
iload 1
iload 2
bipush 100
aload 3
invokevirtual android.widget.SelectionActionModeHelper$SelectionTracker.onSelectionAction:(IIILandroid/view/textclassifier/TextClassification;)V
2: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
0 3 1 start I
0 3 2 end I
0 3 3 classification Landroid/view/textclassifier/TextClassification;
MethodParameters:
Name Flags
start
end
classification
private void maybeInvalidateLogger();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mLogger:Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
invokevirtual android.widget.SelectionActionModeHelper$SelectionMetricsLogger.isEditTextLogger:()Z
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mTextView:Landroid/widget/TextView;
invokevirtual android.widget.TextView.isTextEditable:()Z
if_icmpeq 2
1: aload 0
new android.widget.SelectionActionModeHelper$SelectionMetricsLogger
dup
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mTextView:Landroid/widget/TextView;
invokespecial android.widget.SelectionActionModeHelper$SelectionMetricsLogger.<init>:(Landroid/widget/TextView;)V
putfield android.widget.SelectionActionModeHelper$SelectionTracker.mLogger:Landroid/widget/SelectionActionModeHelper$SelectionMetricsLogger;
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
private boolean isSelectionStarted();
descriptor: ()Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionStart:I
iflt 1
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionEnd:I
iflt 1
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionStart:I
aload 0
getfield android.widget.SelectionActionModeHelper$SelectionTracker.mSelectionEnd:I
if_icmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/widget/SelectionActionModeHelper$SelectionTracker;
}
SourceFile: "SelectionActionModeHelper.java"
NestHost: android.widget.SelectionActionModeHelper
InnerClasses:
private final SelectionMetricsLogger = android.widget.SelectionActionModeHelper$SelectionMetricsLogger of android.widget.SelectionActionModeHelper
private final SelectionResult = android.widget.SelectionActionModeHelper$SelectionResult of android.widget.SelectionActionModeHelper
private final SelectionTracker = android.widget.SelectionActionModeHelper$SelectionTracker of android.widget.SelectionActionModeHelper
private final LogAbandonRunnable = android.widget.SelectionActionModeHelper$SelectionTracker$LogAbandonRunnable of android.widget.SelectionActionModeHelper$SelectionTracker