• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2020 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 "ability_info_utils.h"
17 
18 #include "utils.h"
19 
20 namespace OHOS {
CopyAbilityInfo(AbilityInfo * des,AbilityInfo src)21 void AbilityInfoUtils::CopyAbilityInfo(AbilityInfo *des, AbilityInfo src)
22 {
23     if (des == nullptr) {
24         return;
25     }
26 
27     SetAbilityInfoBundleName(des, src.bundleName);
28 #ifdef OHOS_APPEXECFWK_BMS_BUNDLEMANAGER
29     des->isVisible = src.isVisible;
30     des->abilityType = src.abilityType;
31     des->launchMode = src.launchMode;
32     SetAbilityInfoModuleName(des, src.moduleName);
33     SetAbilityInfoName(des, src.name);
34     SetAbilityInfoDescription(des, src.description);
35     SetAbilityInfoIconPath(des, src.iconPath);
36     SetAbilityInfoDeviceId(des, src.deviceId);
37     SetAbilityInfoLabel(des, src.label);
38 #else
39     SetAbilityInfoSrcPath(des, src.srcPath);
40 #endif
41 }
42 
SetAbilityInfoBundleName(AbilityInfo * abilityInfo,const char * bundleName)43 bool AbilityInfoUtils::SetAbilityInfoBundleName(AbilityInfo *abilityInfo, const char *bundleName)
44 {
45     if (abilityInfo == nullptr || bundleName == nullptr) {
46         return false;
47     }
48 
49     AdapterFree(abilityInfo->bundleName);
50     abilityInfo->bundleName = Utils::Strdup(bundleName);
51     return abilityInfo->bundleName != nullptr;
52 }
53 
54 #ifdef OHOS_APPEXECFWK_BMS_BUNDLEMANAGER
SetAbilityInfoModuleName(AbilityInfo * abilityInfo,const char * moduleName)55 bool AbilityInfoUtils::SetAbilityInfoModuleName(AbilityInfo *abilityInfo, const char *moduleName)
56 {
57     if (abilityInfo == nullptr || moduleName == nullptr) {
58         return false;
59     }
60 
61     AdapterFree(abilityInfo->moduleName);
62     abilityInfo->moduleName = Utils::Strdup(moduleName);
63     return abilityInfo->moduleName != nullptr;
64 }
65 
SetAbilityInfoName(AbilityInfo * abilityInfo,const char * name)66 bool AbilityInfoUtils::SetAbilityInfoName(AbilityInfo *abilityInfo, const char *name)
67 {
68     if (abilityInfo == nullptr || name == nullptr) {
69         return false;
70     }
71 
72     AdapterFree(abilityInfo->name);
73     abilityInfo->name = Utils::Strdup(name);
74     return abilityInfo->name != nullptr;
75 }
76 
SetAbilityInfoDescription(AbilityInfo * abilityInfo,const char * description)77 bool AbilityInfoUtils::SetAbilityInfoDescription(AbilityInfo *abilityInfo, const char *description)
78 {
79     if (abilityInfo == nullptr || description == nullptr) {
80         return false;
81     }
82 
83     AdapterFree(abilityInfo->description);
84     abilityInfo->description = Utils::Strdup(description);
85     return abilityInfo->description != nullptr;
86 }
87 
SetAbilityInfoIconPath(AbilityInfo * abilityInfo,const char * iconPath)88 bool AbilityInfoUtils::SetAbilityInfoIconPath(AbilityInfo *abilityInfo, const char *iconPath)
89 {
90     if (abilityInfo == nullptr || iconPath == nullptr) {
91         return false;
92     }
93 
94     AdapterFree(abilityInfo->iconPath);
95     abilityInfo->iconPath = Utils::Strdup(iconPath);
96     return abilityInfo->iconPath != nullptr;
97 }
98 
SetAbilityInfoDeviceId(AbilityInfo * abilityInfo,const char * deviceId)99 bool AbilityInfoUtils::SetAbilityInfoDeviceId(AbilityInfo *abilityInfo, const char *deviceId)
100 {
101     if (abilityInfo == nullptr || deviceId == nullptr) {
102         return false;
103     }
104 
105     AdapterFree(abilityInfo->deviceId);
106     abilityInfo->deviceId = Utils::Strdup(deviceId);
107     return abilityInfo->deviceId != nullptr;
108 }
109 
SetAbilityInfoLabel(AbilityInfo * abilityInfo,const char * label)110 bool AbilityInfoUtils::SetAbilityInfoLabel(AbilityInfo *abilityInfo, const char *label)
111 {
112     if (abilityInfo == nullptr || label == nullptr) {
113         return false;
114     }
115 
116     AdapterFree(abilityInfo->label);
117     abilityInfo->label = Utils::Strdup(label);
118     return abilityInfo->label != nullptr;
119 }
120 #else
SetAbilityInfoSrcPath(AbilityInfo * abilityInfo,const char * srcPath)121 bool AbilityInfoUtils::SetAbilityInfoSrcPath(AbilityInfo *abilityInfo, const char *srcPath)
122 {
123     if (abilityInfo == nullptr || srcPath == nullptr) {
124         return false;
125     }
126 
127     AdapterFree(abilityInfo->srcPath);
128     abilityInfo->srcPath = Utils::Strdup(srcPath);
129     return abilityInfo->srcPath != nullptr;
130 }
131 #endif
132 } // OHOS