diff --git a/src/Views/AppInfoView.vala b/src/Views/AppInfoView.vala index 8b676ea76..5373dbebd 100644 --- a/src/Views/AppInfoView.vala +++ b/src/Views/AppInfoView.vala @@ -942,7 +942,22 @@ public class AppCenter.Views.AppInfoView : Adw.NavigationPage { var scale = get_scale_factor (); var min_screenshot_width = MAX_WIDTH * scale; + var prefer_dark_theme = Gtk.Settings.get_default ().gtk_application_prefer_dark_theme; screenshots.foreach ((screenshot) => { + var environment_id = screenshot.get_environment (); + if (environment_id != null) { + var environment_split = environment_id.split (":", 2); + if (prefer_dark_theme && environment_split.length != 2) { + return; + } + + var color_scheme = AppStream.ColorSchemeKind.from_string (environment_split[1]); + if ((prefer_dark_theme && color_scheme != AppStream.ColorSchemeKind.DARK) || + (!prefer_dark_theme && color_scheme == AppStream.ColorSchemeKind.DARK)) { + return; + } + } + AppStream.Image? best_image = null; screenshot.get_images ().foreach ((image) => { // Image is better than no image