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