1 /* 2 * Copyright (C) 2021-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 INTERFACES_INNERKITS_NATIVE_INCLUDE_MEDIA_DATA_ABILITY_CONST_H_ 17 #define INTERFACES_INNERKITS_NATIVE_INCLUDE_MEDIA_DATA_ABILITY_CONST_H_ 18 19 #include "medialibrary_type_const.h" 20 #include "media_column.h" 21 #include "userfilemgr_uri.h" 22 23 namespace OHOS { 24 namespace Media { 25 const int32_t MEDIA_RDB_VERSION = 58; 26 enum { 27 VERSION_ADD_CLOUD = 2, 28 VERSION_ADD_META_MODIFED = 3, 29 VERSION_MODIFY_SYNC_STATUS = 4, 30 VERSION_ADD_API10_TABLE = 5, 31 VERSION_MODIFY_DELETE_TRIGGER = 6, 32 VERSION_ADD_CLOUD_VERSION = 7, 33 VERSION_UPDATE_CLOUD_PATH = 8, 34 VERSION_UPDATE_API10_TABLE = 9, 35 VERSION_ADD_TABLE_TYPE = 10, 36 VERSION_ADD_PACKAGE_NAME = 11, 37 VERSION_ADD_CLOUD_ALBUM = 12, 38 VERSION_ADD_CAMERA_SHOT_KEY = 13, 39 /** 40 * Remove album count triggers for batch operation performance, 41 * update PhotoAlbum.count by a query and an update(in a single transaction of course) 42 * if number of assets in an album changes. 43 */ 44 VERSION_REMOVE_ALBUM_COUNT_TRIGGER = 14, 45 VERSION_ADD_ALL_EXIF = 15, 46 VERSION_ADD_UPDATE_CLOUD_SYNC_TRIGGER = 16, 47 VERSION_ADD_YEAR_MONTH_DAY = 17, 48 VERSION_UPDATE_YEAR_MONTH_DAY = 18, 49 VERSION_ADD_VISION_TABLE = 20, 50 VERSION_ADD_PHOTO_EDIT_TIME = 21, 51 VERSION_ADD_SHOOTING_MODE = 22, 52 VERSION_FIX_INDEX_ORDER = 23, 53 VERSION_ADD_FACE_TABLE = 24, 54 VERSION_ADD_HIDDEN_VIEW_COLUMNS = 26, 55 VERSION_ADD_HIDDEN_TIME = 27, 56 VERSION_ADD_LAST_VISIT_TIME = 28, 57 VERSION_ADD_LOCATION_TABLE = 29, 58 VERSION_ADD_ALBUM_ORDER = 30, 59 VERSION_ADD_SOURCE_ALBUM_TRIGGER = 31, 60 VERSION_ADD_VISION_ALBUM = 32, 61 VERSION_ADD_AESTHETIC_COMPOSITION_TABLE = 33, 62 VERSION_ADD_FORM_MAP = 34, 63 VERSION_UPDATE_LOCATION_TABLE = 35, 64 VERSION_ADD_PHOTO_CLEAN_FLAG_AND_THUMB_STATUS = 36, 65 VERSION_ADD_SEARCH_TABLE = 37, 66 VERSION_FIX_DOCS_PATH = 38, 67 VERSION_ADD_SALIENCY_TABLE = 39, 68 VERSION_UPDATE_SOURCE_ALBUM_TRIGGER = 40, 69 VERSION_ADD_IMAGE_VIDEO_COUNT = 41, 70 VERSION_ADD_SCHPT_HIDDEN_TIME_INDEX = 42, 71 VERSION_ADD_SHOOTING_MODE_TAG = 43, 72 VERSION_CLEAR_LABEL_DATA = 44, 73 VERSION_ADD_PORTRAIT_IN_ALBUM = 45, 74 VERSION_UPDATE_GEO_TABLE = 46, 75 VERSION_REOMOVE_SOURCE_ALBUM_TO_ANALYSIS = 47, 76 VERSION_ADD_MULTISTAGES_CAPTURE = 48, 77 VERSION_UPDATE_DATE_TO_MILLISECOND = 49, 78 VERSION_ADD_HAS_ASTC = 50, 79 VERSION_ADD_ADDRESS_DESCRIPTION = 51, 80 VERSION_UPDATE_SPEC_FOR_ADD_SCREENSHOT = 52, 81 VERSION_MOVE_SOURCE_ALBUM_TO_PHOTO_ALBUM_AND_ADD_COLUMNS = 53, 82 VERSION_ADD_CLOUD_ID_INDEX = 54, 83 VERSION_UPDATE_PHOTOS_MDIRTY_TRIGGER = 55, 84 VERSION_ALBUM_REFRESH = 56, 85 VERSION_ADD_FAVORITE_INDEX = 57, 86 VERSION_MODIFY_SOURCE_ALBUM_TRIGGERS = 58, 87 }; 88 89 enum { 90 MEDIA_API_VERSION_DEFAULT = 8, 91 MEDIA_API_VERSION_V9, 92 MEDIA_API_VERSION_V10, 93 }; 94 95 enum CloudFilePosition { 96 POSITION_LOCAL = 1 << 0, 97 POSITION_CLOUD = 1 << 1, 98 }; 99 100 const std::string MEDIA_LIBRARY_VERSION = "1.0"; 101 102 const int32_t DEVICE_SYNCSTATUSING = 0; 103 const int32_t DEVICE_SYNCSTATUS_COMPLETE = 1; 104 105 const std::string MEDIA_DATA_DEVICE_PATH = "local"; 106 const std::string MEDIALIBRARY_TABLE = "Files"; 107 const std::string SMARTALBUM_TABLE = "SmartAlbum"; 108 const std::string SMARTALBUM_MAP_TABLE = "SmartMap"; 109 const std::string CATEGORY_SMARTALBUM_MAP_TABLE = "CategorySmartAlbumMap"; 110 const std::string MEDIATYPE_DIRECTORY_TABLE = "MediaTypeDirectory"; 111 const std::string DEVICE_TABLE = "Device"; 112 const std::string BUNDLE_PERMISSION_TABLE = "BundlePermission"; 113 const std::string MEDIA_DATA_ABILITY_DB_NAME = "media_library.db"; 114 115 const std::string BUNDLE_NAME = "com.ohos.medialibrary.medialibrarydata"; 116 117 const std::string ML_FILE_SCHEME = "file"; 118 const std::string ML_FILE_PREFIX = "file://"; 119 const std::string ML_FILE_URI_PREFIX = "file://media"; 120 const std::string ML_URI_NETWORKID = "networkid"; 121 const std::string ML_URI_NETWORKID_EQUAL = "?networkid="; 122 const std::string ML_URI_TIME_ID = "&time_id="; 123 const std::string ML_URI_DATE_ADDED = "date_added"; 124 const std::string ML_URI_AUTHORITY = "media"; 125 const std::string ML_DATA_SHARE_SCHEME = "datashare"; 126 const std::string MEDIALIBRARY_DATA_ABILITY_PREFIX = "datashare://"; 127 const std::string MEDIALIBRARY_DATA_URI_IDENTIFIER = "/media"; 128 const std::string MEDIALIBRARY_MEDIA_PREFIX = MEDIALIBRARY_DATA_ABILITY_PREFIX + 129 MEDIALIBRARY_DATA_URI_IDENTIFIER; 130 const std::string MEDIALIBRARY_TYPE_AUDIO_URI = "/audio"; 131 const std::string MEDIALIBRARY_TYPE_VIDEO_URI = "/video"; 132 const std::string MEDIALIBRARY_TYPE_IMAGE_URI = "/image"; 133 const std::string MEDIALIBRARY_TYPE_FILE_URI = "/file"; 134 const std::string MEDIALIBRARY_TYPE_ALBUM_URI = "/album"; 135 const std::string MEDIALIBRARY_TYPE_SMARTALBUM_CHANGE_URI = "/smartalbum"; 136 const std::string MEDIALIBRARY_TYPE_DEVICE_URI = "/device"; 137 const std::string MEDIALIBRARY_TYPE_SMART_URI = "/smart"; 138 139 const std::string AUDIO_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_AUDIO_URI; 140 const std::string VIDEO_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_VIDEO_URI; 141 const std::string IMAGE_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_IMAGE_URI; 142 const std::string FILE_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_FILE_URI; 143 const std::string ALBUM_URI_PREFIX = ML_FILE_URI_PREFIX + MEDIALIBRARY_TYPE_ALBUM_URI; 144 145 const std::string URI_TYPE_PHOTO = "Photo"; 146 const std::string URI_TYPE_AUDIO_V10 = "Audio"; 147 const std::string URI_TYPE_PHOTO_ALBUM = "PhotoAlbum"; 148 constexpr int64_t AGING_TIME = 30LL * 60 * 60 * 24 * 1000; 149 150 const std::string MEDIALIBRARY_SMARTALBUM_URI = MEDIALIBRARY_DATA_URI + "/" + SMARTALBUM_TABLE; 151 const std::string MEDIALIBRARY_SMARTALBUM_MAP_URI = MEDIALIBRARY_DATA_URI + "/" + SMARTALBUM_MAP_TABLE; 152 const std::string MEDIALIBRARY_CATEGORY_SMARTALBUM_MAP_URI = MEDIALIBRARY_DATA_URI + "/" 153 + CATEGORY_SMARTALBUM_MAP_TABLE; 154 const std::string MEDIALIBRARY_DIRECTORY_URI = MEDIALIBRARY_DATA_URI + "/" + MEDIATYPE_DIRECTORY_TABLE; 155 const std::string MEDIALIBRARY_BUNDLEPERM_URI = MEDIALIBRARY_DATA_URI + "/" + BUNDLE_PERMISSION_INSERT; 156 157 const std::string MEDIALIBRARY_AUDIO_URI = MEDIALIBRARY_DATA_URI + '/' + "audio"; 158 const std::string MEDIALIBRARY_VIDEO_URI = MEDIALIBRARY_DATA_URI + '/' + "video"; 159 const std::string MEDIALIBRARY_IMAGE_URI = MEDIALIBRARY_DATA_URI + '/' + "image"; 160 const std::string MEDIALIBRARY_FILE_URI = MEDIALIBRARY_DATA_URI + '/' + "file"; 161 const std::string MEDIALIBRARY_ALBUM_URI = MEDIALIBRARY_DATA_URI + '/' + "album"; 162 const std::string MEDIALIBRARY_SMARTALBUM_CHANGE_URI = MEDIALIBRARY_DATA_URI + '/' + "smartalbum"; 163 const std::string MEDIALIBRARY_DEVICE_URI = MEDIALIBRARY_DATA_URI + '/' + "device"; 164 const std::string MEDIALIBRARY_SMART_URI = MEDIALIBRARY_DATA_URI + '/' + "smart"; 165 const std::string MEDIALIBRARY_REMOTEFILE_URI = MEDIALIBRARY_DATA_URI + '/' + "remotfile"; 166 167 const std::string MEDIA_DATA_DB_ID = "file_id"; 168 const std::string MEDIA_DATA_DB_URI = "uri"; 169 const std::string MEDIA_DATA_DB_FILE_PATH = "data"; 170 const std::string MEDIA_DATA_DB_SIZE = "size"; 171 const std::string MEDIA_DATA_DB_PARENT_ID = "parent"; 172 const std::string MEDIA_DATA_DB_DATE_MODIFIED = "date_modified"; 173 const std::string MEDIA_DATA_DB_DATE_MODIFIED_S = "date_modified_s"; 174 const std::string MEDIA_DATA_DB_DATE_MODIFIED_TO_SECOND = "CAST(date_modified / 1000 AS BIGINT) AS date_modified_s"; 175 const std::string MEDIA_DATA_DB_DATE_ADDED = "date_added"; 176 const std::string MEDIA_DATA_DB_DATE_ADDED_S = "date_added_s"; 177 const std::string MEDIA_DATA_DB_DATE_ADDED_TO_SECOND = "CAST(date_added / 1000 AS BIGINT) AS date_added_s"; 178 const std::string MEDIA_DATA_DB_MIME_TYPE = "mime_type"; 179 const std::string MEDIA_DATA_DB_TITLE = "title"; 180 const std::string MEDIA_DATA_DB_DESCRIPTION = "description"; 181 const std::string MEDIA_DATA_DB_NAME = "display_name"; 182 const std::string MEDIA_DATA_DB_ORIENTATION = "orientation"; 183 const std::string MEDIA_DATA_DB_LATITUDE = "latitude"; 184 const std::string MEDIA_DATA_DB_LONGITUDE = "longitude"; 185 const std::string MEDIA_DATA_DB_DATE_TAKEN = "date_taken"; 186 const std::string MEDIA_DATA_DB_THUMBNAIL = "thumbnail"; 187 const std::string MEDIA_DATA_DB_THUMB_ASTC = "astc"; 188 const std::string MEDIA_DATA_DB_HAS_ASTC = "has_astc"; 189 const std::string MEDIA_DATA_DB_CONTENT_CREATE_TIME = "content_create_time"; 190 const std::string MEDIA_DATA_DB_POSITION = "position"; 191 const std::string MEDIA_DATA_DB_DIRTY = "dirty"; 192 const std::string MEDIA_DATA_DB_CLOUD_ID = "cloud_id"; 193 const std::string MEDIA_DATA_DB_META_DATE_MODIFIED = "meta_date_modified"; 194 const std::string MEDIA_DATA_DB_SYNC_STATUS = "sync_status"; 195 196 const std::string MEDIA_DATA_DB_LCD = "lcd"; 197 const std::string MEDIA_DATA_DB_BUCKET_ID = "bucket_id"; 198 const std::string MEDIA_DATA_DB_BUCKET_NAME = "bucket_display_name"; 199 const std::string MEDIA_DATA_DB_DURATION = "duration"; 200 const std::string MEDIA_DATA_DB_ARTIST = "artist"; 201 202 const std::string MEDIA_DATA_DB_AUDIO_ALBUM = "audio_album"; 203 const std::string MEDIA_DATA_DB_MEDIA_TYPE = "media_type"; 204 205 const std::string MEDIA_DATA_DB_HEIGHT = "height"; 206 const std::string MEDIA_DATA_DB_WIDTH = "width"; 207 const std::string MEDIA_DATA_DB_OWNER_PACKAGE = "owner_package"; 208 const std::string MEDIA_DATA_DB_PACKAGE_NAME = "package_name"; 209 210 const std::string MEDIA_DATA_DB_IS_FAV = "is_favorite"; 211 const std::string MEDIA_DATA_DB_IS_TRASH = "is_trash"; 212 const std::string MEDIA_DATA_DB_RECYCLE_PATH = "recycle_path"; 213 const std::string MEDIA_DATA_DB_DATE_TRASHED = "date_trashed"; 214 const std::string MEDIA_DATA_DB_DATE_TRASHED_S = "date_trashed_s"; 215 const std::string MEDIA_DATA_DB_DATE_TRASHED_TO_SECOND = "CAST(date_trashed / 1000 AS BIGINT) AS date_trashed_s"; 216 const std::string MEDIA_DATA_DB_IS_PENDING = "is_pending"; 217 const std::string MEDIA_DATA_DB_TIME_PENDING = "time_pending"; 218 const std::string MEDIA_DATA_DB_RELATIVE_PATH = "relative_path"; 219 const std::string MEDIA_DATA_DB_VOLUME_NAME = "volume_name"; 220 const std::string MEDIA_DATA_DB_SELF_ID = "self_id"; 221 const std::string MEDIA_DATA_DB_DEVICE_NAME = "device_name"; 222 223 const std::string MEDIA_DATA_DB_ALBUM = "album"; 224 const std::string MEDIA_DATA_DB_ALBUM_ID = "album_id"; 225 const std::string MEDIA_DATA_DB_REFERENCE_ALBUM_ID = "reference_album_id"; 226 const std::string MEDIA_DATA_DB_ALBUM_NAME = "album_name"; 227 const std::string MEDIA_DATA_DB_COUNT = "count"; 228 const std::string MEDIA_DATA_BUNDLENAME = "bundle_name"; 229 // ringtone uri constants 230 const std::string MEDIA_DATA_DB_RINGTONE_URI = "ringtone_uri"; 231 const std::string MEDIA_DATA_DB_ALARM_URI = "alarm_uri"; 232 const std::string MEDIA_DATA_DB_NOTIFICATION_URI = "notification_uri"; 233 const std::string MEDIA_DATA_DB_RINGTONE_TYPE = "ringtone_type"; 234 235 const std::string MEDIA_DATA_DB_PHOTO_ID = "photo_id"; 236 const std::string MEDIA_DATA_DB_PHOTO_QUALITY = "photo_quality"; 237 const std::string MEDIA_DATA_DB_FIRST_VISIT_TIME = "first_visit_time"; 238 const std::string MEDIA_DATA_DB_DEFERRED_PROC_TYPE = "deferred_proc_type"; 239 240 const std::string MEDIA_DATA_IMAGE_BITS_PER_SAMPLE = "BitsPerSample"; 241 const std::string MEDIA_DATA_IMAGE_ORIENTATION = "Orientation"; 242 const std::string MEDIA_DATA_IMAGE_IMAGE_LENGTH = "ImageLength"; 243 const std::string MEDIA_DATA_IMAGE_IMAGE_WIDTH = "ImageWidth"; 244 const std::string MEDIA_DATA_IMAGE_GPS_LATITUDE = "GPSLatitude"; 245 const std::string MEDIA_DATA_IMAGE_GPS_LONGITUDE = "GPSLongitude"; 246 const std::string MEDIA_DATA_IMAGE_GPS_LATITUDE_REF = "GPSLatitudeRef"; 247 const std::string MEDIA_DATA_IMAGE_GPS_LONGITUDE_REF = "GPSLongitudeRef"; 248 const std::string MEDIA_DATA_IMAGE_DATE_TIME_ORIGINAL = "DateTimeOriginalForMedia"; 249 const std::string MEDIA_DATA_IMAGE_EXPOSURE_TIME = "ExposureTime"; 250 const std::string MEDIA_DATA_IMAGE_F_NUMBER = "FNumber"; 251 const std::string MEDIA_DATA_IMAGE_ISO_SPEED_RATINGS = "ISOSpeedRatings"; 252 const std::string MEDIA_DATA_IMAGE_SCENE_TYPE = "SceneType"; 253 254 const std::string MEDIA_COLUMN_COUNT = "count(*)"; 255 const std::string MEDIA_COLUMN_COUNT_1 = "count(1)"; 256 const std::string MEDIA_COLUMN_COUNT_DISTINCT_FILE_ID = "count(distinct file_id)"; 257 258 const std::string PHOTO_INDEX = "photo_index"; 259 260 const std::string PERMISSION_ID = "id"; 261 const std::string PERMISSION_BUNDLE_NAME = "bundle_name"; 262 const std::string PERMISSION_FILE_ID = "file_id"; 263 const std::string PERMISSION_MODE = "mode"; 264 const std::string PERMISSION_TABLE_TYPE = "table_type"; 265 266 const std::string CREATE_MEDIA_TABLE = "CREATE TABLE IF NOT EXISTS " + MEDIALIBRARY_TABLE + " (" + 267 MEDIA_DATA_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 268 MEDIA_DATA_DB_FILE_PATH + " TEXT, " + 269 MEDIA_DATA_DB_SIZE + " BIGINT, " + 270 MEDIA_DATA_DB_PARENT_ID + " INT DEFAULT 0, " + 271 MEDIA_DATA_DB_DATE_ADDED + " BIGINT, " + 272 MEDIA_DATA_DB_DATE_MODIFIED + " BIGINT, " + 273 MEDIA_DATA_DB_MIME_TYPE + " TEXT, " + 274 MEDIA_DATA_DB_TITLE + " TEXT, " + 275 MEDIA_DATA_DB_DESCRIPTION + " TEXT, " + 276 MEDIA_DATA_DB_NAME + " TEXT, " + 277 MEDIA_DATA_DB_ORIENTATION + " INT DEFAULT 0, " + 278 MEDIA_DATA_DB_LATITUDE + " DOUBLE DEFAULT 0, " + 279 MEDIA_DATA_DB_LONGITUDE + " DOUBLE DEFAULT 0, " + 280 MEDIA_DATA_DB_DATE_TAKEN + " BIGINT DEFAULT 0, " + 281 MEDIA_DATA_DB_THUMBNAIL + " TEXT, " + 282 MEDIA_DATA_DB_LCD + " TEXT, " + 283 MEDIA_DATA_DB_BUCKET_ID + " INT DEFAULT 0, " + 284 MEDIA_DATA_DB_BUCKET_NAME + " TEXT, " + 285 MEDIA_DATA_DB_DURATION + " INT, " + 286 MEDIA_DATA_DB_ARTIST + " TEXT, " + 287 MEDIA_DATA_DB_AUDIO_ALBUM + " TEXT, " + 288 MEDIA_DATA_DB_MEDIA_TYPE + " INT, " + 289 MEDIA_DATA_DB_HEIGHT + " INT, " + 290 MEDIA_DATA_DB_WIDTH + " INT, " + 291 MEDIA_DATA_DB_IS_TRASH + " INT DEFAULT 0, " + 292 MEDIA_DATA_DB_RECYCLE_PATH + " TEXT, " + 293 MEDIA_DATA_DB_IS_FAV + " BOOL DEFAULT 0, " + 294 MEDIA_DATA_DB_OWNER_PACKAGE + " TEXT, " + 295 MEDIA_DATA_DB_PACKAGE_NAME + " TEXT, " + 296 MEDIA_DATA_DB_DEVICE_NAME + " TEXT, " + 297 MEDIA_DATA_DB_IS_PENDING + " BOOL DEFAULT 0, " + 298 MEDIA_DATA_DB_TIME_PENDING + " BIGINT DEFAULT 0, " + 299 MEDIA_DATA_DB_DATE_TRASHED + " BIGINT DEFAULT 0, " + 300 MEDIA_DATA_DB_RELATIVE_PATH + " TEXT, " + 301 MEDIA_DATA_DB_VOLUME_NAME + " TEXT, " + 302 MEDIA_DATA_DB_SELF_ID + " TEXT DEFAULT '1', " + 303 MEDIA_DATA_DB_ALBUM_NAME + " TEXT, " + 304 MEDIA_DATA_DB_URI + " TEXT, " + 305 MEDIA_DATA_DB_ALBUM + " TEXT, " + 306 MEDIA_DATA_DB_CLOUD_ID + " TEXT, " + 307 MEDIA_DATA_DB_DIRTY + " INT DEFAULT 1, " + 308 MEDIA_DATA_DB_POSITION + " INT DEFAULT 1, " + 309 MEDIA_DATA_DB_META_DATE_MODIFIED + " BIGINT DEFAULT 0, " + 310 MEDIA_DATA_DB_SYNC_STATUS + " INT DEFAULT 0)"; 311 312 const std::string CREATE_BUNDLE_PREMISSION_TABLE = "CREATE TABLE IF NOT EXISTS " + 313 BUNDLE_PERMISSION_TABLE + " (" + 314 PERMISSION_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 315 PERMISSION_BUNDLE_NAME + " TEXT NOT NULL, " + 316 PERMISSION_FILE_ID + " INT NOT NULL, " + 317 PERMISSION_MODE + " TEXT NOT NULL, " + 318 PERMISSION_TABLE_TYPE + " INT )"; 319 320 const std::string CREATE_IMAGE_VIEW = "CREATE VIEW IF NOT EXISTS Image AS SELECT " + 321 MEDIA_DATA_DB_ID + ", " + 322 MEDIA_DATA_DB_FILE_PATH + ", " + 323 MEDIA_DATA_DB_SIZE + ", " + 324 MEDIA_DATA_DB_NAME + ", " + 325 MEDIA_DATA_DB_TITLE + ", " + 326 MEDIA_DATA_DB_DESCRIPTION + ", " + 327 MEDIA_DATA_DB_DATE_ADDED + ", " + 328 MEDIA_DATA_DB_DATE_MODIFIED + ", " + 329 MEDIA_DATA_DB_DATE_TAKEN + ", " + 330 MEDIA_DATA_DB_MIME_TYPE + ", " + 331 MEDIA_DATA_DB_LATITUDE + ", " + 332 MEDIA_DATA_DB_LONGITUDE + ", " + 333 MEDIA_DATA_DB_ORIENTATION + ", " + 334 MEDIA_DATA_DB_WIDTH + ", " + 335 MEDIA_DATA_DB_HEIGHT + ", " + 336 MEDIA_DATA_DB_BUCKET_ID + ", " + 337 MEDIA_DATA_DB_BUCKET_NAME + ", " + 338 MEDIA_DATA_DB_THUMBNAIL + ", " + 339 MEDIA_DATA_DB_LCD + ", " + 340 MEDIA_DATA_DB_SELF_ID + " " + 341 "FROM " + MEDIALIBRARY_TABLE + " WHERE " + 342 MEDIA_DATA_DB_MEDIA_TYPE + " = 3"; 343 344 const std::string CREATE_VIDEO_VIEW = "CREATE VIEW IF NOT EXISTS Video AS SELECT " + 345 MEDIA_DATA_DB_ID + ", " + 346 MEDIA_DATA_DB_FILE_PATH + ", " + 347 MEDIA_DATA_DB_SIZE + ", " + 348 MEDIA_DATA_DB_NAME + ", " + 349 MEDIA_DATA_DB_TITLE + ", " + 350 MEDIA_DATA_DB_DESCRIPTION + ", " + 351 MEDIA_DATA_DB_DATE_ADDED + ", " + 352 MEDIA_DATA_DB_DATE_MODIFIED + ", " + 353 MEDIA_DATA_DB_MIME_TYPE + ", " + 354 MEDIA_DATA_DB_ORIENTATION + ", " + 355 MEDIA_DATA_DB_WIDTH + ", " + 356 MEDIA_DATA_DB_HEIGHT + ", " + 357 MEDIA_DATA_DB_DURATION + ", " + 358 MEDIA_DATA_DB_BUCKET_ID + ", " + 359 MEDIA_DATA_DB_BUCKET_NAME + ", " + 360 MEDIA_DATA_DB_THUMBNAIL + ", " + 361 MEDIA_DATA_DB_SELF_ID + " " + 362 "FROM " + MEDIALIBRARY_TABLE + " WHERE " + 363 MEDIA_DATA_DB_MEDIA_TYPE + " = 4"; 364 365 const std::string CREATE_AUDIO_VIEW = "CREATE VIEW IF NOT EXISTS Audio AS SELECT " + 366 MEDIA_DATA_DB_ID + ", " + 367 MEDIA_DATA_DB_FILE_PATH + ", " + 368 MEDIA_DATA_DB_SIZE + ", " + 369 MEDIA_DATA_DB_NAME + ", " + 370 MEDIA_DATA_DB_TITLE + ", " + 371 MEDIA_DATA_DB_DESCRIPTION + ", " + 372 MEDIA_DATA_DB_DATE_ADDED + ", " + 373 MEDIA_DATA_DB_DATE_MODIFIED + ", " + 374 MEDIA_DATA_DB_MIME_TYPE + ", " + 375 MEDIA_DATA_DB_ARTIST + ", " + 376 MEDIA_DATA_DB_DURATION + ", " + 377 MEDIA_DATA_DB_BUCKET_ID + ", " + 378 MEDIA_DATA_DB_BUCKET_NAME + ", " + 379 MEDIA_DATA_DB_THUMBNAIL + ", " + 380 MEDIA_DATA_DB_SELF_ID + " " + 381 "FROM " + MEDIALIBRARY_TABLE + " WHERE " + 382 MEDIA_DATA_DB_MEDIA_TYPE + " = 5"; 383 384 const std::string REMOTE_THUMBNAIL_TABLE = "RemoteThumbnailMap"; 385 const std::string REMOTE_THUMBNAIL_DB_ID = "id"; 386 const std::string REMOTE_THUMBNAIL_DB_FILE_ID = MEDIA_DATA_DB_ID; 387 const std::string REMOTE_THUMBNAIL_DB_UDID = "udid"; 388 const std::string CREATE_REMOTE_THUMBNAIL_TABLE = "CREATE TABLE IF NOT EXISTS " + REMOTE_THUMBNAIL_TABLE + " (" + 389 REMOTE_THUMBNAIL_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 390 REMOTE_THUMBNAIL_DB_FILE_ID + " INT, " + 391 REMOTE_THUMBNAIL_DB_UDID + " TEXT, " + 392 MEDIA_DATA_DB_THUMBNAIL + " TEXT, " + 393 MEDIA_DATA_DB_LCD + " TEXT) "; 394 const std::string FILE_TABLE = "file"; 395 const std::string ALBUM_TABLE = "album"; 396 const std::string ALBUM_VIEW_NAME = "Album"; 397 const std::string DISTRIBUTED_ALBUM_COLUMNS = "SELECT count( " + FILE_TABLE + "." + 398 MEDIA_DATA_DB_DATE_TRASHED + " = 0 OR NULL) AS " + 399 MEDIA_DATA_DB_COUNT + ", " + 400 ALBUM_TABLE + "." + MEDIA_DATA_DB_RELATIVE_PATH + ", " + 401 ALBUM_TABLE + "." + MEDIA_DATA_DB_ID + " AS " + 402 MEDIA_DATA_DB_BUCKET_ID + ", " + 403 ALBUM_TABLE + "." + MEDIA_DATA_DB_FILE_PATH + ", " + 404 ALBUM_TABLE + "." + MEDIA_DATA_DB_TITLE + " AS " + 405 MEDIA_DATA_DB_BUCKET_NAME + ", " + 406 ALBUM_TABLE + "." + MEDIA_DATA_DB_TITLE + ", " + 407 ALBUM_TABLE + "." + MEDIA_DATA_DB_DESCRIPTION + ", " + 408 ALBUM_TABLE + "." + MEDIA_DATA_DB_DATE_ADDED + ", " + 409 ALBUM_TABLE + "." + MEDIA_DATA_DB_DATE_MODIFIED + ", " + 410 ALBUM_TABLE + "." + MEDIA_DATA_DB_THUMBNAIL + ", " + 411 FILE_TABLE + "." + MEDIA_DATA_DB_MEDIA_TYPE + ", " + 412 ALBUM_TABLE + "." + MEDIA_DATA_DB_SELF_ID + ", " + 413 ALBUM_TABLE + "." + MEDIA_DATA_DB_IS_TRASH; 414 const std::string DISTRIBUTED_ALBUM_WHERE_AND_GROUPBY = " WHERE " + 415 FILE_TABLE + "." + MEDIA_DATA_DB_BUCKET_ID + " = " + 416 ALBUM_TABLE + "." + MEDIA_DATA_DB_ID + " AND " + 417 FILE_TABLE + "." + MEDIA_DATA_DB_MEDIA_TYPE + " <> " + 418 std::to_string(MEDIA_TYPE_ALBUM) + " AND " + 419 FILE_TABLE + "." + MEDIA_DATA_DB_MEDIA_TYPE + " <> " + 420 std::to_string(MEDIA_TYPE_FILE) + 421 " GROUP BY " + 422 FILE_TABLE + "." + MEDIA_DATA_DB_BUCKET_ID +", " + 423 FILE_TABLE + "." + MEDIA_DATA_DB_BUCKET_NAME + ", " + 424 FILE_TABLE + "." + MEDIA_DATA_DB_MEDIA_TYPE + ", " + 425 ALBUM_TABLE + "." + MEDIA_DATA_DB_SELF_ID; 426 const std::string CREATE_ALBUM_VIEW = "CREATE VIEW IF NOT EXISTS " + ALBUM_VIEW_NAME + 427 " AS " + DISTRIBUTED_ALBUM_COLUMNS + 428 " FROM " + MEDIALIBRARY_TABLE + " " + FILE_TABLE + ", " + 429 MEDIALIBRARY_TABLE + " " + ALBUM_TABLE + 430 DISTRIBUTED_ALBUM_WHERE_AND_GROUPBY; 431 const std::string SMARTALBUM_DB_ID = "album_id"; 432 const std::string SMARTALBUM_DB_ALBUM_TYPE = "album_type"; 433 const std::string SMARTALBUM_DB_NAME = "album_name"; 434 const std::string SMARTALBUM_DB_DESCRIPTION = "description"; 435 const std::string SMARTALBUM_DB_CAPACITY = "capacity"; 436 const std::string SMARTALBUM_DB_LATITUDE = "latitude"; 437 const std::string SMARTALBUM_DB_LONGITUDE = "longitude"; 438 const std::string SMARTALBUM_DB_COVER_URI = "cover_uri"; 439 const std::string SMARTALBUM_DB_EXPIRED_TIME = "expired_id"; 440 const std::string SMARTALBUM_DB_SELF_ID = "self_id"; 441 const std::string CREATE_SMARTALBUM_TABLE = "CREATE TABLE IF NOT EXISTS " + SMARTALBUM_TABLE + " (" + 442 SMARTALBUM_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 443 SMARTALBUM_DB_NAME + " TEXT, " + 444 SMARTALBUM_DB_DESCRIPTION + " TEXT, " + 445 SMARTALBUM_DB_ALBUM_TYPE + " INT, " + 446 SMARTALBUM_DB_CAPACITY + " INT, " + 447 SMARTALBUM_DB_LATITUDE + " DOUBLE DEFAULT 0, " + 448 SMARTALBUM_DB_LONGITUDE + " DOUBLE DEFAULT 0, " + 449 SMARTALBUM_DB_COVER_URI + " TEXT, " + 450 SMARTALBUM_DB_EXPIRED_TIME + " INT DEFAULT 30, " + 451 SMARTALBUM_DB_SELF_ID + " TEXT) "; 452 453 const std::string SMARTALBUMMAP_DB_ID = "map_id"; 454 const std::string SMARTALBUMMAP_DB_ALBUM_ID = "album_id"; 455 const std::string SMARTALBUMMAP_DB_CHILD_ALBUM_ID = "child_album_id"; 456 const std::string SMARTALBUMMAP_DB_CHILD_ASSET_ID = "child_asset_id"; 457 const std::string SMARTALBUMMAP_DB_SELF_ID = "self_id"; 458 const std::string CREATE_SMARTALBUMMAP_TABLE = "CREATE TABLE IF NOT EXISTS " + SMARTALBUM_MAP_TABLE + " (" + 459 SMARTALBUMMAP_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 460 SMARTALBUMMAP_DB_ALBUM_ID + " INT, " + 461 SMARTALBUMMAP_DB_CHILD_ALBUM_ID + " INT, " + 462 SMARTALBUMMAP_DB_CHILD_ASSET_ID + " INT, " + 463 SMARTALBUMMAP_DB_SELF_ID + " TEXT) "; 464 const std::string CATEGORY_SMARTALBUMMAP_DB_ID = "category_map_id"; 465 const std::string CATEGORY_SMARTALBUMMAP_DB_CATEGORY_ID = "category_id"; 466 const std::string CATEGORY_SMARTALBUMMAP_DB_CATEGORY_NAME = "category_name"; 467 const std::string CATEGORY_SMARTALBUMMAP_DB_ALBUM_ID = "album_id"; 468 const std::string CATEGORY_SMARTALBUMMAP_DB_SELF_ID = "self_id"; 469 const std::string CREATE_CATEGORY_SMARTALBUMMAP_TABLE = "CREATE TABLE IF NOT EXISTS " + 470 CATEGORY_SMARTALBUM_MAP_TABLE + " (" + 471 CATEGORY_SMARTALBUMMAP_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 472 CATEGORY_SMARTALBUMMAP_DB_CATEGORY_ID + " INT, " + 473 CATEGORY_SMARTALBUMMAP_DB_CATEGORY_NAME + " TEXT, " + 474 CATEGORY_SMARTALBUMMAP_DB_ALBUM_ID + " INT, " + 475 SMARTALBUMMAP_DB_SELF_ID + " TEXT) "; 476 const std::string DIRECTORY_DB_DIRECTORY_TYPE = "directory_type"; 477 const std::string DIRECTORY_DB_MEDIA_TYPE = "media_type"; 478 const std::string DIRECTORY_DB_DIRECTORY = "directory"; 479 const std::string DIRECTORY_DB_EXTENSION = "extension"; 480 const std::string CREATE_MEDIATYPE_DIRECTORY_TABLE = "CREATE TABLE IF NOT EXISTS " + 481 MEDIATYPE_DIRECTORY_TABLE + " (" + 482 DIRECTORY_DB_DIRECTORY_TYPE + " INTEGER PRIMARY KEY, " + 483 DIRECTORY_DB_MEDIA_TYPE + " TEXT, " + 484 DIRECTORY_DB_DIRECTORY + " TEXT, " + 485 DIRECTORY_DB_EXTENSION + " TEXT) "; 486 487 const std::string DEVICE_DB_ID = "id"; 488 const std::string DEVICE_DB_UDID = "device_udid"; 489 const std::string DEVICE_DB_NETWORK_ID = "network_id"; 490 const std::string DEVICE_DB_NAME = "device_name"; 491 const std::string DEVICE_DB_IP = "device_ip"; 492 const std::string DEVICE_DB_SYNC_STATUS = "sync_status"; 493 const std::string DEVICE_DB_PHOTO_SYNC_STATUS = "photo_table_sync_status"; 494 const std::string DEVICE_DB_SELF_ID = "self_id"; 495 const std::string DEVICE_DB_TYPE = "device_type"; 496 const std::string DEVICE_DB_PREPATH = "pre_path"; 497 const std::string DEVICE_DB_DATE_ADDED = "date_added"; 498 const std::string DEVICE_DB_DATE_MODIFIED = "date_modified"; 499 const std::string CREATE_DEVICE_TABLE = "CREATE TABLE IF NOT EXISTS " + DEVICE_TABLE + " (" + 500 DEVICE_DB_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 501 DEVICE_DB_UDID + " TEXT, " + 502 DEVICE_DB_NETWORK_ID + " TEXT, " + 503 DEVICE_DB_NAME + " TEXT, " + 504 DEVICE_DB_IP + " TEXT DEFAULT '', " + 505 DEVICE_DB_SYNC_STATUS + " INT DEFAULT 0, " + 506 DEVICE_DB_PHOTO_SYNC_STATUS + " INT DEFAULT 0, " + 507 DEVICE_DB_SELF_ID + " TEXT, " + 508 DEVICE_DB_TYPE + " INT, " + 509 DEVICE_DB_PREPATH + " TEXT, " + 510 DEVICE_DB_DATE_ADDED + " BIGINT DEFAULT 0, " + 511 DEVICE_DB_DATE_MODIFIED + " BIGINT DEFAULT 0) "; 512 const std::string SMARTALBUM_TABLE_NAME = "smartalbum"; 513 const std::string SMARTALBUMMAP_TABLE_NAME = "smartAlbumMap"; 514 const std::string CATEGORY_SMARTALBUMMAP_TABLE_NAME = "categorySmartAlbumMap"; 515 const std::string SMARTALBUMASSETS_VIEW_NAME = "SmartAsset"; 516 const std::string SMARTALBUMASSETS_ALBUMCAPACITY = "size"; 517 const std::string SMARTABLUMASSETS_PARENTID = "parentid"; 518 const std::string CREATE_SMARTALBUMASSETS_VIEW = "CREATE VIEW IF NOT EXISTS " + SMARTALBUMASSETS_VIEW_NAME + 519 " AS SELECT COUNT(" + 520 MEDIALIBRARY_TABLE + "."+ MEDIA_DATA_DB_DATE_TRASHED + " = 0 OR (" + 521 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID + " = " + 522 std::to_string(TRASH_ALBUM_ID_VALUES) + " AND " + 523 MEDIALIBRARY_TABLE + "."+ MEDIA_DATA_DB_IS_TRASH + "<> 0)" + 524 " OR NULL ) AS " + SMARTALBUMASSETS_ALBUMCAPACITY + ", " + 525 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID + ", " + 526 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_NAME + ", " + 527 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_SELF_ID + ", " + 528 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_DESCRIPTION + ", " + 529 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_EXPIRED_TIME + ", " + 530 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_COVER_URI + ", " + 531 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ALBUM_TYPE + ", " + 532 SMARTALBUM_MAP_TABLE + "." + SMARTALBUMMAP_DB_ID + ", " + 533 "a." + SMARTALBUMMAP_DB_ALBUM_ID + " AS " + SMARTABLUMASSETS_PARENTID + 534 " FROM " + SMARTALBUM_TABLE + " " + SMARTALBUM_TABLE_NAME + 535 " LEFT JOIN " + SMARTALBUM_MAP_TABLE + 536 " ON " + SMARTALBUM_MAP_TABLE + "." + SMARTALBUMMAP_DB_ALBUM_ID + " = " + 537 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID + 538 " LEFT JOIN " + MEDIALIBRARY_TABLE + 539 " ON " + SMARTALBUM_MAP_TABLE + "." + SMARTALBUMMAP_DB_CHILD_ASSET_ID + " = " + 540 MEDIALIBRARY_TABLE + "." + MEDIA_DATA_DB_ID + 541 " LEFT JOIN " + SMARTALBUM_MAP_TABLE + " a " + 542 " ON a." + SMARTALBUMMAP_DB_CHILD_ALBUM_ID + " = " + 543 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID + 544 " GROUP BY IFNULL( " + SMARTALBUM_MAP_TABLE + "." + SMARTALBUMMAP_DB_ALBUM_ID + ", " + 545 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_ID + " ), " + 546 SMARTALBUM_TABLE_NAME + "." + SMARTALBUM_DB_SELF_ID; 547 const std::string ASSETMAP_VIEW_NAME = "AssetMap"; 548 const std::string CREATE_ASSETMAP_VIEW = "CREATE VIEW IF NOT EXISTS " + ASSETMAP_VIEW_NAME + 549 " AS SELECT * FROM " + 550 MEDIALIBRARY_TABLE + " a " + ", " + 551 SMARTALBUM_MAP_TABLE + " b " + 552 " WHERE " + 553 "a." + MEDIA_DATA_DB_ID + " = " + 554 "b." + SMARTALBUMMAP_DB_CHILD_ASSET_ID; 555 556 const std::string QUERY_MEDIA_VOLUME = "SELECT sum(" + MEDIA_DATA_DB_SIZE + ") AS " + 557 MEDIA_DATA_DB_SIZE + "," + 558 MEDIA_DATA_DB_MEDIA_TYPE + " FROM " + 559 MEDIALIBRARY_TABLE + " WHERE " + 560 MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_FILE) + " OR " + 561 MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_IMAGE) + " OR " + 562 MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_VIDEO) + " OR " + 563 MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_ALBUM) + " OR " + 564 MEDIA_DATA_DB_MEDIA_TYPE + " = " + std::to_string(MEDIA_TYPE_AUDIO) + " GROUP BY " + 565 MEDIA_DATA_DB_MEDIA_TYPE; 566 567 const std::string CREATE_FILES_DELETE_TRIGGER = "CREATE TRIGGER delete_trigger AFTER UPDATE ON " + 568 MEDIALIBRARY_TABLE + " FOR EACH ROW WHEN new.dirty = " + 569 std::to_string(static_cast<int32_t>(DirtyType::TYPE_DELETED)) + 570 " and OLD.cloud_id is NULL AND is_caller_self_func() = 'true'" + 571 " BEGIN " + 572 " DELETE FROM " + MEDIALIBRARY_TABLE + " WHERE file_id = old.file_id;" + 573 " END;"; 574 575 const std::string CREATE_FILES_FDIRTY_TRIGGER = "CREATE TRIGGER fdirty_trigger AFTER UPDATE ON " + 576 MEDIALIBRARY_TABLE + " FOR EACH ROW WHEN OLD.cloud_id IS NOT NULL AND" + 577 " new.date_modified <> old.date_modified AND is_caller_self_func() = 'true'" + 578 " BEGIN " + 579 " UPDATE " + MEDIALIBRARY_TABLE + " SET dirty = " + 580 std::to_string(static_cast<int32_t>(DirtyType::TYPE_FDIRTY)) + 581 " WHERE file_id = old.file_id;" + 582 " SELECT cloud_sync_func(); " + 583 " END;"; 584 585 const std::string CREATE_FILES_MDIRTY_TRIGGER = "CREATE TRIGGER mdirty_trigger AFTER UPDATE ON " + 586 MEDIALIBRARY_TABLE + " FOR EACH ROW WHEN OLD.cloud_id IS NOT NULL" + 587 " AND new.date_modified = old.date_modified AND old.dirty = " + 588 std::to_string(static_cast<int32_t>(DirtyType::TYPE_SYNCED)) + 589 " AND new.dirty = old.dirty AND is_caller_self_func() = 'true'" + 590 " BEGIN " + 591 " UPDATE " + MEDIALIBRARY_TABLE + " SET dirty = " + 592 std::to_string(static_cast<int32_t>(DirtyType::TYPE_MDIRTY)) + 593 " WHERE file_id = old.file_id;" + 594 " SELECT cloud_sync_func(); " + 595 " END;"; 596 597 const std::string CREATE_INSERT_CLOUD_SYNC_TRIGGER = 598 " CREATE TRIGGER insert_cloud_sync_trigger AFTER INSERT ON " + MEDIALIBRARY_TABLE + 599 " BEGIN SELECT cloud_sync_func(); END;"; 600 601 /* 602 * Error Table 603 */ 604 const std::string MEDIALIBRARY_ERROR_TABLE = "Error"; 605 const std::string MEDIA_DATA_ERROR = "err"; 606 const std::string CREATE_MEDIALIBRARY_ERROR_TABLE = "CREATE TABLE IF NOT EXISTS " + MEDIALIBRARY_ERROR_TABLE + " (" 607 + MEDIA_DATA_ERROR + " TEXT PRIMARY KEY)"; 608 609 /* 610 * Media Unique Number Table 611 */ 612 const std::string ASSET_UNIQUE_NUMBER_TABLE = "UniqueNumber"; 613 const std::string ASSET_MEDIA_TYPE = "media_type"; 614 const std::string UNIQUE_NUMBER = "unique_number"; 615 const std::string CREATE_ASSET_UNIQUE_NUMBER_TABLE = "CREATE TABLE IF NOT EXISTS " + ASSET_UNIQUE_NUMBER_TABLE + " (" + 616 ASSET_MEDIA_TYPE + " TEXT, " + UNIQUE_NUMBER + " INT DEFAULT 0) "; 617 618 const std::string IMAGE_ASSET_TYPE = "image"; 619 const std::string VIDEO_ASSET_TYPE = "video"; 620 const std::string AUDIO_ASSET_TYPE = "audio"; 621 622 /* 623 * Album Refresh Table 624 */ 625 const std::string ALBUM_REFRESH_TABLE = "RefreshAlbum"; 626 const std::string REFRESHED_ALBUM_ID = "refresh_album_id"; 627 const std::string CREATE_ALBUM_REFRESH_TABLE = "CREATE TABLE IF NOT EXISTS " + ALBUM_REFRESH_TABLE + " (" 628 + REFRESHED_ALBUM_ID + " INT PRIMARY KEY)"; 629 630 // fetch columns from fileAsset in medialibrary.d.ts 631 static const std::vector<std::string> FILE_ASSET_COLUMNS = { 632 MEDIA_DATA_DB_ID, MEDIA_DATA_DB_FILE_PATH, MEDIA_DATA_DB_URI, MEDIA_DATA_DB_MIME_TYPE, MEDIA_DATA_DB_MEDIA_TYPE, 633 MEDIA_DATA_DB_NAME, MEDIA_DATA_DB_TITLE, MEDIA_DATA_DB_RELATIVE_PATH, MEDIA_DATA_DB_PARENT_ID, MEDIA_DATA_DB_SIZE, 634 MEDIA_DATA_DB_DATE_ADDED, MEDIA_DATA_DB_DATE_MODIFIED, MEDIA_DATA_DB_DATE_TAKEN, MEDIA_DATA_DB_ARTIST, 635 MEDIA_DATA_DB_WIDTH, MEDIA_DATA_DB_HEIGHT, MEDIA_DATA_DB_ORIENTATION, MEDIA_DATA_DB_DURATION, 636 MEDIA_DATA_DB_BUCKET_ID, MEDIA_DATA_DB_BUCKET_NAME, MEDIA_DATA_DB_IS_TRASH, MEDIA_DATA_DB_IS_FAV, 637 MEDIA_DATA_DB_DATE_TRASHED 638 }; 639 640 const std::string EMPTY_COLUMN_AS = "'' AS "; 641 const std::string DEFAULT_INT_COLUMN_AS = "0 AS "; 642 const std::string COMPAT_COLUMN_ARTIST = EMPTY_COLUMN_AS + MEDIA_DATA_DB_ARTIST; 643 const std::string COMPAT_COLUMN_AUDIO_ALBUM = EMPTY_COLUMN_AS + MEDIA_DATA_DB_AUDIO_ALBUM; 644 const std::string COMPAT_COLUMN_ORIENTATION = DEFAULT_INT_COLUMN_AS + MEDIA_DATA_DB_ORIENTATION; 645 const std::string COMPAT_COLUMN_BUCKET_ID = DEFAULT_INT_COLUMN_AS + MEDIA_DATA_DB_BUCKET_ID; 646 const std::string COMPAT_COLUMN_BUCKET_NAME = EMPTY_COLUMN_AS + MEDIA_DATA_DB_BUCKET_NAME; 647 const std::string COMPAT_COLUMN_IS_TRASH = MEDIA_DATA_DB_DATE_TRASHED + " AS " + MEDIA_DATA_DB_IS_TRASH; 648 const std::string COMPAT_COLUMN_WIDTH = DEFAULT_INT_COLUMN_AS + MEDIA_DATA_DB_WIDTH; 649 const std::string COMPAT_COLUMN_HEIGHT = DEFAULT_INT_COLUMN_AS + MEDIA_DATA_DB_HEIGHT; 650 const std::string COMPAT_COLUMN_URI = EMPTY_COLUMN_AS + MEDIA_DATA_DB_URI; 651 652 // Caution: Keep same definition as MediaColumn! Only for where clause check in API9 getAlbums and album.getFileAssets 653 const std::string COMPAT_ALBUM_SUBTYPE = "album_subtype"; 654 const std::string COMPAT_HIDDEN = "hidden"; 655 const std::string COMPAT_PHOTO_SYNC_STATUS = "sync_status"; 656 const std::string COMPAT_FILE_SUBTYPE = "subtype"; 657 const std::string COMPAT_CAMERA_SHOT_KEY = "camera_shot_key"; 658 659 // system relativePath and albumName, use for API9 compatible API10 660 const std::string CAMERA_PATH = "Camera/"; 661 const std::string SCREEN_SHOT_PATH = "Pictures/Screenshots/"; 662 const std::string SCREEN_RECORD_PATH = "Videos/ScreenRecordings/"; 663 664 const std::string CAMERA_ALBUM_NAME = "Camera"; 665 const std::string SCREEN_SHOT_ALBUM_NAME = "Screenshots"; 666 const std::string SCREEN_RECORD_ALBUM_NAME = "ScreenRecordings"; 667 668 // extension 669 const std::string ASSET_EXTENTION = "extention"; 670 671 // delete_tool 672 const std::string DELETE_TOOL_ONLY_DATABASE = "only_db"; 673 674 // edit param 675 const std::string EDIT_DATA_REQUEST = "edit_data_request"; // MEDIA_OPERN_KEYWORD=EDIT_DATA_REQUEST 676 const std::string SOURCE_REQUEST = "source_request"; // MEDIA_OPERN_KEYWORD=SOURCE_REQUEST 677 const std::string COMMIT_REQUEST = "commit_request"; // MEDIA_OPERN_KEYWORD=COMMIT_REQUEST 678 const std::string EDIT_DATA = "edit_data"; 679 const std::string COMPATIBLE_FORMAT = "compatible_format"; 680 const std::string FORMAT_VERSION = "format_version"; 681 const std::string APP_ID = "app_id"; 682 683 // write cache 684 const std::string CACHE_FILE_NAME = "cache_file_name"; 685 } // namespace Media 686 } // namespace OHOS 687 688 #endif // INTERFACES_INNERKITS_NATIVE_INCLUDE_MEDIA_DATA_ABILITY_CONST_H_ 689