languageinterworkingfw/servicehandler/src/liwservicehandlerimpl.cpp
changeset 10 a7062f7f0b79
parent 0 99ef825efeca
child 21 bcef26ca2be3
equal deleted inserted replaced
5:947415ec7603 10:a7062f7f0b79
  2461 				TPtrC capStr = capVar.AsDes();
  2461 				TPtrC capStr = capVar.AsDes();
  2462 				
  2462 				
  2463 				TCapability cap = this->GetServiceCapability(capStr);
  2463 				TCapability cap = this->GetServiceCapability(capStr);
  2464 				if( (cap>=ECapabilityTCB)  && (cap < ECapability_Limit))
  2464 				if( (cap>=ECapabilityTCB)  && (cap < ECapability_Limit))
  2465 					secMgrCapList.AppendL(cap);
  2465 					secMgrCapList.AppendL(cap);
       
  2466 				CleanupStack::Pop(&capVar);
       
  2467 				capVar.Reset();
       
  2468 			}
       
  2469 		}
       
  2470 		
       
  2471 	}
       
  2472 }
       
  2473 
       
  2474 void CLiwServiceHandlerImpl::GetProviderResourceFile(TDes& aFilePath,CLiwGenericParamList* pMetaData)
       
  2475 {	
       
  2476 	_LIT8(KResourceFile,"res");
       
  2477 
       
  2478 	TInt pos = 0;
       
  2479 	const TLiwGenericParam* pCapData = pMetaData->FindFirst(pos,KResourceFile);
       
  2480 
       
  2481 	if(pCapData)
       
  2482 	{
       
  2483 		const CLiwList* pCapList = pCapData->Value().AsList();
       
  2484 		if(pCapList)
       
  2485 		{
       
  2486 			for(TInt idx(0);idx!=pCapList->Count();++idx)
       
  2487 			{
       
  2488 				TLiwVariant capVar;
       
  2489 				capVar.PushL();
       
  2490 				pCapList->AtL(idx, capVar);
       
  2491 				aFilePath = capVar.AsDes();
  2466 				CleanupStack::Pop(&capVar);
  2492 				CleanupStack::Pop(&capVar);
  2467 				capVar.Reset();
  2493 				capVar.Reset();
  2468 			}
  2494 			}
  2469 		}
  2495 		}
  2470 		
  2496 		
  2820         } //end of for loop
  2846         } //end of for loop
  2821         
  2847         
  2822     	if(pChosenImpl)
  2848     	if(pChosenImpl)
  2823 		{
  2849 		{
  2824 		 	RArray<TCapability> provCaps;
  2850 		 	RArray<TCapability> provCaps;
  2825 	    	GetCapabilitiesL(provCaps,pServiceData->GetMetaData());
  2851 		 	TFileName provResourcePath;
  2826 	    		
  2852 	    	GetCapabilitiesL(provCaps,pServiceData->GetMetaData());	    	
       
  2853 	    	  		
  2827 	    	TInt isAllowed(KErrNone);
  2854 	    	TInt isAllowed(KErrNone);
  2828 	    	
  2855 	    	
  2829 	    	if(aScriptSession)
  2856 	    	if(aScriptSession)
  2830 	    		isAllowed = aScriptSession->IsAllowed(provCaps);
  2857 	    	    {
       
  2858 	    	    if(aScriptSession->PromptOption() == RTPROMPTUI_PROVIDER)
       
  2859 	    	    	{
       
  2860 	    	    		GetProviderResourceFile(provResourcePath, pServiceData->GetMetaData());
       
  2861 	    	        isAllowed = aScriptSession->IsAllowed(provCaps, pChosenImpl->ImplementationUid(), provResourcePath);	
       
  2862 	    	      }
       
  2863                 else
       
  2864                     isAllowed = aScriptSession->IsAllowed(provCaps);
       
  2865 	    	    }
  2831 	    		
  2866 	    		
  2832 	    	if(KErrNone==isAllowed)
  2867 	    	if(KErrNone==isAllowed)
  2833 		    {
  2868 		    {
  2834 				CLiwServiceIfBase* iface = iEcomMonitor->CreateImplementationL(
  2869 				CLiwServiceIfBase* iface = iEcomMonitor->CreateImplementationL(
  2835 	            pChosenImpl->ImplementationUid());
  2870 	            pChosenImpl->ImplementationUid());