• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2024 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 #include "medialibrary_operation.h"
17 
18 #include "abs_rdb_predicates.h"
19 #include "datashare_predicates.h"
20 #include "dir_asset.h"
21 #include "form_map.h"
22 #include "location_column.h"
23 #include "media_app_uri_permission_column.h"
24 #include "media_column.h"
25 #include "media_old_photos_column.h"
26 #include "media_facard_photos_column.h"
27 #include "medialibrary_db_const.h"
28 #include "photo_album_column.h"
29 #include "photo_map_column.h"
30 #include "ptp_medialibrary_manager_uri.h"
31 #include "delete_permanently_operations_uri.h"
32 #include "search_column.h"
33 #include "story_album_column.h"
34 #include "story_cover_info_column.h"
35 #include "story_play_info_column.h"
36 #include "user_photography_info_column.h"
37 #include "uri.h"
38 #include "values_bucket.h"
39 #include "vision_column.h"
40 
41 namespace OHOS {
42 namespace Media {
43 namespace MediaOperation {
GetOprnObjMap()44 const std::map<std::string, OperationObject>& GetOprnObjMap()
45 {
46     static std::map<std::string, OperationObject> oprnObjMap = {
47         // use in Insert...
48         { MEDIA_FILEOPRN, OperationObject::FILESYSTEM_ASSET },
49         { MEDIA_PHOTOOPRN, OperationObject::FILESYSTEM_PHOTO },
50         { MEDIA_AUDIOOPRN, OperationObject::FILESYSTEM_AUDIO },
51         { MEDIA_APP_URI_PERMISSIONOPRN, OperationObject::MEDIA_APP_URI_PERMISSION },
52         { MEDIA_DIROPRN, OperationObject::FILESYSTEM_DIR },
53         { MEDIA_ALBUMOPRN, OperationObject::FILESYSTEM_ALBUM },
54         { MEDIA_SMARTALBUMOPRN, OperationObject::SMART_ALBUM },
55         { MEDIA_SMARTALBUMMAPOPRN, OperationObject::SMART_ALBUM_MAP },
56         { BUNDLE_PERMISSION_INSERT, OperationObject::BUNDLE_PERMISSION },
57         { PHOTO_ALBUM_OPRN, OperationObject::PHOTO_ALBUM },
58         { PHOTO_MAP_OPRN, OperationObject::PHOTO_MAP },
59         { UFM_PHOTO, OperationObject::UFM_PHOTO },
60         { UFM_AUDIO, OperationObject::UFM_AUDIO },
61         { UFM_ALBUM, OperationObject::UFM_ALBUM },
62         { UFM_MAP, OperationObject::UFM_MAP },
63         { PAH_PHOTO, OperationObject::PAH_PHOTO },
64         { PAH_ALBUM, OperationObject::PAH_ALBUM },
65         { PAH_MAP, OperationObject::PAH_MAP },
66         { PAH_ANA_ALBUM, OperationObject::ANALYSIS_PHOTO_ALBUM },
67         { PAH_HIGHLIGHT_ADD_ASSETS, OperationObject::ADD_ASSET_HIGHLIGHT_ALBUM },
68         { PAH_ANA_MAP, OperationObject::ANALYSIS_PHOTO_MAP },
69         { TOOL_PHOTO, OperationObject::TOOL_PHOTO },
70         { TOOL_AUDIO, OperationObject::TOOL_AUDIO },
71         { TOOL_ALBUM, OperationObject::TOOL_ALBUM },
72         { PAH_FORM_MAP, OperationObject::PAH_FORM_MAP },
73         { GRANT_URI_PERMISSION, OperationObject::APP_URI_PERMISSION_INNER },
74         { PAH_VIDEO, OperationObject::PAH_VIDEO },
75         { MTH_AND_YEAR_ASTC, OperationObject::MTH_AND_YEAR_ASTC },
76 
77         // use in Query...
78         { MEDIATYPE_DIRECTORY_OBJ, OperationObject::FILESYSTEM_DIR },
79         { MEDIA_DATA_DB_THUMBNAIL, OperationObject::THUMBNAIL },
80         { SMARTALBUMASSETS_VIEW_NAME, OperationObject::SMART_ALBUM_ASSETS },
81         { ASSETMAP_VIEW_NAME, OperationObject::ASSETMAP },
82         { MEDIA_DEVICE_QUERYALLDEVICE, OperationObject::ALL_DEVICE },
83         { MEDIA_DEVICE_QUERYACTIVEDEVICE, OperationObject::ACTIVE_DEVICE },
84         { MEDIA_ALBUMOPRN_QUERYALBUM, OperationObject::FILESYSTEM_ALBUM },
85         { SMARTALBUM_TABLE, OperationObject::SMART_ALBUM },
86         { SMARTALBUM_MAP_TABLE, OperationObject::SMART_ALBUM_MAP },
87         { MEDIA_QUERYOPRN_QUERYVOLUME, OperationObject::MEDIA_VOLUME },
88         { MEDIA_QUERYOPRN_QUERYEDITDATA, OperationObject::EDIT_DATA_EXISTS },
89         { PAH_MULTISTAGES_CAPTURE, OperationObject::PAH_MULTISTAGES_CAPTURE },
90         { MEDIA_MOVING_PHOTO_OPRN_KEYWORD, OperationObject::PAH_MOVING_PHOTO },
91         { PAH_BATCH_THUMBNAIL_OPERATE, OperationObject::PAH_BATCH_THUMBNAIL_OPERATE },
92         { CHECK_URI_PERMISSION, OperationObject::APP_URI_PERMISSION_INNER },
93         { PAH_CLOUD_ENHANCEMENT_OPERATE, OperationObject::PAH_CLOUD_ENHANCEMENT_OPERATE },
94         { TAB_OLD_PHOTO, OperationObject::TAB_OLD_PHOTO },
95         { TAB_FACARD_PHOTO, OperationObject::TAB_FACARD_PHOTO },
96         { CLOUD_MEDIA_ASSET_OPERATE, OperationObject::CLOUD_MEDIA_ASSET_OPERATE},
97 
98         // use in Vision
99         { PAH_ANA_OCR, OperationObject::VISION_OCR },
100         { PAH_ANA_LABEL, OperationObject::VISION_LABEL },
101         { PAH_ANA_VIDEO_LABEL, OperationObject::VISION_VIDEO_LABEL },
102         { PAH_ANA_ATTS, OperationObject::VISION_AESTHETICS },
103         { PAH_ANA_VIDEO_ATTS, OperationObject::VISION_VIDEO_AESTHETICS },
104         { PAH_ANA_TOTAL, OperationObject::VISION_TOTAL },
105         { VISION_IMAGE_FACE_TABLE, OperationObject::VISION_IMAGE_FACE },
106         { VISION_VIDEO_FACE_TABLE, OperationObject::VISION_VIDEO_FACE },
107         { VISION_FACE_TAG_TABLE, OperationObject::VISION_FACE_TAG },
108         { VISION_SALIENCY_TABLE, OperationObject::VISION_SALIENCY },
109         { VISION_ANALYSIS_ALBUM_TOTAL_TABLE, OperationObject::VISION_ANALYSIS_ALBUM_TOTAL },
110         { PAH_ANA_FACE, OperationObject::VISION_IMAGE_FACE },
111         { PAH_ANA_OBJECT, OperationObject::VISION_OBJECT },
112         { PAH_ANA_RECOMMENDATION, OperationObject::VISION_RECOMMENDATION },
113         { PAH_ANA_SEGMENTATION, OperationObject::VISION_SEGMENTATION },
114         { PAH_ANA_COMPOSITION, OperationObject::VISION_COMPOSITION },
115         { PAH_ANA_SALIENCY, OperationObject::VISION_SALIENCY },
116         { PAH_ANA_FACE_TAG, OperationObject::VISION_FACE_TAG },
117         { PAH_ANA_HEAD, OperationObject::VISION_HEAD },
118         { PAH_ANA_POSE, OperationObject::VISION_POSE },
119         { PAH_ANA_FOREGROUND, OperationObject::ANALYSIS_FOREGROUND},
120 
121         // use in Location Analyse
122         { GEO_DICTIONARY_TABLE, OperationObject::GEO_DICTIONARY },
123         { GEO_KNOWLEDGE_TABLE, OperationObject::GEO_KNOWLEDGE },
124         { PAH_ANA_ADDRESS, OperationObject::ANALYSIS_ADDRESS },
125         { PAH_ANA_ADDRESS_ASSETS, OperationObject::ANALYSIS_ADDRESS_ASSETS },
126         { PAH_ANA_ADDRESS_ASSETS_ACTIVE, OperationObject::ANALYSIS_ADDRESS_ASSETS_ACTIVE },
127         { PAH_GEO_PHOTOS, OperationObject::GEO_PHOTO },
128 
129         // use in convert
130         { PAH_CONVERT_PHOTOS, OperationObject::CONVERT_PHOTO },
131 
132         // use in search
133         { SEARCH_TOTAL_TABLE, OperationObject::SEARCH_TOTAL },
134         { SEARCH_INDEX_CONSTRUCTION_STATUS, OperationObject::INDEX_CONSTRUCTION_STATUS },
135 
136         // use in story
137         { HIGHLIGHT_ALBUM_TABLE, OperationObject::STORY_ALBUM },
138         { HIGHLIGHT_COVER_INFO_TABLE, OperationObject::STORY_COVER },
139         { HIGHLIGHT_PLAY_INFO_TABLE, OperationObject::STORY_PLAY },
140         { USER_PHOTOGRAPHY_INFO_TABLE, OperationObject::USER_PHOTOGRAPHY },
141         { PAH_HIGHLIGHT_COVER, OperationObject::STORY_COVER },
142         { PAH_HIGHLIGHT_PLAY, OperationObject::STORY_PLAY },
143         { PAH_ANA_ASSET_SD, OperationObject::ANALYSIS_ASSET_SD_MAP },
144         { PAH_ANA_ALBUM_ASSET, OperationObject::ANALYSIS_ALBUM_ASSET_MAP },
145         { PAH_HIGHLIGHT_DELETE, OperationObject::HIGHLIGHT_DELETE },
146 
147         // others
148         { MISC_OPERATION, OperationObject::MISCELLANEOUS },
149         { PTP_OPERATION, OperationObject::PTP_OPERATION },
150     };
151     return oprnObjMap;
152 }
153 
GetTableNameMap()154 const std::map<OperationObject, std::map<OperationType, std::string>>& GetTableNameMap()
155 {
156     static std::map<OperationObject, std::map<OperationType, std::string>> tableNameMap = {
157         { OperationObject::SMART_ALBUM, { { OperationType::UNKNOWN_TYPE, SMARTALBUM_TABLE } } },
158         { OperationObject::SMART_ALBUM_MAP, { { OperationType::UNKNOWN_TYPE, SMARTALBUM_MAP_TABLE } } },
159         { OperationObject::SMART_ALBUM_ASSETS, { { OperationType::UNKNOWN_TYPE, SMARTALBUMASSETS_VIEW_NAME } } },
160         { OperationObject::ASSETMAP, { { OperationType::UNKNOWN_TYPE, ASSETMAP_VIEW_NAME } } },
161         { OperationObject::FILESYSTEM_DIR, { { OperationType::QUERY, MEDIATYPE_DIRECTORY_OBJ } } },
162 #ifdef MEDIALIBRARY_COMPATIBILITY
163         { OperationObject::FILESYSTEM_ALBUM, { { OperationType::QUERY, PhotoAlbumColumns::TABLE } } },
164 #else
165         { OperationObject::FILESYSTEM_ALBUM, { { OperationType::QUERY, ALBUM_VIEW_NAME } } },
166 #endif
167         { OperationObject::ALL_DEVICE, { { OperationType::UNKNOWN_TYPE, DEVICE_TABLE } } },
168         { OperationObject::ACTIVE_DEVICE, { { OperationType::UNKNOWN_TYPE, DEVICE_TABLE } } },
169         { OperationObject::BUNDLE_PERMISSION, { { OperationType::UNKNOWN_TYPE, BUNDLE_PERMISSION_TABLE } } },
170         { OperationObject::FILESYSTEM_PHOTO, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
171         { OperationObject::FILESYSTEM_AUDIO, { { OperationType::UNKNOWN_TYPE, AudioColumn::AUDIOS_TABLE } } },
172         { OperationObject::MEDIA_APP_URI_PERMISSION,
173         { { OperationType::UNKNOWN_TYPE, AppUriPermissionColumn::APP_URI_PERMISSION_TABLE } } },
174         { OperationObject::PHOTO_ALBUM, { { OperationType::UNKNOWN_TYPE, PhotoAlbumColumns::TABLE } } },
175         { OperationObject::PHOTO_MAP, { { OperationType::UNKNOWN_TYPE, PhotoMap::TABLE } } },
176         { OperationObject::UFM_PHOTO, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
177         { OperationObject::UFM_AUDIO, { { OperationType::UNKNOWN_TYPE, AudioColumn::AUDIOS_TABLE } } },
178         { OperationObject::UFM_ALBUM, { { OperationType::UNKNOWN_TYPE, PhotoAlbumColumns::TABLE } } },
179         { OperationObject::UFM_MAP, { { OperationType::UNKNOWN_TYPE, PhotoMap::TABLE } } },
180         { OperationObject::PAH_PHOTO, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
181         { OperationObject::PAH_ALBUM, { { OperationType::UNKNOWN_TYPE, PhotoAlbumColumns::TABLE } } },
182         { OperationObject::PAH_MAP, { { OperationType::UNKNOWN_TYPE, PhotoMap::TABLE } } },
183         { OperationObject::TOOL_PHOTO, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
184         { OperationObject::TOOL_AUDIO, { { OperationType::UNKNOWN_TYPE, AudioColumn::AUDIOS_TABLE } } },
185         { OperationObject::TOOL_ALBUM, { { OperationType::UNKNOWN_TYPE, PhotoAlbumColumns::TABLE } } },
186         { OperationObject::VISION_OCR, { { OperationType::UNKNOWN_TYPE, VISION_OCR_TABLE } } },
187         { OperationObject::VISION_LABEL, { { OperationType::UNKNOWN_TYPE, VISION_LABEL_TABLE } } },
188         { OperationObject::VISION_VIDEO_LABEL, { { OperationType::UNKNOWN_TYPE, VISION_VIDEO_LABEL_TABLE } } },
189         { OperationObject::VISION_AESTHETICS, { { OperationType::UNKNOWN_TYPE, VISION_AESTHETICS_TABLE } } },
190         { OperationObject::VISION_VIDEO_AESTHETICS,
191         { { OperationType::UNKNOWN_TYPE, VISION_VIDEO_AESTHETICS_TABLE } } },
192         { OperationObject::VISION_SALIENCY, { { OperationType::UNKNOWN_TYPE, VISION_SALIENCY_TABLE } } },
193         { OperationObject::VISION_OBJECT, { { OperationType::UNKNOWN_TYPE, VISION_OBJECT_TABLE } } },
194         { OperationObject::VISION_RECOMMENDATION, { { OperationType::UNKNOWN_TYPE, VISION_RECOMMENDATION_TABLE } } },
195         { OperationObject::VISION_SEGMENTATION, { { OperationType::UNKNOWN_TYPE, VISION_SEGMENTATION_TABLE } } },
196         { OperationObject::VISION_COMPOSITION, { { OperationType::UNKNOWN_TYPE, VISION_COMPOSITION_TABLE } } },
197         { OperationObject::VISION_HEAD, { { OperationType::UNKNOWN_TYPE, VISION_HEAD_TABLE } } },
198         { OperationObject::VISION_POSE, { { OperationType::UNKNOWN_TYPE, VISION_POSE_TABLE } } },
199         { OperationObject::VISION_TOTAL, { { OperationType::UNKNOWN_TYPE, VISION_TOTAL_TABLE } } },
200         { OperationObject::VISION_IMAGE_FACE, { { OperationType::UNKNOWN_TYPE, VISION_IMAGE_FACE_TABLE } } },
201         { OperationObject::VISION_VIDEO_FACE, { { OperationType::UNKNOWN_TYPE, VISION_VIDEO_FACE_TABLE } } },
202         { OperationObject::VISION_FACE_TAG, { { OperationType::UNKNOWN_TYPE, VISION_FACE_TAG_TABLE } } },
203         { OperationObject::GEO_DICTIONARY, { { OperationType::UNKNOWN_TYPE, GEO_DICTIONARY_TABLE } } },
204         { OperationObject::GEO_KNOWLEDGE, { { OperationType::UNKNOWN_TYPE, GEO_KNOWLEDGE_TABLE } } },
205         { OperationObject::GEO_PHOTO, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
206         { OperationObject::CONVERT_PHOTO, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
207         { OperationObject::ANALYSIS_PHOTO_ALBUM, { { OperationType::UNKNOWN_TYPE, ANALYSIS_ALBUM_TABLE } } },
208         { OperationObject::ANALYSIS_PHOTO_MAP, { { OperationType::UNKNOWN_TYPE, ANALYSIS_PHOTO_MAP_TABLE } } },
209         { OperationObject::ADD_ASSET_HIGHLIGHT_ALBUM, { { OperationType::UNKNOWN_TYPE, ANALYSIS_PHOTO_MAP_TABLE } } },
210         { OperationObject::PAH_FORM_MAP, { { OperationType::UNKNOWN_TYPE, FormMap::FORM_MAP_TABLE } } },
211         { OperationObject::ANALYSIS_ADDRESS, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
212         { OperationObject::ANALYSIS_ADDRESS_ASSETS, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
213         { OperationObject::ANALYSIS_ADDRESS_ASSETS_ACTIVE,
214             { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
215         { OperationObject::VISION_ANALYSIS_ALBUM_TOTAL,
216             { { OperationType::UNKNOWN_TYPE, VISION_ANALYSIS_ALBUM_TOTAL_TABLE } } },
217         { OperationObject::TAB_OLD_PHOTO, { { OperationType::UNKNOWN_TYPE, TabOldPhotosColumn::OLD_PHOTOS_TABLE } }},
218         { OperationObject::TAB_FACARD_PHOTO,
219         { { OperationType::UNKNOWN_TYPE, TabFaCardPhotosColumn::FACARD_PHOTOS_TABLE } }},
220 
221         // search
222         { OperationObject::SEARCH_TOTAL, { { OperationType::UNKNOWN_TYPE, SEARCH_TOTAL_TABLE } } },
223         { OperationObject::INDEX_CONSTRUCTION_STATUS,
224             { { OperationType::UNKNOWN_TYPE, SEARCH_INDEX_CONSTRUCTION_STATUS } } },
225 
226         // story
227         { OperationObject::STORY_ALBUM, { { OperationType::UNKNOWN_TYPE, HIGHLIGHT_ALBUM_TABLE } } },
228         { OperationObject::STORY_COVER, { { OperationType::UNKNOWN_TYPE, HIGHLIGHT_COVER_INFO_TABLE } } },
229         { OperationObject::STORY_PLAY, { { OperationType::UNKNOWN_TYPE, HIGHLIGHT_PLAY_INFO_TABLE } } },
230         { OperationObject::ANALYSIS_ASSET_SD_MAP, { { OperationType::UNKNOWN_TYPE, ANALYSIS_ASSET_SD_MAP_TABLE } } },
231         { OperationObject::ANALYSIS_ALBUM_ASSET_MAP,
232             { { OperationType::UNKNOWN_TYPE, ANALYSIS_ALBUM_ASSET_MAP_TABLE } } },
233         { OperationObject::USER_PHOTOGRAPHY, { { OperationType::UNKNOWN_TYPE, USER_PHOTOGRAPHY_INFO_TABLE } } },
234         { OperationObject::APP_URI_PERMISSION_INNER,
235             { { OperationType::UNKNOWN_TYPE, AppUriPermissionColumn::APP_URI_PERMISSION_TABLE } } },
236         { OperationObject::CLOUD_MEDIA_ASSET_OPERATE, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } } },
237         { OperationObject::PTP_OPERATION, { { OperationType::UNKNOWN_TYPE, PhotoColumn::PHOTOS_TABLE } }},
238         { OperationObject::HIGHLIGHT_DELETE, { { OperationType::UNKNOWN_TYPE, HIGHLIGHT_ALBUM_TABLE } }},
239     };
240     return tableNameMap;
241 }
242 
GetOprnTypeMap()243 const std::map<std::string, OperationType>& GetOprnTypeMap()
244 {
245     static std::map<std::string, OperationType> oprnTypeMap = {
246         { MEDIA_FILEOPRN_CLOSEASSET, OperationType::CLOSE },
247         { MEDIA_FILEOPRN_CREATEASSET, OperationType::CREATE },
248         { MEDIA_ALBUMOPRN_CREATEALBUM, OperationType::CREATE },
249         { MEDIA_FILEOPRN_DELETEASSET, OperationType::DELETE },
250         { MEDIA_ALBUMOPRN_DELETEALBUM, OperationType::DELETE },
251         { MEDIA_FILEOPRN_MODIFYASSET, OperationType::UPDATE },
252         { MEDIA_ALBUMOPRN_MODIFYALBUM, OperationType::UPDATE },
253         { MEDIA_ALBUMOPRN_QUERYALBUM, OperationType::QUERY },
254         { MEDIA_FILEOPRN_GETALBUMCAPACITY, OperationType::QUERY },
255         { MEDIA_QUERYOPRN_QUERYVOLUME, OperationType::QUERY },
256         { MEDIA_QUERYOPRN_QUERYEDITDATA, OperationType::EDIT_DATA_EXISTS },
257         { MEDIA_BOARDCASTOPRN, OperationType::SCAN },
258         { OPRN_SCAN, OperationType::SCAN },
259         { OPRN_DELETE_BY_TOOL, OperationType::DELETE_TOOL },
260         { MEDIA_FILEOPRN_COPYASSET, OperationType::COPY },
261         { MEDIA_DIROPRN_DELETEDIR, OperationType::DELETE },
262         { MEDIA_DIROPRN_FMS_CREATEDIR, OperationType::CREATE },
263         { MEDIA_DIROPRN_FMS_DELETEDIR, OperationType::DELETE },
264         { MEDIA_DIROPRN_FMS_TRASHDIR, OperationType::TRASH },
265         { MEDIA_SMARTALBUMOPRN_CREATEALBUM, OperationType::CREATE },
266         { MEDIA_SMARTALBUMOPRN_DELETEALBUM, OperationType::DELETE },
267         { MEDIA_SMARTALBUMMAPOPRN_ADDSMARTALBUM, OperationType::CREATE },
268         { MEDIA_SMARTALBUMMAPOPRN_REMOVESMARTALBUM, OperationType::DELETE },
269         { MEDIA_SMARTALBUMMAPOPRN_AGEINGSMARTALBUM, OperationType::AGING },
270         { MEDIA_SMARTALBUMOPRN_MODIFYALBUM, OperationType::UPDATE },
271         { BUNDLE_PERMISSION_INSERT, OperationType::INSERT_PERMISSION },
272         { OPRN_CREATE, OperationType::CREATE },
273         { OPRN_SYS_CREATE, OperationType::CREATE },
274         { OPRN_CREATE_COMPONENT, OperationType::CREATE },
275         { OPRN_DELETE, OperationType::DELETE },
276         { OPRN_QUERY, OperationType::QUERY },
277         { OPRN_UPDATE, OperationType::UPDATE },
278         { OPRN_ALBUM_SET_NAME, OperationType::ALBUM_SET_NAME },
279         { OPRN_ALBUM_ADD_PHOTOS, OperationType::ALBUM_ADD_PHOTOS },
280         { OPRN_ALBUM_REMOVE_PHOTOS, OperationType::ALBUM_REMOVE_PHOTOS },
281         { OPRN_RECOVER_PHOTOS, OperationType::ALBUM_RECOVER_ASSETS },
282         { OPRN_DELETE_PHOTOS, OperationType::ALBUM_DELETE_ASSETS },
283         { OPRN_COMPAT_DELETE_PHOTOS, OperationType::COMPAT_ALBUM_DELETE_ASSETS },
284         { OPRN_CLOSE, OperationType::CLOSE },
285         { OPRN_TRASH, OperationType::TRASH_PHOTO },
286         { OPRN_SYS_TRASH, OperationType::TRASH_PHOTO },
287         { OPRN_PENDING, OperationType::UPDATE_PENDING },
288         { OPRN_SET_USER_COMMENT, OperationType::SET_USER_COMMENT },
289         { OPRN_INDEX, OperationType::INDEX },
290         { OPRN_ANALYSIS_INDEX, OperationType::ANALYSIS_INDEX },
291         { OPRN_COMMIT_EDIT, OperationType::COMMIT_EDIT },
292         { OPRN_REVERT_EDIT, OperationType::REVERT_EDIT },
293         { OPRN_HIDE, OperationType::HIDE },
294         { OPRN_QUERY_HIDDEN, OperationType::QUERY_HIDDEN },
295         { OPRN_ORDER_ALBUM, OperationType::ALBUM_ORDER},
296         { OPRN_STORE_FORM_ID, OperationType::OPRN_STORE_FORM_ID },
297         { OPRN_REMOVE_FORM_ID, OperationType::OPRN_REMOVE_FORM_ID },
298         { OPRN_PORTRAIT_DISPLAY_LEVEL, OperationType::PORTRAIT_DISPLAY_LEVEL },
299         { OPRN_PORTRAIT_IS_ME, OperationType::PORTRAIT_IS_ME },
300         { OPRN_PORTRAIT_ALBUM_NAME, OperationType::PORTRAIT_ALBUM_NAME },
301         { OPRN_PORTRAIT_MERGE_ALBUM, OperationType::PORTRAIT_MERGE_ALBUM },
302         { OPRN_HIGHLIGHT_ALBUM_NAME, OperationType::HIGHLIGHT_ALBUM_NAME },
303         { OPRN_HIGHLIGHT_COVER_URI, OperationType::HIGHLIGHT_COVER_URI },
304         { OPRN_DISMISS_ASSET, OperationType::DISMISS_ASSET },
305         { OPRN_PORTRAIT_COVER_URI, OperationType::PORTRAIT_COVER_URI },
306         { OPRN_SUBMIT_CACHE, OperationType::SUBMIT_CACHE },
307         { OPRN_CUSTOM_RESTORE, OperationType::CUSTOM_RESTORE },
308         { OPRN_CUSTOM_RESTORE_CANCEL, OperationType::CUSTOM_RESTORE_CANCEL },
309         { OPRN_BATCH_UPDATE_FAV, OperationType::BATCH_UPDATE_FAV },
310         { OPRN_BATCH_UPDATE_USER_COMMENT, OperationType::BATCH_UPDATE_USER_COMMENT },
311         { OPRN_BATCH_UPDATE_OWNER_ALBUM_ID, OperationType::BATCH_UPDATE_OWNER_ALBUM_ID },
312         { OPRN_BATCH_UPDATE_RECENT_SHOW, OperationType::BATCH_UPDATE_RECENT_SHOW },
313         { OPRN_SET_PHOTO_QUALITY, OperationType::SET_PHOTO_QUALITY },
314         { OPRN_ADD_IMAGE, OperationType::ADD_IMAGE },
315         { OPRN_PROCESS_IMAGE, OperationType::PROCESS_IMAGE },
316         { OPRN_SET_LOCATION, OperationType::SET_LOCATION },
317         { OPRN_CANCEL_PROCESS_IMAGE, OperationType::CANCEL_PROCESS_IMAGE },
318         { OPRN_LOG_MOVING_PHOTO, OperationType::LOG_MOVING_PHOTO },
319         { OPRN_GROUP_DISMISS, OperationType::DISMISS },
320         { OPRN_GROUP_ALBUM_NAME, OperationType::GROUP_ALBUM_NAME },
321         { OPRN_GROUP_COVER_URI, OperationType::GROUP_COVER_URI },
322         { OPRN_ADD_FILTERS, OperationType::ADD_FILTERS },
323         { OPRN_DISCARD_CAMERA_PHOTO, OperationType::DISCARD_CAMERA_PHOTO },
324         { OPRN_SAVE_CAMERA_PHOTO, OperationType::SAVE_CAMERA_PHOTO },
325         { OPRN_REMOVE_MSC_TASK, OperationType::REMOVE_MSC_TASK },
326         { OPRN_START_GENERATE_THUMBNAILS, OperationType::START_GENERATE_THUMBNAILS },
327         { OPRN_STOP_GENERATE_THUMBNAILS, OperationType::STOP_GENERATE_THUMBNAILS },
328         { OPRN_GENERATE_THUMBNAILS_RESTORE, OperationType::GENERATE_THUMBNAILS_RESTORE },
329         { OPRN_TOOL_QUERY_BY_DISPLAY_NAME, OperationType::TOOL_QUERY_BY_DISPLAY_NAME },
330         { OPRN_LOCAL_THUMBNAIL_GENERATION, OperationType::LOCAL_THUMBNAIL_GENERATION },
331         { OPRN_ADD_LOWQUALITY_IMAGE, OperationType::ADD_LOWQUALITY_IMAGE },
332         { OPRN_FINISH_REQUEST_PICTURE, OperationType::FINISH_REQUEST_PICTURE },
333         { OPRN_SCAN_WITHOUT_ALBUM_UPDATE, OperationType::SCAN_WITHOUT_ALBUM_UPDATE },
334         { OPRN_ENHANCEMENT_ADD, OperationType::ENHANCEMENT_ADD},
335         { OPRN_ENHANCEMENT_PRIORITIZE, OperationType::ENHANCEMENT_PRIORITIZE},
336         { OPRN_ENHANCEMENT_CANCEL, OperationType::ENHANCEMENT_CANCEL},
337         { OPRN_ENHANCEMENT_CANCEL_ALL, OperationType::ENHANCEMENT_CANCEL_ALL},
338         { OPRN_ENHANCEMENT_SYNC, OperationType::ENHANCEMENT_SYNC},
339         { OPRN_ENHANCEMENT_QUERY, OperationType::ENHANCEMENT_QUERY},
340         { OPRN_ENHANCEMENT_GET_PAIR, OperationType::ENHANCEMENT_GET_PAIR},
341         { OPRN_SAVE_PICTURE, OperationType::SAVE_PICTURE},
342         { OPRN_CLONE_ASSET, OperationType::CLONE_ASSET},
343         { "log_medialibrary_api", OperationType::LOG_MEDIALIBRARY_API},
344         { OPRN_SET_VIDEO_ENHANCEMENT_ATTR, OperationType::SET_VIDEO_ENHANCEMENT_ATTR },
345         { OPRN_FIND_ALL_DUPLICATE_ASSETS, OperationType::FIND_DUPLICATE_ASSETS },
346         { OPRN_FIND_ALL_DUPLICATE_ASSETS_TO_DELETE, OperationType::FIND_DUPLICATE_ASSETS_TO_DELETE },
347         { OPRN_DEGENERATE_MOVING_PHOTO, OperationType::DEGENERATE_MOVING_PHOTO },
348         { CLOUD_MEDIA_ASSET_TASK_START_FORCE, OperationType::CLOUD_MEDIA_ASSET_TASK_START_FORCE },
349         { CLOUD_MEDIA_ASSET_TASK_START_GENTLE, OperationType::CLOUD_MEDIA_ASSET_TASK_START_GENTLE },
350         { CLOUD_MEDIA_ASSET_TASK_PAUSE, OperationType::CLOUD_MEDIA_ASSET_TASK_PAUSE },
351         { CLOUD_MEDIA_ASSET_TASK_CANCEL, OperationType::CLOUD_MEDIA_ASSET_TASK_CANCEL },
352         { CLOUD_MEDIA_ASSET_TASK_RETAIN_FORCE, OperationType::CLOUD_MEDIA_ASSET_TASK_RETAIN_FORCE },
353         { CLOUD_MEDIA_ASSET_TASK_STATUS_QUERY, OperationType::CLOUD_MEDIA_ASSET_TASK_STATUS_QUERY },
354         { OPRN_UPDATE_OWNER_ALBUM_ID, OperationType::SET_OWNER_ALBUM_ID },
355         { UPDATE_INDEX, OperationType::UPDATE_SEARCH_INDEX},
356         { OPRN_QUERY_ORDER, OperationType::QUERY_ORDER },
357         { OPRN_UPDATE_ORDER, OperationType::UPDATE_ORDER },
358         { OPRN_DELETE_LOCAL_ASSETS_PERMANENTLY, OperationType::DELETE_LOCAL_ASSETS_PERMANENTLY },
359         { MTH_AND_YEAR_ASTC, OperationType::MTH_AND_YEAR_ASTC },
360         { OPRN_HIGHLIGHT_SUBTITLE, OperationType::HIGHLIGHT_SUBTITLE},
361         { OPRN_UPDATE_SUPPORTED_WATERMARK_TYPE, OperationType::UPDATE_SUPPORTED_WATERMARK_TYPE },
362     };
363     return oprnTypeMap;
364 }
365 
GetOprnMap()366 const std::map<std::string, OperationObject>& GetOprnMap()
367 {
368     static std::map<std::string, OperationObject> oprnMap = {
369         { PhotoColumn::PHOTO_URI_PREFIX, OperationObject::FILESYSTEM_PHOTO },
370         { AudioColumn::AUDIO_URI_PREFIX, OperationObject::FILESYSTEM_AUDIO }
371     };
372     return oprnMap;
373 }
374 } // namespace MediaOperation
375 
376 } // namespace Media
377 } // namespace OHOS