• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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_CLOUD_SYNC_SERVICE_GALLERY_FILE_CONST_H
17 #define OHOS_CLOUD_SYNC_SERVICE_GALLERY_FILE_CONST_H
18 
19 #include <string>
20 
21 #include "medialibrary_db_const.h"
22 #include "medialibrary_type_const.h"
23 #include "photo_album_column.h"
24 #include "photo_map_column.h"
25 
26 #include "data_convertor.h"
27 
28 namespace OHOS {
29 namespace FileManagement {
30 namespace CloudSync {
31 /* basic */
32 const std::string FILE_LOGIC_ALBUM_IDS = "albumIds";
33 const std::string FILE_ADD_LOGIC_ALBUM_IDS = "addAlbumIds";
34 const std::string FILE_RM_LOGIC_ALBUM_IDS = "removeAlbumIds";
35 const std::string FILE_FILE_NAME = "fileName";
36 const std::string FILE_HASH_ID = "hashId";
37 const std::string FILE_SIZE = "size";
38 const std::string FILE_SOURCE = "source";
39 const std::string FILE_FILETYPE = "fileType";
40 const std::string FILE_CREATED_TIME = "createdTime";
41 const std::string FILE_FAVORITE = "favorite";
42 const std::string FILE_DESCRIPTION = "description";
43 const std::string FILE_RECYCLE_TIME = "recycledTime";
44 const std::string FILE_RECYCLED = "recycled";
45 const std::string FILE_MIME_TYPE = "mimeType";
46 const std::string FILE_EDITED_TIME = "editedTime";
47 const std::string FILE_DATA_MODIFIED = "data_modified";
48 const std::string FILE_TIME_ZONE = "time_zone";
49 const std::string FILE_THUMB_SIZE = "thumb_size";
50 const std::string FILE_LCD_SIZE = "lcd_size";
51 
52 /* properties */
53 const std::string FILE_PROPERTIES = "properties";
54 const std::string FILE_SOURCE_FILE_NAME = "sourceFileName";
55 const std::string FILE_FIRST_UPDATE_TIME = "first_update_time";
56 const std::string FILE_FILE_CREATE_TIME = "fileCreateTime";
57 const std::string FILE_DETAIL_TIME = "detail_time";
58 const std::string FILE_SOURCE_PATH = "sourcePath";
59 const std::string FILE_RELATIVE_BUCKET_ID = "relative_bucket_id";
60 const std::string FILE_POSITION = "position";
61 const std::string FILE_ROTATION = "rotate";
62 const std::string FILE_DURATION = "duration";
63 const std::string FILE_HEIGHT = "height";
64 const std::string FILE_WIDTH = "width";
65 
66 /* attributes */
67 const std::string FILE_ATTRIBUTES = "attributes";
68 
69 /* local info */
70 const std::string FILE_LOCAL_ID = "local_id";
71 
72 /* properties - general */
73 const std::string FILE_GENERAL = "general";
74 
75 /* attachments */
76 const std::string FILE_ATTACHMENTS = "attachments";
77 const std::string FILE_CONTENT = "content";
78 const std::string FILE_THUMBNAIL = "thumbnail";
79 const std::string FILE_LCD = "lcdThumbnail";
80 
81 /* file type */
82 enum {
83     FILE_TYPE_IMAGE = 1,
84     FILE_TYPE_VIDEO = 4,
85 };
86 
87 enum MediaType {
88     MEDIA_TYPE_FILE,
89     MEDIA_TYPE_IMAGE,
90     MEDIA_TYPE_VIDEO,
91     MEDIA_TYPE_AUDIO,
92 };
93 
94 const int32_t POSITION_LOCAL = 1;
95 const int32_t POSITION_CLOUD = 2;
96 const int32_t POSITION_BOTH = 3;
97 
98 const int32_t NR_LOCAL_INFO = 2;
99 
100 const int32_t ORIENTATION_NORMAL = 1;
101 const int32_t ORIENTATION_ROTATE_90 = 6;
102 const int32_t ORIENTATION_ROTATE_180 = 3;
103 const int32_t ORIENTATION_ROTATE_270 = 8;
104 
105 const int32_t ROTATE_ANGLE_0 = 0;
106 const int32_t ROTATE_ANGLE_90 = 90;
107 const int32_t ROTATE_ANGLE_180 = 180;
108 const int32_t ROTATE_ANGLE_270 = 270;
109 
110 const int32_t FIRST_MATCH_PARAM = 1;
111 const int32_t SECOND_MATCH_PARAM = 2;
112 
113 const std::string ASSET_UNIQUE_NUMBER_TABLE = "UniqueNumber";
114 const std::string ASSET_MEDIA_TYPE = "media_type";
115 const std::string UNIQUE_NUMBER = "unique_number";
116 const std::string IMAGE_ASSET_TYPE = "image";
117 const std::string VIDEO_ASSET_TYPE = "video";
118 
119 // data calculate args
120 const int32_t ASSET_IN_BUCKET_NUM_MAX = 1000;
121 const int32_t ASSET_DIR_START_NUM = 16;
122 const int32_t ASSET_MAX_COMPLEMENT_ID = 999;
123 const std::string DEFAULT_IMAGE_NAME = "IMG_";
124 const std::string DEFAULT_VIDEO_NAME = "VID_";
125 const std::string ROOT_MEDIA_DIR = "/storage/cloud/files/";
126 
127 const std::vector<std::string> GALLERY_FILE_COLUMNS = {
128     Media::PhotoColumn::MEDIA_FILE_PATH,
129     Media::PhotoColumn::MEDIA_SIZE,
130     Media::PhotoColumn::MEDIA_DATE_MODIFIED,
131     Media::PhotoColumn::PHOTO_META_DATE_MODIFIED,
132     Media::PhotoColumn::MEDIA_DATE_ADDED,
133     Media::PhotoColumn::MEDIA_MIME_TYPE,
134     Media::PhotoColumn::MEDIA_NAME,
135     Media::PhotoColumn::PHOTO_ORIENTATION,
136     Media::PhotoColumn::MEDIA_TYPE,
137     Media::PhotoColumn::MEDIA_IS_FAV,
138     Media::PhotoColumn::PHOTO_HEIGHT,
139     Media::PhotoColumn::PHOTO_WIDTH,
140     Media::PhotoColumn::PHOTO_SUBTYPE,
141     // Media::PhotoColumn::MEDIA_OWNER_PACKAGE,
142     Media::PhotoColumn::MEDIA_DEVICE_NAME,
143     Media::PhotoColumn::MEDIA_DATE_TAKEN,
144     Media::PhotoColumn::MEDIA_DURATION,
145     Media::PhotoColumn::MEDIA_DATE_TRASHED,
146     // Media::PhotoColumn::MEDIA_DATE_DELETED
147     // Media::PhotoColumn::MEDIA_HIDDEN
148     Media::PhotoColumn::PHOTO_LATITUDE,
149     Media::PhotoColumn::PHOTO_LONGITUDE,
150     /* NR_LOCAL_INFO: keep local info in the end */
151     Media::MediaColumn::MEDIA_ID,
152     Media::PhotoColumn::PHOTO_CLOUD_ID
153 };
154 
155 const std::vector<DataType> GALLERY_FILE_COLUMN_TYPES = {
156     DataType::STRING,       /* data */
157     DataType::LONG,         /* size */
158     DataType::LONG,         /* date_modified */
159     DataType::LONG,         /* meta_date_modified */
160     DataType::LONG,         /* date_added */
161     DataType::STRING,       /* mime_type */
162     DataType::STRING,       /* display_name */
163     DataType::INT,          /* orientation */
164     DataType::INT,          /* media_type */
165     DataType::BOOL,         /* is_favorite */
166     DataType::INT,          /* height */
167     DataType::INT,          /* width */
168     DataType::INT,          /* subtype */
169     // DataType::STRING,       /* owner_package */
170     DataType::STRING,       /* device_name */
171     DataType::LONG,         /* date_taken */
172     DataType::INT,         /* duration */
173     DataType::LONG,         /* date_trashed */
174     // DataType::LONG         /* date_deleted */
175     // DataType::INT         /* hidden */
176     DataType::DOUBLE,       /* latitude */
177     DataType::DOUBLE,       /* longitude */
178     DataType::INT,        /* file_id */
179     DataType::STRING        /* cloud_id */
180 };
181 
182 const std::vector<std::string> MEDIA_CLOUD_SYNC_COLUMNS = {
183     Media::PhotoColumn::MEDIA_FILE_PATH,
184     Media::PhotoColumn::MEDIA_TITLE,
185     Media::PhotoColumn::MEDIA_SIZE,
186     Media::PhotoColumn::MEDIA_NAME,
187     Media::PhotoColumn::MEDIA_TYPE,
188     Media::PhotoColumn::MEDIA_MIME_TYPE,
189     Media::PhotoColumn::MEDIA_DEVICE_NAME,
190     Media::PhotoColumn::MEDIA_DATE_ADDED,
191     Media::PhotoColumn::MEDIA_DATE_MODIFIED,
192     Media::PhotoColumn::MEDIA_DATE_TAKEN,
193     Media::PhotoColumn::MEDIA_DURATION,
194     Media::PhotoColumn::MEDIA_IS_FAV,
195     Media::PhotoColumn::MEDIA_DATE_TRASHED,
196     Media::PhotoColumn::MEDIA_HIDDEN,
197     Media::PhotoColumn::MEDIA_RELATIVE_PATH,
198     Media::PhotoColumn::MEDIA_VIRTURL_PATH,
199     Media::PhotoColumn::PHOTO_META_DATE_MODIFIED,
200     Media::PhotoColumn::PHOTO_ORIENTATION,
201     Media::PhotoColumn::PHOTO_LATITUDE,
202     Media::PhotoColumn::PHOTO_LONGITUDE,
203     Media::PhotoColumn::PHOTO_HEIGHT,
204     Media::PhotoColumn::PHOTO_WIDTH,
205     Media::PhotoColumn::PHOTO_SUBTYPE,
206 
207     /* keep cloud_id at the last, so RecordToValueBucket can skip it*/
208     Media::MediaColumn::MEDIA_ID,
209     Media::PhotoColumn::PHOTO_CLOUD_ID
210 };
211 
212 const std::vector<std::string> CLOUD_SYNC_UNIQUE_COLUMNS = {
213     Media::PhotoColumn::MEDIA_FILE_PATH,
214     Media::PhotoColumn::MEDIA_TITLE,
215     Media::PhotoColumn::MEDIA_TYPE,
216     Media::PhotoColumn::MEDIA_DATE_ADDED,
217     Media::PhotoColumn::MEDIA_DATE_MODIFIED,
218     Media::PhotoColumn::MEDIA_DURATION,
219     Media::PhotoColumn::MEDIA_HIDDEN,
220     Media::PhotoColumn::MEDIA_RELATIVE_PATH,
221     Media::PhotoColumn::MEDIA_VIRTURL_PATH,
222     Media::PhotoColumn::PHOTO_META_DATE_MODIFIED,
223     Media::PhotoColumn::PHOTO_SUBTYPE,
224 
225     /* NR_LOCAL_INFO: keep local info in the end */
226     Media::MediaColumn::MEDIA_ID,
227     Media::PhotoColumn::PHOTO_CLOUD_ID
228 };
229 
230 const std::vector<DataType>  CLOUD_SYNC_UNIQUE_COLUMN_TYPES = {
231     DataType::STRING,       /* data */
232     DataType::STRING,       /* title */
233     DataType::INT,          /* media_type */
234     DataType::LONG,         /* date_added */
235     DataType::LONG,         /* date_modified */
236     DataType::INT,          /* duration */
237     DataType::INT,          /* hidden */
238     DataType::STRING,       /* relative_path */
239     DataType::STRING,       /* virtual_path */
240     DataType::LONG,         /* meta_date_modified */
241     DataType::INT,          /* subtype */
242     DataType::INT,          /* file_id */
243     DataType::STRING        /* cloud_id */
244 };
245 
246 const std::vector<std::string> CLOUD_SYNC_COMMONS_COLUMNS = {
247     Media::PhotoColumn::MEDIA_SIZE,
248     Media::PhotoColumn::MEDIA_NAME,
249     Media::PhotoColumn::MEDIA_TYPE,
250     Media::PhotoColumn::MEDIA_MIME_TYPE,
251     Media::PhotoColumn::MEDIA_DEVICE_NAME,
252     Media::PhotoColumn::MEDIA_DATE_MODIFIED,
253     Media::PhotoColumn::MEDIA_DATE_TAKEN,
254     Media::PhotoColumn::MEDIA_DURATION,
255     Media::PhotoColumn::MEDIA_IS_FAV,
256     Media::PhotoColumn::MEDIA_DATE_TRASHED,
257     Media::PhotoColumn::MEDIA_HIDDEN,
258     Media::PhotoColumn::MEDIA_RELATIVE_PATH,
259     Media::PhotoColumn::MEDIA_VIRTURL_PATH,
260     Media::PhotoColumn::PHOTO_META_DATE_MODIFIED,
261     Media::PhotoColumn::PHOTO_ORIENTATION,
262     Media::PhotoColumn::PHOTO_LATITUDE,
263     Media::PhotoColumn::PHOTO_LONGITUDE,
264     Media::PhotoColumn::PHOTO_HEIGHT,
265     Media::PhotoColumn::PHOTO_WIDTH,
266     Media::PhotoColumn::PHOTO_SUBTYPE,
267     /* keep cloud_id at the last, so RecordToValueBucket can skip it*/
268     Media::PhotoColumn::PHOTO_CLOUD_ID
269 };
270 } // namespace CloudSync
271 } // namespace FileManagement
272 } // namespace OHOS
273 #endif // OHOS_CLOUD_SYNC_SERVICE_GALLERY_FILE_CONST_H
274