From 121e2fd46ca109e6aadef0924f8ef9fcd1931bc3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Thu, 24 Nov 2016 04:10:07 +0100 Subject: NOISSUE add analytics settings (enable/disable) --- application/MultiMC.cpp | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) (limited to 'application/MultiMC.cpp') diff --git a/application/MultiMC.cpp b/application/MultiMC.cpp index 2a903437..83bb731d 100644 --- a/application/MultiMC.cpp +++ b/application/MultiMC.cpp @@ -513,14 +513,11 @@ void MultiMC::initAnalytics() { if(BuildConfig.ANALYTICS_ID.isEmpty()) { - qDebug() << "Analytics disabled by build."; - return; - } - if(!m_settings->get("Analytics").toBool()) - { - qDebug() << "Analytics disabled by user."; return; } + + auto analyticsSetting = m_settings->getSetting("Analytics"); + connect(analyticsSetting.get(), &Setting::SettingChanged, this, &MultiMC::analyticsSettingChanged); QString clientID = m_settings->get("AnalyticsClientID").toString(); if(clientID.isEmpty()) { @@ -533,9 +530,15 @@ void MultiMC::initAnalytics() m_analytics->setLogLevel(GAnalytics::Debug); m_analytics->setAnonymizeIPs(true); m_analytics->setNetworkAccessManager(&ENV.qnam()); - m_analytics->startSending(); + + if(!m_settings->get("Analytics").toBool()) + { + qDebug() << "Analytics disabled by user."; + return; + } + + m_analytics->enable(); qDebug() << "Initialized analytics with tid" << BuildConfig.ANALYTICS_ID << "and cid" << clientID; - // TODO: load unsent messages? } void MultiMC::shutdownAnalytics() @@ -546,6 +549,22 @@ void MultiMC::shutdownAnalytics() } } +void MultiMC::analyticsSettingChanged(const Setting&, QVariant value) +{ + if(!m_analytics) + return; + bool enabled = value.toBool(); + if(enabled) + { + qDebug() << "Analytics enabled by user."; + } + else + { + qDebug() << "Analytics disabled by user."; + } + m_analytics->enable(enabled); +} + void MultiMC::initInstances() { auto InstDirSetting = m_settings->getSetting("InstanceDir"); @@ -703,9 +722,12 @@ void MultiMC::initGlobalSettings() // paste.ee API key m_settings->registerSetting("PasteEEAPIKey", "multimc"); - // Analytics - m_settings->registerSetting("Analytics", true); - m_settings->registerSetting("AnalyticsClientID", QString()); + if(!BuildConfig.ANALYTICS_ID.isEmpty()) + { + // Analytics + m_settings->registerSetting("Analytics", true); + m_settings->registerSetting("AnalyticsClientID", QString()); + } // Init page provider { -- cgit v1.2.3