TiAnalyticsObject::TiAnalyticsObject(NativeObjectFactory* objectFactory) : TiProxy("Analytics"), sequence_(1) { objectFactory_ = objectFactory; // if analytics is false just return bool analytics = defaultSettings.value("analytics").toBool(); if (analytics == true) { // get unique application id QString aguid = defaultSettings.value("aguid").toString(); aguid_ = aguid.toLocal8Bit(); // get unique mobile device id bb::device::HardwareInfo hdi; QString mid = hdi.pin(); mid_ = mid.toLocal8Bit(); // generate the session id QString sid = QUuid::createUuid().toString(); sid.replace("{", ""); sid.replace("}", ""); sid_ = sid.toLocal8Bit(); // get deploy type if development or production QString deployType = defaultSettings.value("deploytype").toString(); deployType_ = deployType.toLocal8Bit(); // application version QString appVersion = defaultSettings.value("version").toString(); appVersion_ = appVersion.toLocal8Bit(); QUrl analyticsSite("https://api.appcelerator.net/p/v3/mobile-track/" + aguid); request_.setUrl(analyticsSite); // Async callbacks to notify application of HTTP events eventHandler_ = new TiAnalyticsHandler(this); QObject::connect(&networkAccessManager_, SIGNAL(finished(QNetworkReply*)), eventHandler_, SLOT(finished(QNetworkReply*))); QObject::connect(&networkAccessManager_, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), eventHandler_, SLOT(errors(QNetworkReply*))); // Hook application life cycle events QObject::connect(bb::cascades::Application::instance(), SIGNAL(thumbnail()), eventHandler_, SLOT(thumbnail())); QObject::connect(bb::cascades::Application::instance(), SIGNAL(fullscreen()), eventHandler_, SLOT(fullscreen())); QObject::connect(bb::cascades::Application::instance(), SIGNAL(manualExit()), eventHandler_, SLOT(manualExit())); if (createAnalyticsDatabase()) { addAnalyticsEvent("ti.enroll"); } addAnalyticsEvent("ti.start"); sendPendingAnalyticsEvents(); // Set up timer and every 10 minutes send out analytics events if any are pending TiAnalyticsHandler* eventHandler = new TiAnalyticsHandler(this); timer_ = new QTimer(eventHandler); QObject::connect(timer_, SIGNAL(timeout()), eventHandler, SLOT(sendPendingRequests())); timer_->start(60000*10); }
//! [0] LocationDiagnostics::LocationDiagnostics(QObject *parent) : QObject(parent) { // Load default values from persistent storage QSettings settings; m_positionMethod = settings.value("positionMethod", "all").toString(); m_assistanceMode = settings.value("assistanceMode", "password").toString(); m_frequency = settings.value("frequency", "1").toInt(); m_useSound = settings.value("useSound", true).toBool(); m_backgroundMode = settings.value("backgroundMode", true).toBool(); connect(qApp, SIGNAL(manualExit()), SLOT(onManualExit())); }