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 #include "gallery_source.h"
17 
18 #include "backup_const_map.h"
19 
20 namespace OHOS {
21 namespace Media {
22 const string GalleryOpenCall::CREATE_GALLERY_MEDIA = string("CREATE TABLE IF NOT EXISTS gallery_media ") +
23     " (_id INTEGER PRIMARY KEY AUTOINCREMENT, local_media_id INTEGER, _data TEXT COLLATE NOCASE," +
24     "_size INTEGER,  date_added INTEGER, date_modified INTEGER, title TEXT, description TEXT, _display_name TEXT, " +
25     "orientation INTEGER, bucket_id TEXT, duration INTEGER, media_type INTEGER, storage_id INTEGER, width INTEGER, " +
26     "height INTEGER, is_hw_favorite INTEGER,  relative_bucket_id TEXT, showDateToken INTEGER, recycleFlag INTEGER, " +
27     "recycledTime INTEGER, sourcePath TEXT, is_hw_burst INTEGER DEFAULT 0, hash TEXT, " +
28     "special_file_type INTEGER DEFAULT 0, first_update_time INTEGER, datetaken INTEGER, detail_time TEXT);";
29 
30 const string GalleryOpenCall::CREATE_GARBAGE_ALBUM = string("CREATE TABLE IF NOT EXISTS garbage_album") +
31     "(app_name TEXT, cache_dir TEXT, nick_name TEXT, nick_dir TEXT, type INTEGER, relative_bucket_id TEXT);";
32 
33 const string GalleryOpenCall::CREATE_GALLERY_ALBUM = string("CREATE TABLE IF NOT EXISTS gallery_album ") +
34     "(albumId TEXT PRIMARY KEY NOT NULL, albumName TEXT, relativeBucketId TEXT, createTime INTEGER, lPath TEXT, " +
35     "source TEXT,photoNum INTEGER DEFAULT 0, totalSize INTEGER DEFAULT 0, garbage INTEGER DEFAULT 0, " +
36     "dirty INTEGER DEFAULT 0, hide INTEGER DEFAULT 0, emptyShow INTEGER DEFAULT 0, sortIndex INTEGER DEFAULT 0, " +
37     "uploadStatus INTEGER DEFAULT 0,cloud INTEGER DEFAULT 1,sideStatus INTEGER DEFAULT 0, timeStamp INTEGER, " +
38     "hdcUploadStatus INTEGER, hdc INTEGER DEFAULT 1);";
39 
40 const string GalleryOpenCall::CREATE_GALLERY_MERGE_TAG = string("CREATE TABLE IF NOT EXISTS merge_tag ") +
41     "(tag_id TEXT, group_tag TEXT, tag_name TEXT, user_operation INTEGER, rename_operation TEXT);";
42 
43 const string GalleryOpenCall::CREATE_GALLERY_MERGE_FACE = string("CREATE TABLE IF NOT EXISTS merge_face ") +
44     "(hash TEXT, face_id TEXT, tag_id TEXT NOT NULL, scale_x REAL NOT NULL, scale_y REAL NOT NULL, " +
45     "scale_width REAL NOT NULL, scale_height REAL NOT NULL, landmarks BLOB, prob REAL, " +
46     "yaw REAL NOT NULL, pitch REAL NOT NULL, roll REAL NOT NULL, total_face INTEGER NOT NULL);";
47 
48 const string GalleryOpenCall::CREATE_GALLERY_FACE = string("CREATE TABLE IF NOT EXISTS face ") +
49     "(hash TEXT, face_id TEXT, tag_id TEXT NOT NULL, scale_x REAL NOT NULL, scale_y REAL NOT NULL, " +
50     "scale_width REAL NOT NULL, scale_height REAL NOT NULL, landmarks BLOB, prob REAL, " +
51     "yaw REAL NOT NULL, pitch REAL NOT NULL, roll REAL NOT NULL, total_face INTEGER NOT NULL);";
52 
OnCreate(NativeRdb::RdbStore & store)53 int GalleryOpenCall::OnCreate(NativeRdb::RdbStore &store)
54 {
55     int ret = 0;
56     ret += store.ExecuteSql(CREATE_GALLERY_MEDIA);
57     ret += store.ExecuteSql(CREATE_GARBAGE_ALBUM);
58     ret += store.ExecuteSql(CREATE_GALLERY_ALBUM);
59     ret += store.ExecuteSql(CREATE_GALLERY_MERGE_TAG);
60     ret += store.ExecuteSql(CREATE_GALLERY_MERGE_FACE);
61     ret += store.ExecuteSql(CREATE_GALLERY_FACE);
62     return ret;
63 }
64 
OnUpgrade(NativeRdb::RdbStore & store,int oldVersion,int newVersion)65 int GalleryOpenCall::OnUpgrade(NativeRdb::RdbStore &store, int oldVersion, int newVersion)
66 {
67     return 0;
68 }
69 
Init(const string & dbPath)70 void GallerySource::Init(const string &dbPath)
71 {
72     NativeRdb::RdbStoreConfig config(dbPath);
73     GalleryOpenCall helper;
74     int errCode = 0;
75     shared_ptr<NativeRdb::RdbStore> store = NativeRdb::RdbHelper::GetRdbStore(config, 1, helper, errCode);
76     galleryStorePtr_ = store;
77     InitGalleryMediaOne();
78     InitGalleryMediaTwo();
79     InitGalleryMediaThree();
80     InitGalleryMediaFour();
81     InitGalleryMediaFive();
82     InitGarbageAlbum();
83     InitGalleryAlbumOne();
84     InitGalleryAlbumTwo();
85     InitGalleryMergeTag();
86     InitGalleryMergeFace();
87     InitGalleryFace();
88 }
89 
InitGalleryMediaOne()90 void GallerySource::InitGalleryMediaOne()
91 {
92     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(1, 1, ") +
93         "'/storage/emulated/0//BaiduMap/cache/fake_baidu.jpg', 2160867, 1706950419, 1546937461," +
94         "'fake_baidu', NULL, 'fake_baidu.jpg', 0, 2080527857, 0, 1, 65537, 3968, 2976, NULL, " +
95         "-1492241466, 1495954569032, 0, 0, '/storage/emulated/0//BaiduMap/cache/fake_baidu.jpg', 0, NULL, 0, "+
96         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
97     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(2, 16, ") +
98         "'/storage/emulated/0/DCIM/Camera/camera_sync.jpg', 2808831, 1706950426, 1546937461," +
99         "'camera_sync', NULL, 'camera_sync.jpg', 0, -1739773001, 0, 1, 65537, 3968, 2976, NULL, " +
100         "2064266562, 1496025408734, 0, 0, '/storage/emulated/0/DCIM/Camera/camera_sync.jpg', 0, NULL, 0, "+
101         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
102     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(3, 2, ") +
103         "'/storage/emulated/0/Pictures/album1/album1.jpg', 3091817, 1706950426, 1546937461," +
104         "'album1', NULL, 'album1.jpg', 0, -1266858078, 0, 1, 65537, 3968, 2976, NULL, " +
105         "1999934381, 1495970415377, 0, 0, '/storage/emulated/0/Pictures/album1/album1.jpg', 0, NULL, 0, "+
106         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
107     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(4, 3, ") +
108         "'/storage/emulated/0/Pictures/album2/album2.jpg', 3621508, 1706950426, 1546937461," +
109         "'album2', NULL, 'album2.jpg', 0, -1266858077, 0, 1, 65537, 3968, 2976, NULL, " +
110         "1999934382, 1495973952757, 0, 0, '/storage/emulated/0/Pictures/album2/album2.jpg', 0, NULL, 0, "+
111         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
112     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(5, 4, ") +
113         "'/storage/emulated/0/Pictures/favorite.jpg', 7440437, 1706950426, 1546937461," +
114         "'favorite', NULL, 'favorite.jpg', 0, -1617409521, 0, 1, 65537, 5120, 3840, 1, " +
115         "218866788, 1495957457427, 0, 0, '/storage/emulated/0/Pictures/favorite.jpg', 0, NULL, 0, "+
116         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
117     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(6, -4, ") +
118         "'/storage/emulated/0/Pictures/hiddenAlbum/bins/0/" +
119         "GF6DA7BRGAYXYMJXGA3DSNJQGQ4TEMBTGF6GQ2LEMRSW47BONJYGO7DJNVQWOZJPNJYGKZ34NZ2WY3A', 2716337, 1706950426, " +
120         "1546937461, 'hidden', NULL, 'hidden.jpg', 0, -1617409521, 0, 1, 65537, 3968, 2976, NULL, " +
121         "659449306, 1495961420646, 0, 0, 'GF6DA7BRGAYXYMJXGA3DSNJQGQ4TEMBTGF6GQ2LEMRSW47BONJYGO7DJNVQWOZJP', \
122         0, NULL, 0, "+ "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
123     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(7, 5, ") +
124         "'/storage/emulated/0/Pictures/no_exif.png', 234265, 1706950426, 1541215543," +
125         "'no_exif', NULL, 'no_exif.png', 0, -1617409521, 0, 1, 65537, 1024, 768, NULL, " +
126         "218866788, 1541215543000, 0, 0, '/storage/emulated/0/Pictures/no_exif.png', 0, NULL, 0, "+
127         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
128     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(8, 6, ") +
129         "'/storage/emulated/0/Pictures/orientation.jpg', 2781577, 1706950426, 1706950486," +
130         "'orientation', NULL, 'orientation.jpg', 270, -1617409521, 0, 1, 65537, 3264, 2448, NULL, " +
131         "218866788, 1495962070277, 0, 0, '/storage/emulated/0/Pictures/orientation.jpg', 0, NULL, 0, "+
132         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
133     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(9, 0, ") +
134         "'/storage/emulated/0/Pictures/.Gallery2/recycle/bins/0/\
135         GF6DA7BRGA2HYMJXGA3DSNJQGQ4DENJXGN6HI4TBONUGKZD4FZVHAZ34NFWWCZ3FF5VHAZLHPRXHK3DM', 2454477, 1706950426, " +
136         "1546937461, 'trashed', NULL, 'trashed.jpg', 0, -1617409521, 0, 1, 65537, 3968, 2976, NULL, " +
137         "218866788, 1495959683996, 2, 1706950482573, 'GF6DA7BRGA2HYMJXGA3DSNJQGQ4DENJXGN6HI4TBONUGKZD4FZ', " +
138         "0, NULL, 0, 1495970415377, 1495970415377, '2024:09:06 17:00:00')");
139 }
140 
InitGalleryMediaTwo()141 void GallerySource::InitGalleryMediaTwo()
142 {
143     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(10, 7, ") +
144         "'/storage/emulated/0/Pictures/user_common.jpg', 4330676, 1706950426, 1706950476," +
145         "'user_common', 'user_comment', 'user_common.jpg', 0, -1617409521, 0, 1, 65537, 3968, 2976, NULL, " +
146         "218866788, 1495962762035, 0, 0, '/storage/emulated/0/Pictures/user_common.jpg', 0, NULL, 0, "+
147         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
148     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(11, -3, ") +
149         "'/storage/emulated/0/Pictures/clone.jpg', 5431183, 1706950426, 1546937461," +
150         "'clone', NULL, 'clone.jpg', 0, -1617409521, 0, 1, 65537, 5120, 3840, NULL, " +
151         "218866788, 1496056464221, 0, 0, '/storage/emulated/0/Pictures/clone.jpg', 0, NULL, 0, "+
152         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
153     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(15, 13, ") +
154         "'/storage/emulated/0/DCIM/Sgame/fake_game.jpg', 3871481, 1706950426, 1546937461," +
155         "'fake_game', NULL, 'fake_game.jpg', 0, -1288103917, 0, 1, 65537, 3968, 2976, NULL, " +
156         "-1858129624, 1495970384215, 0, 0, '/storage/emulated/0/DCIM/Sgame/fake_game.jpg', 0, NULL, 0, "+
157         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
158     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(16, 14, ") +
159         "'/storage/emulated/0/CTRIP/avatar/fake_garbage_ctrip.jpg', 3184187, 1706950426, 1546937461," +
160         "'fake_garbage_ctrip', NULL, 'fake_garbage_ctrip.jpg', 0, 876554266, 0, 1, 65537, 3968, 2976, NULL, " +
161         "-1457303569, 1495969289098, 0, 0, '/storage/emulated/0/CTRIP/avatar/fake_garbage_ctrip.jpg', 0, NULL, 0, "+
162         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
163     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(17, 15, ") +
164         "'/storage/emulated/0/tencent/MicroMsg/WeiXin/fake_wechat.jpg', 2419880, 1706950426, 1432973383," +
165         "'fake_wechat', NULL, 'fake_wechat.jpg', 0, -924335728, 0, 1, 65537, 3968, 2976, NULL, " +
166         "-1803300197, 1432973383179, 0, 0, '/storage/emulated/0/tencent/MicroMsg/WeiXin/fake_wechat.jpg', 0, NULL, 0, "+
167         "1495970415378, 1495970415379, '2024:09:06 17:00:01')");
168     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(12, 9, ") +
169         "'/storage/emulated/0/Movies/common.mp4', 192844, 1706950426, 1698033985," +
170         "'common', NULL, 'common.mp4', 0, -1730634595, 6042, 3, 65537, 320, 240, NULL, " +
171         "1989707826, 1240601085000, 0, 0, '/storage/emulated/0/Movies/common.mp4', 0, NULL, 0, "+
172         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
173     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(13, 10, ") +
174         "'/storage/emulated/0/Movies/4K.mp4', 26162975, 1706950426, 1703905398," +
175         "'4K', NULL, '4K.mp4', 0, -1730634595, 5099, 3, 65537, 3840, 2160, NULL, " +
176         "1989707826, 1703905326000, 0, 0, '/storage/emulated/0/Movies/4K.mp4', 0, NULL, 0, "+
177         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
178     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(14, 11, ") +
179         "'/storage/emulated/0/Movies/1080p.mp4', 6626209, 1706950426, 1703905397," +
180         "'1080p', NULL, '1080p.mp4', 0, -1730634595, 4551, 3, 65537, 1920, 1080, NULL, " +
181         "1989707826, 1703905305000, 0, 0, '/storage/emulated/0/Movies/1080p.mp4', 0, NULL, 0, "+
182         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
183 }
184 
InitGalleryMediaThree()185 void GallerySource::InitGalleryMediaThree()
186 {
187     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(18, 16, ") +
188         "'/storage/emulated/0/A/media/Rocket/test/a_media_normal_video.mp4', 10865209, 1708600079, 1708600079," +
189         "'a_media_normal_video', 'NULL', 'a_media_normal_video.mp4', 0, -1122816831, 52221, 3, 65537, 352, 640, " +
190         "NULL, 1264692236, 1708600079000, 0, 0, '/storage/emulated/0/A/media/Rocket/test/a_media_normal_video.mp4', \
191         0, NULL, 0, 1495970415377, 1495970415377, '2024:09:06 17:00:00')");
192     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(19, 17, ") +
193         "'/storage/emulated/0/A/media/Rocket/test/a_media_favorite.mp4', 10865209, 1708600079, 1708600079," +
194         "'a_media_favorite', 'NULL', 'a_media_favorite.mp4', 0, -1122816831, 52221, 3, 65537, 352, 640, 1, " +
195         "1264692236, 1708600079000, 0, 0, '/storage/emulated/0/A/media/Rocket/test/a_media_favorite.mp4', 0, NULL, 0, "+
196         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
197     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(20, 18, ") +
198         "'/storage/emulated/0/A/media/Baidu/a_media_favorite_baidu.mp4', 10865209, 1708600079, 1708600079," +
199         "'a_media_favorite_baidu', 'NULL', 'a_media_favorite_baidu.mp4', 0, -1122816831, 52221, 3, 65537, 352, 640," +
200         "1, 1264692236, 1708600079000, 0, 0, '/storage/emulated/0/A/media/Baidu/a_media_favorite_baidu.mp4', \
201         0, NULL, 0, 1495970415377, 1495970415377, '2024:09:06 17:00:00')");
202     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(21, 19, ") +
203         "'/storage/emulated/0/A/media/Baidu/a_media_normal_image.jpg', 418436, 1708602162000, 1708602162," +
204         "'a_media_normal_image', 'NULL', 'a_media_normal_image.jpg', 0, -1960413976, 0, 1, 65537, 2000, 3556, NULL, " +
205         "1264692236, 1708602162000, 0, 0, '/storage/emulated/0/A/media/Baidu/a_media_normal_image.jpg', 0, NULL, 0, "+
206         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
207     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(22, 20, \
208         '/storage/emulated/0/A/media/Baidu/a_media_normal_image1.jpg', \
209         418436, 1708602162000, 1708602162,'a_media_normal_image1', 'NULL', \
210         'a_media_normal_image1.jpg', 0, -1960413976, 0, 1, 65537, \
211         2000, 3556, NULL, 2, 1708602162000, 0, 0, '/storage/emulated/0/A/media/Baidu/a_media_normal_image1.jpg', \
212         0, NULL, 0, 1495970415377, 1495970415377, '2024:09:06 17:00:00')");
213     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(23, 21, \
214         '/storage/emulated/0/A/media/Baidu/a_media_normal_video1.mp4', \
215         418436, 1708602162000, 1708602162,'a_media_normal_video1', 'NULL', \
216         'a_media_normal_video1.mp4', 0, -1960413976, 0, 1, 65537, \
217         2000, 3556, NULL, 3, 1708602162000, 0, 0, '/storage/emulated/0/A/media/Baidu/a_media_normal_video1.mp4', \
218         0, NULL, 0, 1495970415377, 1495970415377, '2024:09:06 17:00:00')");
219     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(24, 22, '/DCIM/Camera/camera1.jpg', \
220         418436, 1708602162000, 1708602162,'camera1', 'NULL', 'camera1.jpg', 0, -1960413976, 0, 1, 65537, \
221         2000, 3556, NULL, 3, 1708602162000, 0, 0, '/DCIM/Camera/camera1.jpg', 0, NULL, 0, \
222         1495970415377, 1495970415377, '2024:09:06 17:00:00')");
223     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(25, 23, '/Screenshots/screenshots1.mp4', \
224         418436, 1708602162000, 1708602162,'screenshots1', 'NULL', 'screenshots1.mp4', 0, -1960413976, 0, 1, 65537, \
225         2000, 3556, NULL, 3, 1708602162000, 0, 0, '/Screenshots/screenshots1.mp4', 0, NULL, 0, \
226         1495970415377, 1495970415377, '2024:09:06 17:00:00')");
227     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(26, 24, '/Screenrecorder/screenrecorder1.jpg', \
228         418436, 1708602162000, 1708602162,'screenrecorder1', 'NULL', 'screenrecorder1.jpg', \
229         0, -1960413976, 0, 1, 65537, 2000, 3556, NULL, 3, 1708602162000, 0, 0, '/Screenrecorder/screenrecorder1.jpg', \
230         0, NULL, 0, 1495970415377, 1495970415377, '2024:09:06 17:00:00')");
231 }
232 
InitGalleryMediaFour()233 void GallerySource::InitGalleryMediaFour()
234 {
235     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(27, 25, '/" +
236         GetDUALBundleName() + " Share/" + GetDUALBundleName() + "Share1.jpg', 418436, 1708602162000, 1708602162, '" +
237         GetDUALBundleName() + "Share1', 'NULL', '" + GetDUALBundleName() +
238         "Share1.jpg', 0, -1960413976, 0, 1, 65537, 2000, 3556, NULL, 3, 1708602162000, 0, 0, 'Share1.jpg', \
239         0, NULL, 0, 1495970415377, 1495970415377, '2024:09:06 17:00:00')");
240     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(28, 26, '/DCIM/Camera/camera2.jpg', \
241         418436, 1708602162000, 1708602162,'camera2', 'NULL', 'camera2.jpg', 0, -1960413976, 0, 1, 65537, \
242         2000, 3556, NULL, 3, 1708602162000, 0, 0, '/DCIM/Camera/camera2.jpg', 0, NULL, 0, \
243         1495970415377, 1495970415377, '2024:09:06 17:00:00')");
244     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(29, 27, '/Screenshots/screenshots2.jpg', \
245         418436, 1708602162000, 1708602162,'screenshots2', 'NULL', 'screenshots2.jpg', 0, -1960413976, 0, 1, 65537, \
246         2000, 3556, NULL, 3, 1708602162000, 0, 0, '/Screenshots/screenshots2.jpg', 0, NULL, 0, \
247         1495970415377, 1495970415377, '2024:09:06 17:00:00')");
248     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(30, 28, '/Screenrecorder/screenrecorder2.mp4', \
249         418436, 1708602162000, 1708602162,'screenrecorder2', 'NULL', 'screenrecorder2.mp4', 0, \
250         -1960413976, 0, 1, 65537, 2000, 3556, NULL, 3, 1708602162000, 0, 0, '/Screenrecorder/screenrecorder2.mp4', \
251         0, NULL, 0, 1495970415377, 1495970415377, '2024:09:06 17:00:00')");
252     galleryStorePtr_->ExecuteSql("INSERT INTO gallery_media VALUES(31, 29, '/" + GetDUALBundleName() + " Share/" +
253         GetDUALBundleName() + "Share2.jpg', 418436, 1708602162000, 1708602162,'" + GetDUALBundleName() +
254         "Share2', 'NULL', '" + GetDUALBundleName() + "Share2.jpg', 0, -1960413976, 0, 1, 65537, \
255         2000, 3556, NULL, 3, 1708602162000, 0, 0, 'Share2.jpg', 0, NULL, 0, \
256         1495970415377, 1495970415377, '2024:09:06 17:00:00')");
257     // for portrait restoration
258     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(32, 55950, ") +
259         "'/storage/emulated/0/Pictures/NULL/NULL_1.jpg', 216446, 1722851511, 1717550867," +
260         "'NULL_1', NULL, 'NULL_1.jpg', 0, 991881755, 0, 1, 65537, 1860, 1200, NULL, " +
261         "500954022, 1643958981000, 0, 0, '/storage/emulated/0/Pictures/NULL/NULL_1.jpg', 0, '5659', 0, "+
262         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
263     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(33, 55979, ") +
264         "'/storage/emulated/0/Pictures/B/B_1.jpg', 4567535, 1722913178, 1715679284," +
265         "'B_1', NULL, 'B_1.jpg', 0, -1608790897, 0, 1, 65537, 5184, 3456, NULL, " +
266         "-586242982, 1434362029810, 0, 0, '/storage/emulated/0/Pictures/B/B_1.jpg', 0, '1c05', 0, "+
267         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
268     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(34, 57139, ") +
269         "'/storage/emulated/0/Pictures/B/B_2.jpg', 4369271, 1723044589, 1720179455," +
270         "'B_2', NULL, 'B_2.jpg', 0, -1035207676, 0, 1, 65537, 5184, 3456, NULL, " +
271         "-370356529, 1434363463590, 0, 0, '/storage/emulated/0/Pictures/B/B_2.jpg', 0, '23f2', 0, "+
272         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
273     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(35, 57063, ") +
274         "'/storage/emulated/0/Pictures/Y/Y_1.jpg', 2971707, 1723044589, 1720190486," +
275         "'Y_1', NULL, 'Y_1.jpg', 0, -1035207678, 0, 1, 65537, 3968, 2976, NULL, " +
276         "-370356531, 1491269475663, 0, 0, '/storage/emulated/0/Pictures/Y/Y_1.jpg', 0, '3275', 0, "+
277         "1495970415377, 1495970415377, '2024:09:06 17:00:00')");
278 }
279 
InitGalleryMediaFive()280 void GallerySource::InitGalleryMediaFive()
281 {
282     // duplicate data
283     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(36, 30, ") +
284         "'/storage/emulated/0/A/media/Rocket/test/duplicate_data.mp4', 10865209, 1708600079, 1708600079," +
285         "'duplicate_data', 'NULL', 'duplicate_data.mp4', 0, -1122816831, 52221, 3, 65537, 352, 640, " +
286         "NULL, 1264692236, 1708600079000, 0, 0, '/storage/emulated/0/A/media/Rocket/test/duplicate_data.mp4', \
287         0, NULL, 0)");
288     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_media VALUES(37, 31, ") +
289         "'/storage/emulated/0/A/media/Rocket/test/duplicate_data.mp4', 10865209, 1708600079, 1708600079," +
290         "'duplicate_data', 'NULL', 'duplicate_data.mp4', 0, -1122816831, 52221, 3, 65537, 352, 640, " +
291         "NULL, 1264692236, 1708600079000, 0, 0, '/storage/emulated/0/A/media/Rocket/test/duplicate_data.mp4', \
292         0, NULL, 0)");
293 }
294 
InitGarbageAlbum()295 void GallerySource::InitGarbageAlbum()
296 {
297     galleryStorePtr_->ExecuteSql(string("INSERT INTO garbage_album VALUES('baidu', '/BaiduMap/cache', ") +
298         "null, null, 1, 1151084355);");
299     galleryStorePtr_->ExecuteSql(string("INSERT INTO garbage_album VALUES('ctrip', '/CTRIP/avatar', ") +
300         "null, null, 1, -1457303569);");
301     galleryStorePtr_->ExecuteSql(string("INSERT INTO garbage_album VALUES(null, null, 'wechat', ") +
302         "'/tencent/MicroMsg/WeiXin', 0, null);");
303     galleryStorePtr_->ExecuteSql(string("INSERT INTO garbage_album VALUES(null, null, 'sgame', ") +
304         "'/DCIM/Sgame', 0, null);");
305     galleryStorePtr_->ExecuteSql("INSERT INTO garbage_album (nick_name, nick_dir) \
306         VALUES ('天猫', '/TmallPic');");
307 }
308 
InitGalleryAlbumOne()309 void GallerySource::InitGalleryAlbumOne()
310 {
311     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
312         VALUES ('test001', 'test001', '1', '/test001');"));
313     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
314         VALUES ('test002', 'test002', '2', '/test002');"));
315     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
316         VALUES ('test003', 'test003', '3', '/test003');"));
317     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
318         VALUES ('test004', 'TmallPic', '4', '/TmallPic');"));
319     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
320         VALUES ('test005', 'UCDownloads',  '5', '/UCDownloads');"));
321     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
322         VALUES ('test006', 'xiaohongshu',  '6', '/xiaohongshu');"));
323     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
324         VALUES ('test007', 'Douyin', '7', '/Douyin');"));
325     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
326         VALUES ('test008', 'Weibo', '8', '/sina/weibo/save');"));
327     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
328         VALUES ('test009', 'Camera', '9', '/DCIM/Camera');"));
329     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
330         VALUES ('test010', 'Screenshots', '10', '/Screenshots');"));
331     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
332         VALUES ('test011', 'Screenrecorder', '11', '/Screenrecorder');"));
333     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
334         VALUES ('test012', '" + GetDUALBundleName() + " Share', '12', '/" + GetDUALBundleName() + " Share');"));
335 }
336 
InitGalleryAlbumTwo()337 void GallerySource::InitGalleryAlbumTwo()
338 {
339     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
340         VALUES ('test101', 'test101', '101', '/test101');"));
341     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
342         VALUES ('test102', 'TmallPic', '102', '/TmallPic');"));
343     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
344         VALUES ('test103', 'MTTT', '103', '/MTTT');"));
345     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
346         VALUES ('test104', 'funnygallery', '104', '/funnygallery');"));
347     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
348         VALUES ('test105', 'xiaohongshu', '105', '/xiaohongshu');"));
349     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
350         VALUES ('test106', 'Douyin', '106', '/Douyin');"));
351     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
352         VALUES ('test107', 'save', '107', '/sdcard/Pictures/sina');"));
353     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
354         VALUES ('test108', 'Weibo', '108', '/sina/weibo/save');"));
355     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
356         VALUES ('test108', 'Weibo', '108', '/sina/weibo/weibo');"));
357     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
358         VALUES ('test108', 'Weibo', '108', '/sina/weibo/storage/photoalbum_save/weibo');"));
359     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
360         VALUES ('test109', 'Camera', '109', '/DCIM/Camera');"));
361     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
362         VALUES ('test110', 'Screenshots', '110', '/Screenshots');"));
363     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
364         VALUES ('test111', 'Screenrecorder', '111', '/Screenrecorder');"));
365     galleryStorePtr_->ExecuteSql(string("INSERT INTO gallery_album (albumId, albumName,relativeBucketId, lPath) \
366         VALUES ('test112', '" + GetDUALBundleName() + " Share', '112', '/" + GetDUALBundleName() + " Share');"));
367 }
368 
InitGalleryMergeTag()369 void GallerySource::InitGalleryMergeTag()
370 {
371     galleryStorePtr_->ExecuteSql(string("INSERT INTO merge_tag (tag_id, group_tag, user_operation, \
372         rename_operation) VALUES ('ser_1660318467974', 'ser_1660318467974', 0, 0)")); // without tag_name
373     galleryStorePtr_->ExecuteSql(string("INSERT INTO merge_tag (tag_id, group_tag, tag_name, user_operation, \
374         rename_operation) VALUES ('ser_1660239135682', 'ser_1660239135682', 'B', 0, 1)")); // 'B'
375     galleryStorePtr_->ExecuteSql(string("INSERT INTO merge_tag (tag_id, group_tag, tag_name, user_operation, \
376         rename_operation) VALUES ('ser_274602026436444', 'ser_274602026436444', 'Y', 1, 0)")); // 'Y', groupped
377     galleryStorePtr_->ExecuteSql(string("INSERT INTO merge_tag (tag_id, group_tag, tag_name, user_operation, \
378         rename_operation) VALUES ('ser_274602037407069', 'ser_274602026436444', 'Y', 0, 1)")); // 'Y', groupped
379 }
380 
InitGalleryMergeFace()381 void GallerySource::InitGalleryMergeFace()
382 {
383     galleryStorePtr_->ExecuteSql(string("INSERT INTO merge_face (hash, face_id, tag_id, scale_x, scale_y, \
384         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('5659', '0', \
385         'ser_1660318467974', 0.6097, 0.5799, 0.0796, 0.1299, \
386         x'95040000e6020000df040000e2020000ba040000fb0200009e04000026030000db04000022030000', NULL, 0.5064, 0.7402, \
387         0.1916, 1)")); // without tag_name
388     galleryStorePtr_->ExecuteSql(string("INSERT INTO merge_face (hash, face_id, tag_id, scale_x, scale_y, \
389         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('1c05', '0', \
390         'ser_1660239135682', 0.5449, 0.2419, 0.1722, 0.3022, \
391         x'0906000034020000d40600005b02000065060000c6020000dd050000f4020000a806000020030000', NULL, -5.5875, -7.4554, \
392         -0.3196, 1)")); // 'B'
393     galleryStorePtr_->ExecuteSql(string("INSERT INTO merge_face (hash, face_id, tag_id, scale_x, scale_y, \
394         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('23f2', '0', \
395         'ser_1660239135682', 0.3797, 0.3199, 0.2172, 0.4048, \
396         x'7f0400001f0300006b0500004b030000d6040000be0300005a0400001d0400001f05000047040000', NULL, -0.6532, -5.2244, \
397         3.9188, 1)")); // 'B'
398     galleryStorePtr_->ExecuteSql(string("INSERT INTO merge_face (hash, face_id, tag_id, scale_x, scale_y, \
399         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('3275', '0', \
400         'ser_274602037407069', 0.5696, 0.4046, 0.0449, 0.0645, \
401         x'7c04000079020000ab04000074020000920400008b02000085040000a7020000ab040000a3020000', NULL, 1.9596, -1.3064, \
402         2.6128, 2)")); // 'Y'
403     galleryStorePtr_->ExecuteSql(string("INSERT INTO merge_face (hash, face_id, tag_id, scale_x, scale_y, \
404         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('3275', '1', \
405         'ser_274602026436444', 0.4325, 0.4294, 0.0473, 0.0746, \
406         x'71030000a70200009e030000a502000086030000bc02000076030000d40200009b030000d3020000', NULL, 1.9596, -1.9596, \
407         3.9188, 2)")); // 'Y'
408 }
409 
InitGalleryFace()410 void GallerySource::InitGalleryFace()
411 {
412     galleryStorePtr_->ExecuteSql(string("INSERT INTO face (hash, face_id, tag_id, scale_x, scale_y, \
413         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('5659', '0', \
414         'ser_1660318467974', 0.6097, 0.5799, 0.0796, 0.1299, \
415         x'95040000e6020000df040000e2020000ba040000fb0200009e04000026030000db04000022030000', 0, 0.5064, 0.7402, \
416         0.1916, 1)")); // without tag_name
417     galleryStorePtr_->ExecuteSql(string("INSERT INTO face (hash, face_id, tag_id, scale_x, scale_y, \
418         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('1c05', '0', \
419         'ser_1660239135682', 0.5449, 0.2419, 0.1722, 0.3022, \
420         x'0906000034020000d40600005b02000065060000c6020000dd050000f4020000a806000020030000', 0, -5.5875, -7.4554, \
421         -0.3196, 1)")); // 'B'
422     galleryStorePtr_->ExecuteSql(string("INSERT INTO face (hash, face_id, tag_id, scale_x, scale_y, \
423         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('23f2', '0', \
424         'ser_1660239135682', 0.3797, 0.3199, 0.2172, 0.4048, \
425         x'7f0400001f0300006b0500004b030000d6040000be0300005a0400001d0400001f05000047040000', 0, -0.6532, -5.2244, \
426         3.9188, 1)")); // 'B'
427     galleryStorePtr_->ExecuteSql(string("INSERT INTO face (hash, face_id, tag_id, scale_x, scale_y, \
428         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('3275', '0', \
429         'ser_274602037407069', 0.5696, 0.4046, 0.0449, 0.0645, \
430         x'7c04000079020000ab04000074020000920400008b02000085040000a7020000ab040000a3020000', 0, 1.9596, -1.3064, \
431         2.6128, 2)")); // 'Y'
432     galleryStorePtr_->ExecuteSql(string("INSERT INTO face (hash, face_id, tag_id, scale_x, scale_y, \
433         scale_width, scale_height, landmarks, prob, yaw, pitch, roll, total_face) VALUES ('3275', '1', \
434         'ser_274602026436444', 0.4325, 0.4294, 0.0473, 0.0746, \
435         x'71030000a70200009e030000a502000086030000bc02000076030000d40200009b030000d3020000', 0, 1.9596, -1.9596, \
436         3.9188, 2)")); // 'Y'
437 }
438 } // namespace Media
439 } // namespace OHOS