mirror of
https://github.com/revanced/revanced-integrations.git
synced 2025-05-28 20:30:16 +02:00
chore: Merge branch dev
to main
(#564)
This commit is contained in:
commit
9996b2dc02
@ -1,3 +1,10 @@
|
|||||||
|
## [1.3.1-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v1.3.0...v1.3.1-dev.1) (2024-02-07)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **YouTube - Litho Filter:** Do not show toast if protobuffer is empty or null ([#563](https://github.com/ReVanced/revanced-integrations/issues/563)) ([ea5748c](https://github.com/ReVanced/revanced-integrations/commit/ea5748ca8e0c7130face5ca4c86cfe5e00a3ed65))
|
||||||
|
|
||||||
# [1.3.0](https://github.com/ReVanced/revanced-integrations/compare/v1.2.1...v1.3.0) (2024-02-05)
|
# [1.3.0](https://github.com/ReVanced/revanced-integrations/compare/v1.2.1...v1.3.0) (2024-02-05)
|
||||||
|
|
||||||
|
|
||||||
|
@ -398,17 +398,17 @@ public final class LithoFilterPatch {
|
|||||||
final String path;
|
final String path;
|
||||||
final byte[] protoBuffer;
|
final byte[] protoBuffer;
|
||||||
|
|
||||||
LithoFilterParameters(@Nullable String lithoIdentifier, StringBuilder lithoPath, ByteBuffer protoBuffer) {
|
LithoFilterParameters(@Nullable String lithoIdentifier, String lithoPath, byte[] protoBuffer) {
|
||||||
this.identifier = lithoIdentifier;
|
this.identifier = lithoIdentifier;
|
||||||
this.path = lithoPath.toString();
|
this.path = lithoPath;
|
||||||
this.protoBuffer = protoBuffer.array();
|
this.protoBuffer = protoBuffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
// Estimate the percentage of the buffer that are Strings.
|
// Estimate the percentage of the buffer that are Strings.
|
||||||
StringBuilder builder = new StringBuilder(protoBuffer.length / 2);
|
StringBuilder builder = new StringBuilder(Math.max(100, protoBuffer.length / 2));
|
||||||
builder.append( "ID: ");
|
builder.append( "ID: ");
|
||||||
builder.append(identifier);
|
builder.append(identifier);
|
||||||
builder.append(" Path: ");
|
builder.append(" Path: ");
|
||||||
@ -457,6 +457,8 @@ public final class LithoFilterPatch {
|
|||||||
private static final StringTrieSearch pathSearchTree = new StringTrieSearch();
|
private static final StringTrieSearch pathSearchTree = new StringTrieSearch();
|
||||||
private static final StringTrieSearch identifierSearchTree = new StringTrieSearch();
|
private static final StringTrieSearch identifierSearchTree = new StringTrieSearch();
|
||||||
|
|
||||||
|
private static final byte[] EMPTY_BYTE_ARRAY = new byte[0];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Because litho filtering is multi-threaded and the buffer is passed in from a different injection point,
|
* Because litho filtering is multi-threaded and the buffer is passed in from a different injection point,
|
||||||
* the buffer is saved to a ThreadLocal so each calling thread does not interfere with other threads.
|
* the buffer is saved to a ThreadLocal so each calling thread does not interfere with other threads.
|
||||||
@ -520,17 +522,23 @@ public final class LithoFilterPatch {
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
ByteBuffer protobufBuffer = bufferThreadLocal.get();
|
ByteBuffer protobufBuffer = bufferThreadLocal.get();
|
||||||
|
final byte[] bufferArray;
|
||||||
|
// The buffer can be null or empty when using YT 19.x.
|
||||||
|
// This is likely caused by different threads setting the buffer and calling this method.
|
||||||
|
// 100% fixing this would require passing the buffer into this method (which may not be so simple).
|
||||||
|
// For now, still filter with an empty buffer so the non proto buffer filters work correctly.
|
||||||
if (protobufBuffer == null) {
|
if (protobufBuffer == null) {
|
||||||
Logger.printException(() -> "Proto buffer is null"); // Should never happen.
|
Logger.printDebug(() -> "Proto buffer is null");
|
||||||
return false;
|
bufferArray = EMPTY_BYTE_ARRAY;
|
||||||
}
|
} else if (!protobufBuffer.hasArray()) {
|
||||||
|
|
||||||
if (!protobufBuffer.hasArray()) {
|
|
||||||
Logger.printDebug(() -> "Proto buffer does not have an array");
|
Logger.printDebug(() -> "Proto buffer does not have an array");
|
||||||
return false;
|
bufferArray = EMPTY_BYTE_ARRAY;
|
||||||
|
} else {
|
||||||
|
bufferArray = protobufBuffer.array();
|
||||||
}
|
}
|
||||||
|
|
||||||
LithoFilterParameters parameter = new LithoFilterParameters(lithoIdentifier, pathBuilder, protobufBuffer);
|
LithoFilterParameters parameter = new LithoFilterParameters(lithoIdentifier,
|
||||||
|
pathBuilder.toString(), bufferArray);
|
||||||
Logger.printDebug(() -> "Searching " + parameter);
|
Logger.printDebug(() -> "Searching " + parameter);
|
||||||
|
|
||||||
if (parameter.identifier != null) {
|
if (parameter.identifier != null) {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
org.gradle.parallel = true
|
org.gradle.parallel = true
|
||||||
org.gradle.caching = true
|
org.gradle.caching = true
|
||||||
android.useAndroidX = true
|
android.useAndroidX = true
|
||||||
version = 1.3.0
|
version = 1.3.1-dev.1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user