• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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