1cc290419Sopenharmony_ci/* 2cc290419Sopenharmony_ci * Copyright (c) 2023 Huawei Device Co., Ltd. 3cc290419Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4cc290419Sopenharmony_ci * you may not use this file except in compliance with the License. 5cc290419Sopenharmony_ci * You may obtain a copy of the License at 6cc290419Sopenharmony_ci * 7cc290419Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8cc290419Sopenharmony_ci * 9cc290419Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10cc290419Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11cc290419Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12cc290419Sopenharmony_ci * See the License for the specific language governing permissions and 13cc290419Sopenharmony_ci * limitations under the License. 14cc290419Sopenharmony_ci */ 15cc290419Sopenharmony_ci 16cc290419Sopenharmony_ci#include "common.h" 17cc290419Sopenharmony_ci#include "connection.h" 18cc290419Sopenharmony_ci#include "extension_manager_proxy.h" 19cc290419Sopenharmony_ci#include <semaphore.h> 20cc290419Sopenharmony_ci 21cc290419Sopenharmony_cinamespace OHOS { 22cc290419Sopenharmony_cinamespace HDC { 23cc290419Sopenharmony_cinamespace AUTH { 24cc290419Sopenharmony_ci 25cc290419Sopenharmony_ciusing namespace std; 26cc290419Sopenharmony_ciusing namespace AAFwk; 27cc290419Sopenharmony_ci 28cc290419Sopenharmony_civoid HdcdConnection::OnAbilityConnectDone(const AppExecFwk::ElementName &element, 29cc290419Sopenharmony_ci const sptr<IRemoteObject> &remoteObject, int32_t resultCode) 30cc290419Sopenharmony_ci{ 31cc290419Sopenharmony_ci MessageParcel data; 32cc290419Sopenharmony_ci MessageParcel reply; 33cc290419Sopenharmony_ci MessageOption option; 34cc290419Sopenharmony_ci const int paramNum = 3; 35cc290419Sopenharmony_ci string bundleName = "com.ohos.settings"; 36cc290419Sopenharmony_ci string abilityName = "USBDebugDialog"; 37cc290419Sopenharmony_ci string parameters = "{\"ability.want.params.uiExtensionType\":\"sysDialog/common\",\"sysDialogZOrder\":1}"; 38cc290419Sopenharmony_ci 39cc290419Sopenharmony_ci AUTH_LOGE("connect success"); 40cc290419Sopenharmony_ci 41cc290419Sopenharmony_ci data.WriteInt32(paramNum); 42cc290419Sopenharmony_ci data.WriteString16(Str8ToStr16("bundleName")); 43cc290419Sopenharmony_ci data.WriteString16(Str8ToStr16(bundleName)); 44cc290419Sopenharmony_ci data.WriteString16(Str8ToStr16("abilityName")); 45cc290419Sopenharmony_ci data.WriteString16(Str8ToStr16(abilityName)); 46cc290419Sopenharmony_ci 47cc290419Sopenharmony_ci data.WriteString16(Str8ToStr16("parameters")); 48cc290419Sopenharmony_ci data.WriteString16(Str8ToStr16(parameters)); 49cc290419Sopenharmony_ci 50cc290419Sopenharmony_ci if (!data.WriteParcelable(&element)) { 51cc290419Sopenharmony_ci AUTH_LOGE("Connect done element error"); 52cc290419Sopenharmony_ci return; 53cc290419Sopenharmony_ci } 54cc290419Sopenharmony_ci if (!data.WriteRemoteObject(remoteObject)) { 55cc290419Sopenharmony_ci AUTH_LOGE("Connect done remote object error"); 56cc290419Sopenharmony_ci return; 57cc290419Sopenharmony_ci } 58cc290419Sopenharmony_ci if (!data.WriteInt32(resultCode)) { 59cc290419Sopenharmony_ci AUTH_LOGE("Connect done result code error"); 60cc290419Sopenharmony_ci return; 61cc290419Sopenharmony_ci } 62cc290419Sopenharmony_ci 63cc290419Sopenharmony_ci int32_t ret = remoteObject->SendRequest(IAbilityConnection::ON_ABILITY_CONNECT_DONE, data, reply, option); 64cc290419Sopenharmony_ci showDialogResult = (ret == 0); 65cc290419Sopenharmony_ci sem_post(&sem); 66cc290419Sopenharmony_ci AUTH_LOGE("SendRequest(bundle(%s)ability(%s)parameters(%s)) ret(%d)", 67cc290419Sopenharmony_ci bundleName.c_str(), abilityName.c_str(), parameters.c_str(), ret); 68cc290419Sopenharmony_ci} 69cc290419Sopenharmony_ci 70cc290419Sopenharmony_cibool HdcdConnection::GetShowDialogResult(void) 71cc290419Sopenharmony_ci{ 72cc290419Sopenharmony_ci AUTH_LOGE("wait for dialog ability"); 73cc290419Sopenharmony_ci sem_wait(&sem); 74cc290419Sopenharmony_ci sem_destroy(&sem); 75cc290419Sopenharmony_ci AUTH_LOGE("wait dialog ability over"); 76cc290419Sopenharmony_ci return showDialogResult; 77cc290419Sopenharmony_ci} 78cc290419Sopenharmony_ci 79cc290419Sopenharmony_civoid HdcdConnection::OnAbilityDisconnectDone(const AppExecFwk::ElementName &element, 80cc290419Sopenharmony_ci int32_t resultCode) 81cc290419Sopenharmony_ci{ 82cc290419Sopenharmony_ci AUTH_LOGE("disconnect success"); 83cc290419Sopenharmony_ci} 84cc290419Sopenharmony_ci 85cc290419Sopenharmony_ci} // namespace AUTH 86cc290419Sopenharmony_ci} // namespace HDC 87cc290419Sopenharmony_ci} // namespace OHOS 88cc290419Sopenharmony_ci 89