1 /*
2 * Copyright (c) 2022 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 "ui_appearance_ability_stub.h"
17
18 #include <string>
19 #include "ui_appearance_ipc_interface_code.h"
20 #include "ui_appearance_log.h"
21
22 namespace OHOS {
23 namespace ArkUi::UiAppearance {
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)24 int32_t UiAppearanceAbilityStub::OnRemoteRequest(
25 uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option)
26 {
27 bool ret = false;
28 std::u16string interfaceToken = data.ReadInterfaceToken();
29 if (interfaceToken != GetDescriptor()) {
30 LOGE("error permission denied.");
31 return -1;
32 }
33 switch (code) {
34 case static_cast<uint32_t>(UiAppearanceInterfaceCode::SET_DARK_MODE): {
35 UiAppearanceAbilityInterface::DarkMode mode =
36 static_cast<UiAppearanceAbilityInterface::DarkMode>(data.ReadInt32());
37 ret = reply.WriteInt32(SetDarkMode(mode));
38 return (ret ? 0 : -1);
39 }
40 case static_cast<uint32_t>(UiAppearanceInterfaceCode::GET_DARK_MODE): {
41 ret = reply.WriteInt32(GetDarkMode());
42 return (ret ? 0 : -1);
43 }
44 case static_cast<uint32_t>(UiAppearanceInterfaceCode::GET_FONT_SCALE): {
45 return OnGetFontScaleInner(data, reply, option);
46 }
47 case static_cast<uint32_t>(UiAppearanceInterfaceCode::SET_FONT_SCALE): {
48 return OnSetFontScaleInner(data, reply, option);
49 }
50 case static_cast<uint32_t>(UiAppearanceInterfaceCode::GET_FONT_Weight_SCALE): {
51 return OnGetFontWeightScaleInner(data, reply, option);
52 }
53 case static_cast<uint32_t>(UiAppearanceInterfaceCode::SET_FONT_Weight_SCALE): {
54 return OnSetFontWeightScaleInner(data, reply, option);
55 }
56 default:
57 return IPCObjectStub::OnRemoteRequest(code, data, reply, option);
58 }
59 }
60
OnGetFontScaleInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)61 int32_t UiAppearanceAbilityStub::OnGetFontScaleInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)
62 {
63 std::string fontScale;
64 auto state = GetFontScale(fontScale);
65 auto ret = reply.WriteInt32(state);
66 if (!ret) {
67 LOGE("ui_appearance GetFontScale write state fail");
68 return -1;
69 }
70 ret = reply.WriteString(fontScale);
71 if (!ret) {
72 LOGE("ui_appearance GetFontScale write fontScale fail");
73 return -1;
74 }
75 return 0;
76 }
77
OnSetFontScaleInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)78 int32_t UiAppearanceAbilityStub::OnSetFontScaleInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)
79 {
80 std::string fontScale;
81 auto ret = data.ReadString(fontScale);
82 if (!ret) {
83 LOGE("ui_appearance SetFontScale Read fontScale fail");
84 return -1;
85 }
86 ret = reply.WriteInt32(SetFontScale(fontScale));
87 return (ret ? 0 : -1);
88 }
89
OnGetFontWeightScaleInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)90 int32_t UiAppearanceAbilityStub::OnGetFontWeightScaleInner(
91 MessageParcel& data, MessageParcel& reply, MessageOption& option)
92 {
93 std::string fontWeightScale;
94 auto state = GetFontWeightScale(fontWeightScale);
95 auto ret = reply.WriteInt32(state);
96 if (!ret) {
97 LOGE("ui_appearance GetFontWeightScale write state fail");
98 return -1;
99 }
100 ret = reply.WriteString(fontWeightScale);
101 if (!ret) {
102 LOGE("ui_appearance GetFontWeightScale write fontScale fail");
103 return -1;
104 }
105 return 0;
106 }
107
OnSetFontWeightScaleInner(MessageParcel & data,MessageParcel & reply,MessageOption & option)108 int32_t UiAppearanceAbilityStub::OnSetFontWeightScaleInner(
109 MessageParcel& data, MessageParcel& reply, MessageOption& option)
110 {
111 std::string fontWeightScale;
112 auto ret = data.ReadString(fontWeightScale);
113 if (!ret) {
114 LOGE("ui_appearance SetFontWeightScale Read fontScale fail");
115 return -1;
116 }
117 ret = reply.WriteInt32(SetFontWeightScale(fontWeightScale));
118 return (ret ? 0 : -1);
119 }
120
121 } // namespace ArkUi::UiAppearance
122 } // namespace OHOS
123