From 18507800e067252f1ab8010c72f9d787622fc9a9 Mon Sep 17 00:00:00 2001 From: panqiangbiao Date: Fri, 27 May 2022 15:47:12 +0800 Subject: [PATCH] add token support Signed-off-by: panqiangbiao --- .../include/file_access_helper.h | 4 +- .../file_extension/src/file_access_helper.cpp | 39 +++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/frameworks/innerkits/file_extension/include/file_access_helper.h b/frameworks/innerkits/file_extension/include/file_access_helper.h index a3f7e3ca..c032d6a3 100644 --- a/frameworks/innerkits/file_extension/include/file_access_helper.h +++ b/frameworks/innerkits/file_extension/include/file_access_helper.h @@ -37,7 +37,7 @@ public: static std::shared_ptr Creator(const std::shared_ptr &context, const AAFwk::Want &want); - + static std::shared_ptr Creator(const sptr &token, const AAFwk::Want &want); bool Release(); int OpenFile(Uri &uri, const std::string &mode); @@ -50,6 +50,8 @@ public: private: FileAccessHelper(const std::shared_ptr &context, const AAFwk::Want &want, const sptr &fileExtProxy); + FileAccessHelper(const sptr &token, + const AAFwk::Want &want, const sptr &fileExtProxy); void AddFileAccessDeathRecipient(const sptr &token); void OnSchedulerDied(const wptr &remote); diff --git a/frameworks/innerkits/file_extension/src/file_access_helper.cpp b/frameworks/innerkits/file_extension/src/file_access_helper.cpp index 6a62e048..c64dd63d 100644 --- a/frameworks/innerkits/file_extension/src/file_access_helper.cpp +++ b/frameworks/innerkits/file_extension/src/file_access_helper.cpp @@ -63,6 +63,45 @@ void FileAccessHelper::OnSchedulerDied(const wptr &remote) HILOG_INFO("tag dsa %{public}s called end", __func__); } +FileAccessHelper::FileAccessHelper(const sptr &token, + const AAFwk::Want &want, const sptr &fileExtProxy) +{ + HILOG_INFO("tag dsa FileAccessHelper::FileAccessHelper start"); + token_ = token; + want_ = want; + fileExtProxy_ = fileExtProxy; + fileExtConnection_ = FileExtConnection::GetInstance(); + HILOG_INFO("tag dsa FileAccessHelper::FileAccessHelper end"); +} + +std::shared_ptr FileAccessHelper::Creator( + const sptr &token, const AAFwk::Want &want) +{ + HILOG_INFO("tag dsa FileAccessHelper::Creator with runtime context, want and uri called start."); + + HILOG_INFO("tag dsa FileAccessHelper::Creator before ConnectFileExtAbility."); + sptr fileExtProxy = nullptr; + + sptr fileExtConnection = FileExtConnection::GetInstance(); + if (!fileExtConnection->IsExtAbilityConnected()) { + fileExtConnection->ConnectFileExtAbility(want, token); + } + fileExtProxy = fileExtConnection->GetFileExtProxy(); + if (fileExtProxy == nullptr) { + HILOG_WARN("tag dsa FileAccessHelper::Creator get invalid fileExtProxy"); + } + HILOG_INFO("tag dsa FileAccessHelper::Creator after ConnectFileExtAbility."); + + FileAccessHelper *ptrDataShareHelper = new (std::nothrow) FileAccessHelper(token, want, fileExtProxy); + if (ptrDataShareHelper == nullptr) { + HILOG_ERROR("tag dsa FileAccessHelper::Creator failed, create FileAccessHelper failed"); + return nullptr; + } + + HILOG_INFO("tag dsa FileAccessHelper::Creator with runtime context, want and uri called end."); + return std::shared_ptr(ptrDataShareHelper); +} + std::shared_ptr FileAccessHelper::Creator( const std::shared_ptr &context, const AAFwk::Want &want) { -- Gitee