NOISSUE add analytics settings (enable/disable)

This commit is contained in:
Petr Mrázek
2016-11-24 04:10:07 +01:00
parent 295c6e808a
commit 121e2fd46c
8 changed files with 156 additions and 53 deletions

View File

@@ -23,10 +23,31 @@ GAnalyticsWorker::GAnalyticsWorker(GAnalytics *parent)
m_language = QLocale::system().name().toLower().replace("_", "-");
m_screenResolution = getScreenResolution();
m_timer.start(30000);
m_timer.setInterval(m_timerInterval);
connect(&m_timer, &QTimer::timeout, this, &GAnalyticsWorker::postMessage);
}
void GAnalyticsWorker::enable(bool state)
{
// state change to the same is not valid.
if(m_isEnabled == state)
{
return;
}
m_isEnabled = state;
if(m_isEnabled)
{
// enable -> start doing things :)
m_timer.start();
}
else
{
// disable -> stop the timer
m_timer.stop();
}
}
void GAnalyticsWorker::logMessage(GAnalytics::LogLevel level, const QString &message)
{
if (m_logLevel > level)
@@ -145,30 +166,6 @@ void GAnalyticsWorker::enqueQueryWithCurrentTime(const QUrlQuery &query)
m_messageQueue.enqueue(buffer);
}
/**
* Change status of class. Emit signal that status was changed.
*/
void GAnalyticsWorker::setIsSending(bool doSend)
{
if (doSend)
{
m_timer.stop();
}
else
{
m_timer.start();
}
bool changed = (m_isSending != doSend);
m_isSending = doSend;
if (changed)
{
emit q->isSendingChanged(m_isSending);
}
}
/**
* This function is called by a timer interval.
* The function tries to send a messages from the queue.
@@ -183,12 +180,14 @@ void GAnalyticsWorker::postMessage()
{
if (m_messageQueue.isEmpty())
{
setIsSending(false);
// queue empty -> try sending later
m_timer.start();
return;
}
else
{
setIsSending(true);
// queue has messages -> stop timer and start sending
m_timer.stop();
}
QString connection = "close";
@@ -243,8 +242,8 @@ void GAnalyticsWorker::postMessageFinished()
{
logMessage(GAnalytics::Error, QString("Error posting message: %s").arg(reply->errorString()));
// An error ocurred.
setIsSending(false);
// An error ocurred. Try sending later.
m_timer.start();
return;
}
else