1 /* 2 * Copyright (C) 2021-2022 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 #define MLOG_TAG "Album" 16 17 #include "album_asset.h" 18 19 #include "media_file_utils.h" 20 #include "medialibrary_type_const.h" 21 #include "media_log.h" 22 23 using namespace std; 24 25 namespace OHOS { 26 namespace Media { AlbumAsset()27AlbumAsset::AlbumAsset() 28 { 29 albumId_ = DEFAULT_ALBUM_ID; 30 albumName_ = DEFAULT_ALBUM_NAME; 31 albumUri_ = DEFAULT_ALBUM_URI; 32 albumDateModified_ = DEFAULT_ALBUM_DATE_MODIFIED; 33 count_ = DEFAULT_COUNT; 34 albumRelativePath_ = DEFAULT_ALBUM_RELATIVE_PATH; 35 coverUri_ = DEFAULT_COVERURI; 36 albumPath_ = DEFAULT_ALBUM_PATH; 37 albumVirtual_ = DEFAULT_ALBUM_VIRTUAL; 38 resultNapiType_ = ResultNapiType::TYPE_MEDIALIBRARY; 39 } 40 41 AlbumAsset::~AlbumAsset() = default; 42 43 SetAlbumId(const int32_t albumId)44void AlbumAsset::SetAlbumId(const int32_t albumId) 45 { 46 albumId_ = albumId; 47 } 48 SetAlbumName(const string albumName)49void AlbumAsset::SetAlbumName(const string albumName) 50 { 51 albumName_ = albumName; 52 } 53 SetAlbumUri(const string albumUri)54void AlbumAsset::SetAlbumUri(const string albumUri) 55 { 56 albumUri_ = albumUri; 57 } 58 SetAlbumDateModified(const int64_t albumDateModified)59void AlbumAsset::SetAlbumDateModified(const int64_t albumDateModified) 60 { 61 albumDateModified_ = albumDateModified; 62 } 63 SetCount(const int32_t count)64void AlbumAsset::SetCount(const int32_t count) 65 { 66 count_ = count; 67 } 68 SetAlbumRelativePath(const string albumRelativePath)69void AlbumAsset::SetAlbumRelativePath(const string albumRelativePath) 70 { 71 albumRelativePath_ = albumRelativePath; 72 } SetCoverUri(const string & coverUri)73void AlbumAsset::SetCoverUri(const string &coverUri) 74 { 75 coverUri_ = coverUri; 76 } 77 SetAlbumPath(const string albumPath)78void AlbumAsset::SetAlbumPath(const string albumPath) 79 { 80 albumPath_ = albumPath; 81 } 82 SetAlbumVirtual(const bool albumVirtual)83void AlbumAsset::SetAlbumVirtual(const bool albumVirtual) 84 { 85 albumVirtual_ = albumVirtual; 86 } 87 GetAlbumId() const88int32_t AlbumAsset::GetAlbumId() const 89 { 90 return albumId_; 91 } 92 GetAlbumName() const93string AlbumAsset::GetAlbumName() const 94 { 95 return albumName_; 96 } 97 GetAlbumUri() const98string AlbumAsset::GetAlbumUri() const 99 { 100 return albumUri_; 101 } 102 GetAlbumDateModified() const103int64_t AlbumAsset::GetAlbumDateModified() const 104 { 105 return albumDateModified_; 106 } 107 GetCount() const108int32_t AlbumAsset::GetCount() const 109 { 110 return count_; 111 } 112 GetAlbumRelativePath() const113string AlbumAsset::GetAlbumRelativePath() const 114 { 115 return albumRelativePath_; 116 } 117 GetCoverUri() const118string AlbumAsset::GetCoverUri() const 119 { 120 return coverUri_; 121 } 122 GetAlbumPath() const123string AlbumAsset::GetAlbumPath() const 124 { 125 return albumPath_; 126 } 127 GetAlbumVirtual() const128bool AlbumAsset::GetAlbumVirtual() const 129 { 130 return albumVirtual_; 131 } 132 CreateAlbumAsset()133bool AlbumAsset::CreateAlbumAsset() 134 { 135 if (!(MediaFileUtils::IsDirectory(albumPath_))) { 136 return MediaFileUtils::CreateDirectory(albumPath_); 137 } else { 138 MEDIA_ERR_LOG("Cannot create album that already exists: %{private}s", albumPath_.c_str()); 139 return false; 140 } 141 } 142 DeleteAlbumAsset(const string & albumUri)143bool AlbumAsset::DeleteAlbumAsset(const string &albumUri) 144 { 145 return MediaFileUtils::DeleteDir(albumUri); 146 } 147 ModifyAlbumAsset(const string & albumUri)148bool AlbumAsset::ModifyAlbumAsset(const string &albumUri) 149 { 150 string newAlbumUri; 151 string oldAlbumUri; 152 size_t slashIndex; 153 bool errCode = false; 154 155 oldAlbumUri = albumUri; 156 slashIndex = albumUri.rfind("/"); 157 if (slashIndex != string::npos) { 158 newAlbumUri = albumUri.substr(0, slashIndex) + SLASH_CHAR + albumName_; 159 errCode = MediaFileUtils::RenameDir(oldAlbumUri, newAlbumUri); 160 } 161 162 return errCode; 163 } 164 SetResultNapiType(const ResultNapiType type)165void AlbumAsset::SetResultNapiType(const ResultNapiType type) 166 { 167 resultNapiType_ = type; 168 } 169 GetResultNapiType() const170ResultNapiType AlbumAsset::GetResultNapiType() const 171 { 172 return resultNapiType_; 173 } 174 175 #ifdef MEDIALIBRARY_COMPATIBILITY SetAlbumType(const PhotoAlbumType albumType)176void AlbumAsset::SetAlbumType(const PhotoAlbumType albumType) 177 { 178 albumType_ = albumType; 179 } SetAlbumSubType(const PhotoAlbumSubType albumSubType)180void AlbumAsset::SetAlbumSubType(const PhotoAlbumSubType albumSubType) 181 { 182 albumSubType_ = albumSubType; 183 } 184 GetAlbumType() const185PhotoAlbumType AlbumAsset::GetAlbumType() const 186 { 187 return albumType_; 188 } GetAlbumSubType() const189PhotoAlbumSubType AlbumAsset::GetAlbumSubType() const 190 { 191 return albumSubType_; 192 } 193 #endif 194 } // namespace Media 195 } // namespace OHOS 196