mirror of
https://github.com/revanced/Apktool.git
synced 2025-01-23 10:17:33 +01:00
patches for style decoding
This commit is contained in:
parent
390ecae6c5
commit
d979247794
@ -138,8 +138,8 @@ public class StringBlock {
|
|||||||
}
|
}
|
||||||
StringBuilder html = new StringBuilder(raw.length() + 32);
|
StringBuilder html = new StringBuilder(raw.length() + 32);
|
||||||
int[] opened = new int[style.length / 3];
|
int[] opened = new int[style.length / 3];
|
||||||
|
boolean[] unclosed = new boolean[style.length / 3];
|
||||||
int offset = 0, depth = 0;
|
int offset = 0, depth = 0;
|
||||||
boolean closeTagOnEnd = false;
|
|
||||||
while (true) {
|
while (true) {
|
||||||
int i = -1, j;
|
int i = -1, j;
|
||||||
for (j = 0; j != style.length; j += 3) {
|
for (j = 0; j != style.length; j += 3) {
|
||||||
@ -156,7 +156,7 @@ public class StringBlock {
|
|||||||
int end = style[last + 2];
|
int end = style[last + 2];
|
||||||
if (end >= start) {
|
if (end >= start) {
|
||||||
if (style[last + 1] == -1 && end != -1) {
|
if (style[last + 1] == -1 && end != -1) {
|
||||||
closeTagOnEnd = true;
|
unclosed[j] = true;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -169,8 +169,8 @@ public class StringBlock {
|
|||||||
depth = j + 1;
|
depth = j + 1;
|
||||||
if (offset < start) {
|
if (offset < start) {
|
||||||
html.append(ResXmlEncoders.escapeXmlChars(raw.substring(offset, start)));
|
html.append(ResXmlEncoders.escapeXmlChars(raw.substring(offset, start)));
|
||||||
if (closeTagOnEnd) {
|
if (j >= 0 && unclosed.length >= j && unclosed[j]) {
|
||||||
if (j > 0) {
|
if (unclosed.length > (j + 1) && unclosed[j + 1] || unclosed.length == 1) {
|
||||||
outputStyleTag(getString(style[opened[j]]), html, true);
|
outputStyleTag(getString(style[opened[j]]), html, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user