From 1ae7582143c15c9643860e896fdfa8aeb862e4d1 Mon Sep 17 00:00:00 2001 From: panqiangbiao Date: Thu, 2 Jun 2022 09:17:57 +0800 Subject: [PATCH 1/2] adapt medialibrary datashare Signed-off-by: panqiangbiao --- interfaces/kits/js/BUILD.gn | 2 +- services/BUILD.gn | 4 +++- services/src/fileoper/media_file_utils.cpp | 15 +++++++++------ services/src/fileoper/media_file_utils.h | 2 +- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/interfaces/kits/js/BUILD.gn b/interfaces/kits/js/BUILD.gn index bc9b9e5c..6db78680 100644 --- a/interfaces/kits/js/BUILD.gn +++ b/interfaces/kits/js/BUILD.gn @@ -44,7 +44,7 @@ ohos_shared_library("filemanager") { "$FMS_BASE_DIR:fms_server", "//foundation/arkui/napi:ace_napi", "//foundation/distributeddatamgr/distributedfile/interfaces/kits/js:fileio", - "//foundation/multimedia/medialibrary_standard/frameworks/services/media_library:medialibrary_data_ability", + "//foundation/multimedia/medialibrary_standard/frameworks/innerkitsimpl/medialibrary_data_extension:medialibrary_data_extension", "//utils/native/base:utils", ] cflags = [] diff --git a/services/BUILD.gn b/services/BUILD.gn index 7c0d28bd..eedc5cd2 100644 --- a/services/BUILD.gn +++ b/services/BUILD.gn @@ -65,7 +65,7 @@ ohos_shared_library("fms_server") { "//foundation/filemanagement/storage_service/interfaces/innerkits/storage_manager/native:storage_manager_sa_proxy", "//foundation/filemanagement/storage_service/services/storage_manager:storage_manager", "//foundation/multimedia/medialibrary_standard/frameworks/innerkitsimpl/media_library_helper:media_library", - "//foundation/multimedia/medialibrary_standard/frameworks/services/media_library:medialibrary_data_ability", + "//foundation/multimedia/medialibrary_standard/frameworks/innerkitsimpl/medialibrary_data_extension:medialibrary_data_extension", "//utils/native/base:utils", ] cflags = [] @@ -80,6 +80,8 @@ ohos_shared_library("fms_server") { "ability_runtime:wantagent_innerkits", "access_token:libaccesstoken_sdk", "common_event_service:cesfwk_innerkits", + "data_share:datashare_abilitykit", + "data_share:datashare_common", "dataability:native_dataability", "hiviewdfx_hilog_native:libhilog", "ipc:ipc_core", diff --git a/services/src/fileoper/media_file_utils.cpp b/services/src/fileoper/media_file_utils.cpp index f8f59ab3..3e00c85d 100644 --- a/services/src/fileoper/media_file_utils.cpp +++ b/services/src/fileoper/media_file_utils.cpp @@ -16,8 +16,10 @@ #include "media_file_utils.h" #include - -#include "data_ability_predicates.h" +#include "datashare_values_bucket.h" +#include "datashare_predicates.h" +#include "datashare_abs_result_set.h" +#include "datashare_helper.h" #include "file_manager_service_def.h" #include "file_manager_service_errno.h" #include "log.h" @@ -305,19 +307,20 @@ shared_ptr MediaFileUtils::DoQuery(const string & const vector &selectionArgs, int offset, int count) { ShowSelecArgs(selection, selectionArgs); - NativeRdb::DataAbilityPredicates predicates; + DataShare::DataSharePredicates predicates; predicates.SetWhereClause(selection); predicates.SetWhereArgs(selectionArgs); predicates.SetOrder("date_taken DESC LIMIT " + ToString(offset) + "," + ToString(count)); DEBUG_LOG("limit %{public}d, offset %{public}d", count, offset); Uri uri = Uri(Media::MEDIALIBRARY_DATA_URI); vector columns; - return abilityHelper->Query(uri, columns, predicates); + // return abilityHelper->Query(uri, predicates, columns); + return nullptr; } int MediaFileUtils::DoInsert(const string &name, const string &path, const string &type, string &uri) { - NativeRdb::ValuesBucket values; + DataShare::DataShareValuesBucket values; string albumPath; if (!GetAlbumPath(name, path, albumPath)) { ERR_LOG("path not exsit"); @@ -422,7 +425,7 @@ int MediaFileUtils::GetFileInfoFromResult(shared_ptr obj) { if (abilityHelper == nullptr) { - abilityHelper = AppExecFwk::DataAbilityHelper::Creator(obj, make_shared(Media::MEDIALIBRARY_DATA_URI)); + // abilityHelper = DataShare::DataShareHelper::Creator(obj, MEDIALIBRARY_DATA_URI); if (abilityHelper == nullptr) { DEBUG_LOG("get %{private}s helper fail", Media::MEDIALIBRARY_DATA_URI.c_str()); return false; diff --git a/services/src/fileoper/media_file_utils.h b/services/src/fileoper/media_file_utils.h index 0a3b923f..7588c46c 100644 --- a/services/src/fileoper/media_file_utils.h +++ b/services/src/fileoper/media_file_utils.h @@ -51,7 +51,7 @@ public: static bool InitHelper(sptr obj); private: inline static std::vector> mediaTableMap = {}; - inline static std::shared_ptr abilityHelper = nullptr; + inline static std::shared_ptr abilityHelper = nullptr; }; } // namespace FileManagerService } // namespace OHOS -- Gitee From 25048c8aad6aac8211bd4de22020650bebac27fe Mon Sep 17 00:00:00 2001 From: panqiangbiao Date: Thu, 2 Jun 2022 10:28:31 +0800 Subject: [PATCH 2/2] adapt datashare resultset Signed-off-by: panqiangbiao --- services/src/fileoper/media_file_oper.cpp | 2 +- services/src/fileoper/media_file_utils.cpp | 33 ++++++++++------------ services/src/fileoper/media_file_utils.h | 16 +++++------ 3 files changed, 24 insertions(+), 27 deletions(-) diff --git a/services/src/fileoper/media_file_oper.cpp b/services/src/fileoper/media_file_oper.cpp index 3d5e69ee..64d2cf3f 100644 --- a/services/src/fileoper/media_file_oper.cpp +++ b/services/src/fileoper/media_file_oper.cpp @@ -106,7 +106,7 @@ int MediaFileOper::GetRoot(const std::string &name, const std::string &path, Mes int MediaFileOper::ListFile(const string &type, const string &path, int offset, int count, MessageParcel &reply) const { - shared_ptr result; + shared_ptr result; int res = MediaFileUtils::DoListFile(type, path, offset, count, result); if (res != SUCCESS) { return res; diff --git a/services/src/fileoper/media_file_utils.cpp b/services/src/fileoper/media_file_utils.cpp index 3e00c85d..accca862 100644 --- a/services/src/fileoper/media_file_utils.cpp +++ b/services/src/fileoper/media_file_utils.cpp @@ -18,8 +18,6 @@ #include #include "datashare_values_bucket.h" #include "datashare_predicates.h" -#include "datashare_abs_result_set.h" -#include "datashare_helper.h" #include "file_manager_service_def.h" #include "file_manager_service_errno.h" #include "log.h" @@ -31,12 +29,12 @@ using namespace std; namespace OHOS { namespace FileManagerService { -bool GetPathFromResult(shared_ptr result, string &path) +bool GetPathFromResult(shared_ptr result, string &path) { int count = 0; result->GetRowCount(count); if (count == RESULTSET_EMPTY) { - ERR_LOG("AbsSharedResultSet null"); + ERR_LOG("DataShareResultSet null"); return false; } int32_t columnIndex = 0; @@ -123,9 +121,9 @@ bool GetPathFromAlbumPath(const string &albumUri, string &path) } string selection = Media::MEDIA_DATA_DB_ID + " LIKE ? "; vector selectionArgs = {id}; - shared_ptr result = MediaFileUtils::DoQuery(selection, selectionArgs); + shared_ptr result = MediaFileUtils::DoQuery(selection, selectionArgs); if (result == nullptr) { - ERR_LOG("AbsSharedResultSet null"); + ERR_LOG("DataShareResultSet null"); return false; } return GetPathFromResult(result, path); @@ -152,7 +150,7 @@ bool IsFirstLevelUriPath(const string &path) return path == FISRT_LEVEL_ALBUM; } -bool GetAlbumFromResult(shared_ptr &result, vector &album) +bool GetAlbumFromResult(shared_ptr &result, vector &album) { int count = 0; result->GetRowCount(count); @@ -183,7 +181,7 @@ vector FindAlbumByType(string type) // then get the album string selection = Media::MEDIA_DATA_DB_MEDIA_TYPE + " LIKE ?"; vector selectionArgs = {type}; - shared_ptr result = MediaFileUtils::DoQuery(selection, selectionArgs); + shared_ptr result = MediaFileUtils::DoQuery(selection, selectionArgs); vector album; if (result == nullptr) { ERR_LOG("query album type returns fail"); @@ -275,7 +273,7 @@ static void ShowSelecArgs(const string &selection, const vector &selecti } int MediaFileUtils::DoListFile(const string &type, const string &path, int offset, int count, - shared_ptr &result) + shared_ptr &result) { string selection; vector selectionArgs; @@ -297,13 +295,13 @@ int MediaFileUtils::DoListFile(const string &type, const string &path, int offse return SUCCESS; } -shared_ptr MediaFileUtils::DoQuery(const string &selection, +shared_ptr MediaFileUtils::DoQuery(const string &selection, const vector &selectionArgs) { return DoQuery(selection, selectionArgs, 0, MAX_NUM); } -shared_ptr MediaFileUtils::DoQuery(const string &selection, +shared_ptr MediaFileUtils::DoQuery(const string &selection, const vector &selectionArgs, int offset, int count) { ShowSelecArgs(selection, selectionArgs); @@ -314,8 +312,7 @@ shared_ptr MediaFileUtils::DoQuery(const string & DEBUG_LOG("limit %{public}d, offset %{public}d", count, offset); Uri uri = Uri(Media::MEDIALIBRARY_DATA_URI); vector columns; - // return abilityHelper->Query(uri, predicates, columns); - return nullptr; + return abilityHelper->Query(uri, predicates, columns); } int MediaFileUtils::DoInsert(const string &name, const string &path, const string &type, string &uri) @@ -346,7 +343,7 @@ int MediaFileUtils::DoInsert(const string &name, const string &path, const strin return SUCCESS; } -bool MediaFileUtils::InitMediaTableColIndexMap(shared_ptr result) +bool MediaFileUtils::InitMediaTableColIndexMap(shared_ptr result) { if (mediaTableMap.size() == 0) { DEBUG_LOG("init mediaTableMap"); @@ -368,7 +365,7 @@ bool MediaFileUtils::InitMediaTableColIndexMap(shared_ptr result, +bool MediaFileUtils::GetFileInfo(shared_ptr result, shared_ptr &fileInfo) { if (!InitMediaTableColIndexMap(result)) { @@ -403,13 +400,13 @@ bool MediaFileUtils::GetFileInfo(shared_ptr resul return true; } -int MediaFileUtils::GetFileInfoFromResult(shared_ptr result, +int MediaFileUtils::GetFileInfoFromResult(shared_ptr result, std::vector> &fileList) { int count = 0; result->GetRowCount(count); if (count == 0) { - ERR_LOG("AbsSharedResultSet null"); + ERR_LOG("DataShareResultSet null"); return E_EMPTYFOLDER; } result->GoToFirstRow(); @@ -425,7 +422,7 @@ int MediaFileUtils::GetFileInfoFromResult(shared_ptr obj) { if (abilityHelper == nullptr) { - // abilityHelper = DataShare::DataShareHelper::Creator(obj, MEDIALIBRARY_DATA_URI); + abilityHelper = DataShare::DataShareHelper::Creator(obj, Media::MEDIALIBRARY_DATA_URI); if (abilityHelper == nullptr) { DEBUG_LOG("get %{private}s helper fail", Media::MEDIALIBRARY_DATA_URI.c_str()); return false; diff --git a/services/src/fileoper/media_file_utils.h b/services/src/fileoper/media_file_utils.h index 7588c46c..35d5245f 100644 --- a/services/src/fileoper/media_file_utils.h +++ b/services/src/fileoper/media_file_utils.h @@ -18,7 +18,7 @@ #include #include -#include "abs_shared_result_set.h" +#include "datashare_abs_result_set.h" #include "file_info.h" #include "file_oper.h" @@ -27,7 +27,7 @@ #include "iremote_proxy.h" #include "iremote_stub.h" -#include "data_ability_helper.h" +#include "datashare_helper.h" namespace OHOS { namespace FileManagerService { @@ -38,16 +38,16 @@ public: static int DoGetRoot(const std::string &name, const std::string &path, std::vector> &fileList); static int DoListFile(const std::string &type, const std::string &path, int offset, int count, - std::shared_ptr &result); - static std::shared_ptr DoQuery(const std::string &selection, + std::shared_ptr &result); + static std::shared_ptr DoQuery(const std::string &selection, const std::vector &selectionArgs); - static std::shared_ptr DoQuery(const std::string &selection, + static std::shared_ptr DoQuery(const std::string &selection, const std::vector &selectionArgs, int offset, int count); static int DoInsert(const std::string &name, const std::string &path, const std::string &type, std::string &uri); - static bool GetFileInfo(std::shared_ptr result, std::shared_ptr &fileInfo); - static int GetFileInfoFromResult(std::shared_ptr result, + static bool GetFileInfo(std::shared_ptr result, std::shared_ptr &fileInfo); + static int GetFileInfoFromResult(std::shared_ptr result, std::vector> &fileList); - static bool InitMediaTableColIndexMap(std::shared_ptr result); + static bool InitMediaTableColIndexMap(std::shared_ptr result); static bool InitHelper(sptr obj); private: inline static std::vector> mediaTableMap = {}; -- Gitee