1 /*
2  * Copyright (c) 2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "core/common/rosen/rosen_convert_helper.h"
17 
18 namespace OHOS::Ace {
GetRosenBlurStyleValue(const BlurStyleOption & option)19 MATERIAL_BLUR_STYLE GetRosenBlurStyleValue(const BlurStyleOption& option)
20 {
21     ThemeColorMode colorMode = option.colorMode;
22     if (option.colorMode == ThemeColorMode::SYSTEM) {
23         colorMode = SystemProperties::GetColorMode() == ColorMode::DARK ? ThemeColorMode::DARK : ThemeColorMode::LIGHT;
24     }
25     const static std::map<std::pair<BlurStyle, ThemeColorMode>, MATERIAL_BLUR_STYLE> mp = {
26         { { BlurStyle::THIN, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_CARD_THIN_LIGHT },
27         { { BlurStyle::THIN, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_CARD_THIN_DARK },
28         { { BlurStyle::REGULAR, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_CARD_LIGHT },
29         { { BlurStyle::REGULAR, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_CARD_DARK },
30         { { BlurStyle::THICK, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_CARD_THICK_LIGHT },
31         { { BlurStyle::THICK, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_CARD_THICK_DARK },
32         { { BlurStyle::BACKGROUND_THIN, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_SMALL_LIGHT },
33         { { BlurStyle::BACKGROUND_THIN, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_SMALL_DARK },
34         { { BlurStyle::BACKGROUND_REGULAR, ThemeColorMode::LIGHT },
35             MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_MEDIUM_LIGHT },
36         { { BlurStyle::BACKGROUND_REGULAR, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_MEDIUM_DARK },
37         { { BlurStyle::BACKGROUND_THICK, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_LARGE_LIGHT },
38         { { BlurStyle::BACKGROUND_THICK, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_LARGE_DARK },
39         { { BlurStyle::BACKGROUND_ULTRA_THICK, ThemeColorMode::LIGHT },
40             MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_XLARGE_LIGHT },
41         { { BlurStyle::BACKGROUND_ULTRA_THICK, ThemeColorMode::DARK },
42             MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_XLARGE_DARK },
43     };
44     auto iter = mp.find({ option.blurStyle, colorMode });
45     return iter != mp.end() ? iter->second : MATERIAL_BLUR_STYLE::NO_MATERIAL;
46 }
47 } // namespace OHOS::Ace
48