"SELECT details FROM theme WHERE id = ?";
const char kSelectDefaultQuery[] =
"SELECT details FROM theme WHERE is_default = 'true'";
+const char kSelectCurrentQuery[] =
+ "SELECT details FROM theme WHERE id = (SELECT current FROM THEME_SETTING)";
const char kSelectIdsQuery[] = "SELECT id FROM theme";
const char kCreateThemeSettingTableQuery[] =
"CREATE TABLE IF NOT EXISTS theme_setting (\n"
return b;
}
+tizen_base::Bundle DbManager::SelectCurrent() {
+ std::unique_ptr<SQLiteStatement> stmt =
+ conn_->PrepareStatement(kSelectCurrentQuery);
+ if (!stmt) {
+ LOG(ERROR) << "Failed to prepare statement";
+ return {};
+ }
+
+ if (stmt->Step() != SQLiteStatement::StepResult::ROW) {
+ LOG(ERROR) << "Failed to select default ThemeInfo";
+ return {};
+ }
+
+ int idx = 0;
+ std::vector<unsigned char> v = stmt->GetColumnBlob(idx++);
+ std::string raw(reinterpret_cast<char const*>(v.data()), v.size());
+ tizen_base::Bundle b(raw);
+
+ return b;
+}
+
std::vector<std::string> DbManager::SelectIds() {
std::unique_ptr<SQLiteStatement> stmt =
conn_->PrepareStatement(kSelectIdsQuery);
bool Delete(const std::string& id);
tizen_base::Bundle Select(const std::string& id);
tizen_base::Bundle SelectDefault();
+ tizen_base::Bundle SelectCurrent();
std::vector<std::string> SelectIds();
bool UpdateCurrentId(const std::string& id);
void AddPackageEventListener(IThemePackageEvent* listener);
std::make_shared<loader::ThemeInfo>(db_manager_->SelectDefault());
if (!default_theme_)
LOG(WARNING) << "Cannot load default theme";
+ cur_theme_ =
+ std::make_shared<loader::ThemeInfo>(db_manager_->SelectCurrent());
+ if (!cur_theme_)
+ LOG(WARNING) << "Cannot load current theme";
}
std::shared_ptr<loader::ThemeInfo> ThemeInfoProxy::LoadTheme(
b.Add("is_default", "true");
b.Add("some_default_key", "some_default_value");
db_manager.Insert(b);
+ db_manager.UpdateCurrentId("default_id");
proxy_ = std::make_unique<ThemeInfoProxy>(kTestDb);
b_.Add("id", "testid");
TEST_F(ThemeInfoProxyTest, GetDefaultTheme) {
EXPECT_NE(proxy_->GetDefaultTheme(), nullptr);
}
+
+TEST_F(ThemeInfoProxyTest, GetLoadedTheme) {
+ EXPECT_NE(proxy_->GetLoadedTheme(), nullptr);
+}