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 "ohos_adapter/bridge/ark_display_manager_adapter_wrapper.h" 17 18 #include "ohos_adapter/bridge/ark_display_adapter_wrapper.h" 19 #include "ohos_adapter/bridge/ark_display_listener_adapter_impl.h" 20 #include "ohos_adapter/bridge/ark_fold_status_listener_adapter_impl.h" 21 #include "ohos_adapter/ctocpp/ark_display_adapter_vector_ctocpp.h" 22 23 #include "base/bridge/ark_web_bridge_macros.h" 24 25 namespace OHOS::ArkWeb { 26 ArkDisplayManagerAdapterWrapper(ArkWebRefPtr<ArkDisplayManagerAdapter> ref)27ArkDisplayManagerAdapterWrapper::ArkDisplayManagerAdapterWrapper(ArkWebRefPtr<ArkDisplayManagerAdapter> ref) 28 : ctocpp_(ref) 29 {} 30 GetDefaultDisplayId()31OHOS::NWeb::DisplayId ArkDisplayManagerAdapterWrapper::GetDefaultDisplayId() 32 { 33 return ctocpp_->GetDefaultDisplayId(); 34 } 35 GetDefaultDisplay()36std::shared_ptr<OHOS::NWeb::DisplayAdapter> ArkDisplayManagerAdapterWrapper::GetDefaultDisplay() 37 { 38 ArkWebRefPtr<ArkDisplayAdapter> ref = ctocpp_->GetDefaultDisplay(); 39 if (CHECK_REF_PTR_IS_NULL(ref)) { 40 return nullptr; 41 } 42 43 return std::make_shared<ArkDisplayAdapterWrapper>(ref); 44 } 45 RegisterDisplayListener(std::shared_ptr<OHOS::NWeb::DisplayListenerAdapter> listener)46uint32_t ArkDisplayManagerAdapterWrapper::RegisterDisplayListener( 47 std::shared_ptr<OHOS::NWeb::DisplayListenerAdapter> listener) 48 { 49 if (CHECK_SHARED_PTR_IS_NULL(listener)) { 50 return ctocpp_->RegisterDisplayListener(nullptr); 51 } 52 53 return ctocpp_->RegisterDisplayListener(new ArkDisplayListenerAdapterImpl(listener)); 54 } 55 UnregisterDisplayListener(uint32_t id)56bool ArkDisplayManagerAdapterWrapper::UnregisterDisplayListener(uint32_t id) 57 { 58 return ctocpp_->UnregisterDisplayListener(id); 59 } 60 IsDefaultPortrait()61bool ArkDisplayManagerAdapterWrapper::IsDefaultPortrait() 62 { 63 return ctocpp_->IsDefaultPortrait(); 64 } 65 RegisterFoldStatusListener(std::shared_ptr<OHOS::NWeb::FoldStatusListenerAdapter> listener)66uint32_t ArkDisplayManagerAdapterWrapper::RegisterFoldStatusListener( 67 std::shared_ptr<OHOS::NWeb::FoldStatusListenerAdapter> listener) 68 { 69 if (CHECK_SHARED_PTR_IS_NULL(listener)) { 70 return ctocpp_->RegisterFoldStatusListener(nullptr); 71 } 72 73 return ctocpp_->RegisterFoldStatusListener(new ArkFoldStatusListenerAdapterImpl(listener)); 74 } 75 UnregisterFoldStatusListener(uint32_t id)76bool ArkDisplayManagerAdapterWrapper::UnregisterFoldStatusListener(uint32_t id) 77 { 78 return ctocpp_->UnregisterFoldStatusListener(id); 79 } 80 GetPrimaryDisplay()81std::shared_ptr<OHOS::NWeb::DisplayAdapter> ArkDisplayManagerAdapterWrapper::GetPrimaryDisplay() 82 { 83 ArkWebRefPtr<ArkDisplayAdapter> ref = ctocpp_->GetPrimaryDisplay(); 84 if (CHECK_REF_PTR_IS_NULL(ref)) { 85 return nullptr; 86 } 87 88 return std::make_shared<ArkDisplayAdapterWrapper>(ref); 89 } 90 GetAllDisplays()91std::vector<std::shared_ptr<OHOS::NWeb::DisplayAdapter>> ArkDisplayManagerAdapterWrapper::GetAllDisplays() 92 { 93 if (!ctocpp_) { 94 return std::vector<std::shared_ptr<OHOS::NWeb::DisplayAdapter>>(); 95 } 96 97 ArkDisplayAdapterVector ark_vector = ctocpp_->GetAllDisplays(); 98 99 std::vector<std::shared_ptr<OHOS::NWeb::DisplayAdapter>> result = ArkDisplayAdapterVectorStructToClass(ark_vector); 100 101 ArkDisplayAdapterVectorStructRelease(ark_vector); 102 103 return result; 104 } 105 106 } // namespace OHOS::ArkWeb 107