diff --git a/src/libs/core/Android/tandroid.cpp b/src/libs/core/Android/tandroid.cpp new file mode 100644 index 0000000000000000000000000000000000000000..a4b6a28173f70fb5a17b9065ac9ba42e75509f77 --- /dev/null +++ b/src/libs/core/Android/tandroid.cpp @@ -0,0 +1,43 @@ +/*************************************************************************** + * Copyright (C) 2015 by Tomasz Bojczuk * + * tomaszbojczuk@gmail.com * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see <http://www.gnu.org/licenses/>. * + ***************************************************************************/ + + +#include "tandroid.h" +#include <QtAndroidExtras/qandroidfunctions.h> + + +void Tandroid::setScreenLockDisabled() { + QAndroidJniObject activity = QtAndroid::androidActivity(); + if (activity.isValid()) { + QAndroidJniObject window = activity.callObjectMethod("getWindow", "()Landroid/view/Window;"); + if (window.isValid()) { + const int FLAG_KEEP_SCREEN_ON = 128; + const int FLAG_FULLSCREEN = 1024; +// const int FLAG_FORCE_NOT_FULLSCREEN = 2048; + window.callObjectMethod("addFlags", "(I)V", FLAG_KEEP_SCREEN_ON | FLAG_FULLSCREEN); + } + } +} + + +QString Tandroid::accountName() { + return "fake"; +// return QAndroidJniObject::callStaticObjectMethod<jstring> +// ("net/sf/nootka/account", +// "getName").toString(); +} diff --git a/src/libs/core/Android/tandroid.h b/src/libs/core/Android/tandroid.h new file mode 100644 index 0000000000000000000000000000000000000000..9071133812ddb7958f3ccd7c30c2d71470e0f63b --- /dev/null +++ b/src/libs/core/Android/tandroid.h @@ -0,0 +1,37 @@ +/*************************************************************************** + * Copyright (C) 2015 by Tomasz Bojczuk * + * tomaszbojczuk@gmail.com * + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 3 of the License, or * + * (at your option) any later version. * + * * + * This program is distributed in the hope that it will be useful, * + * but WITHOUT ANY WARRANTY; without even the implied warranty of * + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * + * GNU General Public License for more details. * + * * + * You should have received a copy of the GNU General Public License * + * along with this program. If not, see <http://www.gnu.org/licenses/>. * + ***************************************************************************/ + + +#ifndef TANDROID_H +#define TANDROID_H + +#include <QtCore/qstring.h> + +/** + * Android functions requiring invoking native methods through JNI + */ +namespace Tandroid { + + /** Sets phone/tablet screen saving disabled. */ + void setScreenLockDisabled(); + QString accountName(); + +} + + +#endif // TANDROID_H diff --git a/src/libs/core/tglobals.cpp b/src/libs/core/tglobals.cpp index bbcc9479b689131caaa172ea6099d66c922fb56b..b5c2042995ca092e591614f2d9cddfc2dc3d461c 100644 --- a/src/libs/core/tglobals.cpp +++ b/src/libs/core/tglobals.cpp @@ -227,8 +227,14 @@ void Tglobals::loadSettings(QSettings* cfg) { E->repeatIncorrect = cfg->value("repeatIncorrect", true).toBool(); E->expertsAnswerEnable = cfg->value("expertsAnswerEnable", false).toBool(); E->studentName = cfg->value("studentName", "").toString(); +#if defined (Q_OS_ANDROID) + E->examsDir = cfg->value("examsDir", qgetenv("EXTERNAL_STORAGE")).toString(); + E->levelsDir = cfg->value("levelsDir", qgetenv("EXTERNAL_STORAGE")).toString(); + qDebug() << "Android user name:" << qgetenv("USER") << qgetenv("EXTERNAL_STORAGE"); +#else E->examsDir = cfg->value("examsDir", QDir::homePath()).toString(); E->levelsDir = cfg->value("levelsDir", QDir::homePath()).toString(); +#endif E->closeWithoutConfirm = cfg->value("closeWithoutConfirm", false).toBool(); E->showCorrected = cfg->value("showCorrected", true).toBool(); E->mistakePreview = cfg->value("mistakePreview", 3000).toInt(); @@ -266,22 +272,19 @@ void Tglobals::loadSettings(QSettings* cfg) { A->skipStillerVal = cfg->value("skipStillerThan", 80.0).toReal(); cfg->endGroup(); + cfg->beginGroup("layout"); + L->soundViewEnabled = cfg->value("soundViewEnabled", true).toBool(); + L->guitarEnabled = cfg->value("guitarEnabled", true).toBool(); #if defined (Q_OS_ANDROID) + // override some options not supported under mobile systems enableTouch = true; L->toolBarAutoHide = true; L->iconTextOnToolBar = Qt::ToolButtonTextBesideIcon; L->hintsBarEnabled = false; - L->soundViewEnabled = false; - L->guitarEnabled = true; - S->keySignatureEnabled = true; - S->doubleAccidentalsEnabled = true; #else - cfg->beginGroup("layout"); L->toolBarAutoHide = cfg->value("toolBarAutoHide", false).toBool(); L->iconTextOnToolBar = Qt::ToolButtonStyle(cfg->value("iconTextOnToolBar", 3).toInt()); L->hintsBarEnabled = cfg->value("hintsBarEnabled", true).toBool(); - L->soundViewEnabled = cfg->value("soundViewEnabled", true).toBool(); - L->guitarEnabled = cfg->value("guitarEnabled", true).toBool(); cfg->endGroup(); #endif diff --git a/src/libs/core/tinitcorelib.cpp b/src/libs/core/tinitcorelib.cpp index 97622bc59148e1d6c919d156cfef9de6c77bb27b..bf8a7ded9db4fa70768695dc0f0f778284d8384c 100644 --- a/src/libs/core/tinitcorelib.cpp +++ b/src/libs/core/tinitcorelib.cpp @@ -22,13 +22,16 @@ #include "widgets/tpushbutton.h" #include "tcolor.h" #include "tscoreparams.h" -#include <QApplication> -#include <QMessageBox> -#include <QTranslator> -#include <QLibraryInfo> -#include <QFontDatabase> -#include <QDebug> -#include <QDir> +#include <QtWidgets/qapplication.h> +#include <QtWidgets/qmessagebox.h> +#include <QtCore/qtranslator.h> +#include <QtCore/qlibraryinfo.h> +#include <QtGui/qfontdatabase.h> +#include <QtCore/qdebug.h> +#include <QtCore/qdir.h> +#if defined (Q_OS_ANDROID) + #include "Android/tandroid.h" +#endif Tglobals* Tcore::m_gl = 0; @@ -39,7 +42,6 @@ bool initCoreLibrary() { qDebug() << "Tglobals was not created. Construct it first!"; return false; } - Ttune::prepareDefinedTunes(); Tcolor::setShadow(qApp->palette()); #if defined(Q_OS_MAC) TpushButton::setCheckColor(Tcore::gl()->S->pointerColor, qApp->palette().base().color()); @@ -54,6 +56,7 @@ bool initCoreLibrary() { #endif #if defined (Q_OS_ANDROID) qApp->addLibraryPath(qApp->applicationDirPath()); + Tandroid::setScreenLockDisabled(); // TODO: interact with some settings option #endif return true; } @@ -91,6 +94,7 @@ void prepareTranslations(QApplication* a, QTranslator& qt, QTranslator& noo) { TkeySignature::setNameStyle(Tcore::gl()->S->nameStyleInKeySign, Tcore::gl()->S->majKeyNameSufix, Tcore::gl()->S->minKeyNameSufix); + Ttune::prepareDefinedTunes(); }