| // Copyright 2023 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ash/wallpaper/wallpaper_utils/wallpaper_resolution.h" |
| |
| #include "ash/public/cpp/wallpaper/wallpaper_types.h" |
| #include "ui/display/display.h" |
| #include "ui/display/screen.h" |
| #include "ui/gfx/geometry/size.h" |
| |
| namespace ash { |
| |
| gfx::Size GetMaxDisplaySizeInNative() { |
| // Return an empty size for test environments where the screen is null. |
| if (!display::Screen::GetScreen()) { |
| return gfx::Size(); |
| } |
| |
| gfx::Size max; |
| for (const auto& display : display::Screen::GetScreen()->GetAllDisplays()) { |
| max.SetToMax(display.GetSizeInPixel()); |
| } |
| |
| return max; |
| } |
| |
| WallpaperResolution GetAppropriateResolution() { |
| gfx::Size size = GetMaxDisplaySizeInNative(); |
| return (size.width() > kSmallWallpaperMaxWidth || |
| size.height() > kSmallWallpaperMaxHeight) |
| ? WallpaperResolution::kLarge |
| : WallpaperResolution::kSmall; |
| } |
| |
| } // namespace ash |