final class android.content.res.StringBlock
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: android.content.res.StringBlock
super_class: java.lang.Object
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "AssetManager"
private static final boolean localLOGV;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private final long mNative;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean mUseSparse;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean mOwnsNative;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private java.lang.CharSequence[] mStrings;
descriptor: [Ljava/lang/CharSequence;
flags: (0x0002) ACC_PRIVATE
private android.util.SparseArray<java.lang.CharSequence> mSparseStrings;
descriptor: Landroid/util/SparseArray;
flags: (0x0002) ACC_PRIVATE
Signature: Landroid/util/SparseArray<Ljava/lang/CharSequence;>;
android.content.res.StringBlock$StyleIDs mStyleIDs;
descriptor: Landroid/content/res/StringBlock$StyleIDs;
flags: (0x0000)
public void <init>(byte[], boolean);
descriptor: ([BZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
2: aload 0
aload 1
iconst_0
aload 1
arraylength
invokestatic android.content.res.StringBlock.nativeCreate:([BII)J
putfield android.content.res.StringBlock.mNative:J
3: aload 0
iload 2
putfield android.content.res.StringBlock.mUseSparse:Z
4: aload 0
iconst_1
putfield android.content.res.StringBlock.mOwnsNative:Z
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/content/res/StringBlock;
0 6 1 data [B
0 6 2 useSparse Z
MethodParameters:
Name Flags
data
useSparse
public void <init>(byte[], int, int, boolean);
descriptor: ([BIIZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
2: aload 0
aload 1
iload 2
iload 3
invokestatic android.content.res.StringBlock.nativeCreate:([BII)J
putfield android.content.res.StringBlock.mNative:J
3: aload 0
iload 4
putfield android.content.res.StringBlock.mUseSparse:Z
4: aload 0
iconst_1
putfield android.content.res.StringBlock.mOwnsNative:Z
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/content/res/StringBlock;
0 6 1 data [B
0 6 2 offset I
0 6 3 size I
0 6 4 useSparse Z
MethodParameters:
Name Flags
data
offset
size
useSparse
public java.lang.CharSequence get(int);
descriptor: (I)Ljava/lang/CharSequence;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
dup
astore 2
monitorenter
1: aload 0
getfield android.content.res.StringBlock.mStrings:[Ljava/lang/CharSequence;
ifnull 6
2: aload 0
getfield android.content.res.StringBlock.mStrings:[Ljava/lang/CharSequence;
iload 1
aaload
astore 3
start local 3 3: aload 3
ifnull 16
4: aload 3
aload 2
monitorexit
5: areturn
end local 3 6: StackMap locals: android.content.res.StringBlock
StackMap stack:
aload 0
getfield android.content.res.StringBlock.mSparseStrings:Landroid/util/SparseArray;
ifnull 11
7: aload 0
getfield android.content.res.StringBlock.mSparseStrings:Landroid/util/SparseArray;
iload 1
invokevirtual android.util.SparseArray.get:(I)Ljava/lang/Object;
checkcast java.lang.CharSequence
astore 3
start local 3 8: aload 3
ifnull 16
9: aload 3
aload 2
monitorexit
10: areturn
end local 3 11: StackMap locals:
StackMap stack:
aload 0
getfield android.content.res.StringBlock.mNative:J
invokestatic android.content.res.StringBlock.nativeGetSize:(J)I
istore 3
start local 3 12: aload 0
getfield android.content.res.StringBlock.mUseSparse:Z
ifeq 15
iload 3
sipush 250
if_icmple 15
13: aload 0
new android.util.SparseArray
dup
invokespecial android.util.SparseArray.<init>:()V
putfield android.content.res.StringBlock.mSparseStrings:Landroid/util/SparseArray;
14: goto 16
15: StackMap locals: int
StackMap stack:
aload 0
iload 3
anewarray java.lang.CharSequence
putfield android.content.res.StringBlock.mStrings:[Ljava/lang/CharSequence;
end local 3 16: StackMap locals:
StackMap stack:
aload 0
getfield android.content.res.StringBlock.mNative:J
iload 1
invokestatic android.content.res.StringBlock.nativeGetString:(JI)Ljava/lang/String;
astore 3
start local 3 17: aload 3
astore 4
start local 4 18: aload 0
getfield android.content.res.StringBlock.mNative:J
iload 1
invokestatic android.content.res.StringBlock.nativeGetStyle:(JI)[I
astore 5
start local 5 19: aload 5
ifnull 68
20: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
ifnonnull 22
21: aload 0
new android.content.res.StringBlock$StyleIDs
dup
invokespecial android.content.res.StringBlock$StyleIDs.<init>:()V
putfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
22: StackMap locals: java.lang.String java.lang.CharSequence int[]
StackMap stack:
iconst_0
istore 6
start local 6 23: goto 66
24: StackMap locals: int
StackMap stack:
aload 5
iload 6
iaload
istore 7
start local 7 25: iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.boldId:I
if_icmpeq 65
iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.italicId:I
if_icmpeq 65
26: iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.underlineId:I
if_icmpeq 65
iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.ttId:I
if_icmpeq 65
27: iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.bigId:I
if_icmpeq 65
iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.smallId:I
if_icmpeq 65
28: iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.subId:I
if_icmpeq 65
iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.supId:I
if_icmpeq 65
29: iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.strikeId:I
if_icmpeq 65
iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.listItemId:I
if_icmpeq 65
30: iload 7
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
getfield android.content.res.StringBlock$StyleIDs.marqueeId:I
if_icmpne 32
31: goto 65
32: StackMap locals: int
StackMap stack:
aload 0
getfield android.content.res.StringBlock.mNative:J
iload 7
invokestatic android.content.res.StringBlock.nativeGetString:(JI)Ljava/lang/String;
astore 8
start local 8 33: aload 8
ldc "b"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 36
34: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.boldId:I
35: goto 65
StackMap locals: java.lang.String
StackMap stack:
36: aload 8
ldc "i"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 39
37: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.italicId:I
38: goto 65
StackMap locals:
StackMap stack:
39: aload 8
ldc "u"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 42
40: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.underlineId:I
41: goto 65
StackMap locals:
StackMap stack:
42: aload 8
ldc "tt"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 45
43: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.ttId:I
44: goto 65
StackMap locals:
StackMap stack:
45: aload 8
ldc "big"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 48
46: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.bigId:I
47: goto 65
StackMap locals:
StackMap stack:
48: aload 8
ldc "small"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 51
49: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.smallId:I
50: goto 65
StackMap locals:
StackMap stack:
51: aload 8
ldc "sup"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 54
52: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.supId:I
53: goto 65
StackMap locals:
StackMap stack:
54: aload 8
ldc "sub"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 57
55: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.subId:I
56: goto 65
StackMap locals:
StackMap stack:
57: aload 8
ldc "strike"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 60
58: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.strikeId:I
59: goto 65
StackMap locals:
StackMap stack:
60: aload 8
ldc "li"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 63
61: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.listItemId:I
62: goto 65
StackMap locals:
StackMap stack:
63: aload 8
ldc "marquee"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 65
64: aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
iload 7
putfield android.content.res.StringBlock$StyleIDs.marqueeId:I
end local 8 end local 7 65: StackMap locals:
StackMap stack:
iinc 6 3
StackMap locals:
StackMap stack:
66: iload 6
aload 5
arraylength
if_icmplt 24
end local 6 67: aload 0
aload 3
aload 5
aload 0
getfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
invokevirtual android.content.res.StringBlock.applyStyles:(Ljava/lang/String;[ILandroid/content/res/StringBlock$StyleIDs;)Ljava/lang/CharSequence;
astore 4
68: StackMap locals:
StackMap stack:
aload 0
getfield android.content.res.StringBlock.mStrings:[Ljava/lang/CharSequence;
ifnull 69
aload 0
getfield android.content.res.StringBlock.mStrings:[Ljava/lang/CharSequence;
iload 1
aload 4
aastore
goto 70
69: StackMap locals:
StackMap stack:
aload 0
getfield android.content.res.StringBlock.mSparseStrings:Landroid/util/SparseArray;
iload 1
aload 4
invokevirtual android.util.SparseArray.put:(ILjava/lang/Object;)V
70: StackMap locals:
StackMap stack:
aload 4
aload 2
monitorexit
71: areturn
end local 5 end local 4 end local 3 72: StackMap locals: android.content.res.StringBlock int android.content.res.StringBlock
StackMap stack: java.lang.Throwable
aload 2
monitorexit
73: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 74 0 this Landroid/content/res/StringBlock;
0 74 1 idx I
3 6 3 res Ljava/lang/CharSequence;
8 11 3 res Ljava/lang/CharSequence;
12 16 3 num I
17 72 3 str Ljava/lang/String;
18 72 4 res Ljava/lang/CharSequence;
19 72 5 style [I
23 67 6 styleIndex I
25 65 7 styleId I
33 65 8 styleTag Ljava/lang/String;
Exception table:
from to target type
1 5 72 any
6 10 72 any
11 71 72 any
72 73 72 any
MethodParameters:
Name Flags
idx
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.finalize:()V
1: goto 6
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: aload 0
getfield android.content.res.StringBlock.mOwnsNative:Z
ifeq 5
4: aload 0
getfield android.content.res.StringBlock.mNative:J
invokestatic android.content.res.StringBlock.nativeDestroy:(J)V
5: StackMap locals: java.lang.Throwable
StackMap stack:
aload 1
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield android.content.res.StringBlock.mOwnsNative:Z
ifeq 8
7: aload 0
getfield android.content.res.StringBlock.mNative:J
invokestatic android.content.res.StringBlock.nativeDestroy:(J)V
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/content/res/StringBlock;
Exception table:
from to target type
0 2 2 any
Exceptions:
throws java.lang.Throwable
private java.lang.CharSequence applyStyles(java.lang.String, int[], android.content.res.StringBlock$StyleIDs);
descriptor: (Ljava/lang/String;[ILandroid/content/res/StringBlock$StyleIDs;)Ljava/lang/CharSequence;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=14, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
arraylength
ifne 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
new android.text.SpannableString
dup
aload 1
invokespecial android.text.SpannableString.<init>:(Ljava/lang/CharSequence;)V
astore 4
start local 4 3: iconst_0
istore 5
start local 5 4: goto 138
5: StackMap locals: android.text.SpannableString int
StackMap stack:
aload 2
iload 5
iaload
istore 6
start local 6 6: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.boldId:I
if_icmpne 12
7: aload 4
new android.text.style.StyleSpan
dup
iconst_1
invokespecial android.text.style.StyleSpan.<init>:(I)V
8: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
9: bipush 33
10: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
11: goto 137
StackMap locals: int
StackMap stack:
12: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.italicId:I
if_icmpne 18
13: aload 4
new android.text.style.StyleSpan
dup
iconst_2
invokespecial android.text.style.StyleSpan.<init>:(I)V
14: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
15: bipush 33
16: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
17: goto 137
StackMap locals:
StackMap stack:
18: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.underlineId:I
if_icmpne 24
19: aload 4
new android.text.style.UnderlineSpan
dup
invokespecial android.text.style.UnderlineSpan.<init>:()V
20: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
21: bipush 33
22: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
23: goto 137
StackMap locals:
StackMap stack:
24: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.ttId:I
if_icmpne 30
25: aload 4
new android.text.style.TypefaceSpan
dup
ldc "monospace"
invokespecial android.text.style.TypefaceSpan.<init>:(Ljava/lang/String;)V
26: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
27: bipush 33
28: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
29: goto 137
StackMap locals:
StackMap stack:
30: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.bigId:I
if_icmpne 36
31: aload 4
new android.text.style.RelativeSizeSpan
dup
ldc 1.25
invokespecial android.text.style.RelativeSizeSpan.<init>:(F)V
32: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
33: bipush 33
34: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
35: goto 137
StackMap locals:
StackMap stack:
36: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.smallId:I
if_icmpne 42
37: aload 4
new android.text.style.RelativeSizeSpan
dup
ldc 0.8
invokespecial android.text.style.RelativeSizeSpan.<init>:(F)V
38: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
39: bipush 33
40: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
41: goto 137
StackMap locals:
StackMap stack:
42: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.subId:I
if_icmpne 48
43: aload 4
new android.text.style.SubscriptSpan
dup
invokespecial android.text.style.SubscriptSpan.<init>:()V
44: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
45: bipush 33
46: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
47: goto 137
StackMap locals:
StackMap stack:
48: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.supId:I
if_icmpne 54
49: aload 4
new android.text.style.SuperscriptSpan
dup
invokespecial android.text.style.SuperscriptSpan.<init>:()V
50: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
51: bipush 33
52: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
53: goto 137
StackMap locals:
StackMap stack:
54: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.strikeId:I
if_icmpne 60
55: aload 4
new android.text.style.StrikethroughSpan
dup
invokespecial android.text.style.StrikethroughSpan.<init>:()V
56: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
57: bipush 33
58: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
59: goto 137
StackMap locals:
StackMap stack:
60: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.listItemId:I
if_icmpne 65
61: aload 4
new android.text.style.BulletSpan
dup
bipush 10
invokespecial android.text.style.BulletSpan.<init>:(I)V
62: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
63: invokestatic android.content.res.StringBlock.addParagraphSpan:(Landroid/text/Spannable;Ljava/lang/Object;II)V
64: goto 137
StackMap locals:
StackMap stack:
65: iload 6
aload 3
getfield android.content.res.StringBlock$StyleIDs.marqueeId:I
if_icmpne 71
66: aload 4
getstatic android.text.TextUtils$TruncateAt.MARQUEE:Landroid/text/TextUtils$TruncateAt;
67: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
68: bipush 18
69: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
70: goto 137
71: StackMap locals:
StackMap stack:
aload 0
getfield android.content.res.StringBlock.mNative:J
iload 6
invokestatic android.content.res.StringBlock.nativeGetString:(JI)Ljava/lang/String;
astore 7
start local 7 72: aload 7
ldc "font;"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 111
73: aload 7
ldc ";height="
invokestatic android.content.res.StringBlock.subtag:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 74: aload 8
ifnull 79
75: aload 8
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 9
start local 9 76: aload 4
new android.content.res.StringBlock$Height
dup
iload 9
invokespecial android.content.res.StringBlock$Height.<init>:(I)V
77: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
78: invokestatic android.content.res.StringBlock.addParagraphSpan:(Landroid/text/Spannable;Ljava/lang/Object;II)V
end local 9 79: StackMap locals: java.lang.String java.lang.String
StackMap stack:
aload 7
ldc ";size="
invokestatic android.content.res.StringBlock.subtag:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 8
80: aload 8
ifnull 86
81: aload 8
invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
istore 9
start local 9 82: aload 4
new android.text.style.AbsoluteSizeSpan
dup
iload 9
iconst_1
invokespecial android.text.style.AbsoluteSizeSpan.<init>:(IZ)V
83: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
84: bipush 33
85: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
end local 9 86: StackMap locals:
StackMap stack:
aload 7
ldc ";fgcolor="
invokestatic android.content.res.StringBlock.subtag:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 8
87: aload 8
ifnull 92
88: aload 4
aload 8
iconst_1
invokestatic android.content.res.StringBlock.getColor:(Ljava/lang/String;Z)Landroid/text/style/CharacterStyle;
89: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
90: bipush 33
91: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
92: StackMap locals:
StackMap stack:
aload 7
ldc ";color="
invokestatic android.content.res.StringBlock.subtag:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 8
93: aload 8
ifnull 98
94: aload 4
aload 8
iconst_1
invokestatic android.content.res.StringBlock.getColor:(Ljava/lang/String;Z)Landroid/text/style/CharacterStyle;
95: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
96: bipush 33
97: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
98: StackMap locals:
StackMap stack:
aload 7
ldc ";bgcolor="
invokestatic android.content.res.StringBlock.subtag:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 8
99: aload 8
ifnull 104
100: aload 4
aload 8
iconst_0
invokestatic android.content.res.StringBlock.getColor:(Ljava/lang/String;Z)Landroid/text/style/CharacterStyle;
101: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
102: bipush 33
103: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
104: StackMap locals:
StackMap stack:
aload 7
ldc ";face="
invokestatic android.content.res.StringBlock.subtag:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 8
105: aload 8
ifnull 137
106: aload 4
new android.text.style.TypefaceSpan
dup
aload 8
invokespecial android.text.style.TypefaceSpan.<init>:(Ljava/lang/String;)V
107: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
108: bipush 33
109: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
end local 8 110: goto 137
StackMap locals:
StackMap stack:
111: aload 7
ldc "a;"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 119
112: aload 7
ldc ";href="
invokestatic android.content.res.StringBlock.subtag:(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
astore 8
start local 8 113: aload 8
ifnull 137
114: aload 4
new android.text.style.URLSpan
dup
aload 8
invokespecial android.text.style.URLSpan.<init>:(Ljava/lang/String;)V
115: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
116: bipush 33
117: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
end local 8 118: goto 137
StackMap locals:
StackMap stack:
119: aload 7
ldc "annotation;"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 137
120: aload 7
invokevirtual java.lang.String.length:()I
istore 8
start local 8 121: aload 7
bipush 59
invokevirtual java.lang.String.indexOf:(I)I
istore 10
start local 10 122: goto 136
123: StackMap locals: android.content.res.StringBlock java.lang.String int[] android.content.res.StringBlock$StyleIDs android.text.SpannableString int int java.lang.String int top int
StackMap stack:
aload 7
bipush 61
iload 10
invokevirtual java.lang.String.indexOf:(II)I
istore 11
start local 11 124: iload 11
ifge 126
125: goto 137
126: StackMap locals: int
StackMap stack:
aload 7
bipush 59
iload 11
invokevirtual java.lang.String.indexOf:(II)I
istore 9
start local 9 127: iload 9
ifge 129
128: iload 8
istore 9
129: StackMap locals: android.content.res.StringBlock java.lang.String int[] android.content.res.StringBlock$StyleIDs android.text.SpannableString int int java.lang.String int int int int
StackMap stack:
aload 7
iload 10
iconst_1
iadd
iload 11
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 12
start local 12 130: aload 7
iload 11
iconst_1
iadd
iload 9
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 13
start local 13 131: aload 4
new android.text.Annotation
dup
aload 12
aload 13
invokespecial android.text.Annotation.<init>:(Ljava/lang/String;Ljava/lang/String;)V
132: aload 2
iload 5
iconst_1
iadd
iaload
aload 2
iload 5
iconst_2
iadd
iaload
iconst_1
iadd
133: bipush 33
134: invokevirtual android.text.SpannableString.setSpan:(Ljava/lang/Object;III)V
end local 13 end local 12 end local 11 135: iload 9
istore 10
end local 9 StackMap locals: android.content.res.StringBlock java.lang.String int[] android.content.res.StringBlock$StyleIDs android.text.SpannableString int int java.lang.String int top int
StackMap stack:
136: iload 10
iload 8
if_icmplt 123
end local 10 end local 8 end local 7 137: StackMap locals: android.content.res.StringBlock java.lang.String int[] android.content.res.StringBlock$StyleIDs android.text.SpannableString int int
StackMap stack:
iinc 5 3
end local 6 138: StackMap locals:
StackMap stack:
iload 5
aload 2
arraylength
if_icmplt 5
139: new android.text.SpannedString
dup
aload 4
invokespecial android.text.SpannedString.<init>:(Ljava/lang/CharSequence;)V
areturn
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 140 0 this Landroid/content/res/StringBlock;
0 140 1 str Ljava/lang/String;
0 140 2 style [I
0 140 3 ids Landroid/content/res/StringBlock$StyleIDs;
3 140 4 buffer Landroid/text/SpannableString;
4 140 5 i I
6 138 6 type I
72 137 7 tag Ljava/lang/String;
74 110 8 sub Ljava/lang/String;
76 79 9 size I
82 86 9 size I
113 118 8 sub Ljava/lang/String;
121 137 8 len I
127 136 9 next I
122 137 10 t I
124 135 11 eq I
130 135 12 key Ljava/lang/String;
131 135 13 value Ljava/lang/String;
MethodParameters:
Name Flags
str
style
ids
private static android.text.style.CharacterStyle getColor(java.lang.String, boolean);
descriptor: (Ljava/lang/String;Z)Landroid/text/style/CharacterStyle;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=2
start local 0 start local 1 0: ldc -16777216
istore 2
start local 2 1: aload 0
invokestatic android.text.TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z
ifne 16
2: aload 0
ldc "@"
invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
ifeq 12
3: invokestatic android.content.res.Resources.getSystem:()Landroid/content/res/Resources;
astore 3
start local 3 4: aload 0
iconst_1
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
astore 4
start local 4 5: aload 3
aload 4
ldc "color"
ldc "android"
invokevirtual android.content.res.Resources.getIdentifier:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)I
istore 5
start local 5 6: iload 5
ifeq 16
7: aload 3
iload 5
aconst_null
invokevirtual android.content.res.Resources.getColorStateList:(ILandroid/content/res/Resources$Theme;)Landroid/content/res/ColorStateList;
astore 6
start local 6 8: iload 1
ifeq 10
9: new android.text.style.TextAppearanceSpan
dup
aconst_null
iconst_0
iconst_0
aload 6
aconst_null
invokespecial android.text.style.TextAppearanceSpan.<init>:(Ljava/lang/String;IILandroid/content/res/ColorStateList;Landroid/content/res/ColorStateList;)V
areturn
10: StackMap locals: java.lang.String int int android.content.res.Resources java.lang.String int android.content.res.ColorStateList
StackMap stack:
aload 6
invokevirtual android.content.res.ColorStateList.getDefaultColor:()I
istore 2
end local 6 end local 5 end local 4 end local 3 11: goto 16
12: StackMap locals: java.lang.String int int
StackMap stack:
aload 0
invokestatic android.graphics.Color.parseColor:(Ljava/lang/String;)I
istore 2
13: goto 16
StackMap locals:
StackMap stack: java.lang.IllegalArgumentException
14: pop
15: ldc -16777216
istore 2
16: StackMap locals:
StackMap stack:
iload 1
ifeq 18
17: new android.text.style.ForegroundColorSpan
dup
iload 2
invokespecial android.text.style.ForegroundColorSpan.<init>:(I)V
areturn
18: StackMap locals:
StackMap stack:
new android.text.style.BackgroundColorSpan
dup
iload 2
invokespecial android.text.style.BackgroundColorSpan.<init>:(I)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 color Ljava/lang/String;
0 19 1 foreground Z
1 19 2 c I
4 11 3 res Landroid/content/res/Resources;
5 11 4 name Ljava/lang/String;
6 11 5 colorRes I
8 11 6 colors Landroid/content/res/ColorStateList;
Exception table:
from to target type
12 13 14 Class java.lang.IllegalArgumentException
MethodParameters:
Name Flags
color
foreground
private static void addParagraphSpan(android.text.Spannable, java.lang.Object, int, int);
descriptor: (Landroid/text/Spannable;Ljava/lang/Object;II)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokeinterface android.text.Spannable.length:()I
istore 4
start local 4 1: iload 2
ifeq 7
iload 2
iload 4
if_icmpeq 7
aload 0
iload 2
iconst_1
isub
invokeinterface android.text.Spannable.charAt:(I)C
bipush 10
if_icmpeq 7
2: iinc 2 -1
goto 6
3: StackMap locals: int
StackMap stack:
aload 0
iload 2
iconst_1
isub
invokeinterface android.text.Spannable.charAt:(I)C
bipush 10
if_icmpne 5
4: goto 7
5: StackMap locals:
StackMap stack:
iinc 2 -1
StackMap locals:
StackMap stack:
6: iload 2
ifgt 3
7: StackMap locals:
StackMap stack:
iload 3
ifeq 13
iload 3
iload 4
if_icmpeq 13
aload 0
iload 3
iconst_1
isub
invokeinterface android.text.Spannable.charAt:(I)C
bipush 10
if_icmpeq 13
8: iinc 3 1
goto 12
9: StackMap locals:
StackMap stack:
aload 0
iload 3
iconst_1
isub
invokeinterface android.text.Spannable.charAt:(I)C
bipush 10
if_icmpne 11
10: goto 13
11: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
12: iload 3
iload 4
if_icmplt 9
13: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iload 3
bipush 51
invokeinterface android.text.Spannable.setSpan:(Ljava/lang/Object;III)V
14: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 buffer Landroid/text/Spannable;
0 15 1 what Ljava/lang/Object;
0 15 2 start I
0 15 3 end I
1 15 4 len I
MethodParameters:
Name Flags
buffer
what
start
end
private static java.lang.String subtag(java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.String.indexOf:(Ljava/lang/String;)I
istore 2
start local 2 1: iload 2
ifge 3
2: aconst_null
areturn
3: StackMap locals: int
StackMap stack:
iload 2
aload 1
invokevirtual java.lang.String.length:()I
iadd
istore 2
4: aload 0
bipush 59
iload 2
invokevirtual java.lang.String.indexOf:(II)I
istore 3
start local 3 5: iload 3
ifge 7
6: aload 0
iload 2
invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
areturn
7: StackMap locals: int
StackMap stack:
aload 0
iload 2
iload 3
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 full Ljava/lang/String;
0 8 1 attribute Ljava/lang/String;
1 8 2 start I
5 8 3 end I
MethodParameters:
Name Flags
full
attribute
void <init>(long, boolean);
descriptor: (JZ)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield android.content.res.StringBlock.mStyleIDs:Landroid/content/res/StringBlock$StyleIDs;
2: aload 0
lload 1
putfield android.content.res.StringBlock.mNative:J
3: aload 0
iload 3
putfield android.content.res.StringBlock.mUseSparse:Z
4: aload 0
iconst_0
putfield android.content.res.StringBlock.mOwnsNative:Z
5: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/content/res/StringBlock;
0 6 1 obj J
0 6 3 useSparse Z
MethodParameters:
Name Flags
obj
useSparse
private static native long nativeCreate(byte[], int, int);
descriptor: ([BII)J
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
data
offset
size
private static native int nativeGetSize(long);
descriptor: (J)I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
obj
private static native java.lang.String nativeGetString(long, int);
descriptor: (JI)Ljava/lang/String;
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
obj
idx
private static native int[] nativeGetStyle(long, int);
descriptor: (JI)[I
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
obj
idx
private static native void nativeDestroy(long);
descriptor: (J)V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
MethodParameters:
Name Flags
obj
}
SourceFile: "StringBlock.java"
NestMembers:
android.content.res.StringBlock$Height android.content.res.StringBlock$StyleIDs
InnerClasses:
public final Theme = android.content.res.Resources$Theme of android.content.res.Resources
private Height = android.content.res.StringBlock$Height of android.content.res.StringBlock
final StyleIDs = android.content.res.StringBlock$StyleIDs of android.content.res.StringBlock
public final TruncateAt = android.text.TextUtils$TruncateAt of android.text.TextUtils