diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/components/CustomFilter.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/CustomFilter.java similarity index 98% rename from extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/components/CustomFilter.java rename to extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/CustomFilter.java index bd5388f31f..f3d142e882 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/components/CustomFilter.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/CustomFilter.java @@ -1,4 +1,4 @@ -package app.revanced.extension.shared.patches.components; +package app.revanced.extension.shared.patches.litho; import static app.revanced.extension.shared.StringRef.str; @@ -15,9 +15,8 @@ import java.util.regex.Pattern; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.ByteTrieSearch; -import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; import app.revanced.extension.shared.settings.YouTubeAndMusicSettings; -import app.revanced.extension.shared.patches.litho.Filter; +import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; /** * Allows custom filtering using a path and optionally a proto buffer string. diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/Filter.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/Filter.java index 1e24a8195c..ccd152262b 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/Filter.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/Filter.java @@ -1,12 +1,12 @@ package app.revanced.extension.shared.patches.litho; +import app.revanced.extension.shared.patches.litho.FilterGroup.ByteArrayFilterGroup; +import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; + import java.util.ArrayList; import java.util.Arrays; import java.util.List; -import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; -import app.revanced.extension.shared.patches.litho.FilterGroup.ByteArrayFilterGroup; - /** * Filters litho based components. * diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/FilterGroupList.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/FilterGroupList.java index e68276c7ce..da22ca9ff7 100644 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/FilterGroupList.java +++ b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/FilterGroupList.java @@ -1,15 +1,17 @@ package app.revanced.extension.shared.patches.litho; import androidx.annotation.NonNull; - -import java.util.*; - import app.revanced.extension.shared.ByteTrieSearch; import app.revanced.extension.shared.StringTrieSearch; import app.revanced.extension.shared.TrieSearch; import app.revanced.extension.shared.patches.litho.FilterGroup.ByteArrayFilterGroup; import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Iterator; +import java.util.List; + public abstract class FilterGroupList> implements Iterable { private final List filterGroups = new ArrayList<>(); diff --git a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/LithoFilterPatch.java b/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/LithoFilterPatch.java deleted file mode 100644 index 5ff86428db..0000000000 --- a/extensions/shared/library/src/main/java/app/revanced/extension/shared/patches/litho/LithoFilterPatch.java +++ /dev/null @@ -1,252 +0,0 @@ -package app.revanced.extension.shared.patches.litho; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import java.nio.ByteBuffer; -import java.util.List; - -import app.revanced.extension.shared.Logger; -import app.revanced.extension.shared.StringTrieSearch; -import app.revanced.extension.shared.settings.BaseSettings; -import app.revanced.extension.shared.settings.YouTubeAndMusicSettings; - -import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; - -@SuppressWarnings("unused") -public final class LithoFilterPatch { - /** - * Simple wrapper to pass the litho parameters through the prefix search. - */ - private static final class LithoFilterParameters { - final String identifier; - final String path; - final byte[] buffer; - - LithoFilterParameters(String lithoIdentifier, String lithoPath, byte[] buffer) { - this.identifier = lithoIdentifier; - this.path = lithoPath; - this.buffer = buffer; - } - - @NonNull - @Override - public String toString() { - // Estimate the percentage of the buffer that are Strings. - StringBuilder builder = new StringBuilder(Math.max(100, buffer.length / 2)); - builder.append( "ID: "); - builder.append(identifier); - builder.append(" Path: "); - builder.append(path); - if (YouTubeAndMusicSettings.DEBUG_PROTOBUFFER.get()) { - builder.append(" BufferStrings: "); - findAsciiStrings(builder, buffer); - } - - return builder.toString(); - } - - /** - * Search through a byte array for all ASCII strings. - */ - static void findAsciiStrings(StringBuilder builder, byte[] buffer) { - // Valid ASCII values (ignore control characters). - final int minimumAscii = 32; // 32 = space character - final int maximumAscii = 126; // 127 = delete character - final int minimumAsciiStringLength = 4; // Minimum length of an ASCII string to include. - String delimitingCharacter = "❙"; // Non ascii character, to allow easier log filtering. - - final int length = buffer.length; - int start = 0; - int end = 0; - while (end < length) { - int value = buffer[end]; - if (value < minimumAscii || value > maximumAscii || end == length - 1) { - if (end - start >= minimumAsciiStringLength) { - for (int i = start; i < end; i++) { - builder.append((char) buffer[i]); - } - builder.append(delimitingCharacter); - } - start = end + 1; - } - end++; - } - } - } - - /** - * Litho layout fixed thread pool size override. - *

- * Unpatched YouTube uses a layout fixed thread pool between 1 and 3 threads: - *

-     * 1 thread - > Device has less than 6 cores
-     * 2 threads -> Device has over 6 cores and less than 6GB of memory
-     * 3 threads -> Device has over 6 cores and more than 6GB of memory
-     * 
- * - * Using more than 1 thread causes layout issues such as the You tab watch/playlist shelf - * that is sometimes incorrectly hidden (ReVanced is not hiding it), and seems to - * fix a race issue if using the active navigation tab status with litho filtering. - */ - private static final int LITHO_LAYOUT_THREAD_POOL_SIZE = 1; - - /** - * Placeholder for actual filters. - */ - private static final class DummyFilter extends Filter { } - - private static final Filter[] filters = new Filter[] { - new DummyFilter() // Replaced patching, do not touch. - }; - - private static final StringTrieSearch pathSearchTree = 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, - * the buffer is saved to a ThreadLocal so each calling thread does not interfere with other threads. - */ - private static final ThreadLocal bufferThreadLocal = new ThreadLocal<>(); - - static { - for (Filter filter : filters) { - filterUsingCallbacks(identifierSearchTree, filter, - filter.identifierCallbacks, Filter.FilterContentType.IDENTIFIER); - filterUsingCallbacks(pathSearchTree, filter, - filter.pathCallbacks, Filter.FilterContentType.PATH); - } - - Logger.printDebug(() -> "Using: " - + identifierSearchTree.numberOfPatterns() + " identifier filters" - + " (" + identifierSearchTree.getEstimatedMemorySize() + " KB), " - + pathSearchTree.numberOfPatterns() + " path filters" - + " (" + pathSearchTree.getEstimatedMemorySize() + " KB)"); - } - - private static void filterUsingCallbacks(StringTrieSearch pathSearchTree, - Filter filter, List groups, - Filter.FilterContentType type) { - String filterSimpleName = filter.getClass().getSimpleName(); - - for (StringFilterGroup group : groups) { - if (!group.includeInSearch()) { - continue; - } - - for (String pattern : group.filters) { - pathSearchTree.addPattern(pattern, (textSearched, matchedStartIndex, - matchedLength, callbackParameter) -> { - if (!group.isEnabled()) return false; - - LithoFilterParameters parameters = (LithoFilterParameters) callbackParameter; - final boolean isFiltered = filter.isFiltered(parameters.identifier, - parameters.path, parameters.buffer, group, type, matchedStartIndex); - - if (isFiltered && BaseSettings.DEBUG.get()) { - if (type == Filter.FilterContentType.IDENTIFIER) { - Logger.printDebug(() -> "Filtered " + filterSimpleName - + " identifier: " + parameters.identifier); - } else { - Logger.printDebug(() -> "Filtered " + filterSimpleName - + " path: " + parameters.path); - } - } - - return isFiltered; - } - ); - } - } - } - - /** - * Injection point. Called off the main thread. - * Targets 20.22+ - */ - public static void setProtoBuffer(byte[] buffer) { - // Set the buffer to a thread local. The buffer will remain in memory, even after the call to #filter completes. - // This is intentional, as it appears the buffer can be set once and then filtered multiple times. - // The buffer will be cleared from memory after a new buffer is set by the same thread, - // or when the calling thread eventually dies. - bufferThreadLocal.set(buffer); - } - - /** - * Injection point. Called off the main thread. - * Targets 20.21 and lower. - */ - public static void setProtoBuffer(@Nullable ByteBuffer buffer) { - // Set the buffer to a thread local. The buffer will remain in memory, even after the call to #filter completes. - // This is intentional, as it appears the buffer can be set once and then filtered multiple times. - // The buffer will be cleared from memory after a new buffer is set by the same thread, - // or when the calling thread eventually dies. - if (buffer == null || !buffer.hasArray()) { - // It appears the buffer can be cleared out just before the call to #filter() - // Ignore this null value and retain the last buffer that was set. - Logger.printDebug(() -> "Ignoring null or empty buffer: " + buffer); - } else { - setProtoBuffer(buffer.array()); - } - } - - /** - * Injection point. - */ - public static boolean isFiltered(String lithoIdentifier, StringBuilder pathBuilder) { - try { - if (lithoIdentifier.isEmpty() && pathBuilder.length() == 0) { - return false; - } - - byte[] buffer = bufferThreadLocal.get(); - // Potentially the buffer may have been null or never set up until now. - // Use an empty buffer so the litho id/path filters still work correctly. - if (buffer == null) { - buffer = EMPTY_BYTE_ARRAY; - } - - LithoFilterParameters parameter = new LithoFilterParameters( - lithoIdentifier, pathBuilder.toString(), buffer); - Logger.printDebug(() -> "Searching " + parameter); - - if (identifierSearchTree.matches(parameter.identifier, parameter)) { - return true; - } - - if (pathSearchTree.matches(parameter.path, parameter)) { - return true; - } - } catch (Exception ex) { - Logger.printException(() -> "isFiltered failure", ex); - } - - return false; - } - - /** - * Injection point. - */ - public static int getExecutorCorePoolSize(int originalCorePoolSize) { - if (originalCorePoolSize != LITHO_LAYOUT_THREAD_POOL_SIZE) { - Logger.printDebug(() -> "Overriding core thread pool size from: " + originalCorePoolSize - + " to: " + LITHO_LAYOUT_THREAD_POOL_SIZE); - } - - return LITHO_LAYOUT_THREAD_POOL_SIZE; - } - - /** - * Injection point. - */ - public static int getExecutorMaxThreads(int originalMaxThreads) { - if (originalMaxThreads != LITHO_LAYOUT_THREAD_POOL_SIZE) { - Logger.printDebug(() -> "Overriding max thread pool size from: " + originalMaxThreads - + " to: " + LITHO_LAYOUT_THREAD_POOL_SIZE); - } - - return LITHO_LAYOUT_THREAD_POOL_SIZE; - } -} diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java index 7c74b2929c..bb0c7dec9b 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch.java @@ -13,12 +13,10 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import java.util.Objects; -import java.util.Set; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; -import app.revanced.extension.shared.settings.BaseSettings; -import app.revanced.extension.youtube.patches.components.ReturnYouTubeDislikeFilter; +import app.revanced.extension.youtube.patches.litho.ReturnYouTubeDislikeFilter; import app.revanced.extension.youtube.returnyoutubedislike.ReturnYouTubeDislike; import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.youtube.shared.PlayerType; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/AdsFilter.java similarity index 99% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/AdsFilter.java index 063fc53df1..064a7f7e9b 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/AdsFilter.java @@ -1,4 +1,4 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; import static app.revanced.extension.shared.StringRef.str; @@ -8,10 +8,10 @@ import android.view.View; import java.util.List; +import app.revanced.extension.shared.patches.litho.Filter; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.StringTrieSearch; -import app.revanced.extension.shared.patches.litho.Filter; import app.revanced.extension.shared.patches.litho.FilterGroup.ByteArrayFilterGroup; import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; import app.revanced.extension.youtube.settings.Settings; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdvancedVideoQualityMenuFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/AdvancedVideoQualityMenuFilter.java similarity index 94% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdvancedVideoQualityMenuFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/AdvancedVideoQualityMenuFilter.java index 9c6347c1e9..b47f0939d1 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/AdvancedVideoQualityMenuFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/AdvancedVideoQualityMenuFilter.java @@ -1,4 +1,4 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; import app.revanced.extension.shared.patches.litho.Filter; import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/ButtonsFilter.java similarity index 99% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/ButtonsFilter.java index 12ed136f2c..557847a00d 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ButtonsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/ButtonsFilter.java @@ -1,8 +1,8 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; +import app.revanced.extension.shared.patches.litho.Filter; import app.revanced.extension.youtube.patches.VersionCheckPatch; import app.revanced.extension.shared.patches.litho.FilterGroupList.ByteArrayFilterGroupList; -import app.revanced.extension.shared.patches.litho.Filter; import app.revanced.extension.shared.patches.litho.FilterGroup.ByteArrayFilterGroup; import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; import app.revanced.extension.youtube.settings.Settings; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/CommentsFilter.java similarity index 98% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/CommentsFilter.java index 1196db546f..793eb5f9b0 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/CommentsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/CommentsFilter.java @@ -1,4 +1,4 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; import app.revanced.extension.shared.patches.litho.Filter; import app.revanced.extension.shared.patches.litho.FilterGroup.*; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/DescriptionComponentsFilter.java similarity index 98% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/DescriptionComponentsFilter.java index 42c7d67ab7..771902ccef 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/DescriptionComponentsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/DescriptionComponentsFilter.java @@ -1,9 +1,9 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; -import app.revanced.extension.shared.StringTrieSearch; import app.revanced.extension.shared.patches.litho.Filter; +import app.revanced.extension.shared.StringTrieSearch; import app.revanced.extension.shared.patches.litho.FilterGroup.*; -import app.revanced.extension.shared.patches.litho.FilterGroupList.*; +import app.revanced.extension.shared.patches.litho.FilterGroupList.ByteArrayFilterGroupList; import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.youtube.shared.PlayerType; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/HideInfoCardsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/HideInfoCardsFilter.java similarity index 76% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/HideInfoCardsFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/HideInfoCardsFilter.java index dc9cf8e56e..3a14a052c9 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/HideInfoCardsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/HideInfoCardsFilter.java @@ -1,8 +1,8 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; +import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.shared.patches.litho.Filter; -import app.revanced.extension.shared.patches.litho.FilterGroup.*; @SuppressWarnings("unused") public final class HideInfoCardsFilter extends Filter { diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/KeywordContentFilter.java similarity index 99% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/KeywordContentFilter.java index ad9d20e4c1..93fd1734d4 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/KeywordContentFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/KeywordContentFilter.java @@ -1,4 +1,4 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; import static app.revanced.extension.shared.StringRef.str; import static app.revanced.extension.youtube.shared.NavigationBar.NavigationButton; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/LayoutComponentsFilter.java similarity index 98% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/LayoutComponentsFilter.java index 463bec8d7d..4bcc06a230 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LayoutComponentsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/LayoutComponentsFilter.java @@ -1,4 +1,4 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; import static app.revanced.extension.youtube.patches.VersionCheckPatch.IS_20_21_OR_GREATER; import static app.revanced.extension.youtube.shared.NavigationBar.NavigationButton; @@ -8,16 +8,17 @@ import android.text.SpannableString; import android.text.SpannableStringBuilder; import android.text.TextUtils; import android.view.View; -import android.widget.ImageView; +import android.widget.ImageView; import androidx.annotation.Nullable; import app.revanced.extension.shared.Logger; -import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.StringTrieSearch; +import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.patches.litho.Filter; -import app.revanced.extension.shared.patches.litho.FilterGroup.*; -import app.revanced.extension.shared.patches.litho.FilterGroupList.*; +import app.revanced.extension.shared.patches.litho.FilterGroup.ByteArrayFilterGroup; +import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; +import app.revanced.extension.shared.patches.litho.FilterGroupList.ByteArrayFilterGroupList; import app.revanced.extension.youtube.patches.ChangeHeaderPatch; import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.youtube.shared.NavigationBar; @@ -52,7 +53,7 @@ public final class LayoutComponentsFilter extends Filter { private final StringFilterGroup compactChannelBarInnerButton; private final ByteArrayFilterGroup joinMembershipButton; private final StringFilterGroup horizontalShelves; - private final ByteArrayFilterGroup ticketShelf; + private final ByteArrayFilterGroup ticketShelfBuffer; private final StringFilterGroup chipBar; private final StringFilterGroup channelProfile; private final ByteArrayFilterGroupList channelProfileBuffer; @@ -347,7 +348,7 @@ public final class LayoutComponentsFilter extends Filter { @Override public boolean isFiltered(String identifier, String path, byte[] buffer, - StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) { + StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) { // This identifier is used not only in players but also in search results: // https://github.com/ReVanced/revanced-patches/issues/3245 // Until 2024, medical information panels such as Covid 19 also used this identifier and were shown in the search results. diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LithoFilterPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/LithoFilterPatch.java similarity index 99% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LithoFilterPatch.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/LithoFilterPatch.java index 9578a5dd5a..73169e3123 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/LithoFilterPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/LithoFilterPatch.java @@ -1,4 +1,4 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -12,7 +12,6 @@ import java.util.Map; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.patches.litho.Filter; -import app.revanced.extension.shared.patches.litho.FilterGroup; import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; import app.revanced.extension.shared.settings.BaseSettings; import app.revanced.extension.shared.StringTrieSearch; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlaybackSpeedMenuFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/PlaybackSpeedMenuFilter.java similarity index 96% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlaybackSpeedMenuFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/PlaybackSpeedMenuFilter.java index 0dc860fbde..05b2dda470 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlaybackSpeedMenuFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/PlaybackSpeedMenuFilter.java @@ -1,4 +1,4 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; import app.revanced.extension.shared.patches.litho.Filter; import app.revanced.extension.shared.patches.litho.FilterGroup.*; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/PlayerFlyoutMenuItemsFilter.java similarity index 94% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/PlayerFlyoutMenuItemsFilter.java index 1e23a4db51..a8b88fa8f6 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/PlayerFlyoutMenuItemsFilter.java @@ -1,11 +1,12 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; +import app.revanced.extension.shared.patches.litho.Filter; +import app.revanced.extension.shared.patches.litho.FilterGroup.ByteArrayFilterGroup; +import app.revanced.extension.shared.patches.litho.FilterGroup.StringFilterGroup; +import app.revanced.extension.shared.patches.litho.FilterGroupList.ByteArrayFilterGroupList; import app.revanced.extension.shared.settings.BaseSettings; import app.revanced.extension.shared.settings.Setting; import app.revanced.extension.shared.spoof.SpoofVideoStreamsPatch; -import app.revanced.extension.shared.patches.litho.Filter; -import app.revanced.extension.shared.patches.litho.FilterGroup.*; -import app.revanced.extension.shared.patches.litho.FilterGroupList.*; import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.youtube.shared.ShortsPlayerState; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/ReturnYouTubeDislikeFilter.java similarity index 96% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/ReturnYouTubeDislikeFilter.java index f4dfb4935c..ba1d44d017 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/ReturnYouTubeDislikeFilter.java @@ -1,4 +1,4 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; import androidx.annotation.GuardedBy; import androidx.annotation.NonNull; @@ -10,12 +10,12 @@ import java.util.Map; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.TrieSearch; import app.revanced.extension.shared.Utils; +import app.revanced.extension.shared.patches.litho.Filter; +import app.revanced.extension.shared.patches.litho.FilterGroup.*; +import app.revanced.extension.shared.patches.litho.FilterGroupList.ByteArrayFilterGroupList; import app.revanced.extension.youtube.patches.ReturnYouTubeDislikePatch; import app.revanced.extension.youtube.patches.VideoInformation; import app.revanced.extension.youtube.settings.Settings; -import app.revanced.extension.shared.patches.litho.Filter; -import app.revanced.extension.shared.patches.litho.FilterGroup.*; -import app.revanced.extension.shared.patches.litho.FilterGroupList.*; /** * Searches for video id's in the proto buffer of Shorts dislike. @@ -77,7 +77,7 @@ public final class ReturnYouTubeDislikeFilter extends Filter { @Override public boolean isFiltered(String identifier, String path, byte[] buffer, - StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) { + StringFilterGroup matchedGroup, FilterContentType contentType, int contentIndex) { if (!Settings.RYD_ENABLED.get() || !Settings.RYD_SHORTS.get()) { return false; } diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/ShortsFilter.java similarity index 97% rename from extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/ShortsFilter.java index 40ac848046..361f2ff23f 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/components/ShortsFilter.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/litho/ShortsFilter.java @@ -1,19 +1,23 @@ -package app.revanced.extension.youtube.patches.components; +package app.revanced.extension.youtube.patches.litho; import static app.revanced.extension.youtube.shared.NavigationBar.NavigationButton; import android.view.View; +import app.revanced.extension.shared.patches.litho.Filter; +import app.revanced.extension.shared.patches.litho.FilterGroup.*; +import app.revanced.extension.shared.patches.litho.FilterGroup.ByteArrayFilterGroup; +import app.revanced.extension.shared.patches.litho.FilterGroupList.ByteArrayFilterGroupList; +import app.revanced.extension.shared.settings.BooleanSetting; import com.google.android.libraries.youtube.rendering.ui.pivotbar.PivotBar; import java.lang.ref.WeakReference; import java.util.Arrays; +import java.util.HashMap; import java.util.List; +import java.util.Map; import app.revanced.extension.shared.Logger; -import app.revanced.extension.shared.patches.litho.Filter; -import app.revanced.extension.shared.patches.litho.FilterGroup.*; -import app.revanced.extension.shared.patches.litho.FilterGroupList.*; import app.revanced.extension.youtube.patches.VersionCheckPatch; import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.youtube.shared.NavigationBar; @@ -455,6 +459,9 @@ public final class ShortsFilter extends Filter { }; } + /** + * Injection point. + */ public static int getSoundButtonSize(int original) { if (Settings.HIDE_SHORTS_SOUND_BUTTON.get()) { return 0; @@ -463,10 +470,16 @@ public final class ShortsFilter extends Filter { return original; } + /** + * Injection point. + */ public static void setNavigationBar(PivotBar view) { pivotBarRef = new WeakReference<>(view); } + /** + * Injection point. + */ public static void hideNavigationBar(String tag) { if (HIDE_SHORTS_NAVIGATION_BAR) { if (REEL_WATCH_FRAGMENT_INIT_PLAYBACK.contains(tag)) { @@ -481,6 +494,9 @@ public final class ShortsFilter extends Filter { } } + /** + * Injection point. + */ public static int getNavigationBarHeight(int original) { if (HIDE_SHORTS_NAVIGATION_BAR) { return HIDDEN_NAVIGATION_BAR_VERTICAL_HEIGHT; @@ -488,4 +504,4 @@ public final class ShortsFilter extends Filter { return original; } -} +} \ No newline at end of file diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/quality/AdvancedVideoQualityMenuPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/quality/AdvancedVideoQualityMenuPatch.java index 89f221b3be..4a987a6687 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/quality/AdvancedVideoQualityMenuPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/quality/AdvancedVideoQualityMenuPatch.java @@ -8,7 +8,7 @@ import android.widget.ListView; import app.revanced.extension.shared.Logger; import app.revanced.extension.shared.Utils; -import app.revanced.extension.youtube.patches.components.AdvancedVideoQualityMenuFilter; +import app.revanced.extension.youtube.patches.litho.AdvancedVideoQualityMenuFilter; import app.revanced.extension.youtube.settings.Settings; /** diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java index 32c8354649..198a05c1c8 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java @@ -32,7 +32,7 @@ import app.revanced.extension.shared.Utils; import app.revanced.extension.shared.ui.Dim; import app.revanced.extension.shared.ui.SheetBottomDialog; import app.revanced.extension.youtube.patches.VideoInformation; -import app.revanced.extension.youtube.patches.components.PlaybackSpeedMenuFilter; +import app.revanced.extension.youtube.patches.litho.PlaybackSpeedMenuFilter; import app.revanced.extension.youtube.settings.Settings; import app.revanced.extension.youtube.shared.PlayerType; import kotlin.Unit; diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java index 7f41caf7bd..d2b41b229b 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java @@ -19,7 +19,7 @@ import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerH import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType; import static app.revanced.extension.youtube.patches.OpenShortsInRegularPlayerPatch.ShortsPlayerType; import static app.revanced.extension.youtube.patches.SeekbarThumbnailsPatch.SeekbarThumbnailsHighQualityAvailability; -import static app.revanced.extension.youtube.patches.components.PlayerFlyoutMenuItemsFilter.HideAudioFlyoutMenuAvailability; +import static app.revanced.extension.youtube.patches.litho.PlayerFlyoutMenuItemsFilter.HideAudioFlyoutMenuAvailability; import static app.revanced.extension.youtube.patches.spoof.SpoofVideoStreamsPatch.SpoofClientAv1Availability; import static app.revanced.extension.youtube.patches.theme.ThemePatch.SplashScreenAnimationStyle; import static app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController.SponsorBlockDuration; diff --git a/patches/src/main/kotlin/app/revanced/patches/music/layout/hide/general/HideLayoutComponentsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/layout/hide/general/HideLayoutComponentsPatch.kt index f93d3cd5bd..8c180f2d4a 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/layout/hide/general/HideLayoutComponentsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/layout/hide/general/HideLayoutComponentsPatch.kt @@ -9,6 +9,6 @@ val hideLayoutComponentsPatch = hideLayoutComponentsPatch( lithoFilterPatch = lithoFilterPatch, getAddLithoFilter = { addLithoFilter }, settingsPatch = settingsPatch, - filterClasses = setOf("Lapp/revanced/extension/shared/patches/components/CustomFilter;"), + filterClasses = setOf("Lapp/revanced/extension/shared/patches/litho/CustomFilter;"), compatibleWithPackages = arrayOf("com.google.android.apps.youtube.music" to setOf("7.29.52", "8.10.52")), ) diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt index 75800993aa..a61663dbb5 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/ad/general/HideAdsPatch.kt @@ -29,7 +29,7 @@ internal var adAttributionId = -1L internal var fullScreenEngagementAdContainer = -1L private set -private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/components/AdsFilter;" +private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/litho/AdsFilter;" private val hideAdsResourcePatch = resourcePatch { dependsOn( @@ -55,7 +55,7 @@ private val hideAdsResourcePatch = resourcePatch { SwitchPreference("revanced_hide_web_search_results"), ) - addLithoFilter("Lapp/revanced/extension/youtube/patches/components/AdsFilter;") + addLithoFilter("Lapp/revanced/extension/youtube/patches/litho/AdsFilter;") adAttributionId = ResourceType.ID["ad_attribution"] fullScreenEngagementAdContainer = ResourceType.ID["fullscreen_engagement_ad_container"] diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt index 6408c8bc50..e493fefdf2 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/buttons/action/HideButtonsPatch.kt @@ -78,6 +78,6 @@ val hideVideoActionButtonsPatch = resourcePatch( ), ) - addLithoFilter("Lapp/revanced/extension/youtube/patches/components/ButtonsFilter;") + addLithoFilter("Lapp/revanced/extension/youtube/patches/litho/ButtonsFilter;") } } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt index d6ac0e9627..f446e45912 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/general/HideLayoutComponentsPatch.kt @@ -55,15 +55,15 @@ private val hideLayoutComponentsResourcePatch = resourcePatch { } private const val LAYOUT_COMPONENTS_FILTER_CLASS_DESCRIPTOR = - "Lapp/revanced/extension/youtube/patches/components/LayoutComponentsFilter;" + "Lapp/revanced/extension/youtube/patches/litho/LayoutComponentsFilter;" private const val DESCRIPTION_COMPONENTS_FILTER_CLASS_NAME = - "Lapp/revanced/extension/youtube/patches/components/DescriptionComponentsFilter;" + "Lapp/revanced/extension/youtube/patches/litho/DescriptionComponentsFilter;" private const val COMMENTS_FILTER_CLASS_NAME = - "Lapp/revanced/extension/youtube/patches/components/CommentsFilter;" + "Lapp/revanced/extension/youtube/patches/litho/CommentsFilter;" private const val CUSTOM_FILTER_CLASS_NAME = - "Lapp/revanced/extension/shared/patches/components/CustomFilter;" + "Lapp/revanced/extension/shared/patches/litho/CustomFilter;" private const val KEYWORD_FILTER_CLASS_NAME = - "Lapp/revanced/extension/youtube/patches/components/KeywordContentFilter;" + "Lapp/revanced/extension/youtube/patches/litho/KeywordContentFilter;" val hideLayoutComponentsPatch = hideLayoutComponentsPatch( lithoFilterPatch = lithoFilterPatch, diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch.kt index cb9b30f8b0..91d388f7fc 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/infocards/HideInfoCardsPatch.kt @@ -97,7 +97,7 @@ val hideInfoCardsPatch = bytecodePatch( } // Info cards can also appear as Litho components. - val filterClassDescriptor = "Lapp/revanced/extension/youtube/patches/components/HideInfoCardsFilter;" + val filterClassDescriptor = "Lapp/revanced/extension/youtube/patches/litho/HideInfoCardsFilter;" addLithoFilter(filterClassDescriptor) } } diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt index 3889369cdc..ae7f24c87f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/player/flyoutmenupanel/HidePlayerFlyoutMenuPatch.kt @@ -33,7 +33,7 @@ val hidePlayerFlyoutMenuItemsPatch = bytecodePatch( ) apply { - val filterClassDescriptor = "Lapp/revanced/extension/youtube/patches/components/PlayerFlyoutMenuItemsFilter;" + val filterClassDescriptor = "Lapp/revanced/extension/youtube/patches/litho/PlayerFlyoutMenuItemsFilter;" addResources("youtube", "layout.hide.player.flyoutmenupanel.hidePlayerFlyoutMenuPatch") diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt index f1d9d66166..3328f6306e 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/hide/shorts/HideShortsComponentsPatch.kt @@ -157,7 +157,7 @@ private val hideShortsComponentsResourcePatch = resourcePatch { } } -private const val FILTER_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/components/ShortsFilter;" +private const val FILTER_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/litho/ShortsFilter;" @Suppress("unused") val hideShortsComponentsPatch = bytecodePatch( diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt index c7a12b6f59..7fdd49c3b1 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/layout/returnyoutubedislike/ReturnYouTubeDislikePatch.kt @@ -41,7 +41,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/ReturnYouTubeDislikePatch;" private const val FILTER_CLASS_DESCRIPTOR = - "Lapp/revanced/extension/youtube/patches/components/ReturnYouTubeDislikeFilter;" + "Lapp/revanced/extension/youtube/patches/litho/ReturnYouTubeDislikeFilter;" @Suppress("ObjectPropertyName") val returnYouTubeDislikePatch = bytecodePatch( diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch.kt index b7afbc0e84..b25df92928 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/litho/filter/LithoFilterPatch.kt @@ -19,7 +19,7 @@ import com.android.tools.smali.dexlib2.Opcode lateinit var addLithoFilter: (String) -> Unit private set -private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/components/LithoFilterPatch;" +private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/litho/LithoFilterPatch;" val lithoFilterPatch = bytecodePatch( description = "Hooks the method which parses the bytes into a ComponentContext to filter components.", diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/AdvancedVideoQualityMenuPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/AdvancedVideoQualityMenuPatch.kt index 5f10870c06..d1c376b7d4 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/AdvancedVideoQualityMenuPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/quality/AdvancedVideoQualityMenuPatch.kt @@ -27,7 +27,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/playback/quality/AdvancedVideoQualityMenuPatch;" private const val FILTER_CLASS_DESCRIPTOR = - "Lapp/revanced/extension/youtube/patches/components/AdvancedVideoQualityMenuFilter;" + "Lapp/revanced/extension/youtube/patches/litho/AdvancedVideoQualityMenuFilter;" internal val advancedVideoQualityMenuPatch = bytecodePatch { dependsOn( diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch.kt index c55a3d95ca..a283b07d8f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch.kt @@ -34,7 +34,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction import com.android.tools.smali.dexlib2.immutable.ImmutableField private const val FILTER_CLASS_DESCRIPTOR = - "Lapp/revanced/extension/youtube/patches/components/PlaybackSpeedMenuFilter;" + "Lapp/revanced/extension/youtube/patches/litho/PlaybackSpeedMenuFilter;" private const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/youtube/patches/playback/speed/CustomPlaybackSpeedPatch;"