~aleteoryx/muditaos

6b66737b13adf25c32cdae957524f522cd289403 — RobertPiet 5 years ago 9d35def
[EGD-4354] settings starting script moved to two separated scripts (#1067)

R module-services/service-db/agents/settings/settings.sql => image/user/db/settings_v2_001.sql +3 -28
@@ 1,19 1,11 @@
--x, R"dbInitStr( 
/*
 * Create Settings tables
 */


BEGIN TRANSACTION;
--
-- Main settings table, for string application persistent data
--
CREATE TABLE IF NOT EXISTS settings_tab (
    path TEXT NOT NULL UNIQUE,
    path TEXT NOT NULL UNIQUE PRIMARY KEY,
    value TEXT
);


--
-- Dictionary table, for variables with fixed set of values
--


@@ 46,23 38,6 @@ CREATE TABLE IF NOT EXISTS settings_changed_tab(
        UNIQUE(path ) ON CONFLICT REPLACE
);

CREATE TRIGGER IF NOT EXISTS on_update UPDATE OF value ON settings_tab 
WHEN new.value <> old.value BEGIN INSERT OR REPLACE INTO  settings_changed_tab (path, value) VALUES (new.path,new.value); END;

CREATE TRIGGER IF NOT EXISTS on_update UPDATE OF value ON settings_tab
WHEN new.value <> old.value
    BEGIN
        INSERT OR REPLACE INTO  settings_changed_tab (path, value) VALUES  (new.path,new.value);
    END;



-- ----------- insert default values ----------------------
INSERT OR REPLACE INTO dictionary_tab (path, value) VALUES
    ('system/phone_mode', 'online'),
    ('system/phone_mode', 'offline'),
    ('system/phone_mode', 'dnd');

INSERT OR REPLACE INTO settings_tab (path, value) VALUES
    ('system/phone_mode', 'online');

COMMIT TRANSACTION;
-- )dbInitStr"

A image/user/db/settings_v2_002.sql => image/user/db/settings_v2_002.sql +16 -0
@@ 0,0 1,16 @@
-- ----------- insert default values ----------------------
INSERT OR REPLACE INTO dictionary_tab (path, value) VALUES
    ('system/phone_mode', 'online'),
    ('system/phone_mode', 'offline'),
    ('system/phone_mode', 'dnd');

-- ----------- insert default values -------------------
INSERT OR REPLACE INTO settings_tab (path, value) VALUES
    ('system/phone_mode', 'online'),
    ('timeFormat12', '0'),
    ('timeDateFormat', '1'),
    ('activeSim', '1'),
    ('lockPassHash', '0'),
    ('lockTime', '30000'),
    ('displayLanguage', 'En'),
    ('inputLanguage', 'En');

M module-db/Database/DatabaseInitializer.cpp => module-db/Database/DatabaseInitializer.cpp +2 -2
@@ 58,8 58,8 @@ std::vector<std::string> DatabaseInitializer::readCommands(fs::path filePath)
std::array<std::string, 3> DatabaseInitializer::splitFilename(std::string filename)
{
    auto name    = filename.substr(0, filename.find("."));
    auto prefix  = name.substr(0, name.find("_"));
    auto postfix = name.substr(name.find("_") + 1, std::string::npos);
    auto prefix  = name.substr(0, name.find_last_of("_"));
    auto postfix = name.substr(name.find_last_of("_") + 1, std::string::npos);

    return {name, prefix, postfix};
}

M module-services/service-db/agents/settings/SettingsAgent.cpp => module-services/service-db/agents/settings/SettingsAgent.cpp +1 -7
@@ 24,8 24,6 @@ SettingsAgent::SettingsAgent(sys::Service *parentService) : DatabaseAgent(parent

void SettingsAgent::initDb()
{
    // LOG_DEBUG("sql:\n--\n%s\n--", getDbInitString().c_str());
    database->execute(getDbInitString().c_str());
    auto notifications = database->query(settings::Statements::getAllNotifications);
    if (nullptr == notifications || 0 == notifications->getRowCount()) {
        return;


@@ 82,11 80,7 @@ void SettingsAgent::registerMessages()

auto SettingsAgent::getDbInitString() -> const std::string
{
    auto x          = 0;
    const char *sql = (
#include "settings.sql"
    );
    return sql;
    return {};
}

auto SettingsAgent::getDbFilePath() -> const std::string