diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java index a0194f0dc..479f7c01a 100644 --- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java +++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java @@ -278,13 +278,13 @@ public final class NavigationBar { } /** - * Use the bundled non cairo filled icon instead of a custom icon. - * Use the old non cairo filled icon, which is almost identical to - * the what would be the filled cairo icon. + * Custom cairo notification filled icon to fix unpatched app missing resource. + * Custom icon is modified starting from + * Font Awesome. */ private static final int fillBellCairoBlack = Utils.getResourceIdentifier( ResourceType.DRAWABLE, - "yt_fill_bell_black_24"); + "revanced_fill_bell_cairo_black_24"); /** * Injection point. @@ -292,13 +292,12 @@ public final class NavigationBar { */ @SuppressWarnings({"unchecked", "rawtypes"}) public static void setCairoNotificationFilledIcon(EnumMap enumMap, Enum tabActivityCairo) { - if (fillBellCairoBlack != 0) { - // Show a popup informing this fix is no longer needed to those who might care. - if (BaseSettings.DEBUG.get() && enumMap.containsKey(tabActivityCairo)) { - Logger.printException(() -> "YouTube fixed the cairo notification icons"); - } - enumMap.putIfAbsent(tabActivityCairo, fillBellCairoBlack); + // Show a popup informing this fix is no longer needed to those who might care. + if (BaseSettings.DEBUG.get() && enumMap.containsKey(tabActivityCairo)) { + Logger.printException(() -> "YouTube fixed the cairo notification icons"); } + + enumMap.putIfAbsent(tabActivityCairo, fillBellCairoBlack); } public enum NavigationButton { diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt index 77ed5ed7a..92b65839b 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/navigation/NavigationBarHookPatch.kt @@ -6,6 +6,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction import app.revanced.patcher.extensions.InstructionExtensions.instructions import app.revanced.patcher.patch.PatchException import app.revanced.patcher.patch.bytecodePatch +import app.revanced.patcher.patch.resourcePatch import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod.Companion.toMutable import app.revanced.patches.shared.misc.mapping.resourceMappingPatch @@ -17,6 +18,8 @@ import app.revanced.patches.youtube.misc.playservice.is_20_28_or_greater import app.revanced.patches.youtube.misc.playservice.is_20_39_or_greater import app.revanced.patches.youtube.misc.playservice.versionCheckPatch import app.revanced.patches.youtube.shared.mainActivityOnBackPressedFingerprint +import app.revanced.util.ResourceGroup +import app.revanced.util.copyResources import app.revanced.util.findFreeRegister import app.revanced.util.getReference import com.android.tools.smali.dexlib2.AccessFlags @@ -46,6 +49,27 @@ val navigationBarHookPatch = bytecodePatch(description = "Hooks the active navig versionCheckPatch, playerTypeHookPatch, // Required to detect the search bar in all situations. resourceMappingPatch, // Used by fingerprints + resourcePatch { + // Copy missing notification icon. + execute { + arrayOf( + // App does not use ldpi icons. + "mdpi", + "hdpi", + "xhdpi", + "xxhdpi", + "xxxhdpi", + ).forEach { mipmap -> + copyResources( + "navigationbuttons", + ResourceGroup( + "drawable-$mipmap", + "revanced_fill_bell_cairo_black_24.png" + ) + ) + } + } + } ) execute { diff --git a/patches/src/main/resources/navigationbuttons/drawable-hdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-hdpi/revanced_fill_bell_cairo_black_24.png new file mode 100644 index 000000000..ba9154778 Binary files /dev/null and b/patches/src/main/resources/navigationbuttons/drawable-hdpi/revanced_fill_bell_cairo_black_24.png differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-hdpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-hdpi/yt_fill_bell_cairo_black_24.png deleted file mode 100644 index 7381ab7ef..000000000 Binary files a/patches/src/main/resources/navigationbuttons/drawable-hdpi/yt_fill_bell_cairo_black_24.png and /dev/null differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-ldpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-ldpi/yt_fill_bell_cairo_black_24.png deleted file mode 100644 index 9f390c514..000000000 Binary files a/patches/src/main/resources/navigationbuttons/drawable-ldpi/yt_fill_bell_cairo_black_24.png and /dev/null differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-mdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-mdpi/revanced_fill_bell_cairo_black_24.png new file mode 100644 index 000000000..f3e768ba5 Binary files /dev/null and b/patches/src/main/resources/navigationbuttons/drawable-mdpi/revanced_fill_bell_cairo_black_24.png differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-mdpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-mdpi/yt_fill_bell_cairo_black_24.png deleted file mode 100644 index 8fec48071..000000000 Binary files a/patches/src/main/resources/navigationbuttons/drawable-mdpi/yt_fill_bell_cairo_black_24.png and /dev/null differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-xhdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xhdpi/revanced_fill_bell_cairo_black_24.png new file mode 100644 index 000000000..dfaf31c8b Binary files /dev/null and b/patches/src/main/resources/navigationbuttons/drawable-xhdpi/revanced_fill_bell_cairo_black_24.png differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-xhdpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xhdpi/yt_fill_bell_cairo_black_24.png deleted file mode 100644 index 2eed03d8b..000000000 Binary files a/patches/src/main/resources/navigationbuttons/drawable-xhdpi/yt_fill_bell_cairo_black_24.png and /dev/null differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/revanced_fill_bell_cairo_black_24.png new file mode 100644 index 000000000..759f1b386 Binary files /dev/null and b/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/revanced_fill_bell_cairo_black_24.png differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/yt_fill_bell_cairo_black_24.png deleted file mode 100644 index 98fd7f803..000000000 Binary files a/patches/src/main/resources/navigationbuttons/drawable-xxhdpi/yt_fill_bell_cairo_black_24.png and /dev/null differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/revanced_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/revanced_fill_bell_cairo_black_24.png new file mode 100644 index 000000000..5ccf86942 Binary files /dev/null and b/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/revanced_fill_bell_cairo_black_24.png differ diff --git a/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/yt_fill_bell_cairo_black_24.png b/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/yt_fill_bell_cairo_black_24.png deleted file mode 100644 index e4732bf2f..000000000 Binary files a/patches/src/main/resources/navigationbuttons/drawable-xxxhdpi/yt_fill_bell_cairo_black_24.png and /dev/null differ