idlefw/plugins/devicestatus/src/aicontentobserveroptimizer.cpp
branchRCL_3
changeset 31 8baec10861af
parent 30 a5a39a295112
--- 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