public class android.widget.AlphabetIndexer extends android.database.DataSetObserver implements android.widget.SectionIndexer
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.widget.AlphabetIndexer
super_class: android.database.DataSetObserver
{
protected android.database.Cursor mDataCursor;
descriptor: Landroid/database/Cursor;
flags: (0x0004) ACC_PROTECTED
protected int mColumnIndex;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected java.lang.CharSequence mAlphabet;
descriptor: Ljava/lang/CharSequence;
flags: (0x0004) ACC_PROTECTED
private int mAlphabetLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private android.util.SparseIntArray mAlphaMap;
descriptor: Landroid/util/SparseIntArray;
flags: (0x0002) ACC_PRIVATE
private java.text.Collator mCollator;
descriptor: Ljava/text/Collator;
flags: (0x0002) ACC_PRIVATE
private java.lang.String[] mAlphabetArray;
descriptor: [Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
public void <init>(android.database.Cursor, int, java.lang.CharSequence);
descriptor: (Landroid/database/Cursor;ILjava/lang/CharSequence;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial android.database.DataSetObserver.<init>:()V
1: aload 0
aload 1
putfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
2: aload 0
iload 2
putfield android.widget.AlphabetIndexer.mColumnIndex:I
3: aload 0
aload 3
putfield android.widget.AlphabetIndexer.mAlphabet:Ljava/lang/CharSequence;
4: aload 0
aload 3
invokeinterface java.lang.CharSequence.length:()I
putfield android.widget.AlphabetIndexer.mAlphabetLength:I
5: aload 0
aload 0
getfield android.widget.AlphabetIndexer.mAlphabetLength:I
anewarray java.lang.String
putfield android.widget.AlphabetIndexer.mAlphabetArray:[Ljava/lang/String;
6: iconst_0
istore 4
start local 4 7: goto 10
8: StackMap locals: android.widget.AlphabetIndexer android.database.Cursor int java.lang.CharSequence int
StackMap stack:
aload 0
getfield android.widget.AlphabetIndexer.mAlphabetArray:[Ljava/lang/String;
iload 4
aload 0
getfield android.widget.AlphabetIndexer.mAlphabet:Ljava/lang/CharSequence;
iload 4
invokeinterface java.lang.CharSequence.charAt:(I)C
invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
aastore
9: iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
aload 0
getfield android.widget.AlphabetIndexer.mAlphabetLength:I
if_icmplt 8
end local 4 11: aload 0
new android.util.SparseIntArray
dup
aload 0
getfield android.widget.AlphabetIndexer.mAlphabetLength:I
invokespecial android.util.SparseIntArray.<init>:(I)V
putfield android.widget.AlphabetIndexer.mAlphaMap:Landroid/util/SparseIntArray;
12: aload 1
ifnull 14
13: aload 1
aload 0
invokeinterface android.database.Cursor.registerDataSetObserver:(Landroid/database/DataSetObserver;)V
14: StackMap locals:
StackMap stack:
aload 0
invokestatic java.text.Collator.getInstance:()Ljava/text/Collator;
putfield android.widget.AlphabetIndexer.mCollator:Ljava/text/Collator;
15: aload 0
getfield android.widget.AlphabetIndexer.mCollator:Ljava/text/Collator;
iconst_0
invokevirtual java.text.Collator.setStrength:(I)V
16: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Landroid/widget/AlphabetIndexer;
0 17 1 cursor Landroid/database/Cursor;
0 17 2 sortedColumnIndex I
0 17 3 alphabet Ljava/lang/CharSequence;
7 11 4 i I
MethodParameters:
Name Flags
cursor
sortedColumnIndex
alphabet
public java.lang.Object[] getSections();
descriptor: ()[Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.widget.AlphabetIndexer.mAlphabetArray:[Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/widget/AlphabetIndexer;
public void setCursor(android.database.Cursor);
descriptor: (Landroid/database/Cursor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
ifnull 2
1: aload 0
getfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
aload 0
invokeinterface android.database.Cursor.unregisterDataSetObserver:(Landroid/database/DataSetObserver;)V
2: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
3: aload 1
ifnull 5
4: aload 0
getfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
aload 0
invokeinterface android.database.Cursor.registerDataSetObserver:(Landroid/database/DataSetObserver;)V
5: StackMap locals:
StackMap stack:
aload 0
getfield android.widget.AlphabetIndexer.mAlphaMap:Landroid/util/SparseIntArray;
invokevirtual android.util.SparseIntArray.clear:()V
6: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/widget/AlphabetIndexer;
0 7 1 cursor Landroid/database/Cursor;
MethodParameters:
Name Flags
cursor
protected int compare(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.String.length:()I
ifne 3
1: ldc " "
astore 3
start local 3 2: goto 4
end local 3 3: StackMap locals:
StackMap stack:
aload 1
iconst_0
iconst_1
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
start local 3 4: StackMap locals: java.lang.String
StackMap stack:
aload 0
getfield android.widget.AlphabetIndexer.mCollator:Ljava/text/Collator;
aload 3
aload 2
invokevirtual java.text.Collator.compare:(Ljava/lang/String;Ljava/lang/String;)I
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/widget/AlphabetIndexer;
0 5 1 word Ljava/lang/String;
0 5 2 letter Ljava/lang/String;
2 3 3 firstLetter Ljava/lang/String;
4 5 3 firstLetter Ljava/lang/String;
MethodParameters:
Name Flags
word
letter
public int getPositionForSection(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=14, args_size=2
start local 0 start local 1 0: aload 0
getfield android.widget.AlphabetIndexer.mAlphaMap:Landroid/util/SparseIntArray;
astore 2
start local 2 1: aload 0
getfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
astore 3
start local 3 2: aload 3
ifnull 3
aload 0
getfield android.widget.AlphabetIndexer.mAlphabet:Ljava/lang/CharSequence;
ifnonnull 4
3: StackMap locals: android.util.SparseIntArray android.database.Cursor
StackMap stack:
iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iload 1
ifgt 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iload 1
aload 0
getfield android.widget.AlphabetIndexer.mAlphabetLength:I
if_icmplt 8
7: aload 0
getfield android.widget.AlphabetIndexer.mAlphabetLength:I
iconst_1
isub
istore 1
8: StackMap locals:
StackMap stack:
aload 3
invokeinterface android.database.Cursor.getPosition:()I
istore 4
start local 4 9: aload 3
invokeinterface android.database.Cursor.getCount:()I
istore 5
start local 5 10: iconst_0
istore 6
start local 6 11: iload 5
istore 7
start local 7 12: aload 0
getfield android.widget.AlphabetIndexer.mAlphabet:Ljava/lang/CharSequence;
iload 1
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 9
start local 9 13: iload 9
invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
astore 10
start local 10 14: iload 9
istore 11
start local 11 15: ldc -2147483648
aload 2
iload 11
ldc -2147483648
invokevirtual android.util.SparseIntArray.get:(II)I
dup
istore 8
start local 8 16: if_icmpeq 22
17: iload 8
ifge 21
18: iload 8
ineg
istore 8
19: iload 8
istore 7
20: goto 22
21: StackMap locals: android.widget.AlphabetIndexer int android.util.SparseIntArray android.database.Cursor int int int int int int java.lang.String int
StackMap stack:
iload 8
ireturn
22: StackMap locals:
StackMap stack:
iload 1
ifle 28
23: aload 0
getfield android.widget.AlphabetIndexer.mAlphabet:Ljava/lang/CharSequence;
iload 1
iconst_1
isub
invokeinterface java.lang.CharSequence.charAt:(I)C
24: istore 12
start local 12 25: aload 2
iload 12
ldc -2147483648
invokevirtual android.util.SparseIntArray.get:(II)I
istore 13
start local 13 26: iload 13
ldc -2147483648
if_icmpeq 28
27: iload 13
invokestatic java.lang.Math.abs:(I)I
istore 6
end local 13 end local 12 28: StackMap locals:
StackMap stack:
iload 7
iload 6
iadd
iconst_2
idiv
istore 8
29: goto 50
30: StackMap locals:
StackMap stack:
aload 3
iload 8
invokeinterface android.database.Cursor.moveToPosition:(I)Z
pop
31: aload 3
aload 0
getfield android.widget.AlphabetIndexer.mColumnIndex:I
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
astore 12
start local 12 32: aload 12
ifnonnull 37
33: iload 8
ifne 35
34: goto 51
35: StackMap locals: java.lang.String
StackMap stack:
iinc 8 -1
36: goto 50
37: StackMap locals:
StackMap stack:
aload 0
aload 12
aload 10
invokevirtual android.widget.AlphabetIndexer.compare:(Ljava/lang/String;Ljava/lang/String;)I
istore 13
start local 13 38: iload 13
ifeq 46
39: iload 13
ifge 44
40: iload 8
iconst_1
iadd
istore 6
41: iload 6
iload 5
if_icmplt 49
42: iload 5
istore 8
43: goto 51
44: StackMap locals: int
StackMap stack:
iload 8
istore 7
45: goto 49
46: StackMap locals:
StackMap stack:
iload 6
iload 8
if_icmpne 48
47: goto 51
48: StackMap locals:
StackMap stack:
iload 8
istore 7
49: StackMap locals:
StackMap stack:
iload 6
iload 7
iadd
iconst_2
idiv
istore 8
end local 13 end local 12 50: StackMap locals:
StackMap stack:
iload 8
iload 7
if_icmplt 30
51: StackMap locals:
StackMap stack:
aload 2
iload 11
iload 8
invokevirtual android.util.SparseIntArray.put:(II)V
52: aload 3
iload 4
invokeinterface android.database.Cursor.moveToPosition:(I)Z
pop
53: iload 8
ireturn
end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 54 0 this Landroid/widget/AlphabetIndexer;
0 54 1 sectionIndex I
1 54 2 alphaMap Landroid/util/SparseIntArray;
2 54 3 cursor Landroid/database/Cursor;
9 54 4 savedCursorPos I
10 54 5 count I
11 54 6 start I
12 54 7 end I
16 54 8 pos I
13 54 9 letter C
14 54 10 targetLetter Ljava/lang/String;
15 54 11 key I
25 28 12 prevLetter I
26 28 13 prevLetterPos I
32 50 12 curName Ljava/lang/String;
38 50 13 diff I
MethodParameters:
Name Flags
sectionIndex
public int getSectionForPosition(int);
descriptor: (I)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
invokeinterface android.database.Cursor.getPosition:()I
istore 2
start local 2 1: aload 0
getfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
iload 1
invokeinterface android.database.Cursor.moveToPosition:(I)Z
pop
2: aload 0
getfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
aload 0
getfield android.widget.AlphabetIndexer.mColumnIndex:I
invokeinterface android.database.Cursor.getString:(I)Ljava/lang/String;
astore 3
start local 3 3: aload 0
getfield android.widget.AlphabetIndexer.mDataCursor:Landroid/database/Cursor;
iload 2
invokeinterface android.database.Cursor.moveToPosition:(I)Z
pop
4: iconst_0
istore 4
start local 4 5: goto 11
6: StackMap locals: int java.lang.String int
StackMap stack:
aload 0
getfield android.widget.AlphabetIndexer.mAlphabet:Ljava/lang/CharSequence;
iload 4
invokeinterface java.lang.CharSequence.charAt:(I)C
istore 5
start local 5 7: iload 5
invokestatic java.lang.Character.toString:(C)Ljava/lang/String;
astore 6
start local 6 8: aload 0
aload 3
aload 6
invokevirtual android.widget.AlphabetIndexer.compare:(Ljava/lang/String;Ljava/lang/String;)I
ifne 10
9: iload 4
ireturn
end local 6 end local 5 10: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
11: iload 4
aload 0
getfield android.widget.AlphabetIndexer.mAlphabetLength:I
if_icmplt 6
end local 4 12: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/widget/AlphabetIndexer;
0 13 1 position I
1 13 2 savedCursorPos I
3 13 3 curName Ljava/lang/String;
5 12 4 i I
7 10 5 letter C
8 10 6 targetLetter Ljava/lang/String;
MethodParameters:
Name Flags
position
public void onChanged();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial android.database.DataSetObserver.onChanged:()V
1: aload 0
getfield android.widget.AlphabetIndexer.mAlphaMap:Landroid/util/SparseIntArray;
invokevirtual android.util.SparseIntArray.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/AlphabetIndexer;
public void onInvalidated();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial android.database.DataSetObserver.onInvalidated:()V
1: aload 0
getfield android.widget.AlphabetIndexer.mAlphaMap:Landroid/util/SparseIntArray;
invokevirtual android.util.SparseIntArray.clear:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/widget/AlphabetIndexer;
}
SourceFile: "AlphabetIndexer.java"