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