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 "want_wrap_ohos.h"
17
18 #include "napi_common_want.h"
19
20 #include "base/utils/utils.h"
21
22 namespace OHOS::Ace {
CreateWantWrap(napi_env env, napi_value value)23 RefPtr<WantParamsWrap> WantParamsWrap::CreateWantWrap(napi_env env, napi_value value)
24 {
25 return AceType::MakeRefPtr<WantParamsWrapOhos>(env, value);
26 }
WantParamsWrapOhos(napi_env env, napi_value value)27 WantParamsWrapOhos::WantParamsWrapOhos(napi_env env, napi_value value)
28 {
29 AppExecFwk::UnwrapWantParams(env, value, params_);
30 }
31
ConvertToNativeValue(const OHOS::AAFwk::Want& want, napi_env env)32 napi_value WantWrap::ConvertToNativeValue(const OHOS::AAFwk::Want& want, napi_env env)
33 {
34 return OHOS::AppExecFwk::WrapWant(env, want);
35 }
36
ConvertParamsToNativeValue(const OHOS::AAFwk::WantParams& wantParams, napi_env env)37 napi_value WantWrap::ConvertParamsToNativeValue(const OHOS::AAFwk::WantParams& wantParams, napi_env env)
38 {
39 return OHOS::AppExecFwk::WrapWantParams(env, wantParams);
40 }
41
CreateWantWrap(napi_env env, napi_value value)42 RefPtr<WantWrap> WantWrap::CreateWantWrap(napi_env env, napi_value value)
43 {
44 if (env == nullptr || value == nullptr) {
45 LOGW("engine or value is nullptr when CreateWantWrap.");
46 return nullptr;
47 }
48
49 return AceType::MakeRefPtr<WantWrapOhos>(env, value);
50 }
51
CreateWantWrap(const std::string& bundleName, const std::string& abilityName)52 RefPtr<WantWrap> WantWrap::CreateWantWrap(const std::string& bundleName, const std::string& abilityName)
53 {
54 return AceType::MakeRefPtr<WantWrapOhos>(bundleName, abilityName);
55 }
56
WantWrapOhos(const AAFwk::Want& want)57 WantWrapOhos::WantWrapOhos(const AAFwk::Want& want) : want_(want) {}
58
WantWrapOhos(napi_env env, napi_value value)59 WantWrapOhos::WantWrapOhos(napi_env env, napi_value value)
60 {
61 OHOS::AppExecFwk::UnwrapWant(env, value, want_);
62 }
63
WantWrapOhos(const std::string& bundleName, const std::string& abilityName)64 WantWrapOhos::WantWrapOhos(const std::string& bundleName, const std::string& abilityName)
65 {
66 want_.SetElementName(bundleName, abilityName);
67 }
68
SetWantParamsFromWantWrap(void* want)69 void WantWrapOhos::SetWantParamsFromWantWrap(void* want)
70 {
71 auto destWant = reinterpret_cast<AAFwk::Want*>(want);
72 CHECK_NULL_VOID(destWant);
73 auto params = want_.GetParams();
74 destWant->SetParams(params);
75 }
76
SetWantParam(const std::map<std::string, std::string>& params)77 void WantWrapOhos::SetWantParam(const std::map<std::string, std::string>& params)
78 {
79 for (const auto& param : params) {
80 want_.SetParam(param.first, param.second);
81 }
82 }
83
ToString() const84 std::string WantWrapOhos::ToString() const
85 {
86 return want_.ToString();
87 }
88 } // namespace OHOS::Ace
89