diff -r c5af8598d22c -r e4c884866116 logsui/logsengine/src/logscommondata.cpp --- a/logsui/logsengine/src/logscommondata.cpp Thu Sep 02 20:27:05 2010 +0300 +++ b/logsui/logsengine/src/logscommondata.cpp Fri Sep 17 08:29:34 2010 +0300 @@ -22,18 +22,34 @@ #include "logsengdefs.h" //SYSTEM +#include #include - +#include static LogsCommonData* mLogsCommonInstance = 0; - + +// CONSTANTS + +// Telephony Configuration API +// Keys under this category are used in defining telephony configuration. +const TUid logsTelConfigurationCRUid = {0x102828B8}; + +// Amount of digits to be used in contact matching. +// This allows a customer to variate the amount of digits to be matched. +const TUint32 logsTelMatchDigits = 0x00000001; + +const int logsNotInitialized = -1; + // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- // LogsCommonData::LogsCommonData() : mContactManager(0), mMaxReadSize(-1), - mMaxReadSizeDir(LogsEvent::DirUndefined), mMatchLen(logsDefaultMatchLength) + mMaxReadSizeDir(LogsEvent::DirUndefined), + mSettingsManager(new XQSettingsManager()), + mMatchLen(logsDefaultMatchLength), + mPredictiveSearchStatus(logsNotInitialized) { LOGS_QDEBUG( "logs [ENG] <-> LogsCommonData::LogsCommonData()" ) } @@ -46,6 +62,7 @@ { LOGS_QDEBUG( "logs [ENG] -> LogsCommonData::~LogsCommonData()" ) delete mContactManager; + delete mSettingsManager; LOGS_QDEBUG( "logs [ENG] <- LogsCommonData::~LogsCommonData()" ) } @@ -136,18 +153,110 @@ // // ----------------------------------------------------------------------------- // -void LogsCommonData::setTelNumMatchLen(int matchLen) +int LogsCommonData::telNumMatchLen() const { - mMatchLen = matchLen; + return mMatchLen; +} + + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +int LogsCommonData::predictiveSearchStatus() +{ + if (mPredictiveSearchStatus == logsNotInitialized) { + mPredictiveSearchStatus = getPredictiveSearchStatus(); + } + return mPredictiveSearchStatus; } // ----------------------------------------------------------------------------- // // ----------------------------------------------------------------------------- // -int LogsCommonData::telNumMatchLen() const +int LogsCommonData::getPredictiveSearchStatus() +{ + int status(logsNotInitialized); + LOGS_QDEBUG( "logs [ENG] -> LogsCommonData::getPredictiveSearchStatus()" ) + XQSettingsKey key(XQSettingsKey::TargetCentralRepository, + KCRUidLogs.iUid, + KLogsPredictiveSearch); + QVariant value = mSettingsManager->readItemValue(key, + XQSettingsManager::TypeInt); + if (!value.isNull()) { + status = value.toInt(); + } + LOGS_QDEBUG_2( "logs [ENG] <- LogsCommonData::getPredictiveSearchStatus(), status: ", status ) + return status; +} + + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +int LogsCommonData::setPredictiveSearch(bool enabled) { - return mMatchLen; + int err(-1); + LOGS_QDEBUG_2( "logs [ENG] -> LogsCommonData::setPredictiveSearch(), enabled: ", enabled ) + if (predictiveSearchStatus() != 0) { + XQSettingsKey key(XQSettingsKey::TargetCentralRepository, + KCRUidLogs.iUid, + KLogsPredictiveSearch); + int value = enabled ? 1 : 2; + if (mSettingsManager->writeItemValue(key, QVariant(value))) { + err = 0; + mPredictiveSearchStatus = value; + } + } + LOGS_QDEBUG_2( "logs [ENG] <- LogsCommonData::setPredictiveSearch(), err: ", err ) + return err; +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +int LogsCommonData::clearMissedCallsCounter() +{ + int err(-1); + XQSettingsKey key(XQSettingsKey::TargetCentralRepository, + KCRUidLogs.iUid, + KLogsNewMissedCalls); + QVariant value = mSettingsManager->readItemValue( + key, XQSettingsManager::TypeInt); + if (!value.isNull()) { + err = 0; + if (value.toInt() > 0) { + err = mSettingsManager->writeItemValue(key, 0) ? 0 : -1; + } + } + return err; +} + +// ----------------------------------------------------------------------------- +// +// ----------------------------------------------------------------------------- +// +bool LogsCommonData::getTelNumMatchLen(int& matchLen) +{ + bool ok(false); + //use local manager, since normally this function is called only once, + //after that we can clean related cenrep handler resources + XQSettingsManager manager; + XQSettingsKey key(XQSettingsKey::TargetCentralRepository, + logsTelConfigurationCRUid.iUid, + logsTelMatchDigits); + QVariant value = manager.readItemValue( + key, XQSettingsManager::TypeInt); + if (!value.isNull()) { + matchLen = value.toInt(); + mMatchLen = matchLen; + ok = true; + } + return ok; } // End of file