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 <cinttypes>
17 #include "zidl/mock_session_manager_service_proxy.h"
18 #include "window_manager_hilog.h"
19 
20 namespace OHOS {
21 namespace Rosen {
22 namespace {
23 constexpr HiviewDFX::HiLogLabel LABEL = {LOG_CORE, HILOG_DOMAIN_WINDOW, "MockSessionManagerServiceProxy"};
24 }
25 
GetSessionManagerService()26 sptr<IRemoteObject> MockSessionManagerServiceProxy::GetSessionManagerService()
27 {
28     MessageParcel data;
29     MessageParcel reply;
30     MessageOption option;
31     if (!data.WriteInterfaceToken(GetDescriptor())) {
32         WLOGFE("WriteInterfaceToken failed");
33         return nullptr;
34     }
35     sptr<IRemoteObject> remote = Remote();
36     if (remote == nullptr) {
37         WLOGFE("remote is null");
38         return nullptr;
39     }
40     if (remote->SendRequest(static_cast<uint32_t>(
41         MockSessionManagerServiceMessage::TRANS_ID_GET_SESSION_MANAGER_SERVICE),
42         data, reply, option) != ERR_NONE) {
43         WLOGFE("SendRequest failed");
44         return nullptr;
45     }
46     sptr<IRemoteObject> remoteObject = reply.ReadRemoteObject();
47     return remoteObject;
48 }
49 
50 
GetScreenSessionManagerLite()51 sptr<IRemoteObject> MockSessionManagerServiceProxy::GetScreenSessionManagerLite()
52 {
53     MessageParcel data;
54     MessageParcel reply;
55     MessageOption option;
56     if (!data.WriteInterfaceToken(GetDescriptor())) {
57         WLOGFE("WriteInterfaceToken failed");
58         return nullptr;
59     }
60     sptr<IRemoteObject> remote = Remote();
61     if (remote == nullptr) {
62         WLOGFE("remote is null");
63         return nullptr;
64     }
65     if (remote->SendRequest(static_cast<uint32_t>(
66         MockSessionManagerServiceMessage::TRANS_ID_GET_SCREEN_SESSION_MANAGER),
67         data, reply, option) != ERR_NONE) {
68         return nullptr;
69     }
70     sptr<IRemoteObject> remoteObject = reply.ReadRemoteObject();
71     return remoteObject;
72 }
73 
NotifySceneBoardAvailable()74 void MockSessionManagerServiceProxy::NotifySceneBoardAvailable()
75 {
76     MessageParcel data;
77     MessageParcel reply;
78     MessageOption option = { MessageOption::TF_ASYNC };
79     if (!data.WriteInterfaceToken(GetDescriptor())) {
80         TLOGE(WmsLogTag::WMS_RECOVER, "WriteInterfaceToken failed");
81         return;
82     }
83 
84     sptr<IRemoteObject> remote = Remote();
85     if (remote == nullptr) {
86         TLOGE(WmsLogTag::WMS_RECOVER, "remote is null");
87         return;
88     }
89     if (remote->SendRequest(static_cast<uint32_t>(
90         MockSessionManagerServiceMessage::TRANS_ID_NOTIFY_SCENE_BOARD_AVAILABLE),
91         data, reply, option) != ERR_NONE) {
92         TLOGE(WmsLogTag::WMS_RECOVER, "SendRequest failed");
93         return;
94     }
95 }
96 
RegisterSMSRecoverListener(const sptr<IRemoteObject> & listener)97 void MockSessionManagerServiceProxy::RegisterSMSRecoverListener(const sptr<IRemoteObject>& listener)
98 {
99     TLOGD(WmsLogTag::WMS_RECOVER, "Register");
100     MessageParcel data;
101     MessageParcel reply;
102     MessageOption option;
103     if (!data.WriteInterfaceToken(GetDescriptor())) {
104         TLOGE(WmsLogTag::WMS_RECOVER, "WriteInterfaceToken failed");
105         return;
106     }
107 
108     if (!data.WriteRemoteObject(listener)) {
109         TLOGE(WmsLogTag::WMS_RECOVER, "WriteRemoteObject listener failed");
110         return;
111     }
112 
113     sptr<IRemoteObject> remote = Remote();
114     if (remote == nullptr) {
115         TLOGE(WmsLogTag::WMS_RECOVER, "remote is null");
116         return;
117     }
118     if (remote->SendRequest(static_cast<uint32_t>(
119         MockSessionManagerServiceMessage::TRANS_ID_REGISTER_SMS_RECOVER_LISTENER),
120         data, reply, option) != ERR_NONE) {
121         TLOGE(WmsLogTag::WMS_RECOVER, "SendRequest failed");
122         return;
123     }
124 }
125 
UnregisterSMSRecoverListener()126 void MockSessionManagerServiceProxy::UnregisterSMSRecoverListener()
127 {
128     TLOGD(WmsLogTag::WMS_RECOVER, "UnRegister");
129     MessageParcel data;
130     MessageParcel reply;
131     MessageOption option;
132     if (!data.WriteInterfaceToken(GetDescriptor())) {
133         TLOGE(WmsLogTag::WMS_RECOVER, "WriteInterfaceToken failed");
134     }
135     sptr<IRemoteObject> remote = Remote();
136     if (remote == nullptr) {
137         TLOGE(WmsLogTag::WMS_RECOVER, "remote is null");
138         return;
139     }
140     if (remote->SendRequest(static_cast<uint32_t>(
141         MockSessionManagerServiceMessage::TRANS_ID_UNREGISTER_SMS_RECOVER_LISTENER),
142         data, reply, option) != ERR_NONE) {
143         TLOGE(WmsLogTag::WMS_RECOVER, "SendRequest failed");
144         return;
145     }
146 }
147 
RegisterSMSLiteRecoverListener(const sptr<IRemoteObject> & listener)148 void MockSessionManagerServiceProxy::RegisterSMSLiteRecoverListener(const sptr<IRemoteObject>& listener)
149 {
150     TLOGD(WmsLogTag::WMS_RECOVER, "Register");
151     MessageParcel data;
152     MessageParcel reply;
153     MessageOption option;
154     if (!data.WriteInterfaceToken(GetDescriptor())) {
155         TLOGE(WmsLogTag::WMS_RECOVER, "WriteInterfaceToken failed");
156         return;
157     }
158 
159     if (!data.WriteRemoteObject(listener)) {
160         TLOGE(WmsLogTag::WMS_RECOVER, "WriteRemoteObject listener failed");
161         return;
162     }
163 
164     sptr<IRemoteObject> remote = Remote();
165     if (remote == nullptr) {
166         TLOGE(WmsLogTag::WMS_RECOVER, "remote is null");
167         return;
168     }
169     if (remote->SendRequest(static_cast<uint32_t>(
170         MockSessionManagerServiceMessage::TRANS_ID_REGISTER_SMS_LITE_RECOVER_LISTENER),
171         data, reply, option) != ERR_NONE) {
172         TLOGE(WmsLogTag::WMS_RECOVER, "SendRequest failed");
173         return;
174     }
175 }
176 
UnregisterSMSLiteRecoverListener()177 void MockSessionManagerServiceProxy::UnregisterSMSLiteRecoverListener()
178 {
179     TLOGD(WmsLogTag::WMS_RECOVER, "Unregister");
180     MessageParcel data;
181     MessageParcel reply;
182     MessageOption option;
183     if (!data.WriteInterfaceToken(GetDescriptor())) {
184         TLOGE(WmsLogTag::WMS_RECOVER, "WriteInterfaceToken failed");
185         return;
186     }
187     sptr<IRemoteObject> remote = Remote();
188     if (remote == nullptr) {
189         TLOGE(WmsLogTag::WMS_RECOVER, "remote is null");
190         return;
191     }
192     if (remote->SendRequest(static_cast<uint32_t>(
193         MockSessionManagerServiceMessage::TRANS_ID_UNREGISTER_SMS_LITE_RECOVER_LISTENER),
194         data, reply, option) != ERR_NONE) {
195         TLOGE(WmsLogTag::WMS_RECOVER, "SendRequest failed");
196         return;
197     }
198 }
199 
200 } // namespace Rosen
201 } // namespace OHOS