1 /* 2 * Copyright (c) 2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_MEDIA_ASSETS_SERVICE_H 17 #define OHOS_MEDIA_ASSETS_SERVICE_H 18 19 #include <stdint.h> 20 #include <string> 21 22 #include "media_assets_rdb_operations.h" 23 #include "form_info_dto.h" 24 #include "commit_edited_asset_dto.h" 25 #include "create_asset_dto.h" 26 #include "get_asset_analysis_data_dto.h" 27 #include "clone_asset_dto.h" 28 #include "revert_to_original_dto.h" 29 #include "cloud_enhancement_dto.h" 30 #include "grant_photo_uri_permission_dto.h" 31 #include "grant_photo_uris_permission_dto.h" 32 #include "grant_photo_uri_permission_inner_dto.h" 33 #include "cancel_photo_uri_permission_dto.h" 34 #include "cancel_photo_uri_permission_inner_dto.h" 35 #include "start_thumbnail_creation_task_dto.h" 36 #include "stop_thumbnail_creation_task_dto.h" 37 #include "set_location_dto.h" 38 #include "submit_cache_dto.h" 39 #include "asset_change_create_asset_dto.h" 40 #include "add_image_dto.h" 41 #include "save_camera_photo_dto.h" 42 #include "get_assets_dto.h" 43 #include "query_cloud_enhancement_task_state_dto.h" 44 #include "query_photo_vo.h" 45 #include "adapted_vo.h" 46 #include "convert_format_dto.h" 47 #include "check_photo_uri_permission_inner_dto.h" 48 #include "get_result_set_from_db_vo.h" 49 #include "get_result_set_from_db_dto.h" 50 #include "get_result_set_from_photos_extend_vo.h" 51 #include "get_moving_photo_date_modified_vo.h" 52 #include "close_asset_vo.h" 53 #include "get_uris_by_old_uris_inner_dto.h" 54 #include "restore_dto.h" 55 #include "cloud_media_asset_types.h" 56 #include "is_edited_dto.h" 57 #include "is_edited_vo.h" 58 #include "request_edit_data_dto.h" 59 #include "request_edit_data_vo.h" 60 #include "get_edit_data_dto.h" 61 #include "get_edit_data_vo.h" 62 #include "start_asset_analysis_dto.h" 63 #include "start_asset_analysis_vo.h" 64 #include "get_cloud_enhancement_pair_dto.h" 65 #include "get_cloud_enhancement_pair_vo.h" 66 #include "get_cloud_enhancement_pair_dto.h" 67 #include "get_filepath_from_uri_vo.h" 68 #include "get_uri_from_filepath_vo.h" 69 70 namespace OHOS::Media { 71 class MediaAssetsService { 72 public: 73 static MediaAssetsService &GetInstance(); 74 75 int32_t SaveFormInfo(const FormInfoDto& formInfoDto); 76 int32_t SaveGalleryFormInfo(const FormInfoDto& formInfoDto); 77 int32_t RemoveFormInfo(const std::string& formId); 78 int32_t RemoveGalleryFormInfo(const std::string& formId); 79 int32_t CommitEditedAsset(const CommitEditedAssetDto& commitEditedAssetDto); 80 int32_t TrashPhotos(const std::vector<std::string> &uris); 81 int32_t DeletePhotos(const std::vector<std::string> &uris); 82 int32_t DeletePhotosCompleted(const std::vector<std::string> &fileIds); 83 int32_t AssetChangeSetFavorite(const int32_t fileId, const bool favorite); 84 int32_t AssetChangeSetHidden(const std::string &uri, const bool hidden); 85 int32_t AssetChangeSetUserComment(const int32_t fileId, const std::string &userComment); 86 int32_t AssetChangeSetLocation(const SetLocationDto &dto); 87 int32_t AssetChangeSetTitle(const int32_t fileId, const std::string &title); 88 int32_t AssetChangeSetEditData(const NativeRdb::ValuesBucket &values); 89 int32_t AssetChangeSubmitCache(SubmitCacheDto &dto); 90 int32_t AssetChangeCreateAsset(AssetChangeCreateAssetDto &dto); 91 int32_t AssetChangeAddImage(AddImageDto &dto); 92 int32_t SetCameraShotKey(const int32_t fileId, const std::string &cameraShotKey); 93 int32_t SaveCameraPhoto(const SaveCameraPhotoDto &dto); 94 int32_t DiscardCameraPhoto(const int32_t fileId); 95 int32_t SetEffectMode(const int32_t fileId, const int32_t effectMode); 96 int32_t SetOrientation(const int32_t fileId, const int32_t orientation); 97 int32_t SetVideoEnhancementAttr(const int32_t fileId, const std::string &photoId, const std::string &path); 98 int32_t SetSupportedWatermarkType(const int32_t fileId, const int32_t watermarkType); 99 std::shared_ptr<DataShare::DataShareResultSet> GetAssets(GetAssetsDto &dto); 100 std::shared_ptr<DataShare::DataShareResultSet> GetAllDuplicateAssets(GetAssetsDto &dto); 101 std::shared_ptr<DataShare::DataShareResultSet> GetDuplicateAssetsToDelete(GetAssetsDto &dto); 102 int32_t GetIndexConstructProgress(std::string &indexProgress); 103 int32_t CreateAsset(CreateAssetDto &dto); 104 int32_t CreateAssetForApp(CreateAssetDto &dto); 105 int32_t CreateAssetForAppWithAlbum(CreateAssetDto &dto); 106 int32_t SetAssetTitle(int32_t fileId, const std::string &title); 107 int32_t SetAssetPending(int32_t fileId, int32_t pending); 108 int32_t SetAssetsFavorite(const std::vector<int32_t> &fileIds, int32_t favorite); 109 int32_t SetAssetsHiddenStatus(const std::vector<int32_t> &fileIds, int32_t hiddenStatus); 110 int32_t SetAssetsRecentShowStatus(const std::vector<int32_t> &fileIds, int32_t recentShowStatus); 111 int32_t SetAssetsUserComment(const std::vector<int32_t> &fileIds, const std::string &userComment); 112 int32_t AddAssetVisitCount(int32_t fileId, int32_t visitType); 113 int32_t GetAssetAnalysisData(GetAssetAnalysisDataDto &dto); 114 int32_t CloneAsset(const CloneAssetDto& cloneAssetDto); 115 int32_t RevertToOriginal(const RevertToOriginalDto& revertToOriginalDto); 116 int32_t SubmitCloudEnhancementTasks(const CloudEnhancementDto& cloudEnhancementDto); 117 int32_t PrioritizeCloudEnhancementTask(const CloudEnhancementDto& cloudEnhancementDto); 118 int32_t CancelCloudEnhancementTasks(const CloudEnhancementDto& cloudEnhancementDto); 119 int32_t CancelAllCloudEnhancementTasks(); 120 int32_t GrantPhotoUriPermission(const GrantUriPermissionDto& grantUriPermissionDto); 121 int32_t GrantPhotoUrisPermission(const GrantUrisPermissionDto& grantUrisPermissionDto); 122 int32_t GrantPhotoUriPermissionInner(const GrantUriPermissionInnerDto& grantUriPermissionInnerDto); 123 int32_t CancelPhotoUriPermission(const CancelUriPermissionDto& cancelUriPermissionDto); 124 int32_t StartThumbnailCreationTask(const StartThumbnailCreationTaskDto& startThumbnailCreationTaskDto); 125 int32_t StopThumbnailCreationTask(const StopThumbnailCreationTaskDto& stopThumbnailCreationTaskDto); 126 int32_t RequestContent(const std::string& mediaId, int32_t& position); 127 int32_t QueryCloudEnhancementTaskState(const std::string& photoUri, QueryCloudEnhancementTaskStateDto& dto); 128 std::shared_ptr<NativeRdb::ResultSet> GetCloudEnhancementPair(const std::string& photoUri); 129 int32_t SyncCloudEnhancementTaskStatus(); 130 int32_t QueryPhotoStatus(const QueryPhotoReqBody &req, QueryPhotoRespBody &resp); 131 int32_t LogMovingPhoto(const AdaptedReqBody &req); 132 int32_t ConvertFormat(const ConvertFormatDto &convertFormatDto); 133 int32_t GetResultSetFromDb(const GetResultSetFromDbDto &getResultSetFromDbDto, GetResultSetFromDbRespBody &resp); 134 int32_t GetResultSetFromPhotosExtend(const std::string &value, std::vector<std::string> &columns, 135 GetResultSetFromPhotosExtendRespBody &resp); 136 int32_t GetMovingPhotoDateModified(const std::string &fileId, GetMovingPhotoDateModifiedRespBody &resp); 137 int32_t CancelPhotoUriPermissionInner(const CancelUriPermissionInnerDto& cancelUriPermissionInnerDto); 138 int32_t CheckPhotoUriPermissionInner(CheckUriPermissionInnerDto& checkUriPermissionInnerDto); 139 int32_t CloseAsset(const CloseAssetReqBody &req); 140 int32_t GetUrisByOldUrisInner(GetUrisByOldUrisInnerDto& getUrisByOldUrisInnerDto); 141 int32_t Restore(const RestoreDto &dto); 142 int32_t StopRestore(const std::string &keyPath); 143 int32_t StartDownloadCloudMedia(CloudMediaDownloadType downloadType); 144 int32_t PauseDownloadCloudMedia(); 145 int32_t CancelDownloadCloudMedia(); 146 int32_t RetainCloudMediaAsset(CloudMediaRetainType retainType = CloudMediaRetainType::RETAIN_FORCE); 147 int32_t IsEdited(const IsEditedDto &dto, IsEditedRespBody &respBody); 148 int32_t RequestEditData(const RequestEditDataDto &dto, RequestEditDataRespBody &respBody); 149 int32_t GetEditData(const GetEditDataDto &dto, GetEditDataRespBody &respBody); 150 int32_t GetCloudMediaAssetStatus(std::string &status); 151 int32_t StartAssetAnalysis(const StartAssetAnalysisDto &dto, StartAssetAnalysisRespBody &respBody); 152 int32_t GetCloudEnhancementPair(const GetCloudEnhancementPairDto &dto, GetCloudEnhancementPairRespBody &respBody); 153 int32_t GetFilePathFromUri(const std::string &virtualId, GetFilePathFromUriRespBody &respBody); 154 int32_t GetUriFromFilePath(const std::string &tempPath, GetUriFromFilePathRespBody &respBody); 155 156 private: 157 MediaAssetsRdbOperations rdbOperation_; 158 }; 159 } // namespace OHOS::Media 160 #endif // OHOS_MEDIA_ASSETS_SERVICE_H