diff -r a5a39a295112 -r 8baec10861af idlefw/plugins/devicestatus/src/aicontentobserveroptimizer.cpp --- a/idlefw/plugins/devicestatus/src/aicontentobserveroptimizer.cpp Wed Sep 01 12:22:09 2010 +0100 +++ b/idlefw/plugins/devicestatus/src/aicontentobserveroptimizer.cpp Tue Sep 14 21:55:16 2010 +0300 @@ -194,7 +194,24 @@ TInt aContent, TInt aIndex ) { - return iObserver.Clean( aPlugin, aContent, aIndex ); + if ( IsInBlackList( aContent, aIndex ) ) + { + return KErrNotFound; + } + TInt err = iObserver.Clean( aPlugin, aContent, aIndex ); + // Publish went through OK, we need to commit the transaction + if ( err == KErrNone && iTransactionStarted ) + { + iCommitNeeded = ETrue; + } + // publish failed because the ui declaration doesn't + // include this content => add to black list and + // don't try to publish again + else if ( err == KErrNotFound || err == KErrNotSupported ) + { + AddToBlackList( aContent, aIndex ); + } + return err; } MAiContentObserver& CAiContentObserverOptimizer::Observer() const