• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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()27 AlbumAsset::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)45 void AlbumAsset::SetAlbumId(const int32_t albumId)
46 {
47     albumId_ = albumId;
48 }
49 
SetAlbumName(const string albumName)50 void AlbumAsset::SetAlbumName(const string albumName)
51 {
52     albumName_ = albumName;
53 }
54 
SetAlbumUri(const string albumUri)55 void AlbumAsset::SetAlbumUri(const string albumUri)
56 {
57     albumUri_ = albumUri;
58 }
59 
SetAlbumDateModified(const int64_t albumDateModified)60 void AlbumAsset::SetAlbumDateModified(const int64_t albumDateModified)
61 {
62     albumDateModified_ = albumDateModified;
63 }
64 
SetCount(const int32_t count)65 void AlbumAsset::SetCount(const int32_t count)
66 {
67     count_ = count;
68 }
69 
SetAlbumRelativePath(const string albumRelativePath)70 void AlbumAsset::SetAlbumRelativePath(const string albumRelativePath)
71 {
72     albumRelativePath_ = albumRelativePath;
73 }
SetCoverUri(const string coverUri)74 void AlbumAsset::SetCoverUri(const string coverUri)
75 {
76     coverUri_ = coverUri;
77 }
78 
SetAlbumPath(const string albumPath)79 void AlbumAsset::SetAlbumPath(const string albumPath)
80 {
81     albumPath_ = albumPath;
82 }
83 
SetAlbumVirtual(const bool albumVirtual)84 void AlbumAsset::SetAlbumVirtual(const bool albumVirtual)
85 {
86     albumVirtual_ = albumVirtual;
87 }
88 
SetAlbumTypeMask(const string & typeMask)89 void AlbumAsset::SetAlbumTypeMask(const string &typeMask)
90 {
91     typeMask_ = typeMask;
92 }
93 
GetAlbumId() const94 int32_t AlbumAsset::GetAlbumId() const
95 {
96     return albumId_;
97 }
98 
GetAlbumName() const99 string AlbumAsset::GetAlbumName() const
100 {
101     return albumName_;
102 }
103 
GetAlbumUri() const104 string AlbumAsset::GetAlbumUri() const
105 {
106     return albumUri_;
107 }
108 
GetAlbumDateModified() const109 int64_t AlbumAsset::GetAlbumDateModified() const
110 {
111     return albumDateModified_;
112 }
113 
GetCount() const114 int32_t AlbumAsset::GetCount() const
115 {
116     return count_;
117 }
118 
GetAlbumRelativePath() const119 string AlbumAsset::GetAlbumRelativePath() const
120 {
121     return albumRelativePath_;
122 }
123 
GetCoverUri() const124 string AlbumAsset::GetCoverUri() const
125 {
126     return coverUri_;
127 }
128 
GetAlbumPath() const129 string AlbumAsset::GetAlbumPath() const
130 {
131     return albumPath_;
132 }
133 
GetAlbumVirtual() const134 bool AlbumAsset::GetAlbumVirtual() const
135 {
136     return albumVirtual_;
137 }
138 
GetAlbumTypeMask() const139 string AlbumAsset::GetAlbumTypeMask() const
140 {
141     return typeMask_;
142 }
143 
CreateAlbumAsset()144 bool 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)154 bool AlbumAsset::DeleteAlbumAsset(const string &albumUri)
155 {
156     return MediaFileUtils::DeleteDir(albumUri);
157 }
158 
ModifyAlbumAsset(const string & albumUri)159 bool 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)176 void AlbumAsset::SetResultNapiType(const ResultNapiType type)
177 {
178     resultNapiType_ = type;
179 }
180 
GetResultNapiType() const181 ResultNapiType AlbumAsset::GetResultNapiType() const
182 {
183     return resultNapiType_;
184 }
185 
186 
187 }  // namespace Media
188 }  // namespace OHOS
189