1
0
mirror of https://github.com/TeamNewPipe/NewPipe synced 2026-06-16 17:48:50 +00:00

Merge pull request #13601 from theimpulson/theme

app: Acess themes by resource IDs instead of names
This commit is contained in:
Aayush Gupta
2026-06-14 15:43:57 +08:00
committed by GitHub
@@ -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;
};
}
}