mirror of
https://github.com/Quill-OS/quill.git
synced 2024-12-26 23:57:22 -08:00
Implement battery alerts in Reader framework
This commit is contained in:
parent
99676137e4
commit
9163689cac
6 changed files with 84 additions and 51 deletions
|
@ -60,7 +60,7 @@ alert::alert(QWidget *parent) :
|
||||||
ui->warningLabel->setText("Please charge your eReader.");
|
ui->warningLabel->setText("Please charge your eReader.");
|
||||||
ui->securityLabel->setText("The battery's charge level is critical.");
|
ui->securityLabel->setText("The battery's charge level is critical.");
|
||||||
ui->messageLabel->setText("To prevent filesystem damage, your device has been turned off.\nPlease consider charging it.");
|
ui->messageLabel->setText("To prevent filesystem damage, your device has been turned off.\nPlease consider charging it.");
|
||||||
poweroff(false);
|
//poweroff(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
ui->warningLabel->setStyleSheet("QLabel { background-color : black; color : white; font-size: 16pt}");
|
ui->warningLabel->setStyleSheet("QLabel { background-color : black; color : white; font-size: 16pt}");
|
||||||
|
|
|
@ -20,6 +20,7 @@ namespace global {
|
||||||
inline int pageNumber;
|
inline int pageNumber;
|
||||||
inline int bookNumber;
|
inline int bookNumber;
|
||||||
inline bool skipOpenDialog;
|
inline bool skipOpenDialog;
|
||||||
|
inline bool startBatteryWatchdog;
|
||||||
}
|
}
|
||||||
namespace mainwindow {
|
namespace mainwindow {
|
||||||
inline bool updateDialog;
|
inline bool updateDialog;
|
||||||
|
|
4
main.cpp
4
main.cpp
|
@ -58,6 +58,10 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
// If we're waking from sleep and we have the lockscreen enabled, we'll "resume" the book from scratch
|
// If we're waking from sleep and we have the lockscreen enabled, we'll "resume" the book from scratch
|
||||||
if(checkconfig("/tmp/suspendBook") == true) {
|
if(checkconfig("/tmp/suspendBook") == true) {
|
||||||
|
// Start the low/critical battery alert timer from the Reader framework since MainWindow is not going to be shown
|
||||||
|
global::reader::startBatteryWatchdog = true;
|
||||||
|
global::reader::skipOpenDialog = true;
|
||||||
|
|
||||||
string_writeconfig("/inkbox/skip_opendialog", "true");
|
string_writeconfig("/inkbox/skip_opendialog", "true");
|
||||||
QApplication a(argc, argv);
|
QApplication a(argc, argv);
|
||||||
reader w;
|
reader w;
|
||||||
|
|
|
@ -294,6 +294,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
t->start();
|
t->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Battery watchdog
|
||||||
QTimer *batteryWatchdog = new QTimer(this);
|
QTimer *batteryWatchdog = new QTimer(this);
|
||||||
batteryWatchdog->setInterval(2000);
|
batteryWatchdog->setInterval(2000);
|
||||||
connect(batteryWatchdog, &QTimer::timeout, [&]() {
|
connect(batteryWatchdog, &QTimer::timeout, [&]() {
|
||||||
|
|
126
reader.cpp
126
reader.cpp
|
@ -24,6 +24,7 @@ reader::reader(QWidget *parent) :
|
||||||
{
|
{
|
||||||
// Variables
|
// Variables
|
||||||
global::battery::showLowBatteryDialog = true;
|
global::battery::showLowBatteryDialog = true;
|
||||||
|
global::battery::showCriticalBatteryAlert = true;
|
||||||
|
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
ui->previousBtn->setProperty("type", "borderless");
|
ui->previousBtn->setProperty("type", "borderless");
|
||||||
|
@ -218,20 +219,6 @@ reader::reader(QWidget *parent) :
|
||||||
get_battery_level();
|
get_battery_level();
|
||||||
ui->batteryLabel->setText(batt_level);
|
ui->batteryLabel->setText(batt_level);
|
||||||
ui->timeLabel->setText(time);
|
ui->timeLabel->setText(time);
|
||||||
if(global::battery::showLowBatteryDialog != true) {
|
|
||||||
// Do nothing, since a dialog should already have been displayed and (probably) dismissed
|
|
||||||
;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(global::battery::batteryAlertLock == true) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(isBatteryLow() == true) {
|
|
||||||
openLowBatteryDialog();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} );
|
} );
|
||||||
t->start();
|
t->start();
|
||||||
}
|
}
|
||||||
|
@ -243,20 +230,6 @@ reader::reader(QWidget *parent) :
|
||||||
get_battery_level();
|
get_battery_level();
|
||||||
ui->batteryLabel->setText(batt_level);
|
ui->batteryLabel->setText(batt_level);
|
||||||
ui->timeLabel->setText(time);
|
ui->timeLabel->setText(time);
|
||||||
if(global::battery::showLowBatteryDialog != true) {
|
|
||||||
// Do nothing, since a dialog should already have been displayed and (probably) dismissed
|
|
||||||
;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(global::battery::batteryAlertLock == true) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if(isBatteryLow() == true) {
|
|
||||||
openLowBatteryDialog();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} );
|
} );
|
||||||
t->start();
|
t->start();
|
||||||
}
|
}
|
||||||
|
@ -301,28 +274,30 @@ reader::reader(QWidget *parent) :
|
||||||
select_t->start();
|
select_t->start();
|
||||||
|
|
||||||
// We have to get the file's path
|
// We have to get the file's path
|
||||||
if(checkconfig("/tmp/suspendBook") == true) {
|
|
||||||
wakeFromSleep = true;
|
|
||||||
// Prevent from opening the Reader framework next time unless the condition is reset
|
|
||||||
string_writeconfig("/tmp/suspendBook", "false");
|
|
||||||
book_file = "/inkbox/book/book.txt";
|
|
||||||
}
|
|
||||||
if(global::reader::skipOpenDialog == true) {
|
if(global::reader::skipOpenDialog == true) {
|
||||||
if(global::reader::bookNumber == 1) {
|
if(checkconfig("/tmp/suspendBook") == true) {
|
||||||
string_checkconfig(".config/08-recent_books/1");
|
wakeFromSleep = true;
|
||||||
book_file = checkconfig_str_val;
|
// Prevent from opening the Reader framework next time unless the condition is reset
|
||||||
|
string_writeconfig("/tmp/suspendBook", "false");
|
||||||
|
book_file = "/inkbox/book/book.txt";
|
||||||
}
|
}
|
||||||
if(global::reader::bookNumber == 2) {
|
else {
|
||||||
string_checkconfig(".config/08-recent_books/2");
|
if(global::reader::bookNumber == 1) {
|
||||||
book_file = checkconfig_str_val;
|
string_checkconfig(".config/08-recent_books/1");
|
||||||
}
|
book_file = checkconfig_str_val;
|
||||||
if(global::reader::bookNumber == 3) {
|
}
|
||||||
string_checkconfig(".config/08-recent_books/3");
|
if(global::reader::bookNumber == 2) {
|
||||||
book_file = checkconfig_str_val;
|
string_checkconfig(".config/08-recent_books/2");
|
||||||
}
|
book_file = checkconfig_str_val;
|
||||||
if(global::reader::bookNumber == 4) {
|
}
|
||||||
string_checkconfig(".config/08-recent_books/4");
|
if(global::reader::bookNumber == 3) {
|
||||||
book_file = checkconfig_str_val;
|
string_checkconfig(".config/08-recent_books/3");
|
||||||
|
book_file = checkconfig_str_val;
|
||||||
|
}
|
||||||
|
if(global::reader::bookNumber == 4) {
|
||||||
|
string_checkconfig(".config/08-recent_books/4");
|
||||||
|
book_file = checkconfig_str_val;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -471,6 +446,47 @@ reader::reader(QWidget *parent) :
|
||||||
string_writeconfig(".config/08-recent_books/3", str_book_2);
|
string_writeconfig(".config/08-recent_books/3", str_book_2);
|
||||||
string_writeconfig(".config/08-recent_books/4", str_book_3);
|
string_writeconfig(".config/08-recent_books/4", str_book_3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Battery watchdog
|
||||||
|
if(global::reader::startBatteryWatchdog == true) {
|
||||||
|
QTimer *t = new QTimer(this);
|
||||||
|
t->setInterval(2000);
|
||||||
|
connect(t, &QTimer::timeout, [&]() {
|
||||||
|
// Checking if battery level is low
|
||||||
|
if(global::battery::showCriticalBatteryAlert != true) {
|
||||||
|
;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(isBatteryCritical() == true) {
|
||||||
|
qDebug() << "Warning! Battery is at a critical charge level!";
|
||||||
|
openCriticalBatteryAlertWindow();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(global::battery::showLowBatteryDialog != true) {
|
||||||
|
// Do nothing, since a dialog should already have been displayed and (probably) dismissed
|
||||||
|
;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if(isBatteryLow() == true) {
|
||||||
|
if(global::battery::batteryAlertLock == true) {
|
||||||
|
;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
qDebug() << "Warning! Battery is low!";
|
||||||
|
string_checkconfig_ro("/sys/devices/platform/pmic_battery.1/power_supply/mc13892_bat/status");
|
||||||
|
if(checkconfig_str_val == "Charging\n") {
|
||||||
|
;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
openLowBatteryDialog();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
t->start();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
reader::~reader()
|
reader::~reader()
|
||||||
|
@ -1065,11 +1081,21 @@ void reader::quit_restart() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void reader::openLowBatteryDialog() {
|
void reader::openLowBatteryDialog() {
|
||||||
global::battery::batteryAlertLock = true;
|
|
||||||
global::battery::showLowBatteryDialog = false;
|
|
||||||
global::mainwindow::lowBatteryDialog = true;
|
global::mainwindow::lowBatteryDialog = true;
|
||||||
|
global::battery::batteryAlertLock = true;
|
||||||
|
|
||||||
generalDialogWindow = new generalDialog(this);
|
generalDialogWindow = new generalDialog(this);
|
||||||
generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose);
|
generalDialogWindow->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
generalDialogWindow->show();
|
generalDialogWindow->show();
|
||||||
|
QApplication::processEvents();
|
||||||
|
}
|
||||||
|
|
||||||
|
void reader::openCriticalBatteryAlertWindow() {
|
||||||
|
global::battery::showCriticalBatteryAlert = true;
|
||||||
|
global::battery::showLowBatteryDialog = false;
|
||||||
|
|
||||||
|
alertWindow = new alert();
|
||||||
|
alertWindow->setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
alertWindow->setGeometry(QRect(QPoint(0,0), screen()->geometry ().size()));
|
||||||
|
alertWindow->show();
|
||||||
}
|
}
|
||||||
|
|
1
reader.h
1
reader.h
|
@ -68,6 +68,7 @@ public:
|
||||||
void wordwidget_show();
|
void wordwidget_show();
|
||||||
void wordwidget_hide();
|
void wordwidget_hide();
|
||||||
void openLowBatteryDialog();
|
void openLowBatteryDialog();
|
||||||
|
void openCriticalBatteryAlertWindow();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void on_nextBtn_clicked();
|
void on_nextBtn_clicked();
|
||||||
|
|
Loading…
Reference in a new issue