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 "external_source.h"
17
18 namespace OHOS {
19 namespace Media {
20 // create external files simply
21 const string ExternalOpenCall::CREATE_EXTERNAL_FILES = string("CREATE TABLE IF NOT EXISTS files ") +
22 "(_id INTEGER PRIMARY KEY AUTOINCREMENT, _data TEXT COLLATE NOCASE, _size INTEGER, date_added INTEGER," +
23 "date_modified INTEGER, title TEXT, _display_name TEXT, orientation INTEGER, duration INTEGER," +
24 "bucket_id TEXT, media_type INTEGER, storage_id INTEGER, width INTEGER, height INTEGER, " +
25 "is_pending INTEGER, is_favorite INTEGER, datetaken INTEGER, special_file_type INTEGER DEFAULT 0);";
26
OnCreate(NativeRdb::RdbStore & store)27 int ExternalOpenCall::OnCreate(NativeRdb::RdbStore &store)
28 {
29 return store.ExecuteSql(CREATE_EXTERNAL_FILES);
30 }
31
OnUpgrade(NativeRdb::RdbStore & store,int oldVersion,int newVersion)32 int ExternalOpenCall::OnUpgrade(NativeRdb::RdbStore &store, int oldVersion, int newVersion)
33 {
34 return 0;
35 }
36
Init(const string & dbPath)37 void ExternalSource::Init(const string &dbPath)
38 {
39 NativeRdb::RdbStoreConfig config(dbPath);
40 ExternalOpenCall helper;
41 int errCode = 0;
42 shared_ptr<NativeRdb::RdbStore> store = NativeRdb::RdbHelper::GetRdbStore(config, 1, helper, errCode);
43 externalStorePtr_ = store;
44 InitStepOne();
45 InitStepTwo();
46 InitStepThree();
47 InitStepFour();
48 }
49
InitStepOne()50 void ExternalSource::InitStepOne()
51 {
52 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(1, ") +
53 "'/storage/emulated/0//BaiduMap/cache/fake_baidu.jpg', 2160867, 1706950419, " +
54 "1546937461, 'fake_baidu', 'fake_baidu.jpg', 0, NULL, 2080527857, 1, 65537, 3968, 2976, 0, 0, 0, 0)");
55 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(2, ") +
56 "'/storage/emulated/0/Pictures/album1/album1.jpg', 3091817, 1706950426, 1546937461, 'album1', 'album1.jpg', " +
57 "0, NULL, -1266858078, 1, 65537, 3968, 2976, 0, 0, 0, 0)");
58 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(3,") +
59 "'/storage/emulated/0/Pictures/album2/album2.jpg', 3621508, 1706950426, 1546937461, 'album2', 'album2.jpg', " +
60 "0, NULL, -1266858077, 1, 65537, 3968, 2976, 0, 0, 0, 0)");
61 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(4,") +
62 "'/storage/emulated/0/Pictures/favorite.jpg', 7440437, 1706950426, 1546937461, 'favorite', 'favorite.jpg', " +
63 "0, NULL, -1617409521, 1, 65537, 5120, 3840, 0, 1, 0, 0)");
64 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(5,") +
65 "'/storage/emulated/0/Pictures/no_exif.png', 234265, 1706950426, 1541215543, 'no_exif', 'no_exif.png', " +
66 "0, NULL, -1617409521, 1, 65537, 1024, 768, 0, 0, 0, 0, 0)");
67 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(6,") +
68 "'/storage/emulated/0/Pictures/orientation.jpg', 2781577, 1706950426, 1706950486, 'orientation', " +
69 "'orientation.jpg', 270, NULL, -1617409521, 1, 65537, 3264, 2448, 0, 0, 0, 0)");
70 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(7,") +
71 "'/storage/emulated/0/Pictures/user_common.jpg', 4330676, 1706950426, 1706950476, 'user_common', " +
72 "'user_common.jpg', 0, NULL, -1617409521, 1, 65537, 3968, 2976, 0, 0, 0, 0)");
73 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(8,") +
74 "'/storage/emulated/0/Pictures/clone.jpg', 5431183, 1706950426, 1546937461, 'clone', 'clone.jpg', " +
75 "0, NULL, -1617409521, 1, 65537, 5120, 3840, 0, 0, 0, 0)");
76 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(9,") +
77 "'/storage/emulated/0/Movies/common.mp4', 192844, 1706950426, 1698033985, 'common', 'common.mp4', " +
78 "0, 6042, -1730634595, 3, 65537, 320, 240, 0, 0, 0, 0)");
79 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(10,") +
80 "'/storage/emulated/0/Movies/4K.mp4', 26162975, 1706950426, 1703905398, '4K', '4K.mp4', " +
81 "90, 5099, -1730634595, 3, 65537, 3840, 2160, 0, 0, 0, 0)");
82 }
83
InitStepTwo()84 void ExternalSource::InitStepTwo()
85 {
86 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(11,") +
87 "'/storage/emulated/0/Movies/1080p.mp4', 6626209, 1706950426, 1703905397, '1080p', '1080p.mp4', " +
88 "90, 4551, -1730634595, 3, 65537, 1920, 1080, 0, 0, 0, 0)");
89 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(12,") +
90 "'/storage/emulated/0/DCIM/Camera/camera_sync.jpg', 2808831, 1706950426, 1546937461, 'camera_sync', " +
91 "'camera_sync.jpg', 0, NULL, -1739773001, 1, 65537, 3968, 2976, 0, 0, 0, 0)");
92 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(13,") +
93 "'/storage/emulated/0/DCIM/Sgame/fake_game.jpg', 3871481, 1706950426, 1546937461, 'fake_game', " +
94 "'fake_game.jpg', 0, NULL, -1288103917, 1, 65537, 3968, 2976, 0, 0, 0, 0)");
95 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(14,") +
96 "'/storage/emulated/0/CTRIP/avatar/fake_garbage_ctrip.jpg', 3184187, 1706950426, 1546937461, " +
97 "'fake_garbage_ctrip', 'fake_garbage_ctrip.jpg', 0, NULL, 876554266, 1, 65537, 3968, 2976, 0, 0, 0, 0)");
98 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(15,") +
99 "'/storage/emulated/0/tencent/MicroMsg/WeiXin/fake_wechat.jpg', 2419880, 1706950426, 1432973383, " +
100 "'fake_wechat', 'fake_wechat.jpg', 0, NULL, -924335728, 1, 65537, 3968, 2976, 0, 0, 0, 0)");
101 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(21,") +
102 "'/storage/emulated/0/DCIM/Camera/camera_not_sync.jpg', 1780813, 1706950561, 1546937461, 'camera_not_sync', " +
103 "'camera_not_sync.jpg', 0, NULL, -1739773001, 1, 65537, 3264, 2448, 0, 0, 0, 0)");
104 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(22,") +
105 "'/storage/emulated/0/CTRIP/avatar/not_sync_garbage_ctrip.jpg', 2767543, 1706950561, 1546937461, " +
106 "'not_sync_garbage_ctrip', 'not_sync_garbage_ctrip.jpg', 0, NULL, 876554266, 1, 65537, 3264, 2448, " +
107 "0, 0, 0, 0)");
108 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(23,") +
109 "'/storage/emulated/0/tencent/MicroMsg/WeiXin/not_sync_weixin.jpg', 3503265, 1706950561, 1546937461, " +
110 "'not_sync_weixin', 'not_sync_weixin.jpg', 0, NULL, -924335728, 1, 65537, 3968, 2976, 0, 0, 0, 0)");
111 }
112
InitStepThree()113 void ExternalSource::InitStepThree()
114 {
115 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(16,") +
116 "'/storage/emulated/0/A/media/Rocket/test/a_media_normal_video.mp4', 10865209, 1708600079, 1708600079," +
117 "'a_media_normal_video', 'a_media_normal_video.mp4', 0, 52221, -1122816831, 3, 65537, 352, 640, 0, 0, 0, 0)");
118 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(17,") +
119 "'/storage/emulated/0/A/media/Rocket/test/a_media_favorite.mp4', 10865209, 1708600079, 1708600079," +
120 "'a_media_favorite', 'a_media_favorite.mp4', 0, 52221, -1122816831, 3, 65537, 352, 640, 0, 1, 0, 0)");
121 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(18,") +
122 "'/storage/emulated/0/A/media/Baidu/a_media_favorite_baidu.mp4', 10865209, 1708600079, 1708600079," +
123 "'a_media_favorite_baidu', 'a_media_favorite_baidu.mp4', 0, 52221, -1122816831, 3, 65537, 352, 640," +
124 "0, 1, 0, 0)");
125 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(19,") +
126 "'/storage/emulated/0/A/media/Baidu/a_media_normal_image.jpg', 418436, 1708602162, 1708602162," +
127 "'a_media_normal_image', 'a_media_normal_image.jpg', 0, 0, -1960413976, 1, 65537, 2000, 3556, 0, 0, 0, 0)");
128 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(20,") +
129 "'/storage/emulated/0/A/media/Baidu/a_media_zero_size.jpg', 0, 1708602162, 1708602162," +
130 "'a_media_zero_size', 'a_media_zero_size.jpg', 0, 0, -1960413976, 1, 65537, 0, 0, 0, 0, 0, 0)");
131 }
132
InitStepFour()133 void ExternalSource::InitStepFour()
134 {
135 externalStorePtr_->ExecuteSql(string("INSERT INTO files VALUES(24,") +
136 "'/storage/emulated/0/Music/audio1.mp3', 10865209, 1708600079, 1708600079," +
137 "'a_media_normal_video', 'audio1.mp3', 0, 52221, -1122816831, 2, 65537, 352, 640, 0, 0, 0, 0)");
138 }
139 } // namespace Media
140 } // namespace OHOS