1db372d24Sopenharmony_ci/*
2db372d24Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
3db372d24Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
4db372d24Sopenharmony_ci * you may not use this file except in compliance with the License.
5db372d24Sopenharmony_ci * You may obtain a copy of the License at
6db372d24Sopenharmony_ci *
7db372d24Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
8db372d24Sopenharmony_ci *
9db372d24Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
10db372d24Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
11db372d24Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12db372d24Sopenharmony_ci * See the License for the specific language governing permissions and
13db372d24Sopenharmony_ci * limitations under the License.
14db372d24Sopenharmony_ci */
15db372d24Sopenharmony_ci
16db372d24Sopenharmony_ci#include "ui_appearance_ability_proxy.h"
17db372d24Sopenharmony_ci
18db372d24Sopenharmony_ci#include <string>
19db372d24Sopenharmony_ci#include "message_parcel.h"
20db372d24Sopenharmony_ci#include "ui_appearance_ipc_interface_code.h"
21db372d24Sopenharmony_ci#include "ui_appearance_log.h"
22db372d24Sopenharmony_ci
23db372d24Sopenharmony_cinamespace OHOS {
24db372d24Sopenharmony_cinamespace ArkUi::UiAppearance {
25db372d24Sopenharmony_ciint32_t UiAppearanceAbilityProxy::SetDarkMode(UiAppearanceAbilityInterface::DarkMode mode)
26db372d24Sopenharmony_ci{
27db372d24Sopenharmony_ci    MessageParcel data, reply;
28db372d24Sopenharmony_ci    MessageOption option;
29db372d24Sopenharmony_ci
30db372d24Sopenharmony_ci    if (!data.WriteInterfaceToken(GetDescriptor())) {
31db372d24Sopenharmony_ci        LOGE("Write descriptor failed!");
32db372d24Sopenharmony_ci        return SYS_ERR;
33db372d24Sopenharmony_ci    }
34db372d24Sopenharmony_ci    if (!data.WriteInt32(mode)) {
35db372d24Sopenharmony_ci        LOGE("Write mode failed!");
36db372d24Sopenharmony_ci        return SYS_ERR;
37db372d24Sopenharmony_ci    }
38db372d24Sopenharmony_ci
39db372d24Sopenharmony_ci    auto res =
40db372d24Sopenharmony_ci        Remote()->SendRequest(static_cast<uint32_t>(UiAppearanceInterfaceCode::SET_DARK_MODE), data, reply, option);
41db372d24Sopenharmony_ci    if (res != ERR_NONE) {
42db372d24Sopenharmony_ci        LOGE("SendRequest failed.");
43db372d24Sopenharmony_ci        return SYS_ERR;
44db372d24Sopenharmony_ci    }
45db372d24Sopenharmony_ci
46db372d24Sopenharmony_ci    return reply.ReadInt32();
47db372d24Sopenharmony_ci}
48db372d24Sopenharmony_ci
49db372d24Sopenharmony_ciint32_t UiAppearanceAbilityProxy::GetDarkMode()
50db372d24Sopenharmony_ci{
51db372d24Sopenharmony_ci    MessageParcel data, reply;
52db372d24Sopenharmony_ci    MessageOption option;
53db372d24Sopenharmony_ci
54db372d24Sopenharmony_ci    if (!data.WriteInterfaceToken(GetDescriptor())) {
55db372d24Sopenharmony_ci        LOGE("Write descriptor failed!");
56db372d24Sopenharmony_ci        return SYS_ERR;
57db372d24Sopenharmony_ci    }
58db372d24Sopenharmony_ci
59db372d24Sopenharmony_ci    auto res =
60db372d24Sopenharmony_ci        Remote()->SendRequest(static_cast<uint32_t>(UiAppearanceInterfaceCode::GET_DARK_MODE), data, reply, option);
61db372d24Sopenharmony_ci    if (res != ERR_NONE) {
62db372d24Sopenharmony_ci        LOGE("SendRequest failed.");
63db372d24Sopenharmony_ci        return SYS_ERR;
64db372d24Sopenharmony_ci    }
65db372d24Sopenharmony_ci
66db372d24Sopenharmony_ci    return reply.ReadInt32();
67db372d24Sopenharmony_ci}
68db372d24Sopenharmony_ciint32_t UiAppearanceAbilityProxy::SetFontScale(std::string &fontScale)
69db372d24Sopenharmony_ci{
70db372d24Sopenharmony_ci    MessageParcel data, reply;
71db372d24Sopenharmony_ci    MessageOption option;
72db372d24Sopenharmony_ci
73db372d24Sopenharmony_ci    if (!data.WriteInterfaceToken(GetDescriptor())) {
74db372d24Sopenharmony_ci        LOGE("Write descriptor failed!");
75db372d24Sopenharmony_ci        return SYS_ERR;
76db372d24Sopenharmony_ci    }
77db372d24Sopenharmony_ci    if (!data.WriteString(fontScale)) {
78db372d24Sopenharmony_ci        LOGE("Write fontScale failed!");
79db372d24Sopenharmony_ci        return SYS_ERR;
80db372d24Sopenharmony_ci    }
81db372d24Sopenharmony_ci
82db372d24Sopenharmony_ci    auto res =
83db372d24Sopenharmony_ci        Remote()->SendRequest(static_cast<uint32_t>(UiAppearanceInterfaceCode::SET_FONT_SCALE), data, reply, option);
84db372d24Sopenharmony_ci    if (res != ERR_NONE) {
85db372d24Sopenharmony_ci        LOGE("SendRequest failed.");
86db372d24Sopenharmony_ci        return SYS_ERR;
87db372d24Sopenharmony_ci    }
88db372d24Sopenharmony_ci
89db372d24Sopenharmony_ci    return reply.ReadInt32();
90db372d24Sopenharmony_ci}
91db372d24Sopenharmony_ci
92db372d24Sopenharmony_ciint32_t UiAppearanceAbilityProxy::GetFontScale(std::string &fontScale)
93db372d24Sopenharmony_ci{
94db372d24Sopenharmony_ci    MessageParcel data, reply;
95db372d24Sopenharmony_ci    MessageOption option;
96db372d24Sopenharmony_ci
97db372d24Sopenharmony_ci    if (!data.WriteInterfaceToken(GetDescriptor())) {
98db372d24Sopenharmony_ci        LOGE("Write descriptor failed!");
99db372d24Sopenharmony_ci        return SYS_ERR;
100db372d24Sopenharmony_ci    }
101db372d24Sopenharmony_ci
102db372d24Sopenharmony_ci    auto res =
103db372d24Sopenharmony_ci        Remote()->SendRequest(static_cast<uint32_t>(UiAppearanceInterfaceCode::GET_FONT_SCALE), data, reply, option);
104db372d24Sopenharmony_ci    if (res != ERR_NONE) {
105db372d24Sopenharmony_ci        LOGE("SendRequest failed.");
106db372d24Sopenharmony_ci        return SYS_ERR;
107db372d24Sopenharmony_ci    }
108db372d24Sopenharmony_ci
109db372d24Sopenharmony_ci    res = reply.ReadInt32();
110db372d24Sopenharmony_ci
111db372d24Sopenharmony_ci    if (!reply.ReadString(fontScale)) {
112db372d24Sopenharmony_ci        LOGE("Read FontScale failed!");
113db372d24Sopenharmony_ci        return SYS_ERR;
114db372d24Sopenharmony_ci    }
115db372d24Sopenharmony_ci
116db372d24Sopenharmony_ci    return res;
117db372d24Sopenharmony_ci}
118db372d24Sopenharmony_ci
119db372d24Sopenharmony_ciint32_t UiAppearanceAbilityProxy::SetFontWeightScale(std::string& fontWeightScale)
120db372d24Sopenharmony_ci{
121db372d24Sopenharmony_ci    MessageParcel data, reply;
122db372d24Sopenharmony_ci    MessageOption option;
123db372d24Sopenharmony_ci
124db372d24Sopenharmony_ci    if (!data.WriteInterfaceToken(GetDescriptor())) {
125db372d24Sopenharmony_ci        LOGE("Write descriptor failed!");
126db372d24Sopenharmony_ci        return SYS_ERR;
127db372d24Sopenharmony_ci    }
128db372d24Sopenharmony_ci    if (!data.WriteString(fontWeightScale)) {
129db372d24Sopenharmony_ci        LOGE("Write fontScale failed!");
130db372d24Sopenharmony_ci        return SYS_ERR;
131db372d24Sopenharmony_ci    }
132db372d24Sopenharmony_ci
133db372d24Sopenharmony_ci    auto res =
134db372d24Sopenharmony_ci        Remote()->SendRequest(static_cast<uint32_t>(UiAppearanceInterfaceCode::SET_FONT_Weight_SCALE),
135db372d24Sopenharmony_ci            data, reply, option);
136db372d24Sopenharmony_ci    if (res != ERR_NONE) {
137db372d24Sopenharmony_ci        LOGE("SendRequest failed.");
138db372d24Sopenharmony_ci        return SYS_ERR;
139db372d24Sopenharmony_ci    }
140db372d24Sopenharmony_ci
141db372d24Sopenharmony_ci    return reply.ReadInt32();
142db372d24Sopenharmony_ci}
143db372d24Sopenharmony_ci
144db372d24Sopenharmony_ciint32_t UiAppearanceAbilityProxy::GetFontWeightScale(std::string &fontWeightScale)
145db372d24Sopenharmony_ci{
146db372d24Sopenharmony_ci    MessageParcel data, reply;
147db372d24Sopenharmony_ci    MessageOption option;
148db372d24Sopenharmony_ci
149db372d24Sopenharmony_ci    if (!data.WriteInterfaceToken(GetDescriptor())) {
150db372d24Sopenharmony_ci        LOGE("##lmz Write descriptor failed!");
151db372d24Sopenharmony_ci        return SYS_ERR;
152db372d24Sopenharmony_ci    }
153db372d24Sopenharmony_ci
154db372d24Sopenharmony_ci    auto res =
155db372d24Sopenharmony_ci        Remote()->SendRequest(static_cast<uint32_t>(UiAppearanceInterfaceCode::GET_FONT_Weight_SCALE),
156db372d24Sopenharmony_ci            data, reply, option);
157db372d24Sopenharmony_ci    if (res != ERR_NONE) {
158db372d24Sopenharmony_ci        LOGE("SendRequest failed.");
159db372d24Sopenharmony_ci        return SYS_ERR;
160db372d24Sopenharmony_ci    }
161db372d24Sopenharmony_ci
162db372d24Sopenharmony_ci    res = reply.ReadInt32();
163db372d24Sopenharmony_ci
164db372d24Sopenharmony_ci    if (!reply.ReadString(fontWeightScale)) {
165db372d24Sopenharmony_ci        LOGE("Read FontScale failed!");
166db372d24Sopenharmony_ci        return SYS_ERR;
167db372d24Sopenharmony_ci    }
168db372d24Sopenharmony_ci
169db372d24Sopenharmony_ci    return res;
170db372d24Sopenharmony_ci}
171db372d24Sopenharmony_ci} // namespace ArkUi::UiAppearance
172db372d24Sopenharmony_ci} // namespace OHOS
173