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 "zidl/mock_session_manager_service_stub.h"
17 
18 #include <ipc_skeleton.h>
19 #include "window_manager_hilog.h"
20 
21 namespace OHOS {
22 namespace Rosen {
23 namespace {
24 constexpr HiviewDFX::HiLogLabel LABEL = {LOG_CORE, HILOG_DOMAIN_WINDOW, "MockSessionManagerServiceStub"};
25 }
26 
OnRemoteRequest(uint32_t code,MessageParcel & data,MessageParcel & reply,MessageOption & option)27 int32_t MockSessionManagerServiceStub::OnRemoteRequest(uint32_t code, MessageParcel& data, MessageParcel& reply,
28     MessageOption& option)
29 {
30     if (data.ReadInterfaceToken() != GetDescriptor()) {
31         WLOGFE("InterfaceToken check failed");
32         return ERR_TRANSACTION_FAILED;
33     }
34     auto msgId = static_cast<MockSessionManagerServiceMessage>(code);
35     WLOGFI("Receive MockSessionManagerServiceMessage = %{public}u", msgId);
36     switch (msgId) {
37         case MockSessionManagerServiceMessage::TRANS_ID_GET_SESSION_MANAGER_SERVICE: {
38             sptr<IRemoteObject> remoteObject = GetSessionManagerService();
39             reply.WriteRemoteObject(remoteObject);
40             break;
41         }
42         case MockSessionManagerServiceMessage::TRANS_ID_GET_SCREEN_SESSION_MANAGER: {
43             sptr<IRemoteObject> remoteObject = GetScreenSessionManagerLite();
44             reply.WriteRemoteObject(remoteObject);
45             break;
46         }
47         case MockSessionManagerServiceMessage::TRANS_ID_NOTIFY_SCENE_BOARD_AVAILABLE: {
48             NotifySceneBoardAvailable();
49             break;
50         }
51         case MockSessionManagerServiceMessage::TRANS_ID_REGISTER_SMS_RECOVER_LISTENER: {
52             sptr<IRemoteObject> listenerObject = data.ReadRemoteObject();
53             RegisterSMSRecoverListener(listenerObject);
54             break;
55         }
56         case MockSessionManagerServiceMessage::TRANS_ID_UNREGISTER_SMS_RECOVER_LISTENER: {
57             UnregisterSMSRecoverListener();
58             break;
59         }
60         case MockSessionManagerServiceMessage::TRANS_ID_REGISTER_SMS_LITE_RECOVER_LISTENER: {
61             sptr<IRemoteObject> listenerObject = data.ReadRemoteObject();
62             RegisterSMSLiteRecoverListener(listenerObject);
63             break;
64         }
65         case MockSessionManagerServiceMessage::TRANS_ID_UNREGISTER_SMS_LITE_RECOVER_LISTENER: {
66             UnregisterSMSLiteRecoverListener();
67             break;
68         }
69         default:
70             WLOGFW("unknown transaction code %{public}d", code);
71             return IPCObjectStub::OnRemoteRequest(code, data, reply, option);
72     }
73     return ERR_NONE;
74 }
75 } // namespace Rosen
76 } // namespace OHOS