From e08a9befbc0721ac113ada05a56580dd80a41ffd Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Sun, 14 Jun 2026 14:05:32 +0800 Subject: [PATCH] app: Acess themes by resource IDs instead of names This was otherwise broken for some reason, posibility due to R8 or project's name setting or both. Signed-off-by: Aayush Gupta --- .../org/schabi/newpipe/util/ThemeHelper.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/util/ThemeHelper.java b/app/src/main/java/org/schabi/newpipe/util/ThemeHelper.java index 24a0f457f..8f81e3cd1 100644 --- a/app/src/main/java/org/schabi/newpipe/util/ThemeHelper.java +++ b/app/src/main/java/org/schabi/newpipe/util/ThemeHelper.java @@ -171,8 +171,7 @@ public final class ThemeHelper { } themeName += "." + service.getServiceInfo().getName(); - final int resourceId = context.getResources() - .getIdentifier(themeName, "style", context.getPackageName()); + final int resourceId = getThemeOrDefault(themeName, baseTheme); if (resourceId > 0) { return resourceId; @@ -412,4 +411,26 @@ public final class ThemeHelper { public static int getGridSpanCount(final Context context, final int minWidth) { return Math.max(1, context.getResources().getDisplayMetrics().widthPixels / minWidth); } + + @StyleRes + private static int getThemeOrDefault(final String name, @StyleRes final int baseTheme) { + return switch (name) { + case "LightTheme.YouTube" -> R.style.LightTheme_YouTube; + case "DarkTheme.YouTube" -> R.style.DarkTheme_YouTube; + case "BlackTheme.YouTube" -> R.style.BlackTheme_YouTube; + case "LightTheme.SoundCloud" -> R.style.LightTheme_SoundCloud; + case "DarkTheme.SoundCloud" -> R.style.DarkTheme_SoundCloud; + case "BlackTheme.SoundCloud" -> R.style.BlackTheme_SoundCloud; + case "LightTheme.PeerTube" -> R.style.LightTheme_PeerTube; + case "DarkTheme.PeerTube" -> R.style.DarkTheme_PeerTube; + case "BlackTheme.PeerTube" -> R.style.BlackTheme_PeerTube; + case "LightTheme.media.ccc.de" -> R.style.LightTheme_media_ccc_de; + case "DarkTheme.media.ccc.de" -> R.style.DarkTheme_media_ccc_de; + case "BlackTheme.media.ccc.de" -> R.style.BlackTheme_media_ccc_de; + case "LightTheme.Bandcamp" -> R.style.LightTheme_Bandcamp; + case "DarkTheme.Bandcamp" -> R.style.DarkTheme_Bandcamp; + case "BlackTheme.Bandcamp" -> R.style.BlackTheme_Bandcamp; + default -> baseTheme; + }; + } }