23 #include "logslogger.h" |
23 #include "logslogger.h" |
24 #include "logsremove.h" |
24 #include "logsremove.h" |
25 #include "logscommondata.h" |
25 #include "logscommondata.h" |
26 #include <logcli.h> |
26 #include <logcli.h> |
27 #include <f32file.h> |
27 #include <f32file.h> |
28 #include <centralrepository.h> |
28 #include <QApplication> |
29 #include <LogsDomainCRKeys.h> |
|
30 |
|
31 // CONSTANTS |
29 // CONSTANTS |
32 |
30 |
33 // Telephony Configuration API |
|
34 // Keys under this category are used in defining telephony configuration. |
|
35 const TUid logsTelConfigurationCRUid = {0x102828B8}; |
|
36 |
|
37 // Amount of digits to be used in contact matching. |
|
38 // This allows a customer to variate the amount of digits to be matched. |
|
39 const TUint32 logsTelMatchDigits = 0x00000001; |
|
40 |
31 |
41 |
32 |
42 // ---------------------------------------------------------------------------- |
33 // ---------------------------------------------------------------------------- |
43 // LogsDbConnector::LogsDbConnector |
34 // LogsDbConnector::LogsDbConnector |
44 // ---------------------------------------------------------------------------- |
35 // ---------------------------------------------------------------------------- |
50 mCheckAllEvents( checkAllEvents ), |
41 mCheckAllEvents( checkAllEvents ), |
51 mResourceControl( resourceControl ), |
42 mResourceControl( resourceControl ), |
52 mLogClient( 0 ), |
43 mLogClient( 0 ), |
53 mReader( 0 ), |
44 mReader( 0 ), |
54 mLogsRemove( 0 ), |
45 mLogsRemove( 0 ), |
55 mRepository( 0 ), |
46 mCompressionEnabled(false), |
56 mCompressionEnabled(false) |
47 mFirstReadCompleted(false) |
57 { |
48 { |
58 LOGS_QDEBUG( "logs [ENG] <-> LogsDbConnector::LogsDbConnector()" ) |
49 LOGS_QDEBUG( "logs [ENG] <-> LogsDbConnector::LogsDbConnector()" ) |
59 mFsSession = new RFs(); |
50 mFsSession = new RFs(); |
60 } |
51 } |
61 |
52 |
196 mLogEventStrings.iFetched = DESC_TO_QSTRING( logString ); |
185 mLogEventStrings.iFetched = DESC_TO_QSTRING( logString ); |
197 |
186 |
198 mReader = new LogsReader( |
187 mReader = new LogsReader( |
199 *mFsSession, *mLogClient, mLogEventStrings, mEvents, *this, mCheckAllEvents ); |
188 *mFsSession, *mLogClient, mLogEventStrings, mEvents, *this, mCheckAllEvents ); |
200 |
189 |
201 mRepository = CRepository::NewL( KCRUidLogs ); |
|
202 |
|
203 if ( mResourceControl ){ |
190 if ( mResourceControl ){ |
204 LOGS_QDEBUG( "logs [ENG] -> LogsDbConnector::initL(), resource control enabled" ) |
191 LOGS_QDEBUG( "logs [ENG] -> LogsDbConnector::initL(), resource control enabled" ) |
205 LogsCommonData::getInstance().configureReadSize( |
192 LogsCommonData::getInstance().configureReadSize( |
206 logsReadSizeCompressEnabled, LogsEvent::DirUndefined); |
193 logsReadSizeCompressEnabled, LogsEvent::DirUndefined); |
207 mCompressionEnabled = true; |
194 mCompressionEnabled = true; |
208 } |
195 } |
209 |
196 |
210 //Get number of digits used to match |
197 //Get number of digits used to match |
211 int matchLen; |
198 int matchLen; |
212 TRAPD( err, getTelNumMatchLenL(matchLen) ) |
199 LogsCommonData::getInstance().getTelNumMatchLen(matchLen); |
213 if ( err ){ |
|
214 LOGS_QDEBUG( "logs [ENG] Getting tel num match len failed, use default" ); |
|
215 matchLen = logsDefaultMatchLength; |
|
216 } |
|
217 LOGS_QDEBUG_2( "logs [ENG] Tel number match length", matchLen ) |
200 LOGS_QDEBUG_2( "logs [ENG] Tel number match length", matchLen ) |
218 LogsCommonData::getInstance().setTelNumMatchLen(matchLen); |
|
219 } |
201 } |
220 |
202 |
221 // ---------------------------------------------------------------------------- |
203 // ---------------------------------------------------------------------------- |
222 // LogsDbConnector::clearList |
204 // LogsDbConnector::clearList |
223 // ---------------------------------------------------------------------------- |
205 // ---------------------------------------------------------------------------- |
279 |
261 |
280 int err = doMarkEventSeen(); |
262 int err = doMarkEventSeen(); |
281 LOGS_QDEBUG_2( "logs [ENG] <- LogsDbConnector::markEventsSeen(), marking err:", |
263 LOGS_QDEBUG_2( "logs [ENG] <- LogsDbConnector::markEventsSeen(), marking err:", |
282 err ) |
264 err ) |
283 return ( err == 0 ); |
265 return ( err == 0 ); |
284 } |
|
285 |
|
286 // ---------------------------------------------------------------------------- |
|
287 // LogsDbConnector::clearMissedCallsCounter |
|
288 // ---------------------------------------------------------------------------- |
|
289 // |
|
290 int LogsDbConnector::clearMissedCallsCounter() |
|
291 { |
|
292 LOGS_QDEBUG( "logs [ENG] -> LogsDbConnector::clearMissedCallsCounter()" ) |
|
293 if ( !mRepository ){ |
|
294 return -1; |
|
295 } |
|
296 TInt value(0); |
|
297 int err = mRepository->Get( KLogsNewMissedCalls, value ); |
|
298 if ( !err && value != 0 ){ |
|
299 err = mRepository->Set( KLogsNewMissedCalls, 0 ); |
|
300 } |
|
301 LOGS_QDEBUG_2( "logs [ENG] <- LogsDbConnector::clearMissedCallsCounter(), err", err ) |
|
302 return err; |
|
303 } |
266 } |
304 |
267 |
305 // ---------------------------------------------------------------------------- |
268 // ---------------------------------------------------------------------------- |
306 // LogsDbConnector::readDuplicates |
269 // LogsDbConnector::readDuplicates |
307 // ---------------------------------------------------------------------------- |
270 // ---------------------------------------------------------------------------- |
349 if ( mReader ){ |
312 if ( mReader ){ |
350 if ( prevCompressionEnabled && !mReader->IsActive() ){ |
313 if ( prevCompressionEnabled && !mReader->IsActive() ){ |
351 err = mReader->start(); |
314 err = mReader->start(); |
352 } |
315 } |
353 } |
316 } |
|
317 if ( !mLogsRemove ){ |
|
318 mLogsRemove = new LogsRemove( *this, mCheckAllEvents ); |
|
319 } |
354 LOGS_QDEBUG( "logs [ENG] <- LogsDbConnector::refreshData()" ) |
320 LOGS_QDEBUG( "logs [ENG] <- LogsDbConnector::refreshData()" ) |
355 return err; |
321 return err; |
356 } |
322 } |
357 |
323 |
358 // ----------------------------------------------------------------------------- |
324 // ----------------------------------------------------------------------------- |
384 removedIndexes.append(mEvents.at(i)->index()); |
350 removedIndexes.append(mEvents.at(i)->index()); |
385 } |
351 } |
386 } |
352 } |
387 emit dataRemoved(removedIndexes); |
353 emit dataRemoved(removedIndexes); |
388 deleteInvalidEvents( numEventsLeftInMemory ); |
354 deleteInvalidEvents( numEventsLeftInMemory ); |
389 mReader->stop(); |
355 } |
390 } |
356 |
|
357 releaseDbConnections(); |
|
358 |
391 LOGS_QDEBUG( "logs [ENG] <- LogsDbConnector::compressData()" ) |
359 LOGS_QDEBUG( "logs [ENG] <- LogsDbConnector::compressData()" ) |
392 return 0; |
360 return 0; |
393 } |
|
394 |
|
395 // ---------------------------------------------------------------------------- |
|
396 // LogsDbConnector::predictiveSearchStatus |
|
397 // ---------------------------------------------------------------------------- |
|
398 // |
|
399 int LogsDbConnector::predictiveSearchStatus() |
|
400 { |
|
401 LOGS_QDEBUG( "logs [ENG] -> LogsDbConnector::predictiveSearchStatus()" ) |
|
402 int status(-1); |
|
403 if ( mRepository ) { |
|
404 TInt value(0); |
|
405 status = mRepository->Get( KLogsPredictiveSearch, value ); |
|
406 if ( !status ) { |
|
407 status = value; |
|
408 } |
|
409 } |
|
410 LOGS_QDEBUG_2( "logs [ENG] <- LogsDbConnector::predictiveSearchStatus(), status:", |
|
411 status ) |
|
412 return status; |
|
413 } |
|
414 |
|
415 // ---------------------------------------------------------------------------- |
|
416 // LogsDbConnector::setPredictiveSearch |
|
417 // ---------------------------------------------------------------------------- |
|
418 // |
|
419 int LogsDbConnector::setPredictiveSearch(bool enabled) |
|
420 { |
|
421 int err(-1); |
|
422 int status = predictiveSearchStatus(); |
|
423 //if status == 0, it means that predictive search is permanently Off |
|
424 //and we are not allowed to modify it |
|
425 if (status != 0 && mRepository) { |
|
426 int value = enabled ? 1 : 2; |
|
427 err = mRepository->Set( KLogsPredictiveSearch, value ); |
|
428 } |
|
429 return err; |
|
430 } |
361 } |
431 |
362 |
432 // ---------------------------------------------------------------------------- |
363 // ---------------------------------------------------------------------------- |
433 // LogsDbConnector::handleTemporaryError |
364 // LogsDbConnector::handleTemporaryError |
434 // ---------------------------------------------------------------------------- |
365 // ---------------------------------------------------------------------------- |
534 emit dataAdded(mAddedEventIndexes); |
465 emit dataAdded(mAddedEventIndexes); |
535 } |
466 } |
536 if ( !mUpdatedEventIndexes.isEmpty() ){ |
467 if ( !mUpdatedEventIndexes.isEmpty() ){ |
537 emit dataUpdated(mUpdatedEventIndexes); |
468 emit dataUpdated(mUpdatedEventIndexes); |
538 } |
469 } |
539 } |
470 } |
540 |
|
541 qDeleteAll(toBeDeletedEvents); |
471 qDeleteAll(toBeDeletedEvents); |
542 |
472 |
|
473 if ( qApp && !mFirstReadCompleted){ |
|
474 // Just used for testing purposes |
|
475 QMetaObject::invokeMethod(qApp, "testLogsAppEngineReady" ); |
|
476 mFirstReadCompleted = true; |
|
477 } |
|
478 if ( mCompressionEnabled ){ |
|
479 releaseDbConnections(); |
|
480 } |
543 LOGS_QDEBUG( "logs [ENG] <- LogsDbConnector::readCompleted()" ) |
481 LOGS_QDEBUG( "logs [ENG] <- LogsDbConnector::readCompleted()" ) |
544 } |
482 } |
545 |
483 |
546 // ---------------------------------------------------------------------------- |
484 // ---------------------------------------------------------------------------- |
547 // LogsDbConnector::errorOccurred |
485 // LogsDbConnector::errorOccurred |
640 } |
578 } |
641 return continueModify; |
579 return continueModify; |
642 } |
580 } |
643 |
581 |
644 // ---------------------------------------------------------------------------- |
582 // ---------------------------------------------------------------------------- |
645 // LogsDbConnector::getTelNumMatchLenL |
583 // |
646 // ---------------------------------------------------------------------------- |
584 // ---------------------------------------------------------------------------- |
647 // |
585 // |
648 void LogsDbConnector::getTelNumMatchLenL(int& matchLen) |
586 void LogsDbConnector::releaseDbConnections() |
649 { |
587 { |
650 TInt tempMatchLen; |
588 LOGS_QDEBUG( "logs [ENG] -> LogsDbConnector::releaseDbConnections()" ) |
651 CRepository* repository = CRepository::NewL(logsTelConfigurationCRUid); |
589 if ( mReader ){ |
652 CleanupStack::PushL(repository); |
590 mReader->stop(); |
653 User::LeaveIfError( repository->Get(logsTelMatchDigits, tempMatchLen) ); |
591 } |
654 CleanupStack::PopAndDestroy(repository); |
592 delete mLogsRemove; |
655 matchLen = tempMatchLen; |
593 mLogsRemove = 0; |
656 } |
594 LOGS_QDEBUG( "logs [ENG] <- LogsDbConnector::releaseDbConnections()" ) |
|
595 } |