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 "interfaces/inner_api/ui_session/ui_content_stub.h"
17 
18 #include "interfaces/inner_api/ui_session/ui_session_manager.h"
19 #include "ui_content_errors.h"
20 
21 #include "adapter/ohos/entrance/ui_session/include/ui_service_hilog.h"
22 
23 namespace OHOS::Ace {
OnRemoteRequest(uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option)24 int32_t UiContentStub::OnRemoteRequest(uint32_t code, MessageParcel& data, MessageParcel& reply, MessageOption& option)
25 {
26     if (data.ReadInterfaceToken() != GetDescriptor()) {
27         LOGW("ui_session InterfaceToken check failed");
28         return -1;
29     }
30     switch (code) {
31         case UI_CONTENT_SERVICE_GET_TREE: {
32             GetInspectorTreeInner(data, reply, option);
33             break;
34         }
35         case UI_CONTENT_CONNECT: {
36             ConnectInner(data, reply, option);
37             break;
38         }
39         case REGISTER_CLICK_EVENT: {
40             RegisterClickEventCallbackInner(data, reply, option);
41             break;
42         }
43         case REGISTER_SEARCH_EVENT: {
44             RegisterSearchEventCallbackInner(data, reply, option);
45             break;
46         }
47         case REGISTER_ROUTER_CHANGE_EVENT: {
48             RegisterRouterChangeEventCallbackInner(data, reply, option);
49             break;
50         }
51         case REGISTER_COMPONENT_EVENT: {
52             RegisterComponentChangeEventCallbackInner(data, reply, option);
53             break;
54         }
55         case UNREGISTER_CLICK_EVENT: {
56             UnregisterClickEventCallbackInner(data, reply, option);
57             break;
58         }
59         case UNREGISTER_SEARCH_EVENT: {
60             UnregisterSearchEventCallbackInner(data, reply, option);
61             break;
62         }
63         case UNREGISTER_ROUTER_CHANGE_EVENT: {
64             UnregisterRouterChangeEventCallbackInner(data, reply, option);
65             break;
66         }
67         case UNREGISTER_COMPONENT_EVENT: {
68             UnregisterComponentChangeEventCallbackInner(data, reply, option);
69             break;
70         }
71         case UNREGISTER_WEB_UNFOCUS_EVENT: {
72             UnregisterWebUnfocusEventCallbackInner(data, reply, option);
73             break;
74         }
75         default: {
76             LOGI("ui_session unknown transaction code %{public}d", code);
77             return IPCObjectStub::OnRemoteRequest(code, data, reply, option);
78         }
79     }
80     return 0;
81 }
82 
GetInspectorTreeInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)83 int32_t UiContentStub::GetInspectorTreeInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)
84 {
85     GetInspectorTree(nullptr);
86     return NO_ERROR;
87 }
88 
ConnectInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)89 int32_t UiContentStub::ConnectInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)
90 {
91     sptr<IRemoteObject> report = data.ReadRemoteObject();
92     if (report == nullptr) {
93         LOGW("read reportStub object is nullptr,connect failed");
94         return FAILED;
95     }
96     int32_t processId = data.ReadInt32();
97     UiSessionManager::GetInstance().SaveReportStub(report, processId);
98     UiSessionManager::GetInstance().SendBaseInfo(processId);
99     return NO_ERROR;
100 }
101 
RegisterClickEventCallbackInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)102 int32_t UiContentStub::RegisterClickEventCallbackInner(MessageParcel& data, MessageParcel& reply, MessageOption& option)
103 {
104     reply.WriteInt32(RegisterClickEventCallback(nullptr));
105     return NO_ERROR;
106 }
107 
RegisterRouterChangeEventCallbackInner( MessageParcel& data, MessageParcel& reply, MessageOption& option)108 int32_t UiContentStub::RegisterRouterChangeEventCallbackInner(
109     MessageParcel& data, MessageParcel& reply, MessageOption& option)
110 {
111     reply.WriteInt32(RegisterRouterChangeEventCallback(nullptr));
112     return NO_ERROR;
113 }
114 
RegisterSearchEventCallbackInner( MessageParcel& data, MessageParcel& reply, MessageOption& option)115 int32_t UiContentStub::RegisterSearchEventCallbackInner(
116     MessageParcel& data, MessageParcel& reply, MessageOption& option)
117 {
118     reply.WriteInt32(RegisterSearchEventCallback(nullptr));
119     return NO_ERROR;
120 }
121 
RegisterComponentChangeEventCallbackInner( MessageParcel& data, MessageParcel& reply, MessageOption& option)122 int32_t UiContentStub::RegisterComponentChangeEventCallbackInner(
123     MessageParcel& data, MessageParcel& reply, MessageOption& option)
124 {
125     reply.WriteInt32(RegisterComponentChangeEventCallback(nullptr));
126     return NO_ERROR;
127 }
128 
RegisterWebUnfocusEventCallbackInner( MessageParcel& data, MessageParcel& reply, MessageOption& option)129 int32_t UiContentStub::RegisterWebUnfocusEventCallbackInner(
130     MessageParcel& data, MessageParcel& reply, MessageOption& option)
131 {
132     reply.WriteInt32(RegisterWebUnfocusEventCallback(nullptr));
133     return NO_ERROR;
134 }
135 
UnregisterClickEventCallbackInner( MessageParcel& data, MessageParcel& reply, MessageOption& option)136 int32_t UiContentStub::UnregisterClickEventCallbackInner(
137     MessageParcel& data, MessageParcel& reply, MessageOption& option)
138 {
139     reply.WriteInt32(UnregisterClickEventCallback());
140     return NO_ERROR;
141 }
142 
UnregisterSearchEventCallbackInner( MessageParcel& data, MessageParcel& reply, MessageOption& option)143 int32_t UiContentStub::UnregisterSearchEventCallbackInner(
144     MessageParcel& data, MessageParcel& reply, MessageOption& option)
145 {
146     reply.WriteInt32(UnregisterSearchEventCallback());
147     return NO_ERROR;
148 }
149 
UnregisterRouterChangeEventCallbackInner( MessageParcel& data, MessageParcel& reply, MessageOption& option)150 int32_t UiContentStub::UnregisterRouterChangeEventCallbackInner(
151     MessageParcel& data, MessageParcel& reply, MessageOption& option)
152 {
153     reply.WriteInt32(UnregisterRouterChangeEventCallback());
154     return NO_ERROR;
155 }
156 
UnregisterComponentChangeEventCallbackInner( MessageParcel& data, MessageParcel& reply, MessageOption& option)157 int32_t UiContentStub::UnregisterComponentChangeEventCallbackInner(
158     MessageParcel& data, MessageParcel& reply, MessageOption& option)
159 {
160     reply.WriteInt32(UnregisterComponentChangeEventCallback());
161     return NO_ERROR;
162 }
163 
UnregisterWebUnfocusEventCallbackInner( MessageParcel& data, MessageParcel& reply, MessageOption& option)164 int32_t UiContentStub::UnregisterWebUnfocusEventCallbackInner(
165     MessageParcel& data, MessageParcel& reply, MessageOption& option)
166 {
167     reply.WriteInt32(UnregisterWebUnfocusEventCallback());
168     return NO_ERROR;
169 }
170 } // namespace OHOS::Ace
171