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 #include "base/utils/system_properties.h"
19
20 namespace OHOS::Ace {
GetRosenBlurStyleValue(const BlurStyleOption & option)21 MATERIAL_BLUR_STYLE GetRosenBlurStyleValue(const BlurStyleOption& option)
22 {
23 ThemeColorMode colorMode = option.colorMode;
24 if (option.colorMode == ThemeColorMode::SYSTEM) {
25 colorMode = SystemProperties::GetColorMode() == ColorMode::DARK ? ThemeColorMode::DARK : ThemeColorMode::LIGHT;
26 }
27 SystemProperties::GetColorMode();
28 const static std::map<std::pair<BlurStyle, ThemeColorMode>, MATERIAL_BLUR_STYLE> mp = {
29 { { BlurStyle::THIN, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_CARD_THIN_LIGHT },
30 { { BlurStyle::THIN, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_CARD_THIN_DARK },
31 { { BlurStyle::REGULAR, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_CARD_LIGHT },
32 { { BlurStyle::REGULAR, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_CARD_DARK },
33 { { BlurStyle::THICK, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_CARD_THICK_LIGHT },
34 { { BlurStyle::THICK, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_CARD_THICK_DARK },
35 { { BlurStyle::BACKGROUND_THIN, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_SMALL_LIGHT },
36 { { BlurStyle::BACKGROUND_THIN, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_SMALL_DARK },
37 { { BlurStyle::BACKGROUND_REGULAR, ThemeColorMode::LIGHT },
38 MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_MEDIUM_LIGHT },
39 { { BlurStyle::BACKGROUND_REGULAR, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_MEDIUM_DARK },
40 { { BlurStyle::BACKGROUND_THICK, ThemeColorMode::LIGHT }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_LARGE_LIGHT },
41 { { BlurStyle::BACKGROUND_THICK, ThemeColorMode::DARK }, MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_LARGE_DARK },
42 { { BlurStyle::BACKGROUND_ULTRA_THICK, ThemeColorMode::LIGHT },
43 MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_XLARGE_LIGHT },
44 { { BlurStyle::BACKGROUND_ULTRA_THICK, ThemeColorMode::DARK },
45 MATERIAL_BLUR_STYLE::STYLE_BACKGROUND_XLARGE_DARK },
46 };
47 auto iter = mp.find({ option.blurStyle, colorMode });
48 return iter != mp.end() ? iter->second : MATERIAL_BLUR_STYLE::NO_MATERIAL;
49 }
50 } // namespace OHOS::Ace
51