diff --git a/AppScope/app.json b/AppScope/app.json
new file mode 100644
index 0000000..16355d6
--- /dev/null
+++ b/AppScope/app.json
@@ -0,0 +1,13 @@
+{
+ "app": {
+ "bundleName": "com.ohos.contactsdataability",
+ "vendor": "ohos",
+ "versionCode": 1000000,
+ "versionName": "1.0.0",
+ "icon": "",
+ "label": "$string:app_name",
+ "distributedNotificationEnabled": true,
+ "minAPIVersion": 9,
+ "targetAPIVersion": 9
+ }
+}
\ No newline at end of file
diff --git a/AppScope/resources/base/element/string.json b/AppScope/resources/base/element/string.json
new file mode 100644
index 0000000..eff784e
--- /dev/null
+++ b/AppScope/resources/base/element/string.json
@@ -0,0 +1,8 @@
+{
+ "string":[
+ {
+ "name": "app_name",
+ "value": "ContactsData"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/BUILD.gn b/BUILD.gn
index 89ea052..8c8db8f 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -16,7 +16,11 @@ import("//build/ohos.gni")
## Build Contacts_DataAbility.hap
ohos_hap("Contacts_DataAbility") {
- hap_profile = "./config.json"
+ hap_profile = "entry/src/main/module.json"
+ deps = [
+ ":Contacts_DataAbility_js_assets",
+ ":Contacts_DataAbility_resources"
+ ]
shared_libraries = [ ":contactsdataability" ]
certificate_profile = "./signature/contactsdata.p7b"
hap_name = "Contacts_DataAbility"
@@ -25,6 +29,26 @@ ohos_hap("Contacts_DataAbility") {
module_install_dir = "app/com.ohos.contactsdataability"
}
+ohos_app_scope("Contacts_DataAbility_app_profile") {
+ app_profile = "AppScope/app.json"
+ sources = [ "AppScope/resources" ]
+}
+
+ohos_js_assets("Contacts_DataAbility_js_assets") {
+ ets2abc = true
+ source_dir = "entry/src/main/ets"
+}
+
+ohos_resources("Contacts_DataAbility_resources") {
+ sources = [
+ "entry/src/main/resources",
+ ]
+ deps = [
+ ":Contacts_DataAbility_app_profile",
+ ]
+ hap_profile = "entry/src/main/module.json"
+}
+
## Build contactsdataability.so {{{
config("contactsdataability_public_config") {
visibility = [ ":*" ]
@@ -72,6 +96,7 @@ ohos_shared_library("contactsdataability") {
"dataBusiness/contacts/src/contacts_account.cpp",
"dataBusiness/contacts/src/contacts_data_ability.cpp",
"dataBusiness/contacts/src/contacts_database.cpp",
+ "dataBusiness/contacts/src/contacts_datashare_stub_impl.cpp",
"dataBusiness/contacts/src/contacts_type.cpp",
"dataBusiness/contacts/src/contacts_update_helper.cpp",
"dataBusiness/contacts/src/profile_database.cpp",
@@ -89,22 +114,30 @@ ohos_shared_library("contactsdataability") {
"//base/account/os_account/interfaces/kits/napi/distributedaccount/include/",
"//base/account/os_account/interfaces/innerkits/include",
"//foundation/ability/ability_runtime/interfaces/inner_api/ability_manager/include",
- "//foundation/ability/ability_runtime/services/abilitymgr/include",
+ "//foundation/ability/ability_runtime/interfaces/inner_api/dataobs_manager/include",
"//foundation/ability/ability_runtime/interfaces/kits/native/ability/native",
+ "//foundation/ability/ability_runtime/services/abilitymgr/include",
]
- deps = [ "//third_party/jsoncpp:jsoncpp" ]
+ deps = [
+ "//foundation/ability/ability_runtime/interfaces/inner_api/dataobs_manager:dataobs_manager",
+ "//third_party/jsoncpp:jsoncpp"
+ ]
public_configs = [ ":contactsdataability_public_config" ]
external_deps = [
"ability_base:want",
"ability_base:zuri",
"ability_runtime:abilitykit_native",
+ "ability_runtime:app_context",
"c_utils:utilsbase",
"common_event_service:cesfwk_innerkits",
+ "data_share:datashare_common",
+ "data_share:datashare_provider",
"napi:ace_napi",
"relational_store:native_dataability",
"relational_store:native_rdb",
+ "relational_store:rdb_data_share_adapter",
]
defines = [
diff --git a/README_zh.md b/README_zh.md
index 6bcac86..9579127 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -9,8 +9,8 @@
## 简介
联系人数据库应用是每一个用户管理联系人数据库的不可缺少的一个信息管理应用,
-它的内容对于用户管理者来说是至关重要的,所以联系人数据库应该能够为每一个
-用户的管理提供充足的信息和快捷查询手段,大大方便用户合理的管理联系人数据库信息。
+它的内容对于用户管理者来说是至关重要的,所以联系人数据库应该能够为每一个
+用户的管理提供充足的信息和快捷查询手段,大大方便用户合理的管理联系人数据库信息。
## 架构图
@@ -41,17 +41,16 @@
### 概述
提供联系人数据和通话记录以及语音信箱增、删、改、查、等接口。
-接口参数主要有string类型的uri和对象类型的value、DataAbilityPredicates
+接口参数主要有string类型的uri和对象类型的value、DataSharePredicates
使用功能接口前,需要导入相关模块。
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
+import dataShare from '@ohos.data.dataShare';
```
### 通话记录
-#### DAHelper.insert(uri: string, value: ValuesBucket)
+#### dataShareHelper.insert(uri: string, value: ValuesBucket)
- 接口说明
@@ -68,19 +67,18 @@ import ohos_data_ability from '@ohos.data.dataability';
更新示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var calllogDAhelperUri= "dataability:///com.ohos.calllogability";
-var calllogUri = "dataability:///com.ohos.calllogability/calls/calllog";
+import dataShare from '@ohos.data.dataShare';
+var calllogData = "datashare:///com.ohos.calllogability";
+var calllogUri = "datashare:///com.ohos.calllogability/calls/calllog";
var value = {"phone_number" : "xxxxx","display_name" : "xxx"};
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(calllogDAhelperUri);
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(calllogData);
// 调用insert方法
-DAHelper.insert(calllogUri, value).then((data) => {
+dataShareHelper.insert(calllogUri, value).then((data) => {
console.info("calllogId = " + data);
});
```
-#### DAHelper.update(uri: string, value: ValuesBucket, condition: DataAbilityPredicates)
+#### dataShareHelper.update(uri: string, condition: DataSharePredicates, value: ValuesBucket)
- 接口说明
@@ -91,30 +89,29 @@ DAHelper.insert(calllogUri, value).then((data) => {
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | ------------------------------ |
| uri | 只读 | string | 是 | 具体操作的uri |
+ | condition | 只读 | DataSharePredicates | 是 | 更新条件 |
| value | 只读 | ValuesBucket | 是 | 数据库字段key-value对象 |
- | condition | 只读 | DataAbilityPredicates | 是 | 更新条件 |
返回值为 成功为0否则为-1
修改示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var calllogDAhelperUri= "dataability:///com.ohos.calllogability";
-var calllogUri = "dataability:///com.ohos.calllogability/calls/calllog";
+import dataShare from '@ohos.data.dataShare';
+var calllogData = "datashare:///com.ohos.calllogability";
+var calllogUri = "datashare:///com.ohos.calllogability/calls/calllog";
var value = {"phone_number" : "xxxxx","display_name" : "xxx"};
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(calllogDAhelperUri);
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(calllogData);
// 条件参数
-let condition = new ohos_data_ability.DataAbilityPredicates();
+let condition = new dataShare.DataSharePredicates();
condition.equalTo("id", "xxx");
// 调用update方法
-DAHelper.update(calllogUri, value, condition).then((data) => {
+dataShareHelper.update(calllogUri, value, condition).then((data) => {
console.info("resultCode = " + data);
});
```
-#### DAHelper.delete(uri: string, condition: DataAbilityPredicates)
+#### dataShareHelper.delete(uri: string, condition: DataSharePredicates)
- 接口说明
@@ -125,28 +122,27 @@ DAHelper.update(calllogUri, value, condition).then((data) => {
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | ------------------------------ |
| uri | 只读 | string | 是 | 具体操作的uri |
- | condition | 只读 | DataAbilityPredicates | 是 | 删除条件 |
+ | condition | 只读 | DataSharePredicates | 是 | 删除条件 |
返回值为 成功为0否则为-1
删除示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var calllogDAhelperUri= "dataability:///com.ohos.calllogability";
-var calllogUri = "dataability:///com.ohos.calllogability/calls/calllog";
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(calllogDAhelperUri);
+import dataShare from '@ohos.data.dataShare';
+var calllogData = "datashare:///com.ohos.calllogability";
+var calllogUri = "datashare:///com.ohos.calllogability/calls/calllog";
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(calllogData);
// 条件参数
-let condition = new ohos_data_ability.DataAbilityPredicates();
+let condition = new dataShare.DataSharePredicates();
condition.equalTo("id", "xxx");
// 调用delete方法
-DAHelper.delete(calllogUri, condition).then((data) => {
+dataShareHelper.delete(calllogUri, condition).then((data) => {
console.info("deleteCode = " + data);
});
```
-#### DAHelper.query(uri: string, resultColumns: array, condition: DataAbilityPredicates)
+#### dataShareHelper.query(uri: string, condition: DataSharePredicates, resultColumns: array)
- 接口说明
@@ -157,25 +153,24 @@ DAHelper.delete(calllogUri, condition).then((data) => {
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | ------------------------------ |
| uri | 只读 | string | 是 | 具体操作的uri |
- | resultColumns | 只读 | array | 是 | 需要查询的列字段名称 |
- | condition | 只读 | DataAbilityPredicates | 是 | 查询条件 |
+ | condition | 只读 | DataSharePredicates | 是 | 查询条件 |
+ | resultColumns | 只读 | array | 是 | 需要查询的列字段名称 |
返回值为 ResultSet 查询结果集
查询示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var calllogDAhelperUri= "dataability:///com.ohos.calllogability";
-var calllogUri = "dataability:///com.ohos.calllogability/calls/calllog";
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(calllogDAhelperUri);
+import dataShare from '@ohos.data.dataShare';
+var calllogData = "datashare:///com.ohos.calllogability";
+var calllogUri = "datashare:///com.ohos.calllogability/calls/calllog";
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(calllogData);
// 条件参数
-let condition = new ohos_data_ability.DataAbilityPredicates();
+let condition = new dataShare.DataSharePredicates();
condition.equalTo("id", "xxx");
var resultColumns = [ "id", "display_name", "phone_number"];
// 调用query方法
-DAHelper.query(calllogUri, resultColumns, condition).then((resultSet) => {
+dataShareHelper.query(calllogUri, resultColumns, condition).then((resultSet) => {
if (resultSet.goToFirstRow()) {
do {
var displayName = resultSet.getString(resultSet.getColumnIndex("display_name"));
@@ -190,7 +185,7 @@ DAHelper.query(calllogUri, resultColumns, condition).then((resultSet) => {
### 语音信箱
-#### DAHelper.insert(uri: string, value: ValuesBucket)
+#### dataShareHelper.insert(uri: string, value: ValuesBucket)
- 接口说明
@@ -207,19 +202,18 @@ DAHelper.query(calllogUri, resultColumns, condition).then((resultSet) => {
更新示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var voicemailDAhelperUri= "dataability:///com.ohos.voicemailability";
-var voicemaiUri = "dataability:///com.ohos.voicemailability/calls/voicemail";
+import dataShare from '@ohos.data.dataShare';
+var voicemailData = "datashare:///com.ohos.voicemailability";
+var voicemailUri = "datashare:///com.ohos.voicemailability/calls/voicemail";
var value = {"phone_number" : "xxxxx","display_name" : "xxx"};
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(voicemailDAhelperUri);
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(voicemailData);
// 调用insert方法
-DAHelper.insert(voicemaiUri, value).then((data) => {
+dataShareHelper.insert(voicemailUri, value).then((data) => {
console.info("calllogId = " + data);
});
```
-#### DAHelper.update(uri: string, value: ValuesBucket, condition:DataAbilityPredicates)
+#### dataShareHelper.update(uri: string, condition:DataSharePredicates, value: ValuesBucket)
- 接口说明
@@ -230,30 +224,29 @@ DAHelper.insert(voicemaiUri, value).then((data) => {
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | ------------------------------ |
| uri | 只读 | string | 是 | 具体操作的uri |
+ | condition | 只读 | DataSharePredicates | 是 | 更新条件 |
| value | 只读 | ValuesBucket | 是 | 数据库字段key-value对象 |
- | condition | 只读 | DataAbilityPredicates | 是 | 更新条件 |
返回值为 成功为0否则为-1
修改示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var voicemailDAhelperUri= "dataability:///com.ohos.voicemailability";
-var voicemaiUri = "dataability:///com.ohos.voicemailability/calls/voicemail";
+import dataShare from '@ohos.data.dataShare';
+var voicemailData = "datashare:///com.ohos.voicemailability";
+var voicemailUri = "datashare:///com.ohos.voicemailability/calls/voicemail";
var value = {"phone_number" : "xxxxx","display_name" : "xxx"};
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(voicemailDAhelperUri);
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(voicemailData);
// 条件参数
-let condition = new ohos_data_ability.DataAbilityPredicates();
+let condition = new dataShare.DataSharePredicates();
condition.equalTo("id", "xxx");
// 调用update方法
-DAHelper.update(voicemaiUri, value, condition).then((data) => {
+dataShareHelper.update(voicemailUri, value, condition).then((data) => {
console.info("resultCode = " + data);
});
```
-#### DAHelper.delete(uri: string, condition: DataAbilityPredicates)
+#### dataShareHelper.delete(uri: string, condition: DataSharePredicates)
- 接口说明
@@ -264,28 +257,27 @@ DAHelper.update(voicemaiUri, value, condition).then((data) => {
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | ------------------------------ |
| uri | 只读 | string | 是 | 具体操作的uri |
- | condition | 只读 | DataAbilityPredicates | 是 | 删除条件 |
+ | condition | 只读 | DataSharePredicates | 是 | 删除条件 |
返回值为 成功为0否则为-1
删除示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var voicemailDAhelperUri= "dataability:///com.ohos.voicemailability";
-var voicemaiUri = "dataability:///com.ohos.voicemailability/calls/voicemail";
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(voicemailDAhelperUri);
+import dataShare from '@ohos.data.dataShare';
+var voicemailData = "datashare:///com.ohos.voicemailability";
+var voicemailUri = "datashare:///com.ohos.voicemailability/calls/voicemail";
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(voicemailData);
// 条件参数
-let condition = new ohos_data_ability.DataAbilityPredicates();
+let condition = new dataShare.DataSharePredicates();
condition.equalTo("id", "xxx");
// 调用delete方法
-DAHelper.delete(voicemaiUri, condition).then((data) => {
+dataShareHelper.delete(voicemailUri, condition).then((data) => {
console.info("deleteCode = " + data);
});
```
-#### DAHelper.query(uri: string, resultColumns:array, condition: DataAbilityPredicates)
+#### dataShareHelper.query(uri: string, condition: DataSharePredicates, resultColumns:array)
- 接口说明
@@ -296,25 +288,24 @@ DAHelper.delete(voicemaiUri, condition).then((data) => {
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | ------------------------------ |
| uri | 只读 | string | 是 | 具体操作的uri |
- | resultColumns | 只读 | array | 是 | 需要查询的列字段名称 |
- | condition | 只读 | DataAbilityPredicates | 是 | 查询条件 |
+ | condition | 只读 | DataSharePredicates | 是 | 查询条件 |
+ | resultColumns | 只读 | array | 是 | 需要查询的列字段名称 |
返回值为 ResultSet 查询结果集
查询示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var voicemailDAhelperUri= "dataability:///com.ohos.voicemailability";
-var voicemaiUri = "dataability:///com.ohos.voicemailability/calls/voicemail";
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(calllogDAhelperUri);
+import dataShare from '@ohos.data.dataShare';
+var voicemailData = "datashare:///com.ohos.voicemailability";
+var voicemailUri = "datashare:///com.ohos.voicemailability/calls/voicemail";
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(voicemailData);
// 条件参数
-let condition = new ohos_data_ability.DataAbilityPredicates();
+let condition = new dataShare.DataSharePredicates();
condition.equalTo("id", "xxx");
var resultColumns = [ "id", "display_name", "phone_number"];
// 调用query方法
-DAHelper.query(voicemaiUri, resultColumns, condition).then((resultSet) => {
+dataShareHelper.query(voicemailUri, resultColumns, condition).then((resultSet) => {
if (resultSet.goToFirstRow()) {
do {
var displayName = resultSet.getString(resultSet.getColumnIndex("display_name"));
@@ -328,7 +319,7 @@ DAHelper.query(voicemaiUri, resultColumns, condition).then((resultSet) => {
### 联系人
-#### DAHelper.insert(uri: string, value: ValuesBucket)
+#### dataShareHelper.insert(uri: string, value: ValuesBucket)
- 接口说明
@@ -345,16 +336,15 @@ DAHelper.query(voicemaiUri, resultColumns, condition).then((resultSet) => {
更新示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var contactsUri= "dataability:///com.ohos.contactsdataability";
-var rawContactUri = "dataability:///com.ohos.contactsdataability/contacts/raw_contact";
-var contactDataUri = "dataability:///com.ohos.contactsdataability/contacts/contact_data";
+import dataShare from '@ohos.data.dataShare';
+var contactsData = "datashare:///com.ohos.contactsdataability";
+var rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact";
+var contactDataUri = "datashare:///com.ohos.contactsdataability/contacts/contact_data";
var value = {"display_name" : "xxx"};
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(contactsUri);
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(contactsData);
// 调用insert方法
-DAHelper.insert(rawContactUri, value).then((rawContactId) => {
+dataShareHelper.insert(rawContactUri, value).then((rawContactId) => {
console.info("rawContactId = " + rawContactId);
// 联系人详细信息插入
var contactDataValues = {
@@ -362,12 +352,12 @@ DAHelper.insert(rawContactUri, value).then((rawContactId) => {
"content_type" : "name",
"detail_info" : "xxxxxxx"
};
- DAHelper.insert(contactDataUri, contactDataValues).then((contactDataId) => {
+ dataShareHelper.insert(contactDataUri, contactDataValues).then((contactDataId) => {
console.info("rawContactId = " + contactDataId);
};
});
```
-#### DAHelper.update(uri: string, value: ValuesBucket, condition: DataAbilityPredicates)
+#### dataShareHelper.update(uri: string, condition: DataSharePredicates, value: ValuesBucket)
- 接口说明
@@ -378,31 +368,30 @@ DAHelper.insert(rawContactUri, value).then((rawContactId) => {
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | ------------------------------ |
| uri | 只读 | string | 是 | 具体操作的uri |
+ | condition | 只读 | DataSharePredicates | 是 | 更新条件 |
| value | 只读 | ValuesBucket | 是 | 数据库字段key-value对象 |
- | condition | 只读 | DataAbilityPredicates | 是 | 更新条件 |
返回值为 成功为0否则为-1
修改示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var contactsUri= "dataability:///com.ohos.contactsdataability";
-var rawContactUri = "dataability:///com.ohos.contactsdataability/contacts/raw_contact";
-var contactDataUri = "dataability:///com.ohos.contactsdataability/contacts/contact_data";
+import dataShare from '@ohos.data.dataShare';
+var contactsData = "datashare:///com.ohos.contactsdataability";
+var rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact";
+var contactDataUri = "datashare:///com.ohos.contactsdataability/contacts/contact_data";
var value = {"display_name" : "xxx"};
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(contactsUri);
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(contactsData);
// 条件参数
-let condition = new ohos_data_ability.DataAbilityPredicates();
+let condition = new dataShare.DataSharePredicates();
condition.equalTo("id", "xxx");
// 调用update方法
-DAHelper.update(rawContactUri, value, condition).then((data) => {
+dataShareHelper.update(rawContactUri, value, condition).then((data) => {
console.info("resultCode = " + data);
});
```
-#### DAHelper.delete(uri: string, condition: DataAbilityPredicates)
+#### dataShareHelper.delete(uri: string, condition: DataSharePredicates)
- 接口说明
@@ -413,28 +402,27 @@ DAHelper.update(rawContactUri, value, condition).then((data) => {
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | ------------------------------ |
| uri | 只读 | string | 是 | 具体操作的uri |
- | condition | 只读 | DataAbilityPredicates | 是 | 删除条件 |
+ | condition | 只读 | DataSharePredicates | 是 | 删除条件 |
返回值为 成功为0否则为-1
删除示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var contactsUri= "dataability:///com.ohos.contactsdataability";
-var rawContactUri = "dataability:///com.ohos.contactsdataability/contacts/raw_contact";
-var contactDataUri = "dataability:///com.ohos.contactsdataability/contacts/contact_data";
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(contactsUri);
+import dataShare from '@ohos.data.dataShare';
+var contactsData = "datashare:///com.ohos.contactsdataability";
+var rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact";
+var contactDataUri = "datashare:///com.ohos.contactsdataability/contacts/contact_data";
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(contactsData);
// 条件参数
-let condition = new ohos_data_ability.DataAbilityPredicates();
+let condition = new dataShare.DataSharePredicates();
condition.equalTo("id", "xxx");
// 调用delete方法
-DAHelper.delete(contactDataUri, condition).then((data) => {
+dataShareHelper.delete(contactDataUri, condition).then((data) => {
console.info("deleteCode = " + data);
});
```
-#### DAHelper.query(uri: string, resultColumns: array, condition: DataAbilityPredicates)
+#### dataShareHelper.query(uri: string, condition: DataSharePredicates, resultColumns: array)
- 接口说明
@@ -445,25 +433,24 @@ DAHelper.delete(contactDataUri, condition).then((data) => {
| 名称 | 读写属性 | 类型 | 必填 | 描述 |
| -------- | -------- | ---------------------- | ---- | ------------------------------ |
| uri | 只读 | string | 是 | 具体操作的uri |
- | resultColumns | 只读 | array | 是 | 需要查询的列字段名称 |
- | condition | 只读 | DataAbilityPredicates | 是 | 查询条件 |
+ | condition | 只读 | DataSharePredicates | 是 | 查询条件 |
+ | resultColumns | 只读 | array | 是 | 需要查询的列字段名称 |
返回值为 ResultSet 查询结果集
查询示例
```js
-import featureAbility from '@ohos.ability.featureAbility';
-import ohos_data_ability from '@ohos.data.dataability';
-var contactsUri= "dataability:///com.ohos.contactsdataability";
-var rawContactUri = "dataability:///com.ohos.contactsdataability/contacts/raw_contact";
-// 获取DAHelper
-let DAHelper = featureAbility.acquireDataAbilityHelper(contactsUri);
+import dataShare from '@ohos.data.dataShare';
+var contactsData = "datashare:///com.ohos.contactsdataability";
+var rawContactUri = "datashare:///com.ohos.contactsdataability/contacts/raw_contact";
+// 获取dataShareHelper
+let dataShareHelper = dataShare.createDataShareHelper(contactsData);
// 条件参数
-let condition = new ohos_data_ability.DataAbilityPredicates();
+let condition = new dataShare.DataSharePredicates();
condition.equalTo("id", "xxx");
var resultColumns = [ "id", "display_name"];
// 调用query方法
-DAHelper.query(rawContactUri, resultColumns, condition).then((resultSet) => {
+dataShareHelper.query(rawContactUri, resultColumns, condition).then((resultSet) => {
if (resultSet.goToFirstRow()) {
do {
var displayName = resultSet.getString(resultSet.getColumnIndex("display_name"));
@@ -474,45 +461,45 @@ DAHelper.query(rawContactUri, resultColumns, condition).then((resultSet) => {
```
| 系统公共uri |
| --------------------------------------------------------- |
-| dataability:///com.ohos.contactsdataability |
-| dataability:///com.ohos.contactsdataability/contacts/contact |
-| dataability:///com.ohos.contactsdataability/contacts/raw_contact |
-| dataability:///com.ohos.contactsdataability/contacts/contact_data |
-| dataability:///com.ohos.contactsdataability/contacts/raw_contact/query_merge_list|
-| dataability:///com.ohos.contactsdataability/contacts/raw_contact/split_contact |
-| dataability:///com.ohos.contactsdataability/contacts/raw_contact/manual_merge |
-| dataability:///com.ohos.contactsdataability/contacts/raw_contact/auto_merge |
-| dataability:///com.ohos.contactsdataability/contacts/contact_type |
-| dataability:///com.ohos.contactsdataability/contacts/groups |
-| dataability:///com.ohos.contactsdataability/contacts/photo_files |
-| dataability:///com.ohos.contactsdataability/contacts/contact_blocklist |
-| dataability:///com.ohos.contactsdataability/contacts/deleted_raw_contact |
-| dataability:///com.ohos.contactsdataability/contacts/search_contact |
-| dataability:///com.ohos.contactsdataability/contacts/deleted_raw_contact |
-| dataability:///com.ohos.contactsdataability/contacts/deleted_raw_contact_record |
-| dataability:///com.ohos.contactsdataability/contacts/backup |
-| dataability:///com.ohos.contactsdataability/contacts/recover |
-| dataability:///com.ohos.contactsdataability/profile/contact |
-| dataability:///com.ohos.contactsdataability/profile/raw_contact |
-| dataability:///com.ohos.contactsdataability/profile/contact_data |
-| dataability:///com.ohos.contactsdataability/profile/raw_contact/query_merge_list |
-| dataability:///com.ohos.contactsdataability/profile/raw_contact/split_contact |
-| dataability:///com.ohos.contactsdataability/profile/raw_contact/manual_merge |
-| dataability:///com.ohos.contactsdataability/profile/raw_contact/auto_merge |
-| dataability:///com.ohos.contactsdataability/profile/contact_type |
-| dataability:///com.ohos.contactsdataability/profile/groups |
-| dataability:///com.ohos.contactsdataability/profile/photo_files |
-| dataability:///com.ohos.contactsdataability/profile/contact_blocklist |
-| dataability:///com.ohos.contactsdataability/profile/deleted_raw_contact |
-| dataability:///com.ohos.contactsdataability/profile/search_contact |
-| dataability:///com.ohos.contactsdataability/profile/deleted_raw_contact |
-| dataability:///com.ohos.contactsdataability/profile/deleted_raw_contact_record |
-| dataability:///com.ohos.contactsdataability/profile/backup |
-| dataability:///com.ohos.contactsdataability/profile/recover |
-| dataability:///com.ohos.calllogability |
-| dataability:///com.ohos.calllogability/calls/calllog |
-| dataability:///com.ohos.voicemailability |
-| dataability:///com.ohos.voicemailability/calls/voicemail |
+| datashare:///com.ohos.contactsdataability |
+| datashare:///com.ohos.contactsdataability/contacts/contact |
+| datashare:///com.ohos.contactsdataability/contacts/raw_contact |
+| datashare:///com.ohos.contactsdataability/contacts/contact_data |
+| datashare:///com.ohos.contactsdataability/contacts/raw_contact/query_merge_list|
+| datashare:///com.ohos.contactsdataability/contacts/raw_contact/split_contact |
+| datashare:///com.ohos.contactsdataability/contacts/raw_contact/manual_merge |
+| datashare:///com.ohos.contactsdataability/contacts/raw_contact/auto_merge |
+| datashare:///com.ohos.contactsdataability/contacts/contact_type |
+| datashare:///com.ohos.contactsdataability/contacts/groups |
+| datashare:///com.ohos.contactsdataability/contacts/photo_files |
+| datashare:///com.ohos.contactsdataability/contacts/contact_blocklist |
+| datashare:///com.ohos.contactsdataability/contacts/deleted_raw_contact |
+| datashare:///com.ohos.contactsdataability/contacts/search_contact |
+| datashare:///com.ohos.contactsdataability/contacts/deleted_raw_contact |
+| datashare:///com.ohos.contactsdataability/contacts/deleted_raw_contact_record |
+| datashare:///com.ohos.contactsdataability/contacts/backup |
+| datashare:///com.ohos.contactsdataability/contacts/recover |
+| datashare:///com.ohos.contactsdataability/profile/contact |
+| datashare:///com.ohos.contactsdataability/profile/raw_contact |
+| datashare:///com.ohos.contactsdataability/profile/contact_data |
+| datashare:///com.ohos.contactsdataability/profile/raw_contact/query_merge_list |
+| datashare:///com.ohos.contactsdataability/profile/raw_contact/split_contact |
+| datashare:///com.ohos.contactsdataability/profile/raw_contact/manual_merge |
+| datashare:///com.ohos.contactsdataability/profile/raw_contact/auto_merge |
+| datashare:///com.ohos.contactsdataability/profile/contact_type |
+| datashare:///com.ohos.contactsdataability/profile/groups |
+| datashare:///com.ohos.contactsdataability/profile/photo_files |
+| datashare:///com.ohos.contactsdataability/profile/contact_blocklist |
+| datashare:///com.ohos.contactsdataability/profile/deleted_raw_contact |
+| datashare:///com.ohos.contactsdataability/profile/search_contact |
+| datashare:///com.ohos.contactsdataability/profile/deleted_raw_contact |
+| datashare:///com.ohos.contactsdataability/profile/deleted_raw_contact_record |
+| datashare:///com.ohos.contactsdataability/profile/backup |
+| datashare:///com.ohos.contactsdataability/profile/recover |
+| datashare:///com.ohos.calllogability |
+| datashare:///com.ohos.calllogability/calls/calllog |
+| datashare:///com.ohos.voicemailability |
+| datashare:///com.ohos.voicemailability/calls/voicemail |
## 相关仓
系统应用
diff --git a/ability/common/include/common.h b/ability/common/include/common.h
index bfc63c5..ccdbf28 100644
--- a/ability/common/include/common.h
+++ b/ability/common/include/common.h
@@ -115,9 +115,9 @@ constexpr int MERGE_MODE_MANUAL = 1;
constexpr int MERGE_MODE_AUTO = 2;
// Uri
-constexpr const char *CONTACT_URI = "dataability:///com.ohos.contactsdataability";
-constexpr const char *VOICEMAIL_URI = "dataability:///com.ohos.voicemailability";
-constexpr const char *CALL_LOG_URI = "dataability:///com.ohos.calllogability";
+constexpr const char *CONTACT_URI = "datashare:///com.ohos.contactsdataability";
+constexpr const char *VOICEMAIL_URI = "datashare:///com.ohos.voicemailability";
+constexpr const char *CALL_LOG_URI = "datashare:///com.ohos.calllogability";
constexpr const char *CREATE_CALLLOG =
"CREATE TABLE IF NOT EXISTS [calllog]("
diff --git a/ability/common/utils/include/contacts_json_utils.h b/ability/common/utils/include/contacts_json_utils.h
index 59d83c4..1083268 100644
--- a/ability/common/utils/include/contacts_json_utils.h
+++ b/ability/common/utils/include/contacts_json_utils.h
@@ -18,11 +18,11 @@
#include
+#include "datashare_result_set.h"
#include "json.h"
#include "json_utils.h"
#include "rdb_errno.h"
#include "rdb_open_callback.h"
-#include "result_set.h"
namespace OHOS {
namespace Contacts {
diff --git a/ability/common/utils/include/contacts_path.h b/ability/common/utils/include/contacts_path.h
index abfcd2a..78b30b1 100644
--- a/ability/common/utils/include/contacts_path.h
+++ b/ability/common/utils/include/contacts_path.h
@@ -26,7 +26,6 @@ public:
~ContactsPath();
static std::string RDB_PATH;
static std::string RDB_BACKUP_PATH;
- static std::string DUMP_PATH;
};
} // namespace Contacts
} // namespace OHOS
diff --git a/ability/common/utils/include/predicates_convert.h b/ability/common/utils/include/predicates_convert.h
index cfe9880..38b2341 100644
--- a/ability/common/utils/include/predicates_convert.h
+++ b/ability/common/utils/include/predicates_convert.h
@@ -16,7 +16,7 @@
#ifndef PREDICATES_CONVERT_H
#define PREDICATES_CONVERT_H
-#include "data_ability_predicates.h"
+#include "datashare_predicates.h"
#include "predicates_utils.h"
#include "rdb_predicates.h"
@@ -27,7 +27,7 @@ public:
PredicatesConvert();
~PredicatesConvert();
OHOS::NativeRdb::RdbPredicates ConvertPredicates(
- std::string tableName, OHOS::NativeRdb::DataAbilityPredicates &dataAbilityPredicates);
+ std::string tableName, DataShare::DataSharePredicates &dataSharePredicates);
OHOS::NativeRdb::RdbPredicates CopyPredicates(
std::string tableName, OHOS::NativeRdb::RdbPredicates &oldRdbPredicates);
};
diff --git a/ability/common/utils/include/sql_analyzer.h b/ability/common/utils/include/sql_analyzer.h
index 3d7bdff..8a21774 100644
--- a/ability/common/utils/include/sql_analyzer.h
+++ b/ability/common/utils/include/sql_analyzer.h
@@ -29,7 +29,7 @@ public:
SqlAnalyzer();
~SqlAnalyzer();
- bool CheckValuesBucket(const NativeRdb::ValuesBucket &value);
+ bool CheckValuesBucket(const OHOS::NativeRdb::ValuesBucket &value);
bool FindIllegalWords(std::string sql);
bool StrCheck(char &ch, std::size_t strlen, std::string sql, std::size_t &pos);
bool CharCheck(char &ch, std::string sql, std::size_t &pos);
diff --git a/ability/common/utils/src/contacts_path.cpp b/ability/common/utils/src/contacts_path.cpp
index c751f8e..9f84cac 100644
--- a/ability/common/utils/src/contacts_path.cpp
+++ b/ability/common/utils/src/contacts_path.cpp
@@ -18,7 +18,6 @@
namespace OHOS {
namespace Contacts {
std::string ContactsPath::RDB_PATH = "";
-std::string ContactsPath::DUMP_PATH = "";
std::string ContactsPath::RDB_BACKUP_PATH = "";
ContactsPath::ContactsPath(void)
diff --git a/ability/common/utils/src/predicates_convert.cpp b/ability/common/utils/src/predicates_convert.cpp
index 661c4fb..bfab18e 100644
--- a/ability/common/utils/src/predicates_convert.cpp
+++ b/ability/common/utils/src/predicates_convert.cpp
@@ -14,6 +14,7 @@
*/
#include "predicates_convert.h"
+#include "rdb_utils.h"
namespace OHOS {
namespace Contacts {
@@ -26,13 +27,9 @@ PredicatesConvert::~PredicatesConvert()
}
OHOS::NativeRdb::RdbPredicates PredicatesConvert::ConvertPredicates(
- std::string tableName, OHOS::NativeRdb::DataAbilityPredicates &dataPredicates)
+ std::string tableName, DataShare::DataSharePredicates &dataPredicates)
{
- OHOS::NativeRdb::RdbPredicates predicates(tableName);
- OHOS::NativeRdb::PredicatesUtils::SetWhereClauseAndArgs(
- &predicates, dataPredicates.GetWhereClause(), dataPredicates.GetWhereArgs());
- OHOS::NativeRdb::PredicatesUtils::SetAttributes(&predicates, dataPredicates.IsDistinct(), dataPredicates.GetIndex(),
- dataPredicates.GetGroup(), dataPredicates.GetOrder(), dataPredicates.GetLimit(), dataPredicates.GetOffset());
+ OHOS::NativeRdb::RdbPredicates predicates = RdbDataShareAdapter::RdbUtils::ToPredicates(dataPredicates, tableName);
return predicates;
}
diff --git a/ability/common/utils/src/sql_analyzer.cpp b/ability/common/utils/src/sql_analyzer.cpp
index 087259f..bcbabb4 100644
--- a/ability/common/utils/src/sql_analyzer.cpp
+++ b/ability/common/utils/src/sql_analyzer.cpp
@@ -28,7 +28,7 @@ SqlAnalyzer::~SqlAnalyzer()
{
}
-bool SqlAnalyzer::CheckValuesBucket(const NativeRdb::ValuesBucket &value)
+bool SqlAnalyzer::CheckValuesBucket(const OHOS::NativeRdb::ValuesBucket &value)
{
std::map valuesMap;
value.GetAll(valuesMap);
diff --git a/ability/merge/include/merger_contacts.h b/ability/merge/include/merger_contacts.h
index f882b4c..24ebf9b 100644
--- a/ability/merge/include/merger_contacts.h
+++ b/ability/merge/include/merger_contacts.h
@@ -16,7 +16,7 @@
#ifndef MERGERCONTACT_H
#define MERGERCONTACT_H
-#include "data_ability_predicates.h"
+#include "datashare_predicates.h"
#include "rdb_store.h"
#include "result_set.h"
@@ -28,7 +28,7 @@ public:
~MergerContacts();
int ForceContactMerge(std::shared_ptr, std::set);
int ContactMerge(std::shared_ptr);
- int ReContactMerge(std::shared_ptr, const OHOS::NativeRdb::DataAbilityPredicates &);
+ int ReContactMerge(std::shared_ptr, const DataShare::DataSharePredicates &);
std::shared_ptr SelectCandidate(std::shared_ptr);
private:
diff --git a/ability/merge/src/merger_contacts.cpp b/ability/merge/src/merger_contacts.cpp
index c4effe1..7871f66 100644
--- a/ability/merge/src/merger_contacts.cpp
+++ b/ability/merge/src/merger_contacts.cpp
@@ -430,7 +430,7 @@ std::shared_ptr MergerContacts::SelectCandi
* @return The result returned by the ManualMerge operation
*/
int MergerContacts::ReContactMerge(
- std::shared_ptr store, const OHOS::NativeRdb::DataAbilityPredicates &predicates)
+ std::shared_ptr store, const DataShare::DataSharePredicates &predicates)
{
HILOG_INFO("MergerContacts::ReContactMerge is starting");
std::vector whereArgs = predicates.GetWhereArgs();
diff --git a/config.json b/config.json
deleted file mode 100644
index 7de7170..0000000
--- a/config.json
+++ /dev/null
@@ -1,66 +0,0 @@
-{
- "app": {
- "bundleName": "com.ohos.contactsdataability",
- "vendor": "ohos",
- "version": {
- "code": 1,
- "name": "1.0"
- },
- "apiVersion": {
- "compatible": 3,
- "target": 3
- }
- },
- "deviceConfig": {},
- "module": {
- "package": "com.ohos.contactsdataability",
- "name": ".ContactsDataAbility",
-
- "deviceType": [
- "default",
- "smartVision",
- "tablet"
- ],
- "distro": {
- "deliveryWithInstall": true,
- "moduleName": "entry",
- "moduleType": "entry"
- },
- "abilities": [
- {
- "name": "ContactsDataAbility",
- "readPermission": "ohos.permission.READ_CONTACTS",
- "writePermission": "ohos.permission.WRITE_CONTACTS",
- "icon": "$media:icon",
- "description": "dataability_description",
- "type": "data",
- "uri": "dataability://com.ohos.contactsdataability",
- "visible":true,
- "srcLanguage":"c++"
- },
- {
- "name": "VoiceMailAbility",
- "permissions": [
- "ohos.permission.MANAGE_VOICEMAIL"
- ],
- "icon": "$media:icon",
- "description": "dataability_description",
- "type": "data",
- "uri": "dataability://com.ohos.voicemailability",
- "visible":true,
- "srcLanguage":"c++"
- },
- {
- "name": "CallLogAbility",
- "readPermission": "ohos.permission.READ_CALL_LOG",
- "writePermission": "ohos.permission.WRITE_CALL_LOG",
- "icon": "$media:icon",
- "description": "dataability_description",
- "type": "data",
- "uri": "dataability://com.ohos.calllogability",
- "visible":true,
- "srcLanguage":"c++"
- }
- ]
- }
-}
\ No newline at end of file
diff --git a/contacts/BUILD.gn b/contacts/BUILD.gn
index 94698ed..68c6234 100644
--- a/contacts/BUILD.gn
+++ b/contacts/BUILD.gn
@@ -44,8 +44,10 @@ ohos_shared_library("contact") {
external_deps = [
"ability_base:zuri",
"ability_runtime:abilitykit_native",
- "ability_runtime:data_ability_helper",
+ "ability_runtime:app_context",
+ "ability_runtime:napi_base_context",
"c_utils:utils",
+ "data_share:datashare_consumer",
"napi:ace_napi",
"relational_store:native_dataability",
"relational_store:native_rdb",
diff --git a/contacts/include/contacts_api.h b/contacts/include/contacts_api.h
index 15ffd71..676ae8b 100644
--- a/contacts/include/contacts_api.h
+++ b/contacts/include/contacts_api.h
@@ -18,6 +18,7 @@
#include "contacts_build.h"
#include "contacts_napi_object.h"
+#include "napi_base_context.h"
namespace OHOS {
namespace ContactsApi {
@@ -50,7 +51,7 @@ void ExecuteAsync(napi_env env, void *data);
void ExecuteDone(napi_env env, napi_status status, void *data);
void ExecuteSyncDone(napi_env env, napi_status status, void *data);
void HandleExecuteResult(napi_env env, ExecuteHelper *executeHelper, napi_value &result);
-int GetRawIdByResultSet(const std::shared_ptr &resultSet);
+int GetRawIdByResultSet(const std::shared_ptr &resultSet);
napi_value CreateAsyncWork(napi_env env, ExecuteHelper *executeHelper);
void LocalExecute(napi_env env, ExecuteHelper *executeHelper);
void LocalExecuteAddContact(napi_env env, ExecuteHelper *executeHelper);
@@ -66,33 +67,33 @@ void LocalExecuteIsLocalContact(napi_env env, ExecuteHelper *executeHelper);
void LocalExecuteIsMyCard(napi_env env, ExecuteHelper *executeHelper);
napi_value Scheduling(napi_env env, napi_callback_info info, ExecuteHelper *executeHelper, int actionCode);
void SetChildActionCodeAndConvertParams(napi_env env, ExecuteHelper *executeHelper);
-NativeRdb::DataAbilityPredicates ConvertParamsSwitchSplit(
+DataShare::DataSharePredicates ConvertParamsSwitchSplit(
int code, napi_env env, const napi_value &key, const napi_value &hold, const napi_value &attr);
-std::shared_ptr GetDataAbilityHelper(napi_env env);
-void HolderPredicates(const Holder &holder, NativeRdb::DataAbilityPredicates &predicates);
+std::shared_ptr GetDataShareHelper(napi_env env, napi_callback_info info);
+void HolderPredicates(const Holder &holder, DataShare::DataSharePredicates &predicates);
void HoldersStructure(std::map &holders, Holder &holder);
-void AttributesPredicates(ContactAttributes &attrs, NativeRdb::DataAbilityPredicates &predicates);
+void AttributesPredicates(ContactAttributes &attrs, DataShare::DataSharePredicates &predicates);
void CheckAttributes(ContactAttributes &attrs);
-NativeRdb::DataAbilityPredicates BuildQueryContactPredicates(
+DataShare::DataSharePredicates BuildQueryContactPredicates(
napi_env env, std::string key, napi_value hold, napi_value attr);
-NativeRdb::DataAbilityPredicates BuildUpdateContactPredicates(napi_env env, napi_value contacts, napi_value attr);
-NativeRdb::DataAbilityPredicates BuildQueryContactData(napi_env env, napi_value &contactsObject,
- napi_value &attrObject, std::vector &valueContactData);
+DataShare::DataSharePredicates BuildUpdateContactPredicates(napi_env env, napi_value contacts, napi_value attr);
+DataShare::DataSharePredicates BuildQueryContactData(napi_env env, napi_value &contactsObject,
+ napi_value &attrObject, std::vector &valueContactData);
std::vector BuildUpdateContactColumns();
void BuildUpdateContactConvertParams(
napi_env env, napi_value &contacts, napi_value &attr, ExecuteHelper &executeHelper);
-NativeRdb::DataAbilityPredicates BuildQueryContactsPredicates(napi_env env, napi_value hold, napi_value attr);
-NativeRdb::DataAbilityPredicates BuildQueryContactsByEmailPredicates(
+DataShare::DataSharePredicates BuildQueryContactsPredicates(napi_env env, napi_value hold, napi_value attr);
+DataShare::DataSharePredicates BuildQueryContactsByEmailPredicates(
napi_env env, std::string email, napi_value hold, napi_value attr);
-NativeRdb::DataAbilityPredicates BuildQueryContactsByPhoneNumberPredicates(
+DataShare::DataSharePredicates BuildQueryContactsByPhoneNumberPredicates(
napi_env env, std::string phoneNumber, napi_value hold, napi_value attr);
-NativeRdb::DataAbilityPredicates BuildQueryGroupsPredicates(napi_env env, napi_value hold);
-NativeRdb::DataAbilityPredicates BuildQueryKeyPredicates(napi_env env, int id, napi_value hold);
-NativeRdb::DataAbilityPredicates BuildQueryMyCardPredicates(napi_env env, napi_value attr);
-NativeRdb::DataAbilityPredicates BuildIsLocalContactPredicates(napi_env env, napi_value id);
-NativeRdb::DataAbilityPredicates BuildIsMyCardPredicates(napi_env env, napi_value id);
-NativeRdb::DataAbilityPredicates BuildDeleteContactDataPredicates(napi_env env, napi_value attr);
-NativeRdb::DataAbilityPredicates BuildDeleteContactPredicates(napi_env env, ExecuteHelper &executeHelper);
+DataShare::DataSharePredicates BuildQueryGroupsPredicates(napi_env env, napi_value hold);
+DataShare::DataSharePredicates BuildQueryKeyPredicates(napi_env env, int id, napi_value hold);
+DataShare::DataSharePredicates BuildQueryMyCardPredicates(napi_env env, napi_value attr);
+DataShare::DataSharePredicates BuildIsLocalContactPredicates(napi_env env, napi_value id);
+DataShare::DataSharePredicates BuildIsMyCardPredicates(napi_env env, napi_value id);
+DataShare::DataSharePredicates BuildDeleteContactDataPredicates(napi_env env, napi_value attr);
+DataShare::DataSharePredicates BuildDeleteContactPredicates(napi_env env, ExecuteHelper &executeHelper);
void ObjectInit(napi_env env, napi_value object, napi_value &hold, napi_value &attr, napi_value &contacts);
void ObjectInitId(napi_env env, napi_value object, napi_value &id);
void ObjectInitString(napi_env env, napi_value object, napi_value &key);
diff --git a/contacts/include/contacts_build.h b/contacts/include/contacts_build.h
index 627a725..1183771 100644
--- a/contacts/include/contacts_build.h
+++ b/contacts/include/contacts_build.h
@@ -19,8 +19,8 @@
#include "ability.h"
#include "ability_context.h"
#include "context.h"
-#include "data_ability_helper.h"
-#include "data_ability_predicates.h"
+#include "datashare_helper.h"
+#include "datashare_predicates.h"
#include "napi/native_common.h"
#include "napi/native_node_api.h"
#include "rdb_errno.h"
@@ -42,16 +42,16 @@ public:
~ContactsBuild();
void GetContactDataByObject(napi_env env, napi_value object, Contacts &contacts);
int GetInt(napi_env env, napi_value id);
- void GetContactData(napi_env env, napi_value object, std::vector &valueContact,
- std::vector &valueContactData);
+ void GetContactData(napi_env env, napi_value object, std::vector &valueContact,
+ std::vector &valueContactData);
std::string NapiGetValueString(napi_env env, napi_value value);
ContactAttributes GetContactAttributes(napi_env env, napi_value object);
Holder GetHolder(napi_env env, napi_value object);
void BuildValueContactDataByType(
- Contacts &contacts, int typeId, std::vector &valueContactData);
+ Contacts &contacts, int typeId, std::vector &valueContactData);
private:
- void TypeSwitchSplit(int typeId, Contacts &contacts, std::vector &valueContactData);
+ void TypeSwitchSplit(int typeId, Contacts &contacts, std::vector &valueContactData);
napi_value GetArrayByKey(napi_env env, napi_value valueObject, std::string key);
napi_value GetObjectByKey(napi_env env, napi_value object, std::string key);
std::string GetStringValueByKey(napi_env env, napi_value valueObject, std::string key);
@@ -71,22 +71,22 @@ private:
Note GetNote(napi_env env, napi_value object);
Organization GetOrganization(napi_env env, napi_value object);
// structure parameter and ValuesBucket
- void BuildValueContact(Contacts &contacts, std::vector &valueContact);
- void BuildValueContactData(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketEmail(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketEvent(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketGroup(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketImAddress(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketPortrait(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketPhoneNumber(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketPostalAddress(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketRelation(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketSipAddress(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketWebsite(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketName(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketNickName(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketNote(Contacts &contacts, std::vector &valueContactData);
- void GetValuesBucketOrganization(Contacts &contacts, std::vector &valueContactData);
+ void BuildValueContact(Contacts &contacts, std::vector &valueContact);
+ void BuildValueContactData(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketEmail(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketEvent(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketGroup(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketImAddress(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketPortrait(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketPhoneNumber(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketPostalAddress(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketRelation(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketSipAddress(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketWebsite(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketName(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketNickName(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketNote(Contacts &contacts, std::vector &valueContactData);
+ void GetValuesBucketOrganization(Contacts &contacts, std::vector &valueContactData);
};
} // namespace ContactsApi
} // namespace OHOS
diff --git a/contacts/include/contacts_control.h b/contacts/include/contacts_control.h
index 986f00c..6ea3752 100644
--- a/contacts/include/contacts_control.h
+++ b/contacts/include/contacts_control.h
@@ -19,8 +19,8 @@
#include "ability.h"
#include "ability_context.h"
#include "context.h"
-#include "data_ability_helper.h"
-#include "data_ability_predicates.h"
+#include "datashare_helper.h"
+#include "datashare_predicates.h"
#include "rdb_errno.h"
#include "rdb_helper.h"
#include "rdb_open_callback.h"
@@ -36,33 +36,33 @@ class ContactsControl {
public:
ContactsControl();
~ContactsControl();
- int64_t RawContactInsert(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::ValuesBucket rawContactValues);
- int ContactDataInsert(std::shared_ptr dataAbilityHelper,
- std::vector contactsDataValues);
- int RawContactUpdate(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::ValuesBucket updateValues, OHOS::NativeRdb::DataAbilityPredicates predicates);
- int ContactDataUpdate(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::ValuesBucket updateValues, OHOS::NativeRdb::DataAbilityPredicates predicates);
- int ContactDelete(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::DataAbilityPredicates predicates);
- int ContactDataDelete(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::DataAbilityPredicates predicates);
- std::shared_ptr ContactQuery(
- std::shared_ptr dataAbilityHelper, std::vector columns,
- OHOS::NativeRdb::DataAbilityPredicates predicates);
- std::shared_ptr ContactDataQuery(
- std::shared_ptr dataAbilityHelper, std::vector columns,
- OHOS::NativeRdb::DataAbilityPredicates predicates);
- std::shared_ptr GroupsQuery(
- std::shared_ptr dataAbilityHelper, std::vector columns,
- OHOS::NativeRdb::DataAbilityPredicates predicates);
- std::shared_ptr MyCardQuery(
- std::shared_ptr dataAbilityHelper, std::vector columns,
- OHOS::NativeRdb::DataAbilityPredicates predicates);
- std::shared_ptr HolderQuery(
- std::shared_ptr dataAbilityHelper, std::vector columns,
- OHOS::NativeRdb::DataAbilityPredicates predicates);
+ int64_t RawContactInsert(std::shared_ptr dataShareHelper,
+ DataShare::DataShareValuesBucket rawContactValues);
+ int ContactDataInsert(std::shared_ptr dataShareHelper,
+ std::vector contactsDataValues);
+ int RawContactUpdate(std::shared_ptr dataShareHelper,
+ DataShare::DataShareValuesBucket updateValues, DataShare::DataSharePredicates predicates);
+ int ContactDataUpdate(std::shared_ptr dataShareHelper,
+ DataShare::DataShareValuesBucket updateValues, DataShare::DataSharePredicates predicates);
+ int ContactDelete(std::shared_ptr dataShareHelper,
+ DataShare::DataSharePredicates predicates);
+ int ContactDataDelete(std::shared_ptr dataShareHelper,
+ DataShare::DataSharePredicates predicates);
+ std::shared_ptr ContactQuery(
+ std::shared_ptr dataShareHelper, std::vector columns,
+ DataShare::DataSharePredicates predicates);
+ std::shared_ptr ContactDataQuery(
+ std::shared_ptr dataShareHelper, std::vector columns,
+ DataShare::DataSharePredicates predicates);
+ std::shared_ptr GroupsQuery(
+ std::shared_ptr dataShareHelper, std::vector columns,
+ DataShare::DataSharePredicates predicates);
+ std::shared_ptr MyCardQuery(
+ std::shared_ptr dataShareHelper, std::vector columns,
+ DataShare::DataSharePredicates predicates);
+ std::shared_ptr HolderQuery(
+ std::shared_ptr dataShareHelper, std::vector columns,
+ DataShare::DataSharePredicates predicates);
};
} // namespace ContactsApi
} // namespace OHOS
diff --git a/contacts/include/contacts_napi_common.h b/contacts/include/contacts_napi_common.h
index a269b9d..48aabbb 100644
--- a/contacts/include/contacts_napi_common.h
+++ b/contacts/include/contacts_napi_common.h
@@ -16,8 +16,8 @@
#ifndef CONTACT_NAPI_COMMON_H
#define CONTACT_NAPI_COMMON_H
-#include "data_ability_predicates.h"
-#include "data_ability_helper.h"
+#include "datashare_predicates.h"
+#include "datashare_helper.h"
#include "napi/native_api.h"
#include "napi/native_common.h"
#include "napi/native_node_api.h"
@@ -86,6 +86,9 @@ constexpr int HICALL_DEVICE = 15;
constexpr int CAMCARD = 16;
constexpr int SIP_ADDRESS = 17;
+constexpr int ARGS_ONE = 1;
+const std::string CONTACTS_DATA_URI = "datashare:///com.ohos.contactsdataability";
+
struct ExecuteHelper {
ExecuteHelper()
: work(nullptr), deferred(nullptr), sync(NAPI_CALL_TYPE_PROMISE), argc(0), actionCode(-1), callBack(nullptr),
@@ -102,21 +105,21 @@ struct ExecuteHelper {
// query
std::vector columns;
// condition
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
// delete contact predicates for update contact
- NativeRdb::DataAbilityPredicates deletePredicates;
+ DataShare::DataSharePredicates deletePredicates;
// update
- std::vector valueUpdateContact;
+ std::vector valueUpdateContact;
// insert
- std::vector valueContact;
+ std::vector valueContact;
// insertContactData
- std::vector valueContactData;
- // dataAbilityHelper
- std::shared_ptr dataAbilityHelper;
+ std::vector valueContactData;
+ // dataShareHelper
+ std::shared_ptr dataShareHelper;
// operation result
int resultData;
- std::shared_ptr resultSet;
+ std::shared_ptr resultSet;
};
} // namespace ContactsApi
} // namespace OHOS
diff --git a/contacts/include/result_convert.h b/contacts/include/result_convert.h
index 60f2386..e632247 100644
--- a/contacts/include/result_convert.h
+++ b/contacts/include/result_convert.h
@@ -34,47 +34,47 @@ public:
napi_value GetNapiElementArray(napi_env env, napi_value object, const std::string keyChar);
napi_value GetNapiElementObject(napi_env env, napi_value object, const std::string keyChar);
napi_value GetResultValue(
- napi_env env, std::string &contentKey, std::shared_ptr &resultSet);
- napi_value ResultSetToHolder(napi_env env, std::shared_ptr &resultSet);
- napi_value ResultSetToGroup(napi_env env, std::shared_ptr &resultSet);
- napi_value ResultSetToObject(napi_env env, std::shared_ptr &resultSet);
+ napi_env env, std::string &contentKey, std::shared_ptr &resultSet);
+ napi_value ResultSetToHolder(napi_env env, std::shared_ptr &resultSet);
+ napi_value ResultSetToGroup(napi_env env, std::shared_ptr &resultSet);
+ napi_value ResultSetToObject(napi_env env, std::shared_ptr &resultSet);
napi_value ConvertContactArray(
napi_env env, std::map &resultSetMap, std::map &quickSearchMap);
- void PutQuickSearchKey(napi_env env, std::shared_ptr &resultSet,
+ void PutQuickSearchKey(napi_env env, std::shared_ptr &resultSet,
std::map &quickSearchMap, int contactsIdValue);
void ConvertContactObject(
- napi_env env, napi_value napiObject, std::shared_ptr &resultSet);
+ napi_env env, napi_value napiObject, std::shared_ptr &resultSet);
napi_value GetResultMapValue(napi_env env, std::map &resultSetMap, int &contactsId);
void ConvertEmail(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertName(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertUri(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertEvent(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertGroup(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertImAddress(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertPhoneNumber(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertPostalAddress(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertRelation(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertSipAddress(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertWebsite(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertNickName(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertNote(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
void ConvertOrganization(napi_env env, napi_value napiObject, int &typeId,
- std::shared_ptr &resultSet);
+ std::shared_ptr &resultSet);
napi_value CreateNapiStringValue(napi_env env, const std::string key);
- bool IsEmpty(std::shared_ptr &resultSet);
+ bool IsEmpty(std::shared_ptr &resultSet);
};
} // namespace ContactsApi
} // namespace OHOS
diff --git a/contacts/src/contacts_api.cpp b/contacts/src/contacts_api.cpp
index 7fa30f6..44251df 100644
--- a/contacts/src/contacts_api.cpp
+++ b/contacts/src/contacts_api.cpp
@@ -17,11 +17,7 @@
#include
-#include "ability.h"
-#include "ability_context.h"
-#include "context.h"
-#include "data_ability_helper.h"
-#include "data_ability_predicates.h"
+#include "datashare_predicates.h"
#include "rdb_errno.h"
#include "rdb_helper.h"
#include "rdb_open_callback.h"
@@ -147,29 +143,56 @@ int GetType(napi_env env, napi_value value)
}
/**
- * @brief Get dataAbilityHelper
+ * @brief Get dataShareHelper
*
- * @param env Conditions for get dataAbilityHelper operation
+ * @param env Conditions for get dataShareHelper operation
*
- * @return The result returned by get dataAbilityHelper
+ * @return The result returned by get dataShareHelper
*/
-std::shared_ptr GetDataAbilityHelper(napi_env env)
+std::shared_ptr GetDataShareHelper(napi_env env, napi_callback_info info)
{
- napi_value global = nullptr;
- NAPI_CALL(env, napi_get_global(env, &global));
- napi_value abilityObj = nullptr;
- NAPI_CALL(env, napi_get_named_property(env, global, "ability", &abilityObj));
- if (abilityObj == nullptr) {
- HILOG_ERROR("abilityObj is nullptr!");
+ napi_value global;
+ napi_status status = napi_get_global(env, &global);
+ if (status != napi_ok) {
+ HILOG_ERROR("GetDataShareHelper napi_get_global != napi_ok");
}
- OHOS::AppExecFwk::Ability *ability = nullptr;
- NAPI_CALL(env, napi_get_value_external(env, abilityObj, reinterpret_cast(&ability)));
- if (ability == nullptr) {
- HILOG_ERROR("ability is nullptr!");
- return nullptr;
+ napi_value globalThis;
+ status = napi_get_named_property(env, global, "globalThis", &globalThis);
+ if (status != napi_ok) {
+ HILOG_ERROR("GetDataShareHelper napi_get_globalThis != napi_ok");
}
- std::shared_ptr uriPtr = std::make_shared("dataability:///com.ohos.contactsdataability");
- return OHOS::AppExecFwk::DataAbilityHelper::Creator(ability->GetContext(), uriPtr);
+ napi_value abilityContext = nullptr;
+ status = napi_get_named_property(env, globalThis, "abilityContext", &abilityContext);
+ if (status != napi_ok) {
+ HILOG_ERROR("GetDataShareHelper napi_get_abilityContext != napi_ok");
+ }
+
+ std::shared_ptr dataShareHelper = nullptr;
+ bool isStageMode = false;
+ status = OHOS::AbilityRuntime::IsStageContext(env, abilityContext, isStageMode);
+ if (status != napi_ok || !isStageMode) {
+ HILOG_INFO("GetFAModeContext");
+ auto ability = OHOS::AbilityRuntime::GetCurrentAbility(env);
+ if (ability == nullptr) {
+ HILOG_ERROR("Failed to get native ability instance");
+ return nullptr;
+ }
+ auto context = ability->GetContext();
+ if (context == nullptr) {
+ HILOG_ERROR("Failed to get native context instance");
+ return nullptr;
+ }
+ dataShareHelper = DataShare::DataShareHelper::Creator(context, CONTACTS_DATA_URI);
+ } else {
+ HILOG_INFO("GetStageModeContext");
+ auto context = OHOS::AbilityRuntime::GetStageModeContext(env, abilityContext);
+ if (context == nullptr) {
+ HILOG_ERROR("Failed to get native stage context instance");
+ return nullptr;
+ }
+ dataShareHelper = DataShare::DataShareHelper::Creator(context->GetToken(), CONTACTS_DATA_URI);
+ }
+ return dataShareHelper;
}
/**
@@ -178,7 +201,7 @@ std::shared_ptr GetDataAbilityHelper(napi_e
* @param holder Conditions for establish predicates operation
* @param predicates Conditions for establish predicates operation
*/
-void HolderPredicates(Holder &holder, NativeRdb::DataAbilityPredicates &predicates)
+void HolderPredicates(Holder &holder, DataShare::DataSharePredicates &predicates)
{
if (!holder.bundleName.empty()) {
predicates.And();
@@ -200,7 +223,7 @@ void HolderPredicates(Holder &holder, NativeRdb::DataAbilityPredicates &predicat
* @param attrs Conditions for establish predicates operation
* @param predicates Conditions for establish predicates operation
*/
-void AttributesPredicates(ContactAttributes &attrs, NativeRdb::DataAbilityPredicates &predicates)
+void AttributesPredicates(ContactAttributes &attrs, DataShare::DataSharePredicates &predicates)
{
unsigned int size = attrs.attributes.size();
if (size > 0) {
@@ -246,9 +269,9 @@ void CheckAttributes(ContactAttributes &attrs)
* @param env Conditions for resolve object interface operation
* @param info Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildDeleteContactPredicates(napi_env env, ExecuteHelper *executeHelper)
+DataShare::DataSharePredicates BuildDeleteContactPredicates(napi_env env, ExecuteHelper *executeHelper)
{
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
ContactsBuild contactsBuild;
std::string keyValue = contactsBuild.NapiGetValueString(env, executeHelper->argv[0]);
if (!keyValue.empty()) {
@@ -267,14 +290,14 @@ NativeRdb::DataAbilityPredicates BuildDeleteContactPredicates(napi_env env, Exec
* @param hold Conditions for resolve object interface operation
* @param attr Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildQueryContactPredicates(
+DataShare::DataSharePredicates BuildQueryContactPredicates(
napi_env env, napi_value key, napi_value hold, napi_value attr)
{
ContactsBuild contactsBuild;
std::string keyValue = contactsBuild.NapiGetValueString(env, key);
Holder holder = contactsBuild.GetHolder(env, hold);
ContactAttributes attrs = contactsBuild.GetContactAttributes(env, attr);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
if (!keyValue.empty()) {
predicates.EqualTo("is_deleted", "0");
predicates.And();
@@ -305,12 +328,12 @@ void HoldersStructure(std::map &holders, Holder &holde
* @param hold Conditions for resolve object interface operation
* @param attr Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildQueryContactsPredicates(napi_env env, napi_value hold, napi_value attr)
+DataShare::DataSharePredicates BuildQueryContactsPredicates(napi_env env, napi_value hold, napi_value attr)
{
ContactsBuild contactsBuild;
Holder holder = contactsBuild.GetHolder(env, hold);
ContactAttributes attrs = contactsBuild.GetContactAttributes(env, attr);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
std::map holders;
HoldersStructure(holders, holder);
unsigned int size = attrs.attributes.size();
@@ -352,14 +375,14 @@ NativeRdb::DataAbilityPredicates BuildQueryContactsPredicates(napi_env env, napi
* @param hold Conditions for resolve object interface operation
* @param attr Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildQueryContactsByEmailPredicates(
+DataShare::DataSharePredicates BuildQueryContactsByEmailPredicates(
napi_env env, napi_value emailobject, napi_value hold, napi_value attr)
{
ContactsBuild contactsBuild;
std::string email = contactsBuild.NapiGetValueString(env, emailobject);
Holder holder = contactsBuild.GetHolder(env, hold);
ContactAttributes attrs = contactsBuild.GetContactAttributes(env, attr);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
if (!email.empty() || email != "") {
predicates.EqualTo("is_deleted", "0");
predicates.And();
@@ -380,14 +403,14 @@ NativeRdb::DataAbilityPredicates BuildQueryContactsByEmailPredicates(
* @param hold Conditions for resolve object interface operation
* @param attr Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildQueryContactsByPhoneNumberPredicates(
+DataShare::DataSharePredicates BuildQueryContactsByPhoneNumberPredicates(
napi_env env, napi_value number, napi_value hold, napi_value attr)
{
ContactsBuild contactsBuild;
std::string phoneNumber = contactsBuild.NapiGetValueString(env, number);
Holder holder = contactsBuild.GetHolder(env, hold);
ContactAttributes attrs = contactsBuild.GetContactAttributes(env, attr);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
if (!phoneNumber.empty() || phoneNumber != "") {
predicates.EqualTo("is_deleted", "0");
predicates.And();
@@ -406,11 +429,11 @@ NativeRdb::DataAbilityPredicates BuildQueryContactsByPhoneNumberPredicates(
* @param env Conditions for resolve object interface operation
* @param hold Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildQueryGroupsPredicates(napi_env env, napi_value hold)
+DataShare::DataSharePredicates BuildQueryGroupsPredicates(napi_env env, napi_value hold)
{
ContactsBuild contactsBuild;
Holder holder = contactsBuild.GetHolder(env, hold);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
std::map holders;
HoldersStructure(holders, holder);
predicates.EqualTo("is_deleted", "0");
@@ -435,12 +458,12 @@ NativeRdb::DataAbilityPredicates BuildQueryGroupsPredicates(napi_env env, napi_v
* @param id Conditions for resolve object interface operation
* @param hold Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildQueryKeyPredicates(napi_env env, napi_value id, napi_value hold)
+DataShare::DataSharePredicates BuildQueryKeyPredicates(napi_env env, napi_value id, napi_value hold)
{
ContactsBuild contactsBuild;
int value = contactsBuild.GetInt(env, id);
Holder holder = contactsBuild.GetHolder(env, hold);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
if (value != 0) {
predicates.EqualTo("is_deleted", "0");
predicates.And();
@@ -456,11 +479,11 @@ NativeRdb::DataAbilityPredicates BuildQueryKeyPredicates(napi_env env, napi_valu
* @param env Conditions for resolve object interface operation
* @param attr Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildQueryMyCardPredicates(napi_env env, napi_value attr)
+DataShare::DataSharePredicates BuildQueryMyCardPredicates(napi_env env, napi_value attr)
{
ContactsBuild contactsBuild;
ContactAttributes attrs = contactsBuild.GetContactAttributes(env, attr);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
unsigned int size = attrs.attributes.size();
predicates.EqualTo("is_deleted", "0");
if (size > 0) {
@@ -475,15 +498,15 @@ NativeRdb::DataAbilityPredicates BuildQueryMyCardPredicates(napi_env env, napi_v
return predicates;
}
-NativeRdb::DataAbilityPredicates BuildQueryContactData(napi_env env, napi_value &contactObject, napi_value &attrObject,
- std::vector &valueContactData)
+DataShare::DataSharePredicates BuildQueryContactData(napi_env env, napi_value &contactObject, napi_value &attrObject,
+ std::vector &valueContactData)
{
ContactsBuild contactsBuild;
Contacts contact;
contactsBuild.GetContactDataByObject(env, contactObject, contact);
ContactAttributes attrs = contactsBuild.GetContactAttributes(env, attrObject);
CheckAttributes(attrs);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
std::vector fields;
fields.push_back("raw_contact_id");
if (contact.id != 0) {
@@ -506,7 +529,7 @@ std::vector BuildUpdateContactColumns()
return columns;
}
-int GetRawIdByResultSet(const std::shared_ptr &resultSet)
+int GetRawIdByResultSet(const std::shared_ptr &resultSet)
{
if (resultSet == nullptr) {
return -1;
@@ -524,18 +547,18 @@ int GetRawIdByResultSet(const std::shared_ptrvalueContactData.clear();
- NativeRdb::DataAbilityPredicates predicates =
+ DataShare::DataSharePredicates predicates =
BuildQueryContactData(env, contact, attr, executeHelper->valueContactData);
executeHelper->columns = BuildUpdateContactColumns();
executeHelper->deletePredicates = BuildDeleteContactDataPredicates(env, attr);
}
-NativeRdb::DataAbilityPredicates BuildDeleteContactDataPredicates(napi_env env, napi_value attr)
+DataShare::DataSharePredicates BuildDeleteContactDataPredicates(napi_env env, napi_value attr)
{
ContactsBuild contactsBuild;
ContactAttributes attrs = contactsBuild.GetContactAttributes(env, attr);
CheckAttributes(attrs);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
AttributesPredicates(attrs, predicates);
return predicates;
}
@@ -546,11 +569,11 @@ NativeRdb::DataAbilityPredicates BuildDeleteContactDataPredicates(napi_env env,
* @param env Conditions for resolve object interface operation
* @param id Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildIsLocalContactPredicates(napi_env env, napi_value id)
+DataShare::DataSharePredicates BuildIsLocalContactPredicates(napi_env env, napi_value id)
{
ContactsBuild contactsBuild;
int value = contactsBuild.GetInt(env, id);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
if (value != 0) {
predicates.EqualTo("is_deleted", "0");
predicates.And();
@@ -569,11 +592,11 @@ NativeRdb::DataAbilityPredicates BuildIsLocalContactPredicates(napi_env env, nap
* @param env Conditions for resolve object interface operation
* @param id Conditions for resolve object interface operation
*/
-NativeRdb::DataAbilityPredicates BuildIsMyCardPredicates(napi_env env, napi_value id)
+DataShare::DataSharePredicates BuildIsMyCardPredicates(napi_env env, napi_value id)
{
ContactsBuild contactsBuild;
int value = contactsBuild.GetInt(env, id);
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
if (value != 0) {
predicates.EqualTo("is_deleted", "0");
predicates.And();
@@ -592,9 +615,9 @@ void ExecuteDone(napi_env env, napi_status status, void *data)
executeHelper->deferred = nullptr;
NAPI_CALL_RETURN_VOID(env, napi_resolve_deferred(env, deferred, result));
NAPI_CALL_RETURN_VOID(env, napi_delete_async_work(env, executeHelper->work));
- if (executeHelper->dataAbilityHelper != nullptr) {
- executeHelper->dataAbilityHelper->Release();
- executeHelper->dataAbilityHelper = nullptr;
+ if (executeHelper->dataShareHelper != nullptr) {
+ executeHelper->dataShareHelper->Release();
+ executeHelper->dataShareHelper = nullptr;
}
delete executeHelper;
executeHelper = nullptr;
@@ -634,9 +657,9 @@ void ExecuteSyncDone(napi_env env, napi_status status, void *data)
}
executeHelper->work = nullptr;
executeHelper->deferred = nullptr;
- if (executeHelper->dataAbilityHelper != nullptr) {
- executeHelper->dataAbilityHelper->Release();
- executeHelper->dataAbilityHelper = nullptr;
+ if (executeHelper->dataShareHelper != nullptr) {
+ executeHelper->dataShareHelper->Release();
+ executeHelper->dataShareHelper = nullptr;
}
delete executeHelper;
}
@@ -651,22 +674,30 @@ void HandleExecuteResult(napi_env env, ExecuteHelper *executeHelper, napi_value
case ADD_CONTACT:
case DELETE_CONTACT:
case UPDATE_CONTACT:
- case IS_LOCAL_CONTACT:
- case IS_MY_CARD:
case SELECT_CONTACT:
napi_create_int64(env, executeHelper->resultData, &result);
break;
+ case IS_LOCAL_CONTACT:
+ case IS_MY_CARD:
+ napi_get_boolean(env, executeHelper->resultData != 0, &result);
+ break;
case QUERY_CONTACT:
+ case QUERY_MY_CARD:
results = resultConvert.ResultSetToObject(env, executeHelper->resultSet);
if (results != nullptr) {
napi_get_element(env, results, 0, &result);
}
break;
- case QUERY_CONTACTS:
case QUERY_KEY:
+ results = resultConvert.ResultSetToObject(env, executeHelper->resultSet);
+ if (results != nullptr) {
+ napi_get_element(env, results, 0, &result);
+ }
+ napi_get_named_property(env, result, "key", &result);
+ break;
+ case QUERY_CONTACTS:
case QUERY_CONTACTS_BY_EMAIL:
case QUERY_CONTACTS_BY_PHONE_NUMBER:
- case QUERY_MY_CARD:
result = resultConvert.ResultSetToObject(env, executeHelper->resultSet);
break;
case QUERY_GROUPS:
@@ -684,13 +715,13 @@ void LocalExecuteAddContact(napi_env env, ExecuteHelper *executeHelper)
{
ContactsControl contactsControl;
int64_t rawId = contactsControl.RawContactInsert(
- executeHelper->dataAbilityHelper, (executeHelper->valueContact)[0]);
- std::vector value = executeHelper->valueContactData;
+ executeHelper->dataShareHelper, (executeHelper->valueContact)[0]);
+ std::vector value = executeHelper->valueContactData;
unsigned int size = value.size();
for (unsigned int i = 0; i < size; ++i) {
- (executeHelper->valueContactData)[i].PutInt("raw_contact_id", rawId);
+ (executeHelper->valueContactData)[i].Put("raw_contact_id", rawId);
}
- int code = contactsControl.ContactDataInsert(executeHelper->dataAbilityHelper, executeHelper->valueContactData);
+ int code = contactsControl.ContactDataInsert(executeHelper->dataShareHelper, executeHelper->valueContactData);
if (code == 0) {
executeHelper->resultData = rawId;
} else {
@@ -701,7 +732,7 @@ void LocalExecuteAddContact(napi_env env, ExecuteHelper *executeHelper)
void LocalExecuteDeleteContact(napi_env env, ExecuteHelper *executeHelper)
{
ContactsControl contactsControl;
- int ret = contactsControl.ContactDelete(executeHelper->dataAbilityHelper, executeHelper->predicates);
+ int ret = contactsControl.ContactDelete(executeHelper->dataShareHelper, executeHelper->predicates);
HILOG_INFO("LocalExecuteDeleteContact contact ret = %{public}d", ret);
executeHelper->resultData = ret;
}
@@ -710,7 +741,7 @@ void LocalExecuteQueryContact(napi_env env, ExecuteHelper *executeHelper)
{
ContactsControl contactsControl;
executeHelper->resultSet = contactsControl.ContactQuery(
- executeHelper->dataAbilityHelper, executeHelper->columns, executeHelper->predicates);
+ executeHelper->dataShareHelper, executeHelper->columns, executeHelper->predicates);
executeHelper->resultData = SUCCESS;
}
@@ -718,7 +749,7 @@ void LocalExecuteQueryContactsOrKey(napi_env env, ExecuteHelper *executeHelper)
{
ContactsControl contactsControl;
executeHelper->resultSet = contactsControl.ContactQuery(
- executeHelper->dataAbilityHelper, executeHelper->columns, executeHelper->predicates);
+ executeHelper->dataShareHelper, executeHelper->columns, executeHelper->predicates);
executeHelper->resultData = SUCCESS;
}
@@ -726,7 +757,7 @@ void LocalExecuteQueryContactsByData(napi_env env, ExecuteHelper *executeHelper)
{
ContactsControl contactsControl;
executeHelper->resultSet = contactsControl.ContactDataQuery(
- executeHelper->dataAbilityHelper, executeHelper->columns, executeHelper->predicates);
+ executeHelper->dataShareHelper, executeHelper->columns, executeHelper->predicates);
executeHelper->resultData = SUCCESS;
}
@@ -734,7 +765,7 @@ void LocalExecuteQueryGroup(napi_env env, ExecuteHelper *executeHelper)
{
ContactsControl contactsControl;
executeHelper->resultSet = contactsControl.GroupsQuery(
- executeHelper->dataAbilityHelper, executeHelper->columns, executeHelper->predicates);
+ executeHelper->dataShareHelper, executeHelper->columns, executeHelper->predicates);
executeHelper->resultData = SUCCESS;
}
@@ -742,7 +773,7 @@ void LocalExecuteQueryHolders(napi_env env, ExecuteHelper *executeHelper)
{
ContactsControl contactsControl;
executeHelper->resultSet = contactsControl.HolderQuery(
- executeHelper->dataAbilityHelper, executeHelper->columns, executeHelper->predicates);
+ executeHelper->dataShareHelper, executeHelper->columns, executeHelper->predicates);
executeHelper->resultData = SUCCESS;
}
@@ -750,7 +781,7 @@ void LocalExecuteQueryMyCard(napi_env env, ExecuteHelper *executeHelper)
{
ContactsControl contactsControl;
executeHelper->resultSet = contactsControl.MyCardQuery(
- executeHelper->dataAbilityHelper, executeHelper->columns, executeHelper->predicates);
+ executeHelper->dataShareHelper, executeHelper->columns, executeHelper->predicates);
executeHelper->resultData = SUCCESS;
}
@@ -758,22 +789,22 @@ void LocalExecuteUpdateContact(napi_env env, ExecuteHelper *executeHelper)
{
ContactsControl contactsControl;
// query raw_contact_id
- std::shared_ptr resultSet = contactsControl.ContactDataQuery(
- executeHelper->dataAbilityHelper, executeHelper->columns, executeHelper->predicates);
+ std::shared_ptr resultSet = contactsControl.ContactDataQuery(
+ executeHelper->dataShareHelper, executeHelper->columns, executeHelper->predicates);
int rawId = GetRawIdByResultSet(resultSet);
- std::vector value = executeHelper->valueContactData;
+ std::vector value = executeHelper->valueContactData;
unsigned int size = value.size();
for (unsigned int i = 0; i < size; ++i) {
- (executeHelper->valueContactData)[i].PutInt("raw_contact_id", rawId);
+ (executeHelper->valueContactData)[i].Put("raw_contact_id", rawId);
}
if (rawId != 0) {
executeHelper->deletePredicates.EqualTo("raw_contact_id", std::to_string(rawId));
}
int resultCode = contactsControl.ContactDataDelete(
- executeHelper->dataAbilityHelper, executeHelper->deletePredicates);
+ executeHelper->dataShareHelper, executeHelper->deletePredicates);
if (resultCode == 0) {
resultCode = contactsControl.ContactDataInsert(
- executeHelper->dataAbilityHelper, executeHelper->valueContactData);
+ executeHelper->dataShareHelper, executeHelper->valueContactData);
}
executeHelper->resultData = resultCode;
}
@@ -782,8 +813,8 @@ void LocalExecuteIsLocalContact(napi_env env, ExecuteHelper *executeHelper)
{
int64_t isLocal = 0;
ContactsControl contactsControl;
- std::shared_ptr resultSet = contactsControl.ContactQuery(
- executeHelper->dataAbilityHelper, executeHelper->columns, executeHelper->predicates);
+ std::shared_ptr resultSet = contactsControl.ContactQuery(
+ executeHelper->dataShareHelper, executeHelper->columns, executeHelper->predicates);
if (resultSet == nullptr) {
executeHelper->resultData = isLocal;
return;
@@ -800,8 +831,8 @@ void LocalExecuteIsMyCard(napi_env env, ExecuteHelper *executeHelper)
{
int64_t isMyCard = 0;
ContactsControl contactsControl;
- std::shared_ptr resultSet = contactsControl.MyCardQuery(
- executeHelper->dataAbilityHelper, executeHelper->columns, executeHelper->predicates);
+ std::shared_ptr resultSet = contactsControl.MyCardQuery(
+ executeHelper->dataShareHelper, executeHelper->columns, executeHelper->predicates);
if (resultSet == nullptr) {
executeHelper->resultData = isMyCard;
return;
@@ -818,8 +849,8 @@ void LocalExecuteIsMyCard(napi_env env, ExecuteHelper *executeHelper)
void LocalExecute(napi_env env, ExecuteHelper *executeHelper)
{
- if (executeHelper->dataAbilityHelper == nullptr) {
- HILOG_ERROR("create dataAbilityHelper is null, please check your permission");
+ if (executeHelper->dataShareHelper == nullptr) {
+ HILOG_ERROR("create dataShareHelper is null, please check your permission");
executeHelper->resultData = ERROR;
return;
}
@@ -895,10 +926,10 @@ napi_value CreateAsyncWork(napi_env env, ExecuteHelper *executeHelper)
return result;
}
-NativeRdb::DataAbilityPredicates ConvertParamsSwitchSplit(
+DataShare::DataSharePredicates ConvertParamsSwitchSplit(
int code, napi_env env, const napi_value &key, const napi_value &hold, const napi_value &attr)
{
- NativeRdb::DataAbilityPredicates predicates;
+ DataShare::DataSharePredicates predicates;
switch (code) {
case QUERY_CONTACT:
predicates = BuildQueryContactPredicates(env, key, hold, attr);
@@ -985,7 +1016,7 @@ napi_value Scheduling(napi_env env, napi_callback_info info, ExecuteHelper *exec
}
}
SetChildActionCodeAndConvertParams(env, executeHelper);
- executeHelper->dataAbilityHelper = GetDataAbilityHelper(env);
+ executeHelper->dataShareHelper = GetDataShareHelper(env, info);
napi_value result = CreateAsyncWork(env, executeHelper);
return result;
diff --git a/contacts/src/contacts_build.cpp b/contacts/src/contacts_build.cpp
index 64a3b47..d9a8aab 100644
--- a/contacts/src/contacts_build.cpp
+++ b/contacts/src/contacts_build.cpp
@@ -48,7 +48,7 @@ void ContactsBuild::GetContactDataByObject(napi_env env, napi_value object, Cont
}
void ContactsBuild::GetContactData(napi_env env, napi_value object,
- std::vector &valueContact, std::vector &valueContactData)
+ std::vector &valueContact, std::vector &valueContactData)
{
Contacts contact;
GetContactDataByObject(env, object, contact);
@@ -56,22 +56,22 @@ void ContactsBuild::GetContactData(napi_env env, napi_value object,
BuildValueContactData(contact, valueContactData);
}
-void ContactsBuild::BuildValueContact(Contacts &contact, std::vector &valueContact)
+void ContactsBuild::BuildValueContact(Contacts &contact, std::vector &valueContact)
{
- NativeRdb::ValuesBucket valuesBucketContact;
+ DataShare::DataShareValuesBucket valuesBucketContact;
if (!contact.name.fullName.empty() || contact.name.fullName != "") {
- valuesBucketContact.PutString("display_name", contact.name.fullName);
+ valuesBucketContact.Put("display_name", contact.name.fullName);
}
if (!contact.organization.name.empty() || contact.organization.name != "") {
- valuesBucketContact.PutString("company", contact.organization.name);
+ valuesBucketContact.Put("company", contact.organization.name);
}
if (!contact.organization.title.empty() || contact.organization.title != "") {
- valuesBucketContact.PutString("position", contact.organization.title);
+ valuesBucketContact.Put("position", contact.organization.title);
}
valueContact.push_back(valuesBucketContact);
}
-void ContactsBuild::BuildValueContactData(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::BuildValueContactData(Contacts &contact, std::vector &valueContactData)
{
GetValuesBucketEmail(contact, valueContactData);
GetValuesBucketEvent(contact, valueContactData);
@@ -90,7 +90,7 @@ void ContactsBuild::BuildValueContactData(Contacts &contact, std::vector &valueContactData)
+ Contacts &contact, int typeId, std::vector &valueContactData)
{
switch (typeId) {
case EMAIL:
@@ -121,7 +121,7 @@ void ContactsBuild::BuildValueContactDataByType(
}
void ContactsBuild::TypeSwitchSplit(
- int typeId, Contacts &contact, std::vector &valueContactData)
+ int typeId, Contacts &contact, std::vector &valueContactData)
{
switch (typeId) {
case PHOTO:
@@ -164,23 +164,23 @@ void ContactsBuild::TypeSwitchSplit(
* @param contact Conditions for establish ValuesBucket operation
* @param valueContactData Conditions for establish ValuesBucket operation
*/
-void ContactsBuild::GetValuesBucketEmail(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketEmail(Contacts &contact, std::vector &valueContactData)
{
unsigned int emailsSize = contact.emails.size();
for (unsigned int i = 0; i < emailsSize; i++) {
- NativeRdb::ValuesBucket valuesBucketEmail;
- valuesBucketEmail.PutString("detail_info", contact.emails[i].email);
+ DataShare::DataShareValuesBucket valuesBucketEmail;
+ valuesBucketEmail.Put("detail_info", contact.emails[i].email);
if (contact.emails[i].labelId != ERROR) {
- valuesBucketEmail.PutString("extend7", std::to_string(contact.emails[i].labelId));
+ valuesBucketEmail.Put("extend7", std::to_string(contact.emails[i].labelId));
}
if (!contact.emails[i].labelName.empty()) {
- valuesBucketEmail.PutString("custom_data", contact.emails[i].labelName);
- valuesBucketEmail.PutString("extend7", std::to_string(Email::CUSTOM_LABEL));
+ valuesBucketEmail.Put("custom_data", contact.emails[i].labelName);
+ valuesBucketEmail.Put("extend7", std::to_string(Email::CUSTOM_LABEL));
}
if (!contact.emails[i].displayName.empty()) {
- valuesBucketEmail.PutString("alias_detail_info", contact.emails[i].displayName);
+ valuesBucketEmail.Put("alias_detail_info", contact.emails[i].displayName);
}
- valuesBucketEmail.PutString("content_type", "email");
+ valuesBucketEmail.Put("content_type", "email");
valueContactData.push_back(valuesBucketEmail);
}
}
@@ -191,20 +191,20 @@ void ContactsBuild::GetValuesBucketEmail(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketEvent(Contacts &contact, std::vector &valueContactData)
{
unsigned int eventsSize = contact.events.size();
for (unsigned int i = 0; i < eventsSize; i++) {
- NativeRdb::ValuesBucket valuesBucketEvent;
- valuesBucketEvent.PutString("detail_info", contact.events[i].eventDate);
+ DataShare::DataShareValuesBucket valuesBucketEvent;
+ valuesBucketEvent.Put("detail_info", contact.events[i].eventDate);
if (contact.events[i].labelId != ERROR) {
- valuesBucketEvent.PutString("extend7", std::to_string(contact.events[i].labelId));
+ valuesBucketEvent.Put("extend7", std::to_string(contact.events[i].labelId));
}
if (!contact.events[i].labelName.empty()) {
- valuesBucketEvent.PutString("custom_data", contact.events[i].labelName);
- valuesBucketEvent.PutString("extend7", std::to_string(Event::CUSTOM_LABEL));
+ valuesBucketEvent.Put("custom_data", contact.events[i].labelName);
+ valuesBucketEvent.Put("extend7", std::to_string(Event::CUSTOM_LABEL));
}
- valuesBucketEvent.PutString("content_type", "contact_event");
+ valuesBucketEvent.Put("content_type", "contact_event");
valueContactData.push_back(valuesBucketEvent);
}
}
@@ -215,16 +215,16 @@ void ContactsBuild::GetValuesBucketEvent(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketGroup(Contacts &contact, std::vector &valueContactData)
{
unsigned int groupsSize = contact.groups.size();
for (unsigned int i = 0; i < groupsSize; i++) {
- NativeRdb::ValuesBucket valuesBucketGroup;
+ DataShare::DataShareValuesBucket valuesBucketGroup;
if (contact.groups[i].groupId != ERROR) {
- valuesBucketGroup.PutString("detail_info", std::to_string(contact.groups[i].groupId));
+ valuesBucketGroup.Put("detail_info", std::to_string(contact.groups[i].groupId));
}
- valuesBucketGroup.PutString("alias_detail_info", contact.groups[i].title);
- valuesBucketGroup.PutString("content_type", "group_membership");
+ valuesBucketGroup.Put("alias_detail_info", contact.groups[i].title);
+ valuesBucketGroup.Put("content_type", "group_membership");
valueContactData.push_back(valuesBucketGroup);
}
}
@@ -235,20 +235,20 @@ void ContactsBuild::GetValuesBucketGroup(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketImAddress(Contacts &contact, std::vector &valueContactData)
{
unsigned int imAddressSize = contact.imAddresses.size();
for (unsigned int i = 0; i < imAddressSize; i++) {
- NativeRdb::ValuesBucket valuesBucketImAddress;
- valuesBucketImAddress.PutString("detail_info", contact.imAddresses[i].imAddress);
+ DataShare::DataShareValuesBucket valuesBucketImAddress;
+ valuesBucketImAddress.Put("detail_info", contact.imAddresses[i].imAddress);
if (contact.imAddresses[i].labelId != ERROR) {
- valuesBucketImAddress.PutString("extend7", std::to_string(contact.imAddresses[i].labelId));
+ valuesBucketImAddress.Put("extend7", std::to_string(contact.imAddresses[i].labelId));
}
if (!contact.imAddresses[i].labelName.empty()) {
- valuesBucketImAddress.PutString("custom_data", contact.imAddresses[i].labelName);
- valuesBucketImAddress.PutString("extend7", std::to_string(ImAddress::CUSTOM_LABEL));
+ valuesBucketImAddress.Put("custom_data", contact.imAddresses[i].labelName);
+ valuesBucketImAddress.Put("extend7", std::to_string(ImAddress::CUSTOM_LABEL));
}
- valuesBucketImAddress.PutString("content_type", "im");
+ valuesBucketImAddress.Put("content_type", "im");
valueContactData.push_back(valuesBucketImAddress);
}
}
@@ -259,12 +259,12 @@ void ContactsBuild::GetValuesBucketImAddress(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketPortrait(Contacts &contact, std::vector &valueContactData)
{
if (!contact.portrait.uri.empty() || contact.portrait.uri != "") {
- NativeRdb::ValuesBucket valuesBucketPortrait;
- valuesBucketPortrait.PutString("detail_info", contact.portrait.uri);
- valuesBucketPortrait.PutString("content_type", "photo");
+ DataShare::DataShareValuesBucket valuesBucketPortrait;
+ valuesBucketPortrait.Put("detail_info", contact.portrait.uri);
+ valuesBucketPortrait.Put("content_type", "photo");
valueContactData.push_back(valuesBucketPortrait);
}
}
@@ -276,20 +276,20 @@ void ContactsBuild::GetValuesBucketPortrait(Contacts &contact, std::vector &valueContactData)
+ Contacts &contact, std::vector &valueContactData)
{
unsigned int phoneNumbersSize = contact.phoneNumbers.size();
for (unsigned int i = 0; i < phoneNumbersSize; i++) {
- NativeRdb::ValuesBucket valuesBucketPhoneNumber;
- valuesBucketPhoneNumber.PutString("detail_info", contact.phoneNumbers[i].phoneNumber);
+ DataShare::DataShareValuesBucket valuesBucketPhoneNumber;
+ valuesBucketPhoneNumber.Put("detail_info", contact.phoneNumbers[i].phoneNumber);
if (contact.phoneNumbers[i].labelId != ERROR) {
- valuesBucketPhoneNumber.PutString("extend7", std::to_string(contact.phoneNumbers[i].labelId));
+ valuesBucketPhoneNumber.Put("extend7", std::to_string(contact.phoneNumbers[i].labelId));
}
if (!contact.phoneNumbers[i].labelName.empty()) {
- valuesBucketPhoneNumber.PutString("custom_data", contact.phoneNumbers[i].labelName);
- valuesBucketPhoneNumber.PutString("extend7", std::to_string(PhoneNumber::CUSTOM_LABEL));
+ valuesBucketPhoneNumber.Put("custom_data", contact.phoneNumbers[i].labelName);
+ valuesBucketPhoneNumber.Put("extend7", std::to_string(PhoneNumber::CUSTOM_LABEL));
}
- valuesBucketPhoneNumber.PutString("content_type", "phone");
+ valuesBucketPhoneNumber.Put("content_type", "phone");
valueContactData.push_back(valuesBucketPhoneNumber);
}
}
@@ -301,38 +301,38 @@ void ContactsBuild::GetValuesBucketPhoneNumber(
* @param valueContactData Conditions for establish ValuesBucket operation
*/
void ContactsBuild::GetValuesBucketPostalAddress(
- Contacts &contact, std::vector &valueContactData)
+ Contacts &contact, std::vector &valueContactData)
{
unsigned int postalAddressesSize = contact.postalAddresses.size();
for (unsigned int i = 0; i < postalAddressesSize; i++) {
- NativeRdb::ValuesBucket valuesBucketPostalAddress;
- valuesBucketPostalAddress.PutString("detail_info", contact.postalAddresses[i].postalAddress);
+ DataShare::DataShareValuesBucket valuesBucketPostalAddress;
+ valuesBucketPostalAddress.Put("detail_info", contact.postalAddresses[i].postalAddress);
if (contact.postalAddresses[i].labelId != ERROR) {
- valuesBucketPostalAddress.PutString("extend7", std::to_string(contact.postalAddresses[i].labelId));
+ valuesBucketPostalAddress.Put("extend7", std::to_string(contact.postalAddresses[i].labelId));
}
if (!contact.postalAddresses[i].labelName.empty()) {
- valuesBucketPostalAddress.PutString("custom_data", contact.postalAddresses[i].labelName);
- valuesBucketPostalAddress.PutString("extend7", std::to_string(PostalAddress::CUSTOM_LABEL));
+ valuesBucketPostalAddress.Put("custom_data", contact.postalAddresses[i].labelName);
+ valuesBucketPostalAddress.Put("extend7", std::to_string(PostalAddress::CUSTOM_LABEL));
}
if (!contact.postalAddresses[i].neighborhood.empty()) {
- valuesBucketPostalAddress.PutString("neighborhood", contact.postalAddresses[i].neighborhood);
+ valuesBucketPostalAddress.Put("neighborhood", contact.postalAddresses[i].neighborhood);
}
if (!contact.postalAddresses[i].pobox.empty()) {
- valuesBucketPostalAddress.PutString("pobox", contact.postalAddresses[i].pobox);
+ valuesBucketPostalAddress.Put("pobox", contact.postalAddresses[i].pobox);
}
if (!contact.postalAddresses[i].postcode.empty()) {
- valuesBucketPostalAddress.PutString("postcode", contact.postalAddresses[i].postcode);
+ valuesBucketPostalAddress.Put("postcode", contact.postalAddresses[i].postcode);
}
if (!contact.postalAddresses[i].region.empty()) {
- valuesBucketPostalAddress.PutString("region", contact.postalAddresses[i].region);
+ valuesBucketPostalAddress.Put("region", contact.postalAddresses[i].region);
}
if (!contact.postalAddresses[i].street.empty()) {
- valuesBucketPostalAddress.PutString("street", contact.postalAddresses[i].street);
+ valuesBucketPostalAddress.Put("street", contact.postalAddresses[i].street);
}
if (!contact.postalAddresses[i].city.empty()) {
- valuesBucketPostalAddress.PutString("city", contact.postalAddresses[i].city);
+ valuesBucketPostalAddress.Put("city", contact.postalAddresses[i].city);
}
- valuesBucketPostalAddress.PutString("content_type", "postal_address");
+ valuesBucketPostalAddress.Put("content_type", "postal_address");
valueContactData.push_back(valuesBucketPostalAddress);
}
}
@@ -343,20 +343,20 @@ void ContactsBuild::GetValuesBucketPostalAddress(
* @param contact Conditions for establish ValuesBucket operation
* @param valueContactData Conditions for establish ValuesBucket operation
*/
-void ContactsBuild::GetValuesBucketRelation(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketRelation(Contacts &contact, std::vector &valueContactData)
{
unsigned int relationsSize = contact.relations.size();
for (unsigned int i = 0; i < relationsSize; i++) {
- NativeRdb::ValuesBucket valuesBucketRelation;
- valuesBucketRelation.PutString("detail_info", contact.relations[i].relationName);
+ DataShare::DataShareValuesBucket valuesBucketRelation;
+ valuesBucketRelation.Put("detail_info", contact.relations[i].relationName);
if (contact.relations[i].labelId != ERROR) {
- valuesBucketRelation.PutString("extend7", std::to_string(contact.relations[i].labelId));
+ valuesBucketRelation.Put("extend7", std::to_string(contact.relations[i].labelId));
}
if (!contact.relations[i].labelName.empty()) {
- valuesBucketRelation.PutString("custom_data", contact.relations[i].labelName);
- valuesBucketRelation.PutString("extend7", std::to_string(Relation::CUSTOM_LABEL));
+ valuesBucketRelation.Put("custom_data", contact.relations[i].labelName);
+ valuesBucketRelation.Put("extend7", std::to_string(Relation::CUSTOM_LABEL));
}
- valuesBucketRelation.PutString("content_type", "relation");
+ valuesBucketRelation.Put("content_type", "relation");
valueContactData.push_back(valuesBucketRelation);
}
}
@@ -367,20 +367,20 @@ void ContactsBuild::GetValuesBucketRelation(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketSipAddress(Contacts &contact, std::vector &valueContactData)
{
unsigned int sipAddressesSize = contact.sipAddresses.size();
for (unsigned int i = 0; i < sipAddressesSize; i++) {
- NativeRdb::ValuesBucket valuesBucketSipAddress;
- valuesBucketSipAddress.PutString("detail_info", contact.sipAddresses[i].sipAddress);
+ DataShare::DataShareValuesBucket valuesBucketSipAddress;
+ valuesBucketSipAddress.Put("detail_info", contact.sipAddresses[i].sipAddress);
if (contact.sipAddresses[i].labelId != ERROR) {
- valuesBucketSipAddress.PutString("extend7", std::to_string(contact.sipAddresses[i].labelId));
+ valuesBucketSipAddress.Put("extend7", std::to_string(contact.sipAddresses[i].labelId));
}
if (!contact.sipAddresses[i].labelName.empty()) {
- valuesBucketSipAddress.PutString("custom_data", contact.sipAddresses[i].labelName);
- valuesBucketSipAddress.PutString("extend7", std::to_string(SipAddress::CUSTOM_LABEL));
+ valuesBucketSipAddress.Put("custom_data", contact.sipAddresses[i].labelName);
+ valuesBucketSipAddress.Put("extend7", std::to_string(SipAddress::CUSTOM_LABEL));
}
- valuesBucketSipAddress.PutString("content_type", "sip_address");
+ valuesBucketSipAddress.Put("content_type", "sip_address");
valueContactData.push_back(valuesBucketSipAddress);
}
}
@@ -391,13 +391,13 @@ void ContactsBuild::GetValuesBucketSipAddress(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketWebsite(Contacts &contact, std::vector &valueContactData)
{
unsigned int websitesSize = contact.websites.size();
for (unsigned int i = 0; i < websitesSize; i++) {
- NativeRdb::ValuesBucket valuesBucketWebsite;
- valuesBucketWebsite.PutString("detail_info", contact.websites[i].website);
- valuesBucketWebsite.PutString("content_type", "website");
+ DataShare::DataShareValuesBucket valuesBucketWebsite;
+ valuesBucketWebsite.Put("detail_info", contact.websites[i].website);
+ valuesBucketWebsite.Put("content_type", "website");
valueContactData.push_back(valuesBucketWebsite);
}
}
@@ -408,36 +408,36 @@ void ContactsBuild::GetValuesBucketWebsite(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketName(Contacts &contact, std::vector &valueContactData)
{
if (!contact.name.fullName.empty() || contact.name.fullName != "") {
- NativeRdb::ValuesBucket valuesBucketName;
- valuesBucketName.PutString("detail_info", contact.name.fullName);
+ DataShare::DataShareValuesBucket valuesBucketName;
+ valuesBucketName.Put("detail_info", contact.name.fullName);
if (!contact.name.namePrefix.empty()) {
- valuesBucketName.PutString("alpha_name", contact.name.namePrefix);
+ valuesBucketName.Put("alpha_name", contact.name.namePrefix);
}
if (!contact.name.middleName.empty()) {
- valuesBucketName.PutString("other_lan_last_name", contact.name.middleName);
+ valuesBucketName.Put("other_lan_last_name", contact.name.middleName);
}
if (!contact.name.nameSuffix.empty()) {
- valuesBucketName.PutString("other_lan_first_name", contact.name.nameSuffix);
+ valuesBucketName.Put("other_lan_first_name", contact.name.nameSuffix);
}
if (!contact.name.familyName.empty()) {
- valuesBucketName.PutString("family_name", contact.name.familyName);
+ valuesBucketName.Put("family_name", contact.name.familyName);
}
if (!contact.name.middleNamePhonetic.empty()) {
- valuesBucketName.PutString("middle_name_phonetic", contact.name.middleNamePhonetic);
+ valuesBucketName.Put("middle_name_phonetic", contact.name.middleNamePhonetic);
}
if (!contact.name.givenName.empty()) {
- valuesBucketName.PutString("given_name", contact.name.givenName);
+ valuesBucketName.Put("given_name", contact.name.givenName);
}
if (!contact.name.givenNamePhonetic.empty()) {
- valuesBucketName.PutString("given_name_phonetic", contact.name.givenNamePhonetic);
+ valuesBucketName.Put("given_name_phonetic", contact.name.givenNamePhonetic);
}
if (!contact.name.familyNamePhonetic.empty()) {
- valuesBucketName.PutString("phonetic_name", contact.name.familyNamePhonetic);
+ valuesBucketName.Put("phonetic_name", contact.name.familyNamePhonetic);
}
- valuesBucketName.PutString("content_type", "name");
+ valuesBucketName.Put("content_type", "name");
valueContactData.push_back(valuesBucketName);
}
}
@@ -448,12 +448,12 @@ void ContactsBuild::GetValuesBucketName(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketNickName(Contacts &contact, std::vector &valueContactData)
{
if (!contact.nickName.nickName.empty() || contact.nickName.nickName != "") {
- NativeRdb::ValuesBucket valuesBucketNickName;
- valuesBucketNickName.PutString("detail_info", contact.nickName.nickName);
- valuesBucketNickName.PutString("content_type", "nickname");
+ DataShare::DataShareValuesBucket valuesBucketNickName;
+ valuesBucketNickName.Put("detail_info", contact.nickName.nickName);
+ valuesBucketNickName.Put("content_type", "nickname");
valueContactData.push_back(valuesBucketNickName);
}
}
@@ -464,12 +464,12 @@ void ContactsBuild::GetValuesBucketNickName(Contacts &contact, std::vector &valueContactData)
+void ContactsBuild::GetValuesBucketNote(Contacts &contact, std::vector &valueContactData)
{
if (!contact.note.noteContent.empty() || contact.note.noteContent != "") {
- NativeRdb::ValuesBucket valuesBucketNote;
- valuesBucketNote.PutString("detail_info", contact.note.noteContent);
- valuesBucketNote.PutString("content_type", "note");
+ DataShare::DataShareValuesBucket valuesBucketNote;
+ valuesBucketNote.Put("detail_info", contact.note.noteContent);
+ valuesBucketNote.Put("content_type", "note");
valueContactData.push_back(valuesBucketNote);
}
}
@@ -481,15 +481,15 @@ void ContactsBuild::GetValuesBucketNote(Contacts &contact, std::vector &valueContactData)
+ Contacts &contact, std::vector &valueContactData)
{
if (!contact.organization.name.empty()) {
- NativeRdb::ValuesBucket valuesBucketData;
- valuesBucketData.PutString("detail_info", contact.organization.name);
+ DataShare::DataShareValuesBucket valuesBucketData;
+ valuesBucketData.Put("detail_info", contact.organization.name);
if (!contact.organization.title.empty()) {
- valuesBucketData.PutString("position", contact.organization.title);
+ valuesBucketData.Put("position", contact.organization.title);
}
- valuesBucketData.PutString("content_type", "organization");
+ valuesBucketData.Put("content_type", "organization");
valueContactData.push_back(valuesBucketData);
}
}
diff --git a/contacts/src/contacts_control.cpp b/contacts/src/contacts_control.cpp
index 373078f..d9db9dd 100644
--- a/contacts/src/contacts_control.cpp
+++ b/contacts/src/contacts_control.cpp
@@ -27,112 +27,112 @@ ContactsControl::~ContactsControl()
{
}
-int64_t ContactsControl::RawContactInsert(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::ValuesBucket rawContactValues)
+int64_t ContactsControl::RawContactInsert(std::shared_ptr dataShareHelper,
+ DataShare::DataShareValuesBucket rawContactValues)
{
int code = 0;
- OHOS::Uri uriRawContact("dataability:///com.ohos.contactsdataability/contacts/raw_contact");
- code = dataAbilityHelper->Insert(uriRawContact, rawContactValues);
+ OHOS::Uri uriRawContact("datashare:///com.ohos.contactsdataability/contacts/raw_contact");
+ code = dataShareHelper->Insert(uriRawContact, rawContactValues);
HILOG_INFO(" ContactsControl::RawContactInsert insert code %{public}d", code);
rawContactValues.Clear();
return code;
}
-int ContactsControl::ContactDataInsert(std::shared_ptr dataAbilityHelper,
- std::vector contactDataValues)
+int ContactsControl::ContactDataInsert(std::shared_ptr dataShareHelper,
+ std::vector contactDataValues)
{
int code = 0;
- OHOS::Uri uriContactData("dataability:///com.ohos.contactsdataability/contacts/contact_data");
- code = dataAbilityHelper->BatchInsert(uriContactData, contactDataValues);
+ OHOS::Uri uriContactData("datashare:///com.ohos.contactsdataability/contacts/contact_data");
+ code = dataShareHelper->BatchInsert(uriContactData, contactDataValues);
HILOG_INFO(" ContactsControl::ContactDataInsert insert code %{public}d", code);
contactDataValues.clear();
return code;
}
-int ContactsControl::ContactDataDelete(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::DataAbilityPredicates predicates)
+int ContactsControl::ContactDataDelete(std::shared_ptr dataShareHelper,
+ DataShare::DataSharePredicates predicates)
{
int code = 0;
- OHOS::Uri uriContactData("dataability:///com.ohos.contactsdataability/contacts/contact_data");
- code = dataAbilityHelper->Delete(uriContactData, predicates);
+ OHOS::Uri uriContactData("datashare:///com.ohos.contactsdataability/contacts/contact_data");
+ code = dataShareHelper->Delete(uriContactData, predicates);
HILOG_INFO(" ContactsControl::ContactDataDelete insert code %{public}d", code);
return code;
}
-int ContactsControl::RawContactUpdate(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::ValuesBucket updateValues, OHOS::NativeRdb::DataAbilityPredicates predicates)
+int ContactsControl::RawContactUpdate(std::shared_ptr dataShareHelper,
+ DataShare::DataShareValuesBucket updateValues, DataShare::DataSharePredicates predicates)
{
int code = 0;
- OHOS::Uri uriRawContact("dataability:///com.ohos.contactsdataability/contacts/raw_contact");
- code = dataAbilityHelper->Update(uriRawContact, updateValues, predicates);
+ OHOS::Uri uriRawContact("datashare:///com.ohos.contactsdataability/contacts/raw_contact");
+ code = dataShareHelper->Update(uriRawContact, predicates, updateValues);
return code;
}
-int ContactsControl::ContactDataUpdate(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::ValuesBucket updateValues, OHOS::NativeRdb::DataAbilityPredicates predicates)
+int ContactsControl::ContactDataUpdate(std::shared_ptr dataShareHelper,
+ DataShare::DataShareValuesBucket updateValues, DataShare::DataSharePredicates predicates)
{
int code = 0;
- OHOS::Uri uriContactData("dataability:///com.ohos.contactsdataability/contacts/contact_data");
- code = dataAbilityHelper->Update(uriContactData, updateValues, predicates);
+ OHOS::Uri uriContactData("datashare:///com.ohos.contactsdataability/contacts/contact_data");
+ code = dataShareHelper->Update(uriContactData, predicates, updateValues);
return code;
}
-int ContactsControl::ContactDelete(std::shared_ptr dataAbilityHelper,
- OHOS::NativeRdb::DataAbilityPredicates predicates)
+int ContactsControl::ContactDelete(std::shared_ptr dataShareHelper,
+ DataShare::DataSharePredicates predicates)
{
int code = 0;
- OHOS::Uri uriContact("dataability:///com.ohos.contactsdataability/contacts/contact");
- code = dataAbilityHelper->Delete(uriContact, predicates);
+ OHOS::Uri uriContact("datashare:///com.ohos.contactsdataability/contacts/contact");
+ code = dataShareHelper->Delete(uriContact, predicates);
return code;
}
-std::shared_ptr ContactsControl::HolderQuery(
- std::shared_ptr dataAbilityHelper, std::vector columns,
- OHOS::NativeRdb::DataAbilityPredicates predicates)
+std::shared_ptr ContactsControl::HolderQuery(
+ std::shared_ptr dataShareHelper, std::vector columns,
+ DataShare::DataSharePredicates predicates)
{
- std::shared_ptr resultSet;
- OHOS::Uri uriContact("dataability:///com.ohos.contactsdataability/contacts/account");
- resultSet = dataAbilityHelper->Query(uriContact, columns, predicates);
+ std::shared_ptr resultSet;
+ OHOS::Uri uriContact("datashare:///com.ohos.contactsdataability/contacts/account");
+ resultSet = dataShareHelper->Query(uriContact, predicates, columns);
return resultSet;
}
-std::shared_ptr ContactsControl::ContactQuery(
- std::shared_ptr dataAbilityHelper, std::vector