servicewidget/servicewidgetdatapublisher/src/cservicewidgetcontentpublisher.cpp
branchRCL_3
changeset 22 3104fc151679
parent 21 2b7283837edb
child 23 9a48e301e94b
--- a/servicewidget/servicewidgetdatapublisher/src/cservicewidgetcontentpublisher.cpp	Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,541 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  class to publish the data into widget
-*                
-*
-*/
-
-#include "cservicewidgetcontentpublisher.h"
-
-#include <liwservicehandler.h>
-#include <liwvariant.h>
-#include <liwgenericparam.h>
-#include <avkon.hrh>
-#include <aknnotewrappers.h> 
-#include "swpdebugtrace.h"
-
-#include <liwcommon.h>
-#include "servicewidgetcpglobals.h"
-#include <servicewidgetpluginres.rsg>
-#include <StringLoader.h>
-
-#include <spsettings.h> 
-#include <spentry.h>
-
-#define KSW_LIST_GRANULARITY 8
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::CServiceWidgetContentPublisher
-// ---------------------------------------------------------------------------
-// 
-CServiceWidgetContentPublisher::CServiceWidgetContentPublisher(MServiceWidgetEventObserver& aObserver )
-   :iObserver( aObserver )
-    {
-   TRACE_SWP(TXT("CServiceWidgetContentPublisher::CServiceWidgetContentPublisher") );
-   }
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::NewL
-// ---------------------------------------------------------------------------
-// 
-CServiceWidgetContentPublisher* CServiceWidgetContentPublisher::NewL(MServiceWidgetEventObserver& aObserver)
-    {
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::NewL() start") );
-    CServiceWidgetContentPublisher* self = NewLC(aObserver);
-    CleanupStack::Pop(self);
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::NewL() End") );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::NewLC
-// ---------------------------------------------------------------------------
-// 
-CServiceWidgetContentPublisher* CServiceWidgetContentPublisher::NewLC(MServiceWidgetEventObserver& aObserver)
-    {
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::NewLC() start") );
-    CServiceWidgetContentPublisher* self =
-        new (ELeave) CServiceWidgetContentPublisher(aObserver);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::NewLC() End") );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::ConstructL
-// ---------------------------------------------------------------------------
-// ConstructL is called by the application framework
-void CServiceWidgetContentPublisher::ConstructL()
-    {
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::ConstructL() start") );
-	iMsgInterface = GetMessagingInterfaceL();
-	TRACE_SWP(TXT("CServiceWidgetContentPublisher::ConstructL() End") );
-    }
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::~CServiceWidgetContentPublisher
-// ---------------------------------------------------------------------------
-CServiceWidgetContentPublisher::~CServiceWidgetContentPublisher()
-    {
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::~CServiceWidgetContentPublisher() start") );
-    if( iMsgInterface )
-    	{
-		iMsgInterface->Close();
-		iMsgInterface = NULL;
-    	}
-   	if( iServiceHandler )
-    	{
-    	iServiceHandler->Reset();
-    	delete iServiceHandler;
-    	iServiceHandler = NULL;
-    	}
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::~CServiceWidgetContentPublisher() End") );
-    }
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::GetMessagingInterfaceL
-// ---------------------------------------------------------------------------
-
-MLiwInterface* CServiceWidgetContentPublisher::GetMessagingInterfaceL( )
-	{
-	TRACE_SWP(TXT("CServiceWidgetContentPublisher::GetMessagingInterfaceL() start") );
-	if( !iServiceHandler )
-		{
-		iServiceHandler = CLiwServiceHandler::NewL();
-		TRACE_SWP(TXT("CServiceWidgetContentPublisher::GetMessagingInterfaceL() CLiwServiceHandler created") );
-		}
-	CLiwGenericParamList* inParam = CLiwGenericParamList::NewL();
-	CleanupStack::PushL( inParam );
-	CLiwGenericParamList* outParam = CLiwGenericParamList::NewL();
-	CleanupStack::PushL( outParam );
-	CLiwCriteriaItem* crit = CLiwCriteriaItem::NewL( KLiwCmdAsStr, KCPContentInterface,
-		KCPService  );
-	crit->SetServiceClass( TUid::Uid(KLiwClassBase) );
-	
-	RCriteriaArray array;
-	array.AppendL(crit);    
-	iServiceHandler->AttachL(array);
-	iServiceHandler->ExecuteServiceCmdL( *crit, *inParam, *outParam ); 
-	delete crit;
-	array.Reset();
-	
-	// find service interface
-	TInt pos = 0;
-	MLiwInterface* msgInterface = NULL;
-	outParam->FindFirst( pos, KCPContentInterface );
-	if ( pos != KErrNotFound ) 
-	    {
-	    msgInterface = (*outParam)[pos].Value().AsInterface(); 
-	    }
-	outParam->Reset();
-	inParam->Reset();
-	CleanupStack::PopAndDestroy( outParam );
-	CleanupStack::PopAndDestroy( inParam );
-	TRACE_SWP(TXT("CServiceWidgetContentPublisher::GetMessagingInterfaceL() End") );
-	return msgInterface;
-	}
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::HandleNotifyL
-// ---------------------------------------------------------------------------
-//  
-TInt CServiceWidgetContentPublisher::HandleNotifyL( TInt aCmdId, TInt /*aEventId*/,
-                                                    CLiwGenericParamList& aEventParamList,
-                                                    const CLiwGenericParamList& /*aInParamList*/ 
-                                                   )
-    { 
-    TRACE_SWP( TXT("CServiceWidgetContentPublisher::HandleNotifyL() start") );
-    TInt pos(0);
-    aEventParamList.FindFirst(pos, KChangeInfo);
-
-    if (pos != KErrNotFound)
-        {
-        TLiwVariant variant = (aEventParamList)[pos].Value();
-        variant.PushL();
-        const CLiwList* changeMapsList = variant.AsList();
-        HBufC16* publisher  = NULL;       
-        HBufC8* trigger = NULL;
-        const TInt KSAPIContentNameMaxLength = 255;
-        TBuf<KSAPIContentNameMaxLength> InstId;
-
-        for (TInt i = 0; i < changeMapsList->Count(); ++i)
-            {
-            if ( changeMapsList->AtL(i, variant) ) 
-                {
-                const CLiwMap* map  = variant.AsMap();
-                if( map->FindL( KActionTrigger, variant) )
-                    {
-                    trigger = variant.AsData().AllocLC(); // trigger name                      
-                    // In template case trigger name can be 
-                    // active ,  resume , suspend ,inactive, deactive or item names.
-                    }
-                if( map->FindL( KPublisherId, variant) )
-                    {
-                    publisher = variant.AsDes().AllocLC();  // ai3templatedwidget                                          
-                    }
-                if( map->FindL( KContentId, variant) )
-                    {
-                    variant.Get( InstId );
-                    }
-                if( trigger && publisher )
-                    {
-                    iObserver.HandleServiceEventL( *publisher, *trigger, InstId);
-                    }//
-                if ( publisher )
-                    {
-                    CleanupStack::PopAndDestroy( publisher );
-                    publisher = NULL;
-                    }
-                if ( trigger )
-                    {
-                    CleanupStack::PopAndDestroy( trigger );
-                    trigger = NULL;
-                    }  
-                }
-            }// loop
-    CleanupStack::Pop(&variant);    //variant
-    variant.Reset(); 
-    }//if (pos != KErrNotFound)
-  TRACE_SWP(TXT("CServiceWidgetContentPublisher::HandleNotifyL() end") );
-  return aCmdId;
-  }//End HandleNotifyL
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::RegisterWidgetL
-// ---------------------------------------------------------------------------
-//
-void CServiceWidgetContentPublisher::RegisterWidgetL(const TDesC& aPublisherId,
-                                                           TInt aBitmapHandle,
-                                                           TInt aMaskHandle )
-    {
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::RegisterWidgetL() start") );
-    if( iMsgInterface )
-        {   
-        CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
-        CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
-
-        TLiwGenericParam type( KType, TLiwVariant( KPublisher ));
-        inparam->AppendL( type );
-
-        CLiwDefaultMap* cpdatamap = CLiwDefaultMap::NewLC();
-        CLiwDefaultMap* datamap = CLiwDefaultMap::NewLC();
-        CLiwDefaultMap* mapAction = CLiwDefaultMap::NewLC(); 
-          
-        cpdatamap->InsertL( KPublisherId, TLiwVariant( aPublisherId )); 
-        cpdatamap->InsertL( KContentType, TLiwVariant( KTemplateWidget ));
-        cpdatamap->InsertL( KContentId, TLiwVariant( KAll ));
-        //Take widget name as "service name"
-        //Give widget name here which will be displayed in HomeScreen Add Content menu        
-        datamap->InsertL( KWidgetName, TLiwVariant( aPublisherId.Left( aPublisherId.Length()-KThemeUid().Length() ) ) );
-        datamap->InsertL( KTemplateType, TLiwVariant( KServiceWidget )); 
-        
-        //To publish logo and widget description
-        HBufC* text = NULL;
-        text = StringLoader::LoadLC( R_QTN_SERVTAB_WIDGET_SERVDESC );
-        datamap->InsertL(KWidgetDesc, TLiwVariant( *text ));
-        CleanupStack::PopAndDestroy(text);//text
-        datamap->InsertL(KWidgetLogo , TLiwVariant( aBitmapHandle ) ); // key - aKey, value - map (stringsMap)
-        // append mask 
-        // create mask key for the data item. Format is the image key with the '_mask' postfix.
-        HBufC8* maskResult = HBufC8::NewLC( KWidgetLogo().Length() + KMask().Length() );
-        TPtr8 maskResultPtr = maskResult ->Des();
-        maskResultPtr .Append( KWidgetLogo );
-        maskResultPtr .Append( KMask );
-        datamap->InsertL( maskResultPtr,  TLiwVariant( aMaskHandle ) ); // key - aKey, value - map (stringsMap)
-        CleanupStack::PopAndDestroy(maskResult);//maskResult
-        
-        cpdatamap->InsertL( KDataMap, TLiwVariant(datamap) );
-
-        mapAction->InsertL(KActive, TLiwVariant(KTriggerMap));
-        mapAction->InsertL(KDeActive, TLiwVariant(KTriggerMap));
-        mapAction->InsertL(KSuspend, TLiwVariant(KTriggerMap));
-        mapAction->InsertL(KInactive, TLiwVariant(KTriggerMap));
-        mapAction->InsertL(KResume, TLiwVariant(KTriggerMap));
-        // this will be called after clicking on widget, and generate "selected" event
-        mapAction->InsertL( KSelected, TLiwVariant(  KTriggerMap  ) );
-        cpdatamap->InsertL( KActionMap, TLiwVariant(mapAction) );
-
-        TLiwGenericParam textItem( KItem, TLiwVariant( cpdatamap ));        
-        inparam->AppendL( textItem );
-        iMsgInterface->ExecuteCmdL( KAdd , *inparam, *outparam);
-        CleanupStack::PopAndDestroy(mapAction);
-        CleanupStack::PopAndDestroy(datamap);
-        CleanupStack::PopAndDestroy(cpdatamap);
-        
-        textItem.Reset();
-        outparam->Reset();
-        inparam->Reset(); 
-        
-        // request for active/deactive/suspend/resume notification 
-        CLiwDefaultMap*  reqFilter = CLiwDefaultMap::NewLC();
-        reqFilter->InsertL(KPublisherId, TLiwVariant( aPublisherId ));
-        reqFilter->InsertL(KContentType, TLiwVariant( KAll ));
-        reqFilter->InsertL( KContentId, TLiwVariant( KAll ));
-        reqFilter->InsertL(KOperation, TLiwVariant(KExecute));
-
-        // fill in input list for RequestNotification command
-        inparam->AppendL(TLiwGenericParam(KType, TLiwVariant(KPublisher)));
-        inparam->AppendL(TLiwGenericParam(KFilter, TLiwVariant(reqFilter)));
-       
-        iMsgInterface->ExecuteCmdL( KRequestNotification,
-                                    *inparam,
-                                    *outparam,
-                                    0,
-                                    this ) ;
-
-        CleanupStack::PopAndDestroy(reqFilter );  
-        outparam->Reset();
-        inparam->Reset();
-        TRACE_SWP(TXT("CServiceWidgetContentPublisher::RegisterWidgetL() Registered widget %s"), &aPublisherId );
-        } 
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::RegisterWidgetL() end") );
-    }
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::UnregisterWidgetL
-// ---------------------------------------------------------------------------
-//
-void CServiceWidgetContentPublisher::UnregisterWidgetL(const TDesC& aPublisherId )
-    {
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::UnregisterWidgetL() start") );
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::UnregisterWidgetL() ServiceName %S"), &aPublisherId);
-    CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL()); 
-    CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
-    CLiwDefaultMap*  cpdatamap= CLiwDefaultMap::NewLC();
-
-    cpdatamap->InsertL( KPublisherId, TLiwVariant( aPublisherId ));
-    cpdatamap->InsertL( KContentType, TLiwVariant( KTemplateWidget ));
-    cpdatamap->InsertL( KContentId, TLiwVariant( KAll ));
-    // fill in input list for RequestNotification command
-    inparam->AppendL(TLiwGenericParam(KType, TLiwVariant(KPublisher)));
-    inparam->AppendL(TLiwGenericParam(KData, TLiwVariant(cpdatamap)));
-
-    iMsgInterface->ExecuteCmdL(KDelete, *inparam, *outparam, 0, this );
-
-    CleanupStack::PopAndDestroy(cpdatamap);      
-    outparam->Reset();
-    inparam->Reset();
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::UnregisterWidget() end") );
-    }//end UnregisterWidget
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::UnregisterAllWidgetsL
-// ---------------------------------------------------------------------------
-//
-void CServiceWidgetContentPublisher::UnregisterAllWidgetsL(RArray<TInt>* aServiceArray)
-    {
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::UnregisterAllWidgetsL() start") );
-    CDesC16ArrayFlat* servicesExisting = new (ELeave) CDesC16ArrayFlat( KSW_LIST_GRANULARITY );
-    CleanupStack::PushL( servicesExisting );
-    if(aServiceArray && aServiceArray->Count() > 0)
-    	{
-		CSPSettings* settings = CSPSettings::NewLC();
-		for(TInt i=0; i<aServiceArray->Count();i++)
-			{
-			CSPEntry* entry = CSPEntry::NewLC();
-			settings->FindEntryL( (*aServiceArray)[i], *entry ) ;			
-			servicesExisting->AppendL(entry->GetServiceName());
-			CleanupStack::PopAndDestroy(entry);
-			}
-		CleanupStack::PopAndDestroy(settings);
-    	}
-    
-    CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL()); 
-    CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
-    CLiwDefaultMap*  cpdatamap= CLiwDefaultMap::NewLC();    
-
-    cpdatamap->InsertL( KPublisherId, TLiwVariant( KAll ));
-    cpdatamap->InsertL( KContentType, TLiwVariant( KTemplateWidget ));
-    cpdatamap->InsertL( KContentId, TLiwVariant( KAll ));
-    
-    // fill in input list for GetList command
-    inparam->AppendL(TLiwGenericParam(KType, TLiwVariant(KPublisher)));
-    inparam->AppendL(TLiwGenericParam(KData, TLiwVariant(cpdatamap)));    
-    
-    iMsgInterface->ExecuteCmdL(KGetList, *inparam, *outparam, 0, this );
-    CDesC16ArrayFlat* serviceNames = new (ELeave) CDesC16ArrayFlat( KSW_LIST_GRANULARITY );
-    CleanupStack::PushL( serviceNames );
-    
-    if(outparam)
-		{		
-		TInt pos(0);		
-		outparam->FindFirst(pos,KResults);
-		if(pos != KErrNotFound)
-			{
-			HBufC* uidStr = KThemeUid().AllocLC();
-			TLiwVariant variant = (*outparam)[pos].Value();
-			variant.PushL();
-			
-			CLiwIterable* iterable = variant.AsIterable();
-			iterable->Reset();
-			
-			while ( iterable->NextL( variant ) )
-			  {
-			  CLiwDefaultMap *map = CLiwDefaultMap::NewLC();
-			  variant.Get( *map );
-			  if ( map->FindL( KPublisherId, variant) )
-				  {				  
-				  if(variant.AsDes().Length() >= KThemeUid().Length())
-					  {
-					  TPtrC tempUidStr;
-					  tempUidStr.Set(variant.AsDes().Right(KThemeUid().Length()));
-					  if( 0 == tempUidStr.Compare(uidStr->Des()))
-						  {
-						  //If publisher id has KThemeUid, then this services is 
-						  //registered by this component
-						  TBool serviceExisting = EFalse;
-						  if(servicesExisting && servicesExisting->Count() > 0)
-							  {							  
-							  for(TInt i=0; i<servicesExisting->Count(); i++)
-								  {
-								  TPtrC serviceName;
-								  serviceName.Set(variant.AsDes().Left(variant.AsDes().Length()-KThemeUid().Length()));								  
-								  if(serviceName.Compare((*servicesExisting)[i]) == 0)
-									  {
-									  serviceExisting = ETrue;
-									  break;
-									  }
-								  }							  
-							  }
-						  if(!serviceExisting)
-							  {
-							  serviceNames->AppendL(variant.AsDes());
-							  }
-						  }
-					  }
-				  }
-				  CleanupStack::PopAndDestroy( map );
-				 } //End of while
-			
-			CleanupStack::PopAndDestroy( &variant );
-			CleanupStack::PopAndDestroy( uidStr );
-			} //End of if(pos != KErrNotFound)
-		}
-    
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::UnregisterAllWidgetsL():ServiceCountForDeletion %d"), serviceNames->Count());
-    for(TInt i=0; i<serviceNames->Count();i++)
-		{		
-		UnregisterWidgetL((*serviceNames)[i]);
-		}
-    
-    CleanupStack::PopAndDestroy(serviceNames);
-    CleanupStack::PopAndDestroy(cpdatamap);
-    CleanupStack::PopAndDestroy(servicesExisting);
-    outparam->Reset();
-    inparam->Reset();
-    
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::UnregisterAllWidgetsL() end") );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::RemoveWidgetDataL
-// ---------------------------------------------------------------------------
-// 
-void CServiceWidgetContentPublisher::RemoveWidgetDataL(const TDesC& aPublisherId, const TDesC& aInstId)
-    {
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::RemoveWidgetData() start") );
-    CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
-    CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
-
-    CLiwDefaultMap* cpdatamap = CLiwDefaultMap::NewLC();
-
-    cpdatamap->InsertL( KPublisherId, TLiwVariant( aPublisherId ));
-    cpdatamap->InsertL( KContentType, TLiwVariant( KAll )); 
-    cpdatamap->InsertL( KContentId, TLiwVariant( aInstId ));
-    
-    // fill in input list for RequestNotification command
-    inparam->AppendL(TLiwGenericParam(KType, TLiwVariant(KCpData)));
-    inparam->AppendL(TLiwGenericParam(KData, TLiwVariant(cpdatamap)));
-
-    TInt err = KErrNone;
-    // if you have only one combination of publisher,content_type, contenid 
-    // then all the items will be remove from your widget
-    TRAP(err,iMsgInterface->ExecuteCmdL( KDelete , *inparam, *outparam, 0 , this));
-
-    CleanupStack::PopAndDestroy( cpdatamap );
-    outparam->Reset();
-    inparam->Reset();
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::RemoveWidgetData() end") );
-    }
-// ---------------------------------------------------------------------------
-// CServiceWidgetContentPublisher::PublishDataWithActionL
-// ---------------------------------------------------------------------------
-// 
-void CServiceWidgetContentPublisher::PublishDataWithActionL( const TDesC& aPublisherId,
-                                                             const TDesC& aInstId,
-                                                             const TDesC& aOwnTextToAdd, 
-                                                             const TDesC& aStatusTextToAdd,
-                                                             TInt aBitmapHandle,
-                                                             TInt aMaskHandle,
-                                                             TInt aSericonbitmapHandle, 
-                                                             TInt aSericonmaskHandle
-													         )
-    {
-    TRACE_SWP(TXT("CServiceWidgetContentPublisher::PublishDataWithActionL() start") );
-
-    CLiwGenericParamList* inparam = &(iServiceHandler->InParamListL());
-    CLiwGenericParamList* outparam = &(iServiceHandler->OutParamListL());
-    inparam->Reset();
-    outparam->Reset();
-
-    if( iMsgInterface )
-        {
-         TLiwGenericParam type( KType,TLiwVariant(KCpData));
-         inparam->AppendL( type );
-
-         CLiwDefaultMap* cpdatamap = CLiwDefaultMap::NewLC();
-         CLiwDefaultMap* datamap = CLiwDefaultMap::NewLC();
-
-         cpdatamap->InsertL( KPublisherId, TLiwVariant( aPublisherId ));
-         cpdatamap->InsertL( KContentType, TLiwVariant( KAll ));
-         cpdatamap->InsertL( KContentId, TLiwVariant( aInstId ));
-
-         //adding data to the map
-         //add service icon data
-         datamap->InsertL(KServiceImageKey , TLiwVariant( aSericonbitmapHandle ) ); // key - aKey, value - map (stringsMap)
-         // append mask 
-         // create mask key for the data item. Format is the image key with the '_mask' postfix.
-         HBufC8* maskResult1 = HBufC8::NewLC( KServiceImageKey().Length() + KMask().Length() );
-         TPtr8 maskResultPtr1 = maskResult1 ->Des();
-         maskResultPtr1.Append( KServiceImageKey );
-         maskResultPtr1.Append( KMask );
-         datamap->InsertL( maskResultPtr1,  TLiwVariant( aSericonmaskHandle ) ); // key - aKey, value - map (stringsMap)
-         CleanupStack::PopAndDestroy(maskResult1);//maskResult 
-         //Add status icon data
-         datamap->InsertL(KStatusIconKey , TLiwVariant( aBitmapHandle ) ); // key - aKey, value - map (stringsMap)
-         // append mask 
-         // create mask key for the data item. Format is the image key with the '_mask' postfix.
-         HBufC8* maskResult = HBufC8::NewLC( KStatusIconKey().Length() + KMask().Length() );
-         TPtr8 maskResultPtr = maskResult ->Des();
-         maskResultPtr .Append( KStatusIconKey );
-         maskResultPtr .Append( KMask );
-         datamap->InsertL( maskResultPtr,  TLiwVariant( aMaskHandle ) ); // key - aKey, value - map (stringsMap)
-         CleanupStack::PopAndDestroy(maskResult);//maskResult
-         //add data for first text row and second text row
-         datamap->InsertL(KOwnTextKey, TLiwVariant(aOwnTextToAdd));
-         datamap->InsertL(KMessageTextKey, TLiwVariant(aStatusTextToAdd));
-         cpdatamap->InsertL( KDataMap, TLiwVariant(datamap) );
-
-         TLiwGenericParam item( KItem, TLiwVariant( cpdatamap ));        
-         inparam->AppendL( item );
-         iMsgInterface->ExecuteCmdL( KAdd,  *inparam, *outparam );
-         item.Reset();
-         type.Reset(); 
-         CleanupStack::PopAndDestroy(datamap); // datamap
-         CleanupStack::PopAndDestroy(cpdatamap);
-         TRACE_SWP(TXT("CServiceWidgetContentPublisher::PublishDataWithActionL() success") );
-        }	
-    }
-
-// end of file