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 typeMask_ = DEFAULT_TYPE_MASK; 39 resultNapiType_ = ResultNapiType::TYPE_MEDIALIBRARY; 40 } 41 42 AlbumAsset::~AlbumAsset() = default; 43 44 SetAlbumId(const int32_t albumId)45void AlbumAsset::SetAlbumId(const int32_t albumId) 46 { 47 albumId_ = albumId; 48 } 49 SetAlbumName(const string albumName)50void AlbumAsset::SetAlbumName(const string albumName) 51 { 52 albumName_ = albumName; 53 } 54 SetAlbumUri(const string albumUri)55void AlbumAsset::SetAlbumUri(const string albumUri) 56 { 57 albumUri_ = albumUri; 58 } 59 SetAlbumDateModified(const int64_t albumDateModified)60void AlbumAsset::SetAlbumDateModified(const int64_t albumDateModified) 61 { 62 albumDateModified_ = albumDateModified; 63 } 64 SetCount(const int32_t count)65void AlbumAsset::SetCount(const int32_t count) 66 { 67 count_ = count; 68 } 69 SetAlbumRelativePath(const string albumRelativePath)70void AlbumAsset::SetAlbumRelativePath(const string albumRelativePath) 71 { 72 albumRelativePath_ = albumRelativePath; 73 } SetCoverUri(const string coverUri)74void AlbumAsset::SetCoverUri(const string coverUri) 75 { 76 coverUri_ = coverUri; 77 } 78 SetAlbumPath(const string albumPath)79void AlbumAsset::SetAlbumPath(const string albumPath) 80 { 81 albumPath_ = albumPath; 82 } 83 SetAlbumVirtual(const bool albumVirtual)84void AlbumAsset::SetAlbumVirtual(const bool albumVirtual) 85 { 86 albumVirtual_ = albumVirtual; 87 } 88 SetAlbumTypeMask(const string & typeMask)89void AlbumAsset::SetAlbumTypeMask(const string &typeMask) 90 { 91 typeMask_ = typeMask; 92 } 93 GetAlbumId() const94int32_t AlbumAsset::GetAlbumId() const 95 { 96 return albumId_; 97 } 98 GetAlbumName() const99string AlbumAsset::GetAlbumName() const 100 { 101 return albumName_; 102 } 103 GetAlbumUri() const104string AlbumAsset::GetAlbumUri() const 105 { 106 return albumUri_; 107 } 108 GetAlbumDateModified() const109int64_t AlbumAsset::GetAlbumDateModified() const 110 { 111 return albumDateModified_; 112 } 113 GetCount() const114int32_t AlbumAsset::GetCount() const 115 { 116 return count_; 117 } 118 GetAlbumRelativePath() const119string AlbumAsset::GetAlbumRelativePath() const 120 { 121 return albumRelativePath_; 122 } 123 GetCoverUri() const124string AlbumAsset::GetCoverUri() const 125 { 126 return coverUri_; 127 } 128 GetAlbumPath() const129string AlbumAsset::GetAlbumPath() const 130 { 131 return albumPath_; 132 } 133 GetAlbumVirtual() const134bool AlbumAsset::GetAlbumVirtual() const 135 { 136 return albumVirtual_; 137 } 138 GetAlbumTypeMask() const139string AlbumAsset::GetAlbumTypeMask() const 140 { 141 return typeMask_; 142 } 143 CreateAlbumAsset()144bool AlbumAsset::CreateAlbumAsset() 145 { 146 if (!(MediaFileUtils::IsDirectory(albumPath_))) { 147 return MediaFileUtils::CreateDirectory(albumPath_); 148 } else { 149 MEDIA_ERR_LOG("Cannot create album that already exists"); 150 return false; 151 } 152 } 153 DeleteAlbumAsset(const string & albumUri)154bool AlbumAsset::DeleteAlbumAsset(const string &albumUri) 155 { 156 return MediaFileUtils::DeleteDir(albumUri); 157 } 158 ModifyAlbumAsset(const string & albumUri)159bool AlbumAsset::ModifyAlbumAsset(const string &albumUri) 160 { 161 string newAlbumUri; 162 string oldAlbumUri; 163 size_t slashIndex; 164 bool errCode = false; 165 166 oldAlbumUri = albumUri; 167 slashIndex = albumUri.rfind("/"); 168 if (slashIndex != string::npos) { 169 newAlbumUri = albumUri.substr(0, slashIndex) + SLASH_CHAR + albumName_; 170 errCode = MediaFileUtils::RenameDir(oldAlbumUri, newAlbumUri); 171 } 172 173 return errCode; 174 } 175 SetResultNapiType(const ResultNapiType type)176void AlbumAsset::SetResultNapiType(const ResultNapiType type) 177 { 178 resultNapiType_ = type; 179 } 180 GetResultNapiType() const181ResultNapiType AlbumAsset::GetResultNapiType() const 182 { 183 return resultNapiType_; 184 } 185 186 187 } // namespace Media 188 } // namespace OHOS 189