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