~aleteoryx/muditaos

ref: c25ad794213acd3226463d08e39c60b52672b50b muditaos/module-db/Tables/SettingsTable.cpp -rw-r--r-- 5.0 KiB
c25ad794 — RobertPiet Revert "[EGD-3572] SettingsTable exchanged to Settings::Settings (#968)" (#1035) 5 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "SettingsTable.hpp"
#include "magic_enum.hpp"

SettingsTable::SettingsTable(Database *db) : Table(db)
{}

SettingsTable::~SettingsTable()
{}

bool SettingsTable::create()
{
    bool ret = true;
    ret      = db->execute(createTableQuery);
    if (!ret) {
        return false;
    }

    ret = db->execute(settingsInitialization);
    return ret;
}

SettingsTableRow SettingsTable::getById(uint32_t id)
{

    auto retQuery = db->query("SELECT * FROM settings WHERE _id= 1;");

    if ((retQuery == nullptr) || (retQuery->getRowCount() == 0)) {
        return SettingsTableRow();
    }

    if (!Language::ValidateLanguage(static_cast<SettingsLanguage>((*retQuery)[16].getUInt32())) ||
        !Language::ValidateLanguage(static_cast<SettingsLanguage>((*retQuery)[17].getUInt32()))) {
        return SettingsTableRow{
            1,
            false,
            true,
            true,
            true,
            0,
            0,
            SettingsPinMode::DAYS,
            0,
            0,
            "",
            "",
            1,
            "",
            0,
            30000, // time of inactivity of the user after which phone will be automatically blocked.
            SettingsLanguage::ENGLISH,
            SettingsLanguage::ENGLISH};
    }

    return SettingsTableRow{
        (*retQuery)[0].getUInt32(),                                 // ID
        (*retQuery)[1].getBool(),                                   // timeFormat12
        (*retQuery)[2].getBool(),                                   // timeAuto
        (*retQuery)[3].getBool(),                                   // timeDateFormat
        (*retQuery)[4].getBool(),                                   // brightnessAuto
        (*retQuery)[5].getUInt32(),                                 // brightnessLevel
        (*retQuery)[6].getUInt32(),                                 // fontSize
        static_cast<SettingsPinMode>((*retQuery)[7].getUInt32()),   // pinMode
        (*retQuery)[8].getUInt32(),                                 // pinDays
        (*retQuery)[9].getUInt32(),                                 // pinDaysLeft
        (*retQuery)[10].getString(),                                // pin1
        (*retQuery)[11].getString(),                                // pin2
        (*retQuery)[12].getUInt32(),                                // activeSIM
        (*retQuery)[13].getString(),                                // networkOperator
        (*retQuery)[14].getUInt32(),                                // lockPassHash
        (*retQuery)[15].getUInt32(),                                // lockTime
        static_cast<SettingsLanguage>((*retQuery)[16].getUInt32()), // displayLanguage
        static_cast<SettingsLanguage>((*retQuery)[17].getUInt32()), // inputLanguage

    };
}

bool SettingsTable::update(SettingsTableRow entry)
{
    return db->execute("UPDATE settings SET time_format_12 = %lu, time_auto = %lu, time_date_format = %lu "
                       ",brightness_auto = %lu, brightness_level = %lu, "
                       "bigger_font = %lu, pin_mode =%lu, pin_days = %lu ,pin_days_left = %lu, pin1_string = '%q', "
                       "pin2_string = '%q', active_sim = %lu, "
                       "network_operator = '%q', lock_pass_hash = %lu, lock_time = %lu, display_language = %lu, "
                       "input_language = %lu WHERE _id=1;",
                       entry.timeFormat12,
                       entry.timeAuto,
                       entry.timeDateFormat,
                       entry.brightnessAuto,
                       entry.brightnessLevel,
                       entry.fontSize,
                       entry.pinMode,
                       entry.pinDays,
                       entry.pinDaysLeft,
                       entry.pin1.c_str(),
                       entry.pin2.c_str(),
                       entry.activeSIM,
                       entry.networkOperator.c_str(),
                       entry.lockPassHash,
                       entry.lockTime,
                       entry.displayLanguage,
                       entry.inputLanguage);
}

bool SettingsTable::add(SettingsTableRow entry)
{
    // dummy
    return true;
}

bool SettingsTable::removeById(uint32_t id)
{
    return true;
}

std::vector<SettingsTableRow> SettingsTable::getLimitOffset(uint32_t offset, uint32_t limit)
{
    return std::vector<SettingsTableRow>{};
}

std::vector<SettingsTableRow> SettingsTable::getLimitOffsetByField(uint32_t offset,
                                                                   uint32_t limit,
                                                                   SettingsTableFields field,
                                                                   const char *str)
{
    return std::vector<SettingsTableRow>{};
}

uint32_t SettingsTable::count()
{
    return 0;
}

uint32_t SettingsTable::countByFieldId(const char *field, uint32_t id)
{
    return 0;
}