• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)27 ArkDisplayManagerAdapterWrapper::ArkDisplayManagerAdapterWrapper(ArkWebRefPtr<ArkDisplayManagerAdapter> ref)
28     : ctocpp_(ref)
29 {}
30 
GetDefaultDisplayId()31 OHOS::NWeb::DisplayId ArkDisplayManagerAdapterWrapper::GetDefaultDisplayId()
32 {
33     return ctocpp_->GetDefaultDisplayId();
34 }
35 
GetDefaultDisplay()36 std::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)46 uint32_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)56 bool ArkDisplayManagerAdapterWrapper::UnregisterDisplayListener(uint32_t id)
57 {
58     return ctocpp_->UnregisterDisplayListener(id);
59 }
60 
IsDefaultPortrait()61 bool ArkDisplayManagerAdapterWrapper::IsDefaultPortrait()
62 {
63     return ctocpp_->IsDefaultPortrait();
64 }
65 
RegisterFoldStatusListener(std::shared_ptr<OHOS::NWeb::FoldStatusListenerAdapter> listener)66 uint32_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)76 bool ArkDisplayManagerAdapterWrapper::UnregisterFoldStatusListener(uint32_t id)
77 {
78     return ctocpp_->UnregisterFoldStatusListener(id);
79 }
80 
GetPrimaryDisplay()81 std::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()91 std::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