Revision: 201011
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 16 Apr 2010 15:23:31 +0300
changeset 18 3825cf2dc8c2
parent 1 788b770ce3ae
child 20 82ee1f804b63
Revision: 201011 Kit: 201015
genericpositioningplugins/locationsuplpsy/group/bld.inf
landmarks/locationlandmarks/clientlib/src/EPos_CPosLandmarkDatabase.cpp
landmarks/locationlandmarks/clientlib/src/epos_poslandmarkserialization.cpp
landmarks/locationlandmarks/clientlib/src/epos_poslmcategoryserialization.cpp
landmarks/locationlandmarks/converter/src/EPos_CPosLmKmlParser.cpp
landmarks/locationlandmarks/converter/src/EPos_CPosLmLmxParser.cpp
landmarks/locationlandmarks/dbreg/src/EPos_CPosLmDbRegistry.cpp
landmarks/locationlandmarks/internalservices/src/EPos_CPosLmLocalDbAccess.cpp
landmarks/locationlandmarks/localaccess/src/EPos_CPosLmLocalDatabase.cpp
landmarks/locationlandmarks/localaccess/src/EPos_CPosLmLocalExportOp.cpp
landmarks/locationlandmarks/localaccess/src/EPos_RPosLmLocalAccessSubsession.cpp
landmarks/locationlandmarks/localaccess/src/epos_rposlmlocalnameindex.cpp
landmarks/locationlandmarks/searchclientlib/src/EPos_PosLmDisplayDataHandler.cpp
landmarks/locationlandmarks/server/inc/epos_lmdebug.h
landmarks/locationlandmarks/server/src/EPos_CPosLmLocalAccessSubsession.cpp
landmarks/locationlandmarks/server/src/EPos_CPosLmNameIndex.cpp
locationsystemui/locationsysui/group/bld.inf
locationsystemui/locationsysui/help/rom/locationsysuihelps_variant.iby
locationsystemui/locationsysui/locnotprefplugin/data/locnotprefpluginview.rss
locationsystemui/locationsysui/locpsysettings/locpsysettingsui/data/locpsysettingsuiview.rss
locationsystemui/locationsysui/locsuplsettingsui/data/locsuplservereditor.rss
locationsystemui/locationsysui/locsuplsettingsui/data/locsuplsettingsui.rss
locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplservereditor.h
locationsystemui/locationsysui/locsuplsettingsui/src/locsuplservereditor.cpp
locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsessioncontainer.cpp
locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsessioneditor.cpp
locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsadapter.cpp
locationsystemui/locationsysui/locsysuiview/data/locsysuiviewrsc.rss
locationsystemui/locationsysui/locutils/data/locutils.rss
locationsystemui/locationsysui/locutils/group/locutils.mmp
locationsystemui/locationsysui/locutils/inc/locrequestorutilsresolver.h
locationsystemui/locationsysui/locutils/inc/locrequestorutilsresolverimpl2.h
locationsystemui/locationsysui/locutils/src/locrequestorutilsresolverimpl2.cpp
locationsystemui/locationsysui/locverifier/inc/lpdperiodicprocessor.h
locationsystemui/locationsysui/locverifier/inc/lpdperiodicreqinfo.h
locationsystemui/locationsysui/locverifier/inc/lpdquerylauncherbase.h
locationsystemui/locationsysui/locverifier/inc/lpdverifierplugin.h
locationsystemui/locationsysui/locverifier/src/lpdrequestorprocessor.cpp
locationsystemui/locationsysui/queryandnotification/BWINS/EPOSPRVQNIFU.DEF
locationsystemui/locationsysui/queryandnotification/EABI/eposprvqnifU.DEF
locationsystemui/locationsysui/queryandnotification/group/EPos_PrivacyQNInterface.mmp
locationsystemui/locationsysui/queryandnotification/group/bld.inf
locationsystemui/locationsysui/queryandnotification/group/lbsqueryandnotification.iby
locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosPrivacyNotifierExtension.h
locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosRequestHandler.h
locationsystemui/locationsysui/queryandnotification/src/EPos_CPosPrivacyNotifier.cpp
locationsystemui/locationsysui/queryandnotification/src/EPos_CPosPrivacyNotifierExtension.cpp
locationsystemui/locationsysui/queryandnotification/src/EPos_CPosRequestHandler.cpp
locationtriggering/lbtmgmtui/data/lbtmgmtpluginview.rss
locationtriggering/lbtmgmtui/src/lbtmgmtdebug.cpp
locationtriggering/ltcontainer/src/lbtcontainerareafilter.cpp
locationtriggering/ltcontainer/src/lbtcontainertriggerentry.cpp
locationtriggering/ltcontainer/src/lbtdbtriggersmanager.cpp
locationtriggering/ltcontainer/src/lbtramtriggersmanager.cpp
locationtriggering/ltcontextsourceplugin/src/lbtcontextsourceplugin.cpp
locationtriggering/ltserver/ltserverlogic/src/lbtlistaooperation.cpp
locationtriggering/ltserver/ltserverlogic/src/lbtserverlogic.cpp
locationtriggering/ltserver/ltserverlogic/src/lbttriggermodifyaooperation.cpp
locationtriggering/ltstrategyengine/group/lbtstrategy.mmp
locationtriggering/ltstrategyengine/inc/lbtcellsupervisor.h
locationtriggering/ltstrategyengine/inc/lbtcoordinatesupervisor.h
locationtriggering/ltstrategyengine/src/lbtcellsupervisor.cpp
locationtriggering/ltstrategyengine/src/lbtcoordinatesupervisor.cpp
locationtriggering/ltstrategyengine/src/lbtstatusmanager.cpp
locationtriggering/ltstrategyengine/src/lbtstrategyengine.cpp
locationtriggering/ltstrategyengine/src/lbttriggerview.cpp
locationtriggering/rom/locationtriggering.iby
locsrv_plat/group/bld.inf
locsrv_plat/query_and_notification_api/group/bld.inf
locsrv_plat/query_and_notification_api/inc/EPos_CPosPrivacyNotifier.h
locsrv_pub/blid_application_satellite_info_api/tsrc/UT_CSatelliteUITest/group/CSatelliteUITest_DoxyFile.txt
package_definition.xml
supl/locationomasuplprotocolhandler/asnconverterpluginapi/src/epos_comasuplreport.cpp
supl/locationomasuplprotocolhandler/notifier/notifier/data/epos_omasuplnotifier.rss
supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasupletelnotifier.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasupletelnotifier.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplprotocolmanager2.cpp
supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsession2.cpp
supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp
supl/locationsuplfw/settingsapi/src/epos_csettingsdatabasehandler.cpp
supl/locationsuplfw/settingsapi/src/epos_csuplsettings.cpp
supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalapi.cpp
--- a/genericpositioningplugins/locationsuplpsy/group/bld.inf	Tue Feb 02 10:12:24 2010 +0200
+++ b/genericpositioningplugins/locationsuplpsy/group/bld.inf	Fri Apr 16 15:23:31 2010 +0300
@@ -27,7 +27,7 @@
 ../data/suplpsystub.sis 	          /epoc32/data/z/system/install/suplpsystub.sis
 // Conf Files...
 ../conf/suplpsy.confml                    MW_LAYER_CONFML(suplpsy.confml) 
-../conf/suplpsy_10206913.crml	            MW_LAYER_CONFML(suplpsy_10206913.crml)
+../conf/suplpsy_10206913.crml	            MW_LAYER_CRML(suplpsy_10206913.crml)
 PRJ_MMPFILES
 nla_suplpsy.mmp
 
--- a/landmarks/locationlandmarks/clientlib/src/EPos_CPosLandmarkDatabase.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/clientlib/src/EPos_CPosLandmarkDatabase.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -141,6 +141,7 @@
 //
 TUid CPosLandmarkDatabase::ImplementationId() const
     {
+//coverity[naming_error :FALSE]
     return REComSession::GetImplementationUidL (iDtorIdKey);//iDtorIdKey;
     //return iDtorIdKey;
     }
--- a/landmarks/locationlandmarks/clientlib/src/epos_poslandmarkserialization.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/clientlib/src/epos_poslandmarkserialization.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -59,8 +59,11 @@
     memclr( &header, sizeof header );
     TPckg<TLandmarkBufferHeader> headerPack( header );
     TPtrC name, desc, icon;
-
+    //coverity[check_return :FALSE]
+    //coverity[unchecked_value :FALSE]
     aLandmark.GetLandmarkName( name );
+        //coverity[check_return :FALSE]
+    //coverity[unchecked_value :FALSE]
     aLandmark.GetLandmarkDescription( desc );
     header.iIsIconSet = ( KErrNone == 
         aLandmark.GetIcon( icon, header.iIconIndex, header.iIconMaskIndex ) );
--- a/landmarks/locationlandmarks/clientlib/src/epos_poslmcategoryserialization.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/clientlib/src/epos_poslmcategoryserialization.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -50,6 +50,8 @@
     TPckg<TCategoryBufferHeader> infoPack( header );
 
     TPtrC name, icon;
+    //coverity[check_return :FALSE]
+    //coverity[unchecked_value :FALSE]
     aCategory.GetCategoryName( name );
     header.iIsIconSet = ( KErrNone == 
         aCategory.GetIcon( icon, header.iIconIndex, header.iIconMaskIndex ) );
--- a/landmarks/locationlandmarks/converter/src/EPos_CPosLmKmlParser.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/converter/src/EPos_CPosLmKmlParser.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -306,11 +306,15 @@
 					
 				while (TextUtils::ColumnText(Pointer,aCount,&contentBuf,KPosXmlCommaSeparator) != KErrNotFound )
 				{
+					
 					if(addressField[column] == EPositionFieldPostalCode)
 					{
 						if(!(IsNumber(Pointer.Left( KMaxPostalCode ))))
 						 column++; // if it is not number then set it to state
 					}
+					if(column>=5)	
+						break;	
+
 					if( addressField[column] == EPositionFieldCountry)
 				 	{
 				 		if(IsNumber(Pointer.Left( KMaxPostalCode )))
@@ -324,7 +328,7 @@
 						column++;
 					aCount++;
 					if(aCount >= 4 || column>=5)	
-						break;		
+						break;	
 				}
 				
 				CleanupStack::PopAndDestroy();
--- a/landmarks/locationlandmarks/converter/src/EPos_CPosLmLmxParser.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/converter/src/EPos_CPosLmLmxParser.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -234,9 +234,11 @@
             PosLmConverterUtils::AssertL( iWorkingCategory != NULL );
             iWorkingCategory->SetCategoryNameL( aContent.Left( KPosLmMaxCategoryNameLength ) );
             break;
+            //coverity[unterminated_case :FALSE]
         case EPosXmlAddrPlaceId: //addition for Place id
             PosLmConverterUtils::AssertL( iWorkingLandmark != NULL );
             iWorkingLandmark->SetPlaceIdL( aContent.Left( KPosLmMaxTextFieldLength ) );
+            //coverity[fallthrough : FALSE]
         default:
             // We need to check if it is a addressInfo tag.
             // AddressInfo Tag
--- a/landmarks/locationlandmarks/dbreg/src/EPos_CPosLmDbRegistry.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/dbreg/src/EPos_CPosLmDbRegistry.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -108,12 +108,10 @@
     User::LeaveIfError(iDb.Create(aFileSession, aFileName));
 
     TDeleteFile* del = new (ELeave) TDeleteFile;
-    CleanupStack::PushL(del);
     del->iFs = &aFileSession;
     del->iFilename.Set(aFileName);
 
     CleanupStack::PushL(TCleanupItem(DeleteFileCleanupItem, del));
-    CleanupClosePushL(iDb);
 
     //Create the database table
     CDbColSet* columns = CDbColSet::NewLC();
@@ -134,9 +132,7 @@
     User::LeaveIfError(iDb.Execute(*sql));
     CleanupStack::PopAndDestroy(sql);
 
-    CleanupStack::Pop(&iDb);
-    CleanupStack::Pop(); //DeleteFileCleanupItem
-    CleanupStack::PopAndDestroy(del);
+    CleanupStack::PopAndDestroy(&del); //DeleteFileCleanupItem
     }
 
 // -----------------------------------------------------------------------------
--- a/landmarks/locationlandmarks/internalservices/src/EPos_CPosLmLocalDbAccess.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/internalservices/src/EPos_CPosLmLocalDbAccess.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -130,13 +130,7 @@
         {
         err = VerifyDatabaseNeedInitializationL();
         }
-    else if (err != KErrNotFound && err != KErrPathNotFound &&
-        err != KErrArgument && err != KErrAlreadyExists &&
-        err != KErrCorrupt && err != KErrNotSupported)
-        { // KErrAlreadyExists if the path includes nonexisting directory.
-        User::Leave(err);
-        }
-
+        
     return err;
     }
 
--- a/landmarks/locationlandmarks/localaccess/src/EPos_CPosLmLocalDatabase.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/localaccess/src/EPos_CPosLmLocalDatabase.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -321,6 +321,7 @@
 //
 EXPORT_C void CPosLmLocalDatabase::CommitServerTransactionLX()
     {
+    //coverity[naming_error : FALSE]
     CommitServerTransactionL();
     CleanupStack::Pop(); // rollback
     }
@@ -716,17 +717,28 @@
         TInt err = iDbAccess->OpenDatabaseL(*iDbUri);
         if (err != KErrNone)
             {
-            // Re-create database if below error codes
-            if (err == KErrCorrupt || err == KErrNotSupported)
+            // As this is a default landmarks db, all errors other than OutOfMemory 
+            // should be handled by replacing a corrupt db or creating a new db if one is missing. 
+            if (err == KErrNoMemory)
                 {
-                iSubSession->CreateDefaultDbL(*iDbUri, ETrue);
+                User::Leave(err);
                 }
             else
                 {
-                iSubSession->CreateDefaultDbL(*iDbUri, EFalse);
+                if ((err == KErrNotFound) || (err == KErrPathNotFound)
+                        || (err == KErrArgument) || (err == KErrAlreadyExists))
+                    {
+                    // Create a new database [default landmarks db]     
+                    iSubSession->CreateDefaultDbL(*iDbUri, EFalse);
+                    }
+                else
+                    {
+                    // Try deleting the corrupted database and then create a new one                
+                    iSubSession->CreateDefaultDbL(*iDbUri, ETrue);
+                    }
+                *DatabaseAccess()->InitFlagPtr() = ECreated;
+                User::LeaveIfError(iDbAccess->OpenDatabaseL(*iDbUri));
                 }
-            *DatabaseAccess()->InitFlagPtr() = ECreated;
-            User::LeaveIfError(iDbAccess->OpenDatabaseL(*iDbUri));
             }
         }
     CleanupStack::PopAndDestroy(); // DbLock
--- a/landmarks/locationlandmarks/localaccess/src/EPos_CPosLmLocalExportOp.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/localaccess/src/EPos_CPosLmLocalExportOp.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -155,12 +155,15 @@
             i < iNrOfSubOperations &&
                 iCurrentCategory < iCategoryIdArray.Count(); i++)
             {
+            	//coverity[alloc_fn : FALSE]
+            	//coverity[assign :FALSE]
             CPosLandmarkCategory* category =
                 ReadCategoryFromDbLC(iCategoryIdArray[iCurrentCategory++]);
 
             if (iTransferOptions &
                 CPosLandmarkDatabase::EIncludeGlobalCategoryNames)
                 {
+                	//coverity[leave_without_push : FALSE]
                 SetPredefinedGlobalNameL(category);
                 }
 
--- a/landmarks/locationlandmarks/localaccess/src/EPos_RPosLmLocalAccessSubsession.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/localaccess/src/EPos_RPosLmLocalAccessSubsession.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -91,6 +91,7 @@
     TPosLmEventType aEventType,
     TPosLmItemId aId)
     {
+    //coverity[var_decl : FALSE]
     TPosLmEvent event;
     event.iEventType = aEventType;
     event.iLandmarkItemId = aId;
--- a/landmarks/locationlandmarks/localaccess/src/epos_rposlmlocalnameindex.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/localaccess/src/epos_rposlmlocalnameindex.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -46,8 +46,10 @@
     TPosLmItemId aId, const TDesC& aName )
     {
     CIndexItem* self = new (ELeave) CIndexItem;
+    CleanupStack::PushL( self );
     self->iId = aId;
     self->iName = aName.AllocL();
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -275,7 +277,7 @@
 
     TInt err = iSession.SendReceive( EPosLmServerUpdateNameIndex, 
         TIpcArgs( EPosLmServerRemoveLandmarks, &idsDes ) );
-    delete ids;
+        delete[] ids;
     User::LeaveIfError( err );
     }
 
--- a/landmarks/locationlandmarks/searchclientlib/src/EPos_PosLmDisplayDataHandler.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/searchclientlib/src/EPos_PosLmDisplayDataHandler.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -31,7 +31,6 @@
     CPosLmDisplayData& aDisplayData,
     CPosLmDisplayItem* aDisplayItem )
     {
-    RPointerArray<CPosLmDisplayItem>& displayItems = aDisplayData.DisplayItems();
     InsertItemL( aDisplayData, aDisplayItem, aDisplayData.Count() ); // append to the end
     }
 
--- a/landmarks/locationlandmarks/server/inc/epos_lmdebug.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/server/inc/epos_lmdebug.h	Fri Apr 16 15:23:31 2010 +0300
@@ -49,6 +49,7 @@
 
 inline void Log( TRefByValue<const TDesC> aFmt, ... )
     {
+    //coverity[var_decl : FALSE]
     VA_LIST list;
     VA_START( list, aFmt );
 
--- a/landmarks/locationlandmarks/server/src/EPos_CPosLmLocalAccessSubsession.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/server/src/EPos_CPosLmLocalAccessSubsession.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -754,12 +754,14 @@
         
         if ( aMessage.Int0() == EPosLmServerUpdateLandmarks ) 
             {
+//coverity[freed_arg : FALSE]
             index.UpdateL( id, lmBuf );
             }
         else
             {
             index.InsertL( id, lmBuf );
             }
+//coverity[pass_freed_arg : FALSE]
         CleanupStack::Pop( lmBuf );
         }
     
--- a/landmarks/locationlandmarks/server/src/EPos_CPosLmNameIndex.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/landmarks/locationlandmarks/server/src/EPos_CPosLmNameIndex.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -344,7 +344,8 @@
             item->SetValid();
             CleanupStack::PopAndDestroy( name );
             }
-
+				    //coverity[check_return :FALSE]
+    //coverity[unchecked_value :FALSE]
         iTable.NextL();
         iTablePosition++;
         }
@@ -448,7 +449,9 @@
 //
 void CPosLmNameIndex::InsertL( TPosLmItemId aLmid, HBufC* aName )
     {
-    DoInsertL( aLmid, aName );
+	//coverity[ alloc_fn : FALSE ]
+   DoInsertL( aLmid, aName );
+
     }
 
 //--------------------------------------------------------------------
@@ -539,7 +542,9 @@
 void CPosLmNameIndex::UpdateL( TPosLmItemId aId, const TDesC& aName )
     {
     HBufC* name = aName.AllocLC();
+//coverity[freed_arg : FALSE]
     UpdateL( aId, name );
+//coverity[pass_freed_arg : FALSE]
     CleanupStack::Pop( name );
     }
 
--- a/locationsystemui/locationsysui/group/bld.inf	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/group/bld.inf	Fri Apr 16 15:23:31 2010 +0300
@@ -114,5 +114,7 @@
 //Satellite Info
 #include "../locblidsatelliteinfo/group/bld.inf"
 
+// Query and Notification
+#include "../queryandnotification/group/bld.inf"
 PRJ_TESTMMPFILES
 //  End of File  
--- a/locationsystemui/locationsysui/help/rom/locationsysuihelps_variant.iby	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/help/rom/locationsysuihelps_variant.iby	Fri Apr 16 15:23:31 2010 +0300
@@ -24,25 +24,21 @@
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10275062\contents.zip, RESOURCE_FILES_DIR\xhtml\%02d\0x10275062\contents.zip)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10275091\contents.zip, RESOURCE_FILES_DIR\xhtml\%02d\0x10275091\contents.zip)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10283139\contents.zip, RESOURCE_FILES_DIR\xhtml\%02d\0x10283139\contents.zip)
-    data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x2001E66E\contents.zip, RESOURCE_FILES_DIR\xhtml\%02d\0x2001E66E\contents.zip)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x1020690F\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x1020690F\index.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10207462\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10207462\index.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10275062\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10275062\index.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10275091\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10275091\index.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10283139\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10283139\index.xml)
-    data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x2001E66E\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x2001E66E\index.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x1020690F\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x1020690F\keywords.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10207462\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10207462\keywords.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10275062\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10275062\keywords.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10275091\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10275091\keywords.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10283139\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10283139\keywords.xml)
-    data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x2001E66E\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x2001E66E\keywords.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x1020690F\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x1020690F\meta.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10207462\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10207462\meta.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10275062\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10275062\meta.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10275091\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10275091\meta.xml)
     data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x10283139\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x10283139\meta.xml)
-    data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x2001E66E\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x2001E66E\meta.xml)
 
 #endif
 
--- a/locationsystemui/locationsysui/locnotprefplugin/data/locnotprefpluginview.rss	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locnotprefplugin/data/locnotprefpluginview.rss	Fri Apr 16 15:23:31 2010 +0300
@@ -27,7 +27,7 @@
 #include <avkon.rh>
 #include <avkon.rsg>
 #include <avkon.mbg>
-#include <eikcore.rsg>
+#include <EIKCORE.rsg>
 #include <eikon.rh>
 #include <eikon.rsg>
 #include <avkon.loc>
@@ -269,7 +269,7 @@
 RESOURCE AVKON_SETTING_PAGE r_loc_coorddisplay_settings
     { 
     label = qtn_loc_notation_coordinate_format;
-    softkey_resource = R_AVKON_SOFTKEYS_OK_CANCEL__OK;
+    softkey_resource = R_AVKON_SOFTKEYS_CANCEL;
     type = EAknSetListBox;
     editor_resource_id = r_loc_not_settings_listbox;
     } 
--- a/locationsystemui/locationsysui/locpsysettings/locpsysettingsui/data/locpsysettingsuiview.rss	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locpsysettings/locpsysettingsui/data/locpsysettingsuiview.rss	Fri Apr 16 15:23:31 2010 +0300
@@ -28,7 +28,7 @@
 #include    <avkon.rh>
 #include    <avkon.rsg>
 #include    <avkon.mbg>
-#include    <eikcore.rsg>
+#include    <EIKCORE.rsg>
 #include    <eikon.rh>
 #include    <eikon.rsg>
 #include    <avkon.loc>
--- a/locationsystemui/locationsysui/locsuplsettingsui/data/locsuplservereditor.rss	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locsuplsettingsui/data/locsuplservereditor.rss	Fri Apr 16 15:23:31 2010 +0300
@@ -202,21 +202,29 @@
                 max_view_height_in_lines	=	8;                
                 };
             },                
-     	DLG_LINE
+        DLG_LINE
             {
-            type		=	EAknCtPopupFieldText;
-            prompt		=	qtn_loc_server_usage;
-            id			=	ELocSuplServerIdUsageInHomeNw;
-            itemflags 	= 	EEikDlgItemTakesEnterKey | EEikDlgItemOfferAllHotKeys | EEikDlgItemAsLabel;
-           	control 	= 	POPUP_FIELD_TEXT
-               	{
-               	popupfield 	= POPUP_FIELD
-                   	{
-                   	width 	= 50;
-                   	};
-               	textarray 	= r_suplserver_editor_usageinhomenw_array;
-               	active 		= 0;
-               	};
+            type = EEikCtEdwin;
+            prompt = qtn_loc_server_usage;
+            id = ELocSuplServerIdUsageInHomeNw;
+            itemflags = EEikDlgItemTakesEnterKey;
+            control = EDWIN
+                {
+                flags = EEikEdwinNoHorizScrolling | EEikEdwinResizable |
+                EEikEdwinNoAutoSelection | EEikEdwinReadOnly|
+                EEikEdwinAvkonDisableCursor|EEikEdwinAvkonNotEditable |EEikEdwinDisplayOnly;
+                //         maxlength = ECalenAbsoluteMaxTextEditorLength;
+                default_case = EAknEditorTextCase;
+                allowed_case_modes = EAknEditorAllCaseModes;
+                numeric_keymap = EAknEditorStandardNumberModeKeymap;
+                special_character_table = R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG;
+                avkon_flags = EAknEditorFlagUseSCTNumericCharmap |
+                EAknEditorFlagDefault |
+                EAknEditorFlagEnablePictographInput;
+                // let Avkon decide which is maximum number of lines
+                // It's based on layout.
+                max_view_height_in_lines = 0;
+                };
             }
    		};
 	}
@@ -359,4 +367,26 @@
     buf		= qtn_loc_server_rename_info_note;
     }  
 
+// ---------------------------------------------------------
+//
+//    r_loc_server_usageinhomenetwork_yes
+//    Define "Yes" to "Usage in home network:" line of Editor Form
+//
+// ---------------------------------------------------------
+//
+RESOURCE TBUF r_loc_server_usageinhomenetwork_yes
+    {
+    buf = qtn_loc_server_usage_yes;
+    }
+// ---------------------------------------------------------
+//
+//    r_loc_server_usageinhomenetwork_no
+//    Define "No" to "Usage in home network:" line of Editor Form
+//
+// ---------------------------------------------------------
+//
+RESOURCE TBUF r_loc_server_usageinhomenetwork_no
+    {
+    buf = qtn_loc_server_usage_no;
+    }
 // End of File
--- a/locationsystemui/locationsysui/locsuplsettingsui/data/locsuplsettingsui.rss	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locsuplsettingsui/data/locsuplsettingsui.rss	Fri Apr 16 15:23:31 2010 +0300
@@ -24,7 +24,7 @@
 
 #include <data_caging_paths_strings.hrh>
 #include <bldvariant.hrh>
-#include <eikcore.rsg>
+#include <EIKCORE.rsg>
 #include <eikon.rh>
 #include <eikon.rsg>
 #include <avkon.rh>
@@ -288,7 +288,7 @@
 RESOURCE AVKON_SETTING_PAGE r_loc_suplusage_settings
     { 
     label 				= 	qtn_loc_supl_lbl_server_use;
-    softkey_resource 	= 	R_AVKON_SOFTKEYS_OK_CANCEL__OK;
+    softkey_resource 	= 	R_AVKON_SOFTKEYS_CANCEL;
     type 				= 	EAknSetListBox;
     editor_resource_id 	= 	r_loc_suplusage_settings_listbox;
     }
--- a/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplservereditor.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locsuplsettingsui/inc/locsuplservereditor.h	Fri Apr 16 15:23:31 2010 +0300
@@ -23,6 +23,9 @@
 #include <AknForm.h>
 #include <ConeResLoader.h>
 
+const TInt KMaxUsageTextSize = 5;
+_LIT(KNoUsageInHomeNetork, "No");
+
 class CAknTitlePane;
 class CLocSUPLSettingsUiEngine;
 
@@ -85,7 +88,12 @@
         * @param aCommandId id of the command to respond to
         */
         void ProcessCommandL(TInt aCommandId);
-
+        
+        /**
+         * 
+         * 
+         */
+        void HandleDialogPageEventL( TInt aEventID );
         /*
          * Executes the Dialog
          */
@@ -104,7 +112,6 @@
      /**
        * Inherited from CCoeControl
        */				    
-        void HandlePointerEventL(const TPointerEvent &aPointerEvent);
         
 		TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent,
 		                                             TEventCode aType );
@@ -192,6 +199,11 @@
 		 * it toggles value of popup field
 		 */        
 		void TogglePopupFieldControlL( TInt aControlId );
+		
+		/*
+		 * toggles the txt
+		 */
+		void SetUsageinHomeNetwork( TBool aOnOff );
 
 		/*
 		 * it changes the MSK caption 
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplservereditor.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplservereditor.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -46,6 +46,7 @@
 #include <data_caging_path_literals.hrh>
 #include <gulicon.h>            // Gul Icon
 #include <StringLoader.h>
+#include <hlplch.h> 
 
 #include <epos_csuplsettingsconstants.h>
 #include <epos_csuplsettingparams.h>
@@ -269,152 +270,108 @@
 	DEBUG1( + CLocSUPLServerEditor::ProcessCommandL aCommandId=%d, aCommandId );
 	CAknForm::ProcessCommandL( aCommandId );
 
-	switch ( aCommandId )
-       	{
-       	case EAknFormCmdEdit:
-       		{
-			iIsEditMode = ETrue;
-			SetCursorToEndL();
-   			HandleMSKCaptionL();						
-       		break;
-       		}
-       	case ELocServerEditorDelete:
-       	case ELocServerEditorRemove:
-       		{
-       		if( DeleteConfirmationQueryL() )
-       			{
-       			TRAP_IGNORE( iEngine.RemoveServerL( iSlpId ) );
-        		// Return back to server view
-	       		TryExitL( EAknSoftkeyBack );
-      			}       			
-       		break;
-       		}
-       	case ELocServerEditorDisable:
-       		{
-       		TRAP_IGNORE( iEngine.SetServerEnabledFlagL( iSlpId, EFalse ) );
-       		break;
-       		}
-       	case ELocServerEditorEnable:
-       		{
-       		TRAP_IGNORE( iEngine.SetServerEnabledFlagL( iSlpId, ETrue ) );
-      		break;
-       		}
-       	case ELocServerEditorDefine:
-       		{
-        	TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
-       		break;
-       		}
-       	case ELocServerEditorChange:
-       	case ELocServerEditorMSKChange:       	
-       		{
-		    if ( IdOfFocusControl() == ELocSuplServerIdAccessPoint )
-		    	{
-        		TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
-		    	}
-		    else
-		    	{
-		    	if( iIsNewServer )
-		    		{
-		    		TogglePopupFieldControlL( IdOfFocusControl() );
-		    		}
-		    	else
-		    		{
-			    	TBool editableFlag;
-			    	TRAP_IGNORE( iEngine.GetEditableFlagL( iSlpId, editableFlag ) );
-			    	if ( editableFlag )
-			    		TogglePopupFieldControlL( IdOfFocusControl() );		    		
-		    		}
-		    	}			    	
-       		break;
-       		}
-       	case EAknCmdHelp:
-       		{
-       		break;
-       		}
-       	case EEikCmdExit:
-       		{
-       		// The Exit is handled by the Application UI
-       		TryExitL( EEikCmdExit );
-       		break;
-       		}
-		default:
-			break;
-       	}
-	DEBUG( - CLocSUPLServerEditor::ProcessCommandL );
-	}
-	
+    switch (aCommandId)
+        {
+        case EAknFormCmdEdit:
+            {
+            iIsEditMode = ETrue;
+            SetCursorToEndL();
+            HandleMSKCaptionL();
+            break;
+            }
+        case ELocServerEditorDelete:
+        case ELocServerEditorRemove:
+            {
+            if (DeleteConfirmationQueryL())
+                {
+                TRAP_IGNORE( iEngine.RemoveServerL( iSlpId ) );
+                // Return back to server view
+                TryExitL(EAknSoftkeyBack);
+                }
+            break;
+            }
+        case ELocServerEditorDisable:
+            {
+            TRAP_IGNORE( iEngine.SetServerEnabledFlagL( iSlpId, EFalse ) );
+            break;
+            }
+        case ELocServerEditorEnable:
+            {
+            TRAP_IGNORE( iEngine.SetServerEnabledFlagL( iSlpId, ETrue ) );
+            break;
+            }
+        case ELocServerEditorDefine:
+            {
+            TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
+            break;
+            }
+        case ELocServerEditorChange:
+        case ELocServerEditorMSKChange:
+            {
+            CEikEdwin* usageInHomeNWPopupFieldText = (CEikEdwin*) Control(
+                    ELocSuplServerIdUsageInHomeNw);
+            if (IdOfFocusControl() == ELocSuplServerIdAccessPoint)
+                {
+                TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
+                }
+            else
+                {
+                if (iIsNewServer)
+                    {
+                    TBuf<KMaxUsageTextSize> des;
+                    usageInHomeNWPopupFieldText->GetText(des);
+                    if (!des.Compare(KNoUsageInHomeNetork))
+                        {
+                        SetUsageinHomeNetwork(ETrue);
+                        }
+                    else
+                        {
+                        SetUsageinHomeNetwork(EFalse);
+                        }
+                    }
+                else
+                    {
+                    TBool editableFlag;
+                    TRAP_IGNORE( iEngine.GetEditableFlagL( iSlpId, editableFlag ) );
+                    if (editableFlag)
+                        {
+                        TBuf<KMaxUsageTextSize> des;
+                        usageInHomeNWPopupFieldText->GetText(des);
+                        if (!des.Compare(KNoUsageInHomeNetork))
+                            {
+                            SetUsageinHomeNetwork(ETrue);
+                            }
+                        else
+                            {
+                            SetUsageinHomeNetwork(EFalse);
+                            }
+                        }
+                    }
+                }
+            break;
+            }
+        case EAknCmdHelp:
+            {
+            HlpLauncher::LaunchHelpApplicationL(iCoeEnv->WsSession(),
+                    iAvkonAppUi->AppHelpContextL());
+            break;
+            }
+        case EEikCmdExit:
+            {
+            // The Exit is handled by the Application UI
+            TryExitL(EEikCmdExit);
+            break;
+            }
+        default:
+            break;
+        }DEBUG( - CLocSUPLServerEditor::ProcessCommandL );
+    }
+
 // ---------------------------------------------------------------------------
 // Derived from CEikDialog
 // ---------------------------------------------------------------------------
 
 // -----------------------------------------------------------------------------
-// CLocSUPLServerEditor::HandlePointerEventL
-// -----------------------------------------------------------------------------
-//  
-void CLocSUPLServerEditor::HandlePointerEventL(const TPointerEvent &aPointerEvent)
-	{	
-    DEBUG( +CLocSUPLServerEditor::HandlePointerEventL );
-    CEikEdwin* serverAddress = static_cast<CEikEdwin*> (ControlOrNull(
-            ELocSuplServerIdServerAddr));
-    CEikEdwin* iapEditor = static_cast<CEikEdwin*> (ControlOrNull(
-            ELocSuplServerIdAccessPoint));
-    CAknPopupFieldText* usageInHomeNWPopupFieldText =
-            (CAknPopupFieldText*) Control(ELocSuplServerIdUsageInHomeNw);
-
-    if (!IsEditable())
-        {
-        CAknForm::HandlePointerEventL(aPointerEvent);
-    
-        if(aPointerEvent.iType == TPointerEvent::EButton1Up)
-            {
-            // Opens the editor on Single Click on any of the controls. Click on rest of the click does not repond
-            if (iapEditor->Rect().Contains(aPointerEvent.iPosition)
-                    || usageInHomeNWPopupFieldText->Rect().Contains(
-                            aPointerEvent.iPosition)
-                    || serverAddress->Rect().Contains(aPointerEvent.iPosition))
-                {
-                ProcessCommandL(EAknFormCmdEdit);
-                }
-            }
-        }
-    else if (IsEditable())
-        {
-        if (usageInHomeNWPopupFieldText )
-            {
-            if (usageInHomeNWPopupFieldText->Rect().Contains(
-                    aPointerEvent.iPosition) )
-                {
-                if( aPointerEvent.iType == TPointerEvent::EButton1Down )
-                    {
-                      TogglePopupFieldControlL(IdOfFocusControl());
-                      if (iIsNewServer)
-                        {
-                        iIsModified = ETrue;
-                        }
-                    } 
-                return;
-                }
-            }
-
-        CAknForm::HandlePointerEventL(aPointerEvent);
-
-        //check if click is on IAP Editor control
-        if (iapEditor)
-            {
-            if (iapEditor->Rect().Contains(aPointerEvent.iPosition) &&
-                    aPointerEvent.iType == TPointerEvent::EButton1Up )
-                {
-                //Launch IAP Dialog
-                TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
-                return;
-                }
-            }
-        }
-    DEBUG( - CLocSUPLServerEditor::HandlePointerEventL );
-    }
-
-        
-// -----------------------------------------------------------------------------
 // CLocSUPLServerEditor::OfferKeyEventL
 // Receives and handles key events
 // -----------------------------------------------------------------------------
@@ -552,6 +509,16 @@
 			            //dont close editor            
 			            retVal = EFalse;	            		
             			}
+            		else if( err == KErrArgument )
+	            		{
+	            		ShowServerValidationInfoNoteL( R_LOC_SERVER_INFO_NOTE );
+						iIsEditMode = ETrue;
+			    		SetEditableL( iIsEditMode );					
+						SetInitialCurrentLine();								
+						SetCursorToEndL();
+	            		//dont close editor            
+	            		retVal = EFalse;	
+	            		}
             		}
             	else
             		{ // save the existing slp entry info
@@ -576,6 +543,16 @@
 						    SetInitialCurrentLine();	            			
 							SetCursorToEndL();
             				}
+            			else if( err == KErrArgument )
+            			    {
+            			    ShowServerValidationInfoNoteL( R_LOC_SERVER_INFO_NOTE );
+            			    iIsEditMode = ETrue;
+            			    SetEditableL( iIsEditMode );                    
+            			    SetInitialCurrentLine();                                
+            			    SetCursorToEndL();
+            			    //dont close editor            
+            			    retVal = EFalse;    
+            			    }
             			}
 	            	HandleMSKCaptionL();
 		            //dont close editor            
@@ -655,22 +632,24 @@
         	iIap->Des().Copy( KNullDesC );
         	}
         delete apString;
-       	}
-	
-	//Retrieve Usage In Home Nw Field value
-   	CAknPopupFieldText* usageInHomeNWPopupFieldText =
-         	( CAknPopupFieldText* ) Control( ELocSuplServerIdUsageInHomeNw );
-   	if( usageInHomeNWPopupFieldText )
-       	{
-       	if( usageInHomeNWPopupFieldText->CurrentValueIndex() == 0 )
-       		{
-       		iUsageInHomeNw = ETrue;
-       		}
-       	else
-       		{
-        	iUsageInHomeNw = EFalse;      		
-       		}
-       	}
+        }
+
+    //Retrieve Usage In Home Nw Field value
+    CEikEdwin* usageInHomeNWPopupFieldText = (CEikEdwin*) Control(
+            ELocSuplServerIdUsageInHomeNw);
+    if (usageInHomeNWPopupFieldText)
+        {
+        TBuf<KMaxUsageTextSize> des;
+        usageInHomeNWPopupFieldText->GetText(des);
+        if (!des.Compare(KNoUsageInHomeNetork))
+            {
+            iUsageInHomeNw = ETrue;
+            }
+        else
+            {
+            iUsageInHomeNw = EFalse;
+            }
+        }
 
     if( iServerAddress->Length() > 0 )
     	{
@@ -836,9 +815,20 @@
             HBufC* apString = StringLoader::LoadL( R_LOC_SERVER_NONE );   
             apSelector->SetTextL( apString );
             delete apString;
-            } 
-       	apSelector->DrawNow();
-        
+            }
+        apSelector->DrawNow();
+
+        CEikEdwin* usageInHNWPopupFieldText = (CEikEdwin*) Control(
+                ELocSuplServerIdUsageInHomeNw);
+        if (usageInHNWPopupFieldText)
+            {
+            HBufC* usageString = StringLoader::LoadL(
+                    R_LOC_SERVER_USAGEINHOMENETWORK_YES);
+            usageInHNWPopupFieldText->SetTextL(usageString);
+            delete usageString;
+            }
+        usageInHNWPopupFieldText->DrawNow();
+
         // update the title pane caption
        	HBufC* serverTitle = StringLoader::LoadL( R_LOC_SERVER_EDITOR_TITLE ); 
        	if( serverTitle )
@@ -902,16 +892,16 @@
         	iIap->Des().Copy( iapName->Des() );
             } 
 
-        CAknPopupFieldText* usageInHNWPopupFieldText = 
-        			( CAknPopupFieldText* ) Control( ELocSuplServerIdUsageInHomeNw );
-        if( usageInHNWPopupFieldText )
-            {  
-            if( usageInHomeNwFlag  )
-            	usageInHNWPopupFieldText->SetCurrentValueIndex( 0 );                  	
+        CEikEdwin* usageInHNWPopupFieldText = (CEikEdwin*) Control(
+                ELocSuplServerIdUsageInHomeNw);
+        if (usageInHNWPopupFieldText)
+            {
+            if (usageInHomeNwFlag)
+                SetUsageinHomeNetwork(EFalse);
             else
-            	usageInHNWPopupFieldText->SetCurrentValueIndex( 1 );                  	
-            
-            UpdatePageL( ETrue );
+                SetUsageinHomeNetwork(ETrue);
+
+            UpdatePageL(ETrue);
             iUsageInHomeNw = usageInHomeNwFlag;
             }            
             
@@ -948,6 +938,7 @@
 // ---------------------------------------------------------------------------
 // CLocSUPLServerEditor::TogglePopupFieldControlL()
 // it toggles  value of popupfield control
+// This method is no longer in use since TB 9.2
 // ---------------------------------------------------------------------------
 //
 void CLocSUPLServerEditor::TogglePopupFieldControlL( TInt aControlId )
@@ -1129,5 +1120,88 @@
    			}
 		}
 	}
+// ----------------------------------------------------------------------------------
+// CLocSUPLServerEditor::HandleDialogPageEventL
+// ----------------------------------------------------------------------------------
+//
+void CLocSUPLServerEditor::HandleDialogPageEventL(TInt aEventID)
+    {
+    DEBUG( +CLocSUPLServerEditor::HandleDialogPageEventL );
+
+    CAknForm::HandleDialogPageEventL(aEventID);
+    CEikEdwin* iapEditor = static_cast<CEikEdwin*> (ControlOrNull(
+            ELocSuplServerIdAccessPoint));
+    CEikEdwin* usageInHomeNWPopupFieldText = (CEikEdwin*) Control(
+            ELocSuplServerIdUsageInHomeNw);
+    TInt focusControl(IdOfFocusControl());
+
+    if (!IsEditable())
+        {
+        if (focusControl == ELocSuplServerIdUsageInHomeNw
+                || ELocSuplServerIdServerAddr || ELocSuplServerIdAccessPoint)
+            {
+            ProcessCommandL(EAknFormCmdEdit);
+            }
+        }
+    else if (aEventID == MEikDialogPageObserver::EDialogPageTapped)
+        {
+        if (focusControl == ELocSuplServerIdUsageInHomeNw)
+            {
+            if (usageInHomeNWPopupFieldText)
+                {
+                TBuf<KMaxUsageTextSize> des;
+                usageInHomeNWPopupFieldText->GetText(des);
+                if (!des.Compare(KNoUsageInHomeNetork))
+                    {
+                    SetUsageinHomeNetwork(ETrue);
+                    }
+                else
+                    {
+                    SetUsageinHomeNetwork(EFalse);
+                    }
+                if (iIsNewServer)
+                    {
+                    iIsModified = ETrue;
+                    }
+                }
+            return;
+            }
+        if (focusControl == ELocSuplServerIdAccessPoint)
+            {
+            if (iapEditor)
+                {
+                //Launch IAP Dialog
+                TRAP_IGNORE( iEngine.LaunchApConfiguratorL( iSlpId, this ) );
+                }
+            }
+        }DEBUG( -CLocSUPLServerEditor::HandleDialogPageEventL );
+    }
+
+// -----------------------------------------------------------------------------
+// CLocSUPLServerEditor::SetUsageinHomeNetwork
+// Set usage in network field on or off
+// -----------------------------------------------------------------------------
+//
+void CLocSUPLServerEditor::SetUsageinHomeNetwork(TBool aOnOff)
+    {
+    HBufC* string;
+    CEikEdwin* usageInHomeNWPopupFieldText = (CEikEdwin*) Control(
+            ELocSuplServerIdUsageInHomeNw);
+    if (aOnOff)
+        {
+        // load string 'ON'
+        string = StringLoader::LoadLC(R_LOC_SERVER_USAGEINHOMENETWORK_YES,
+                iCoeEnv);
+        }
+    else
+        {
+        // load string 'OFF'
+        string = StringLoader::LoadLC(R_LOC_SERVER_USAGEINHOMENETWORK_NO,
+                iCoeEnv);
+        }
+    // set Usage in Network field string as 'ON'/'OFF'
+    usageInHomeNWPopupFieldText->SetTextL(string);
+    CleanupStack::PopAndDestroy(string);
+    }
 
 // End of file
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsessioncontainer.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsessioncontainer.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -269,7 +269,7 @@
     {
 	DEBUG( + CLocSUPLSessionContainer::GetHelpContext );	
     aContext.iContext = iContextName;
-    aContext.iMajor = TUid::Uid( KLOCSUPLSERVERUIUID3 );
+    aContext.iMajor = TUid::Uid( KLOCSUPLSETTINGSUIUID3 );
 	DEBUG( - CLocSUPLSessionContainer::GetHelpContext );	
     }
     
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsessioneditor.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsessioneditor.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -39,6 +39,7 @@
 #include <data_caging_path_literals.hrh>
 #include <gulicon.h>            // Gul Icon
 #include <StringLoader.h>
+#include <hlplch.h>
 
 #include <epos_csuplsettingsconstants.h>
 #include <epos_csuplsettingparams.h>
@@ -229,6 +230,8 @@
        		}
        	case EAknCmdHelp:
        		{
+          HlpLauncher::LaunchHelpApplicationL( iCoeEnv->WsSession(),
+                                              iAvkonAppUi->AppHelpContextL() );			
        		break;
        		}
        	case EEikCmdExit:
@@ -610,6 +613,7 @@
 	if( !aSeconds )
 		{
         tempString.Num(aSeconds);
+		AknTextUtils::LanguageSpecificNumberConversion(tempString);
         aTimeString = StringLoader::LoadL( R_LOC_SUPL_TRIGGER_TIME_MINUTES, tempString ); 
         return;
 		}
@@ -622,6 +626,7 @@
 	    TReal mins = TReal(aSeconds)/KMinToSecs;
 		Math::Round( approxValue, mins, 2 );
         tempString.Num(approxValue, fmt);
+		AknTextUtils::LanguageSpecificNumberConversion(tempString);
         aTimeString = StringLoader::LoadL( R_LOC_SUPL_TRIGGER_TIME_MINUTES, tempString ); 
 		}
 	else if( hrs == 1 )
@@ -635,6 +640,7 @@
     		{
     		Math::Round( approxValue, hrs, 2 );
         	tempString.Num(approxValue, fmt);
+			AknTextUtils::LanguageSpecificNumberConversion(tempString);
             aTimeString = StringLoader::LoadL( R_LOC_SUPL_TRIGGER_TIME_HOURS, tempString ); 
     		}
     	else if( days == 1 )
@@ -645,7 +651,8 @@
     		{
     		Math::Round( approxValue, days, 2 );
         	tempString.Num(approxValue, fmt);
-            aTimeString = StringLoader::LoadL( R_LOC_SUPL_TRIGGER_TIME_DAYS, tempString ); 
+            AknTextUtils::LanguageSpecificNumberConversion(tempString);
+			aTimeString = StringLoader::LoadL( R_LOC_SUPL_TRIGGER_TIME_DAYS, tempString ); 
     		}
 		}
 	}
--- a/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsadapter.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsadapter.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -448,17 +448,18 @@
 	{
 	DEBUG( + CLocSUPLSettingsAdapter::AddNewServerL );	
 	CServerParams* serverParam = CServerParams::NewL();
-	serverParam->Set( 
+	CleanupStack::PushL( serverParam );
+	User::LeaveIfError(serverParam->Set( 
 						aServerAddress, 
 						aIapName, 
 						ETrue, 
 						EFalse, // default value
 						aUsageInHomeNw, 
-						ETrue );
+						ETrue ));
 	
 	TInt64 slpId;	
 	User::LeaveIfError( iSUPLSettings->AddNewServer( serverParam, slpId ) );							
-	delete serverParam;
+	CleanupStack::PopAndDestroy();
 	DEBUG( - CLocSUPLSettingsAdapter::AddNewServerL );	
 	}
 	
--- a/locationsystemui/locationsysui/locsysuiview/data/locsysuiviewrsc.rss	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locsysuiview/data/locsysuiviewrsc.rss	Fri Apr 16 15:23:31 2010 +0300
@@ -27,7 +27,7 @@
 #include    <avkon.rh>
 #include    <avkon.rsg>
 #include    <avkon.mbg>
-#include    <eikcore.rsg>
+#include    <EIKCORE.rsg>
 #include    <eikon.rh>
 #include    <eikon.rsg>
 #include    <avkon.loc>
--- a/locationsystemui/locationsysui/locutils/data/locutils.rss	Tue Feb 02 10:12:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
-* Copyright (c) 2006 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:  Resource File for the Location System UI 
-*			  	  Utilities
-*       
-*
-*/
-
-
-//  RESOURCE IDENTIFIER
-NAME    LUPS // 4 letter ID
-
-//  INCLUDES
-#include <eikon.rh>
-#include <VPbkFieldType.rh>
-#include <VPbkFieldType.hrh>
-
-// CONSTANTS
-
-//  RESOURCE DEFINITIONS 
-
-//----------------------------------------------------
-//   
-//    
-//    Needed or loading the resource fails!
-//
-//----------------------------------------------------	
-//
-RESOURCE RSS_SIGNATURE
-    {
-    }
-
-
-//----------------------------------------------------
-//   
-//    r_vpbk_email_selector
-//    Resource used while selecting WEB URL field for
-//    Phonebook Search.
-//
-//----------------------------------------------------
-//
-RESOURCE VPBK_FIELD_TYPE_SELECTOR r_vpbk_url_selector
-    {
-    versitProperties = 
-        {
-        VBK_FIELD_VERSIT_PROPERTY
-            {
-            name = EVPbkVersitNameURL;
-            }
-        };
-    }
-
-//----------------------------------------------------
-//   
-//    r_vpbk_email_selector
-//    Resource used while selecting EMAIL field for
-//    Phonebook Search.
-//
-//----------------------------------------------------
-//
-RESOURCE VPBK_FIELD_TYPE_SELECTOR r_vpbk_email_selector
-    {
-    versitProperties = 
-        {
-        VBK_FIELD_VERSIT_PROPERTY
-            {
-            name = EVPbkVersitNameEMAIL;
-            }
-        };
-    }
-
-//----------------------------------------------------
-//   
-//    r_vpbk_sipurl_selector
-//    Resource used while selecting SIP URL field for
-//    Phonebook Search.
-//
-//----------------------------------------------------
-//
-RESOURCE VPBK_FIELD_TYPE_SELECTOR r_vpbk_sipurl_selector
-    {
-    versitProperties = 
-        {
-        VBK_FIELD_VERSIT_PROPERTY
-            {
-            name = EVPbkVersitNameX;
-            extensionName = "X-SIP";
-            }
-        };
-    }
--- a/locationsystemui/locationsysui/locutils/group/locutils.mmp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locutils/group/locutils.mmp	Fri Apr 16 15:23:31 2010 +0300
@@ -43,17 +43,11 @@
 #endif
 
 // System Include
-APP_LAYER_SYSTEMINCLUDE
+MW_LAYER_SYSTEMINCLUDE
 
 USERINCLUDE 		.
 USERINCLUDE			../inc
 
-SOURCEPATH ../data
-START RESOURCE locutils.rss
-HEADER
-TARGETPATH          RESOURCE_FILES_DIR
-END
-
 LIBRARY 			euser.lib 
 LIBRARY 			bafl.lib
 LIBRARY 			avkon.lib
@@ -63,9 +57,6 @@
 LIBRARY 			sysutil.lib
 LIBRARY 			eposprvtyp.lib
 
-LIBRARY             vpbkeng.lib
-LIBRARY             pbk2presentation.lib
-
 #ifdef LOC_ENABLE_DEBUG_PRINT
 LIBRARY 			flogger.lib
 #endif
--- a/locationsystemui/locationsysui/locutils/inc/locrequestorutilsresolver.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locutils/inc/locrequestorutilsresolver.h	Fri Apr 16 15:23:31 2010 +0300
@@ -20,23 +20,10 @@
 #define CLOCREQUESTORUTILSRESOLVER_H_
 
 //  INCLUDES
-#include <cntdb.h>                  // MIdleFindObserver
-#include <PbkFields.hrh>            // TPbkFieldId
-#include <centralrepository.h>
-#include <cenrepnotifyhandler.h>
+#include <e32base.h>
 
 //FORWARD DECLARATION
-class CPbkFieldIdArray;
-class CPbkIdleFinder;
-class CPbkContactEngine;
-class CActiveSchedulerWait;
 class CPosRequestor;
-class MVPbkContactOperationBase;
-class MVPbkContactLinkArray;
-class MVPbkStoreContact;
-class MVPbkFieldTypeList;
-class CPbk2SortOrderManager;
-class MPbk2ContactNameFormatter;
 
 // CLASS DECLARATION
 
@@ -45,8 +32,7 @@
 *  @lib locutils.lib
 *  @since 3.0
 */
-class CLocRequestorUtilsResolver  :	public CBase,
-                                    public MCenRepNotifyHandlerCallback 
+class CLocRequestorUtilsResolver  :	public CBase
     {
     public: // Constructors and destructor
 
@@ -108,90 +94,6 @@
 		* The Symbian 2nd Phase Constructor is always Private
 		*/
 		void ConstructL();
-
-    private:
-        /** 
-        * From base class MCenRepNotifyHandlerCallback
-        * This callback method is used to notify the client about
-        * changes for integer value keys, i.e. key type is EIntKey.
-        *
-        * @param aId Id of the key that has changed.
-        * @param aNewValue The new value of the key.
-        */
-        virtual void HandleNotifyInt( TUint32 aId, TInt aNewValue );
-
-        /** 
-        * This callback method is used to notify the client about errors
-        * in the handler. Any error in handling causes the handler to stop
-        * handling any more notifications.
-        *
-        * @param aId Id of the key this instance listens for or if 
-        *            notifications for whole repository are listened, could 
-        *            also be KInvalidNotificationId.
-        * @param aError Error code.
-        * @param aHandler Pointer to the handler instance. 
-        */
-        virtual void HandleNotifyError( TUint32 aId, TInt aError, 
-                                        CCenRepNotifyHandler* aHandler );
-
-    private: // New Methods
-		/**
-        * This resolves the requestor by searching the contacts database
-        * based on the requestor Id Information.
-        * This searches only the default contact database now.
-        */
-        void ResolveRequestorNameL( CPosRequestor& aRequestor );
-
-		/**
-        * This resolves the requestor by searching the contacts database
-        * based on Phone Number. This searches only the default contact
-        * database now.
-        */
-		void SearchByPhoneNumberL( CPosRequestor& aRequestor );
-
-		/**
-        * This resolves the requestor by searching the contacts database
-        * based on Other Fields. Used to search E-mail , SIP URL and Web URL 
-        * type fields. This searches only the default contact database now.
-        */
-		void SearchByOtherFieldsL( CPosRequestor& aRequestor, 
-		                           TPbkFieldId aFieldType );
-
-		/**
-        * This resolves the requestor by searching for the requestor 
-        * string in al the fields in the contacts database.
-        * This searches only the default contact database now.
-        */
-		void SearchByAllFieldsL( CPosRequestor& aRequestor );
-
-		/**
-		* The Contact Searchs based on other fields can return contact cards
-		* that do not match in the specified field but in some other field.
-		* This method checks if the match occurs in the exact specified field.
-		*/
-		TBool IsContactExactRequestorMatchL( CPosRequestor& aRequestor,
-								             TContactItemId& aCntItemId,
-								             TPbkFieldId aFieldType );
-
-		/**
-		* This sets the contact card name in the requestor.
-		* Also the Requestor Format is changes to GenericName
-		*/
-		void SetContactNameToRequestorL( CPosRequestor& aRequestor,
-									     TContactItemId& aCntItemId );
-			
-    private: // member data
-    	// Own : Handle to the Contact Engine used to resolve the requestors
-		CPbkContactEngine* iPbkContactEngine;
-
-        // Central repository instance.
-        CRepository* iCenRepSession;
-
-        // Central repository notify handler instance.
-        CCenRepNotifyHandler* iCenRepNotifyHandler;
-        
-        // Matched numbers
-        TInt iNumDigitsToMatch;
     };
 
 #endif // CLOCREQUESTORUTILSRESOLVER_H_
--- a/locationsystemui/locationsysui/locutils/inc/locrequestorutilsresolverimpl2.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locutils/inc/locrequestorutilsresolverimpl2.h	Fri Apr 16 15:23:31 2010 +0300
@@ -19,24 +19,9 @@
 #ifndef CLOCREQUESTORUTILSRESOLVER_H_
 #define CLOCREQUESTORUTILSRESOLVER_H_
 
-//  INCLUDES
-#include <MVPbkContactFindObserver.h>
-#include <MVPbkSingleContactOperationObserver.h>
-#include <MVPbkContactLink.h>
-#include <MVPbkContactStoreListObserver.h>
-#include <MVPbkContactStoreObserver.h>
-#include <eikenv.h>
 
 //FORWARD DECLARATION
-class CVPbkContactManager;
-class CActiveSchedulerWait;
 class CPosRequestor;
-class MVPbkContactOperationBase;
-class MVPbkContactLinkArray;
-class MVPbkStoreContact;
-class MVPbkFieldTypeList;
-class CPbk2SortOrderManager;
-class MPbk2ContactNameFormatter;
 
 // CLASS DECLARATION
 
@@ -45,10 +30,7 @@
 *  @lib locutils.lib
 *  @since 3.0
 */
-class CLocRequestorUtilsResolver  :	public CActive,
-                                    public MVPbkContactFindObserver,
-                                    public MVPbkSingleContactOperationObserver,
-                                    public MVPbkContactStoreListObserver
+class CLocRequestorUtilsResolver  :	public CBase
     {
     public: // Constructors and destructor
 
@@ -99,107 +81,7 @@
         * @return name descriptor, ownership is transferred to caller
         */
         IMPORT_C HBufC* RequestorNameL( const CPosRequestor& aRequestor );
-
-    protected: // From Base class MVPbkContactFindObserver.
-       /**
-        * Called when find is complete. The ownership of results in transferred
-        * to this class.
-        * In case of an error during find, the aResults may contain only 
-        * partial results of the find.
-        *
-        * @param aResults Array of contact links that matched the find.
-        *                 Callee must take ownership of this object in
-        *                 the end of the function, ie. in case the function
-        *                 does not leave.
-        */
-        virtual void FindCompleteL(MVPbkContactLinkArray* aResults);
-
-       /**
-        * Called in case the find fails for some reason.
-        * 
-        * @param aError One of the system wide error codes.
-        */
-        virtual void FindFailed(TInt aError);
-    
-    protected: // From Base class MVPbkSingleContactOperationObserver
-       /**
-        * Called when operation is completed.
-        *
-        * @param aOperation the completed operation.
-        * @param aContact  the contact returned by the operation.
-        *                  Client must take the ownership immediately.
-        *
-        */
-        virtual void VPbkSingleContactOperationComplete(
-                MVPbkContactOperationBase& aOperation,
-                MVPbkStoreContact* aContact);
-
-       /**
-        * Called if the operation fails.
-        *
-        * @param aOperation    the failed operation.
-        * @param aError        error code of the failure.
-        */
-        virtual void VPbkSingleContactOperationFailed(
-                MVPbkContactOperationBase& aOperation, 
-                TInt aError);
-
-    protected: //From base class MVPbkContactStoreListObserver
-        /**
-         * Called when the opening process is complete, 
-         * ie. all stores have been reported
-         * either failed or successful open.
-         */
-        virtual void OpenComplete();
-    
-    protected: //From base class MVPbkContactStoreObserver
-        /**
-         * Called when a contact store is ready to use.
-         */
-        virtual void StoreReady(MVPbkContactStore& aContactStore);
-
-        /**
-         * Called when a contact store becomes unavailable.
-         * Client may inspect the reason of the unavailability and decide whether or not
-         * it will keep the store opened (ie. listen to the store events).
-         * @param aContactStore The store that became unavailable.
-         * @param aReason The reason why the store is unavailable.
-         *                This is one of the system wide error codes.
-         */
-        virtual void StoreUnavailable(MVPbkContactStore& aContactStore, TInt aReason);
-
-        /**
-         * Called when changes occur in the contact store.
-         * @see TVPbkContactStoreEvent
-         *
-         * @param aStoreEvent Event that has occured.
-         */
-        virtual void HandleStoreEventL(
-                MVPbkContactStore& aContactStore, 
-                TVPbkContactStoreEvent aStoreEvent);
-    
-    protected:
-        /**
-        * From Base class CActive
-        * This method is called by the ActiveScheduler when the asynchronous
-        * operation gets completed.
-        */
-        virtual void RunL();
-
-        /**
-        * From Base class CActive
-        * If RunL leaves then it is handled in RunError.
-        * @param aError the ErrorCode on which RunL did a Leave.
-        */
-        virtual TInt RunError(TInt aError);
-
-        /**
-        * From Base class CActive
-        * DoCancel is called when the operation performed by the Active Object
-        * needs to be cancelled.
-        */
-    	virtual void DoCancel();
-    
+		    
     private: // Constructors
         /**
         * C++ default constructor.
@@ -210,96 +92,6 @@
 		* The Symbian 2nd Phase Constructor is always Private
 		*/
 		void ConstructL();
-
-    private: // New Methods
-		/**
-        * This resolves the requestor by searching the contacts database
-        * based on the requestor Id Information.
-        * This searches only the default contact database now.
-        */
-        void ResolveRequestorNameL(CPosRequestor& aRequestor);
-
-		/**
-        * This resolves the requestor by searching the contacts database
-        * based on Phone Number.
-        * This searches only the default contact database now.
-        */
-		void ResolveRequestorByPhoneNumberL(
-								CPosRequestor& aRequestor);
-
-		/**
-        * This resolves the requestor by searching the contacts database
-        * based on Other Fields. Used to search based on E-mail and URL 
-        * type. This searches only the default contact database now.
-        */
-		void ResolveRequestorByOtherFieldsL(
-								CPosRequestor& aRequestor,
-								MVPbkFieldTypeList* aFieldType);
-
-		/**
-		* This sets the contact card name in the requestor.
-		* Also the Requestor Format is changes to GenericName
-		*/
-		void SetContactNameToRequestorL(TInt aCntLinkArrayIndex);
-
-    private: // Helper methods
-		/**
-		* Schedule this dumy Active object to run again.
-		*/
-        void ScheduleAORun();
-        
-		/**
-		* Complete the Contact resolving operation.
-		*/
-        void CompleteRequest();
-    
-    private: // State of Contacts Resolving
-        enum TContactResolverState
-            {
-            KNoProcessing = 0,
-            KResolveRequestor,
-            KMatchedContacts,
-            KRetrievedContactInfo,
-            KResolvingCompleted
-            };
-    
-    private: // member data
-        // Ref : The current requestor stack that is being resolved.
-    	RPointerArray<CPosRequestor>* iRequestors;
-    	
-    	// Own : Handle to the Contact Engine used to resolve the requestors
-		CVPbkContactManager* iPbkContactEngine;
-		
-		// Own: Parameter for the MPbk2ContactNameFormatter
-        CPbk2SortOrderManager* iPbkSortManager;
-        
-		// Own: Parameter for the Find API
-        MPbk2ContactNameFormatter* iPbkCntFormatter;
-        
-		// Own : ActiveSchedulerWait Loop.
-		CActiveSchedulerWait iWait;
-		
-		// Own : Handle to the Current operation being performed
-		MVPbkContactOperationBase* iCntsOperation;
-		
-		// Own : the Link to the matched contacts
-		MVPbkContactLinkArray* iCntLinkArray;
-		
-		// Own: The Contact retrieved
-		MVPbkStoreContact* iContact;
-
-        // The current state of contacts resolving
-        TContactResolverState iState;
-        
-		// The index of the current requestor that is being processed.
-		TInt iCount;
-    
-        // The offset returned by the AddResourceFile
-        // Used to delete the resource file.
-        TInt iResourceOffset;
-        
-        // Eikon Env
-        CEikonEnv* iEnv;
     };
 
 #endif // CLOCREQUESTORUTILSRESOLVER_H_
--- a/locationsystemui/locationsysui/locutils/src/locrequestorutilsresolverimpl2.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locutils/src/locrequestorutilsresolverimpl2.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -21,45 +21,16 @@
 #include <e32base.h>
 #include <barsread.h>
 
+
 #include <lbs/epos_cposrequestor.h>
 #include <lbs/epos_cposservicerequestor.h>
 #include <lbs/epos_cposcontactrequestor.h>
 
-// Virtual Phonebook Engine API
-#include <CVPbkContactManager.h>
-#include <VPbkContactStoreUris.h>
-#include <CVPbkContactStoreUriArray.h>
-#include <TVPbkContactStoreUriPtr.h>
-#include <MVPbkContactLinkArray.h>
-#include <MVPbkContactOperationBase.h>
-#include <MVPbkContactLink.h>
-#include <MVPbkStoreContact.h>
-#include <TVPbkFieldVersitProperty.h>
-#include <VPbkFieldType.hrh>
-#include <MVPbkContactStoreList.h>
-#include <MVPbkContactStore.h>
-#include <TVPbkFieldTypeMapping.h>
-#include <CVPbkFieldTypeSelector.h>
-
-// Virtual Phonebook Presentation API
-#include <CPbk2StoreConfiguration.h>
-#include <Pbk2ContactNameFormatterFactory.h>
-#include <CPbk2SortOrderManager.h>
-#include <MPbk2ContactNameFormatter.h>
-#include <CVPbkFieldTypeRefsList.h>
-#include <MVPbkContactFieldData.h>
-
-#include <cntdef.h>
 
 #include "locrequestorutilsresolverimpl2.h"
 #include "locutilsdebug.h"
 #include "locfileutils.h"
-#include <locutils.rsg>
 
-// This is a non localisable resource file hence we can directly refer to the
-// file as .rsc and we don't need to use the BaflUtils to load this resource
-// file.
-_LIT(KLocUtilsRscFile, "\\resource\\locutils.rsc");
 // ============= CLocRequestorUtilsResolver MEMBER FUNCTIONS =================
 
 // ---------------------------------------------------------------------------
@@ -83,14 +54,6 @@
 //
 CLocRequestorUtilsResolver::~CLocRequestorUtilsResolver()
 	{
-    delete iCntsOperation;
-    delete iCntLinkArray;
-    delete iContact;
-    delete iPbkContactEngine;
-    delete iPbkSortManager;
-    delete iPbkCntFormatter;
-
-    iEnv->DeleteResourceFile( iResourceOffset );
 	}
 
 // ---------------------------------------------------------------------------
@@ -98,21 +61,9 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CLocRequestorUtilsResolver::ProcessRequestorsL( 
-	RPointerArray<CPosRequestor>& aRequestors )
+	RPointerArray<CPosRequestor>& /*aRequestors*/ )
 	{
-    // The Contact Stores are all opened and setup for Search Operation
-    // Let us start with the first requestor now.
-	// The iCount member denotes the current requestor being processed.
-	// Initialise the value to zero.
-    iCount = 0;
-
-	iRequestors = &aRequestors;
-	// Initialize the state machine.
-	iState = KNoProcessing;
-	// Start the Active Object.
-	ScheduleAORun();
-	
-	iWait.Start();
+    // Removed this functionality to avoid App layer dependency
 	}
 	
 // -----------------------------------------------------------------------------
@@ -161,310 +112,6 @@
 	return aRequestor.RequestorIdString().AllocL();
     }
 
-
-// ---------------------------------------------------------------------------
-// This is the callback method triggered when contacts matching succeeds.
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::FindCompleteL(MVPbkContactLinkArray* aResults)
-    {
-    iCntLinkArray = aResults;
-    // Set State to process the matched contacts
-   	iState = KMatchedContacts;
-    // Schedule to run the Active Object again.
-    ScheduleAORun();
-    }
-
-
-// ---------------------------------------------------------------------------
-// This is the callback method triggered when contacts matching fails
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::FindFailed(TInt /*aError*/)
-    {
-    // Search in one of the contact stores failed.
-    // No operation to be done in this phase.
-    // All actions are done after the find is completed fully in 
-    // FindCompleteL
-    }
-
-// ---------------------------------------------------------------------------
-// This is the callback method triggered when retrieving contact details
-// from a Contact Link
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::VPbkSingleContactOperationComplete(
-    MVPbkContactOperationBase& /*aOperation*/,
-    MVPbkStoreContact* aContact)
-    {
-    iContact = aContact;
-    // Set State to process the retrieved contacts Information.
-    iState = KRetrievedContactInfo;
-    // Schedule to run the Active Object again.
-    ScheduleAORun();
-    }
-
-
-// ---------------------------------------------------------------------------
-// This is the callback method triggered when there is an error in 
-// retrieving contact details from a Contact Link
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::VPbkSingleContactOperationFailed(
-    MVPbkContactOperationBase& /*aOperation*/, 
-    TInt /*aError*/)
-    {
-    // In this case we cannot get the Contact card name.
-    // Hence the requestor detail cannot be updated.
-    // So let us move to the next state.
-    // The state machine takes care of *not* updating the requestor
-    // information.
-    // Set State to process the retrieved contacts Information.
-    iState = KRetrievedContactInfo;
-    // Schedule to run the Active Object again.
-    ScheduleAORun();
-    }
-
-
-// ---------------------------------------------------------------------------
-// This is the callback method triggered when closing / opening the
-// contacts stores.
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::OpenComplete()
-    {
-    // Set State to Start Requestor resolving.
-    iState = KResolveRequestor;
-    // Schedule to run the Active Object again.
-    ScheduleAORun();
-    }
-
-
-// ---------------------------------------------------------------------------
-// This is the callback method triggered when closing / opening one
-// contact store.
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::StoreReady(
-    MVPbkContactStore& /*aContactStore*/)
-    {
-    //Nothing to do here
-    }
-
-
-// ---------------------------------------------------------------------------
-// This is the callback method triggered when an opened contact store becomes
-// unavailable.
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::StoreUnavailable(
-    MVPbkContactStore& /*aContactStore*/,
-    TInt /*aReason*/)
-    {
-    //Nothing to do here
-    }
-
-
-// ---------------------------------------------------------------------------
-// This is the callback method triggered when any event happens with the
-// opened contact stores.
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::HandleStoreEventL(
-    MVPbkContactStore& /*aContactStore*/, 
-    TVPbkContactStoreEvent /*aStoreEvent*/)
-    {
-    // We don't worry about contact , group events with any contact store.
-    // Also backup / restore is taken care of in the verifier dialogs and
-    // so we don't need to worry about backup / restore events with this store
-    // as well.
-    // Hence no processing is needed here.
-    // Just overriden since the base class method is pure virtual.
-    }
-
-
-// -----------------------------------------------------------------------------
-// CLocRequestorUtilsResolver::RunL
-// RunL runs the full state machine operations
-// -----------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::RunL()
-    {
-    // No need to check iStatus since this is a dummy Active Object and the
-    // asynchronous operation was completed locally.
-    switch( iState )
-        {
-        case KNoProcessing:
-            {
-            MVPbkContactStoreList& cntStoreList = 
-                            iPbkContactEngine->ContactStoresL();
-            cntStoreList.OpenAllL(*this);
-            }
-            break;
-
-        case KResolveRequestor:
-            {
-            TInt count = iRequestors->Count();
-            if ( iCount < count )
-                {
-                // Till there are more requestors to resolve continue this
-                // operation.
-               	ResolveRequestorNameL( *(*iRequestors)[iCount] );
-                }
-            else
-                {
-                // Set State to complete requestors resolving process.
-                iState = KResolvingCompleted;
-                ScheduleAORun();
-                }
-            }
-            break;
-
-        case KMatchedContacts:
-            {
-            // Once the Find operation is completed the control reaches here
-            // and the result is stored in iCntLinkArray
-            if ( iCntLinkArray && iCntLinkArray->Count() == 1 )
-                {
-                delete iCntsOperation;
-                iCntsOperation = NULL;
-
-                SetContactNameToRequestorL(0);
-                }
-            else
-                {
-                delete iCntsOperation;
-                delete iCntLinkArray;
-
-                iCntLinkArray = NULL;
-                iCntsOperation = NULL;
-
-                // There is no match or more than 1 match in contact stores.
-                // So no more operation to be done on this requestor.
-                // Move onto the next requestor and start resolving process again.
-                iCount++;
-                // Set State to Start Requestor resolving.
-            	iState = KResolveRequestor;
-                // Schedule to run the Active Object again.
-            	ScheduleAORun();
-                }
-            }
-            break;
-            
-        case KRetrievedContactInfo:
-            {
-            if ( iContact )
-                {
-                HBufC* name = 
-                    iPbkCntFormatter->GetContactTitleOrNullL(
-                        iContact->Fields(),
-                        MPbk2ContactNameFormatter::EUseSeparator);
-                if ( name )
-                    {
-                	CleanupStack::PushL(name);
-                	// Set the requestor Type as Generic Name otherwise clipping
-                	// would be done as if this is a number.
-                	// Number clipping is done from beginning while text clipping
-                	// is done from the end. Hence this is not trivial.
-                	(*iRequestors)[iCount]->SetRequestorIdL( 
-                	    CPosRequestor::EIdFormatGenericName,
-                		*name );
-                	CleanupStack::PopAndDestroy( name );
-                    }
-                }
-
-            // Delete all information related to the current requestor resolving 
-            // operation
-
-            delete iContact;
-            delete iCntLinkArray;
-            delete iCntsOperation;
-
-            iContact = NULL;
-            iCntLinkArray = NULL;
-            iCntsOperation = NULL;
-
-            // Start next requestor resolving operation.
-            iCount++;
-            iState = KResolveRequestor;
-            ScheduleAORun();
-            }
-            break;
-            
-        case KResolvingCompleted:
-            {
-            // All the handles regarding the requestor resolving namely iContact,
-            // iCntLinkArray and iCntsOperation have already been cleaned up.
-            // The only remaining item is the Contact Sotre handle.
-            MVPbkContactStoreList& cntStoreList = 
-                            iPbkContactEngine->ContactStoresL();
-            // Although CloseAll takes a handle to the observer of type 
-            // MVPbkContactStoreListObserver does not provide any callback mechanism.
-            // It merely uses it to match in the observer array and remove it from the
-            // array.
-            cntStoreList.CloseAll(*this);
-            CompleteRequest();
-            }
-            break;
-        }
-
-    }
-
-
-// -----------------------------------------------------------------------------
-// CLocRequestorUtilsResolver::RunError
-// Handle RunL error cases.
-// -----------------------------------------------------------------------------
-//
-TInt CLocRequestorUtilsResolver::RunError(TInt /*aError*/)
-    {
-    switch ( iState )
-        {
-        case KNoProcessing:
-            // Leave occured while opening Contact Stores. Just complete the
-            // resolving request.
-            CompleteRequest();
-            break;
-        case KResolveRequestor:
-            // ResolvRequestorNameL caused the leave. So current requestor 
-            // cannot be resolved. 
-        case KMatchedContacts:
-            // RetrieveContactL caused a leave. Contact Name cannot be retrieved
-        case KRetrievedContactInfo:
-            // Settings the Requestor Id name failed.
-            delete iContact;
-            delete iCntLinkArray;
-            delete iCntsOperation;
-
-            iContact = NULL;
-            iCntLinkArray = NULL;
-            iCntsOperation = NULL;
-            //So just set requestor count to next and trigger
-            // the AO in the same state.
-            iCount++;
-            iState = KResolveRequestor;
-            ScheduleAORun();
-            break;
-        case KResolvingCompleted:
-            // Leave occured while opening Contact Stores. Just complete the
-            // resolving request.
-            CompleteRequest();
-            break;        
-        }
-    return KErrNone;
-    }
-
-
-// -----------------------------------------------------------------------------
-// CLocRequestorUtilsResolver::DoCancel
-// Handle Cancel operation.
-// -----------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::DoCancel()
-    {
-    //Nothing to be done here.
-    }
-
 // ---------------------------------------------------------------------------
 // CLocRequestorUtilsResolver::CLocRequestorUtilsResolver
 // C++ default constructor can NOT contain any code, that
@@ -472,9 +119,8 @@
 // ---------------------------------------------------------------------------
 //
 CLocRequestorUtilsResolver::CLocRequestorUtilsResolver()
-    :CActive(EPriorityStandard)
 	{
-	CActiveScheduler::Add(this);
+	// Nothing to do.
 	}
 
 // ---------------------------------------------------------------------------
@@ -484,299 +130,7 @@
 //
 void CLocRequestorUtilsResolver::ConstructL()
 	{
-    iEnv = CEikonEnv::Static();
-    
-    // Retrieve the URI list of contact stores to be used for searching
-    CPbk2StoreConfiguration* cntStoreCfg = CPbk2StoreConfiguration::NewL();
-    CleanupStack::PushL(cntStoreCfg);
-
-    CVPbkContactStoreUriArray* uriArray = 
-        cntStoreCfg->SearchStoreConfigurationL();
-
-    CleanupStack::PushL(uriArray);
-
-    // Create the Virtual Phonebook Contact Manager class.
-    // This class provides Search functionality.
-	iPbkContactEngine = CVPbkContactManager::NewL(*uriArray);
-
-    // Contact Store Configuration and URI Array classes are not
-    // needed anymore.
-	CleanupStack::PopAndDestroy(2, cntStoreCfg);
-
-    // The Sort Manager is a parameter to the Contact Formatter Constructor
-    iPbkSortManager = 
-        CPbk2SortOrderManager::NewL(iPbkContactEngine->FieldTypes());
-    
-    // The Phonebook Formatter is a paramter to the Search method in the
-    // contact manager.
-    iPbkCntFormatter = 
-        Pbk2ContactNameFormatterFactory::CreateL(
-            iPbkContactEngine->FieldTypes(),
-            *iPbkSortManager);
-
-    TFileName* resourceFile = new( ELeave ) TFileName;
-    CleanupStack::PushL( resourceFile );
-
-    resourceFile->Append( KLocUtilsRscFile );
-
-    TFileName* dllDrive = new( ELeave ) TFileName;
-    CleanupStack::PushL( dllDrive );
-    Dll::FileName( *dllDrive );    
-
-    LocFileUtils::GetFileWithCorrectDriveL( *dllDrive, *resourceFile );
-    iResourceOffset = iEnv->AddResourceFileL( *resourceFile );
-    
-    CleanupStack::PopAndDestroy( 2, resourceFile );
+	// Nothing to do.
 	}
 
-
-// ---------------------------------------------------------------------------
-// CLocRequestorUtilsResolver::ResolveRequestorNameL
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::ResolveRequestorNameL(
-	CPosRequestor& aRequestor )
-	{
-    // There are 2 types of Requestors
-    // 1. Contact
-    // 2. Service and
-    // There are 9 types of Requestor id Formats
-    // 1. Generic Name
-    // 2. Phone Number
-    // 3. URL
-    // 4. E-mail
-    // 5. SIP URL
-    // 6. IMS Public Identity
-    // 7. MIN
-    // 8. MDN
-    // 9. Unknown
-    // The following are the different cases for resolving.
-
-    switch(aRequestor.RequestorIdFormat())
-    	{
-    	case CPosRequestor::EIdFormatGenericName:
-			// The requestor is identified by name.
-			// Hence there is no need to change the requestor String.
-			// So complete the resolving operation for this requestor.
-			iState = KResolveRequestor;
-			// Increment the count of resolved requestors.
-			iCount++;
-			ScheduleAORun();
-    		break;
-
-    	case CPosRequestor::EIdFormatPhoneNumber:
-    		ResolveRequestorByPhoneNumberL(aRequestor);
-    		break;
-
-    	case CPosRequestor::EIdFormatUrl:
-    	    {
-			// The requestor is identified by URL.
-			CVPbkFieldTypeRefsList* fieldTypeList = 
-			                        CVPbkFieldTypeRefsList::NewL();
-			CleanupStack::PushL(fieldTypeList);
-
-            const MVPbkFieldTypeList& fieldTypes =
-                iPbkContactEngine->FieldTypes();
-
-            // create last name field to the contact
-            TResourceReader reader;
-            iEnv->CreateResourceReaderLC(reader,
-                R_VPBK_URL_SELECTOR);
-            CVPbkFieldTypeSelector* urlSelector = 
-                CVPbkFieldTypeSelector::NewL(reader, fieldTypes);
-            CleanupStack::PushL(urlSelector);
-
-            for (TInt i = 0; i < fieldTypes.FieldTypeCount(); ++i)
-                {
-                const MVPbkFieldType& fieldType = fieldTypes.FieldTypeAt(i);
-                if (urlSelector->IsFieldTypeIncluded(fieldType))
-                    {
-        			fieldTypeList->AppendL(fieldType);
-                    break;
-                    }
-                }
-
-            // urlSelector, R_VPBK_URL_SELECTOR buffer 
-            CleanupStack::PopAndDestroy(2); 
-
-			ResolveRequestorByOtherFieldsL( aRequestor, fieldTypeList );
-			CleanupStack::PopAndDestroy(fieldTypeList);
-    	    }
-    		break;
-
-    	case CPosRequestor::EIdFormatEmail:
-            {
-			CVPbkFieldTypeRefsList* fieldTypeList = 
-			                        CVPbkFieldTypeRefsList::NewL();
-			CleanupStack::PushL(fieldTypeList);
-
-            const MVPbkFieldTypeList& fieldTypes =
-                iPbkContactEngine->FieldTypes();
-
-            // create last name field to the contact
-            TResourceReader reader;
-            iEnv->CreateResourceReaderLC(reader,
-                R_VPBK_EMAIL_SELECTOR);
-            CVPbkFieldTypeSelector* emailSelector = 
-                CVPbkFieldTypeSelector::NewL(reader, fieldTypes);
-            CleanupStack::PushL(emailSelector);
-
-            for (TInt i = 0; i < fieldTypes.FieldTypeCount(); ++i)
-                {
-                const MVPbkFieldType& fieldType = fieldTypes.FieldTypeAt(i);
-                if (emailSelector->IsFieldTypeIncluded(fieldType))
-                    {
-        			fieldTypeList->AppendL(fieldType);
-                    break;
-                    }
-                }
-
-            // emailSelector, R_VPBK_EMAIL_SELECTOR buffer 
-            CleanupStack::PopAndDestroy(2); 
-
-			ResolveRequestorByOtherFieldsL( aRequestor, fieldTypeList );
-			CleanupStack::PopAndDestroy(fieldTypeList);
-    	    }
-    		break;
-
-    	case CPosRequestor::EIdFormatSIPUrl:
-    	    {
-			CVPbkFieldTypeRefsList* fieldTypeList = 
-			                        CVPbkFieldTypeRefsList::NewL();
-			CleanupStack::PushL(fieldTypeList);
-
-            const MVPbkFieldTypeList& fieldTypes =
-                iPbkContactEngine->FieldTypes();
-
-            // create last name field to the contact
-            TResourceReader reader;
-            iEnv->CreateResourceReaderLC(reader,
-                R_VPBK_SIPURL_SELECTOR);
-            CVPbkFieldTypeSelector* sipUrlSelector = 
-                CVPbkFieldTypeSelector::NewL(reader, fieldTypes);
-            CleanupStack::PushL(sipUrlSelector);
-
-            for (TInt i = 0; i < fieldTypes.FieldTypeCount(); ++i)
-                {
-                const MVPbkFieldType& fieldType = fieldTypes.FieldTypeAt(i);
-                if (sipUrlSelector->IsFieldTypeIncluded(fieldType))
-                    {
-        			fieldTypeList->AppendL(fieldType);
-                    break;
-                    }
-                }
-
-            // sipUrlSelector, R_VPBK_SIPURL_SELECTOR buffer 
-            CleanupStack::PopAndDestroy(2); 
-
-			ResolveRequestorByOtherFieldsL( aRequestor, fieldTypeList );
-			CleanupStack::PopAndDestroy(fieldTypeList);
-    	    }
-    		break;
-
-    	case CPosRequestor::EIdFormatIMSPublicIdentity:
-    	case CPosRequestor::EIdFormatMIN:
-    	case CPosRequestor::EIdFormatMDN:
-    	// In this case we match by any field in the Contacts
-    	    {
-			const MVPbkFieldTypeList& gblFieldTypeList = 
-			                        iPbkContactEngine->FieldTypes();
-			
-			ResolveRequestorByOtherFieldsL( aRequestor, 
-			    const_cast<MVPbkFieldTypeList *>(&gblFieldTypeList) );
-    	    }
-    		break;
-    	
-    	default:
-			// If the requestor format is unknown then it won't be resolved.
-			// This case is for any future additions to the format types.
-    		// Nothing to do here as of now.
-			// So complete the resolving operation for this requestor.
-			iState = KResolveRequestor;
-			// Increment the count of resolved requestors.
-			iCount++;
-			ScheduleAORun();
-    		break;
-    	}
-	}
-
-
-// ---------------------------------------------------------------------------
-// CLocRequestorUtilsResolver::ResolveRequestorByPhoneNumberL
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::ResolveRequestorByPhoneNumberL(
-	CPosRequestor& aRequestor )
-	{
-	
-	// The requestor is identified by Phone Number.
-    // Use the MatchPhoneNumberL of CPbkPhoneEngine
-	iCntsOperation = iPbkContactEngine->MatchPhoneNumberL(
-                            				aRequestor.RequestorIdString(),
-                            				KMaxPhoneMatchLength,
-                            				*this);
-	}
-
-	
-// ---------------------------------------------------------------------------
-// CLocRequestorUtilsResolver::ResolveRequestorByOtherFieldsL
-// Searches the Contacts Database Synchronously using the field and
-// information specified in the requestor.
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::ResolveRequestorByOtherFieldsL(
-	CPosRequestor& aRequestor,
-	MVPbkFieldTypeList* aFieldTypeList)
-	{
-    // If the format is URL or E-mail etc then use FindL of CVPbkContactManager
-	iCntsOperation = iPbkContactEngine->FindL(aRequestor.RequestorIdString(),
-				                              *aFieldTypeList,
-				                              *this);
-	}
-
-
-// ---------------------------------------------------------------------------
-// CLocRequestorUtilsResolver::SetContactNameToRequestor
-// ---------------------------------------------------------------------------
-//
-
-void CLocRequestorUtilsResolver::SetContactNameToRequestorL(
-	TInt aCntLinkArrayIndex)
-	{
-    iCntsOperation = iPbkContactEngine->RetrieveContactL(
-                        iCntLinkArray->At(aCntLinkArrayIndex),
-                        *this);
-	}
-
-
-// ---------------------------------------------------------------------------
-// CLocRequestorUtilsResolver::ScheduleAORun
-// Schedule to Run this dummy Active Object once again.
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::ScheduleAORun()
-    {
-    // This results in the RunL getting called.
-    if ( !IsActive() )
-        {
-        SetActive();
-        TRequestStatus* status = &iStatus;
-        User::RequestComplete(status, KErrNone);
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CLocRequestorUtilsResolver::ScheduleAORun
-// Schedule to Run this dummy Active Object once again.
-// ---------------------------------------------------------------------------
-//
-void CLocRequestorUtilsResolver::CompleteRequest()
-    {
-    // Stop the ActiveScheduler Wait Loop to complete the requestor resolving
-    // operation.
-	iWait.AsyncStop();
-    }
-
-
 //  End of File
--- a/locationsystemui/locationsysui/locverifier/inc/lpdperiodicprocessor.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locverifier/inc/lpdperiodicprocessor.h	Fri Apr 16 15:23:31 2010 +0300
@@ -20,8 +20,7 @@
 #define CLPDPERIODICPROCESSOR_H
 
 //  INCLUDES
-#include <lbs/epos_cposprivacynotifier.h>
-#include <lbs/epos_cposprivacynotifier.h>
+#include <EPos_CPosPrivacyNotifier.h>
 #include <lbs/epos_cposrequestor.h>
 #include "lpdsuplsettingsadapterobserver.h"
 
--- a/locationsystemui/locationsysui/locverifier/inc/lpdperiodicreqinfo.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locverifier/inc/lpdperiodicreqinfo.h	Fri Apr 16 15:23:31 2010 +0300
@@ -20,7 +20,7 @@
 #define CLPDPERIODICREQINFO_H
 
 #include <e32base.h>
-#include <lbs/epos_cposprivacynotifier.h>
+#include <EPos_CPosPrivacyNotifier.h>
 
 /**
 *  Periodic info structure to Que.
--- a/locationsystemui/locationsysui/locverifier/inc/lpdquerylauncherbase.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locverifier/inc/lpdquerylauncherbase.h	Fri Apr 16 15:23:31 2010 +0300
@@ -25,7 +25,7 @@
 #include <coemain.h>
 #include <AknsItemID.h>
 #include <AknQueryDialog.h>
-#include <lbs/epos_cposprivacynotifier.h>
+#include <EPos_CPosPrivacyNotifier.h>
 
 
 // SYSTEM INCLUDE
--- a/locationsystemui/locationsysui/locverifier/inc/lpdverifierplugin.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locverifier/inc/lpdverifierplugin.h	Fri Apr 16 15:23:31 2010 +0300
@@ -18,7 +18,7 @@
 
 // INCLUDES
 
-#include <lbs/epos_cposprivacynotifier.h>
+#include <EPos_CPosPrivacyNotifier.h>
 #include <lbs/epos_privacy.h>
 #include <lbs/epos_cposrequestor.h>
 
--- a/locationsystemui/locationsysui/locverifier/src/lpdrequestorprocessor.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationsystemui/locationsysui/locverifier/src/lpdrequestorprocessor.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -25,7 +25,7 @@
 #include <lbs/epos_cposrequestor.h>
 #include <lbs/epos_cposcontactrequestor.h>
 #include <lbs/epos_cposservicerequestor.h>
-#include <lbs/epos_cposprivacynotifier.h>
+#include <EPos_CPosPrivacyNotifier.h>
 
 // CONSTANTS
 _LIT( KUnknownRequestor, "Unknown" );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/BWINS/EPOSPRVQNIFU.DEF	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,20 @@
+EXPORTS
+	??0CPosPrivacyNotifier@@IAE@XZ @ 1 NONAME ; CPosPrivacyNotifier::CPosPrivacyNotifier(void)
+	??1CPosPrivacyNotifier@@UAE@XZ @ 2 NONAME ; CPosPrivacyNotifier::~CPosPrivacyNotifier(void)
+	?BaseConstructL@CPosPrivacyNotifier@@IAEXVTUid@@H@Z @ 3 NONAME ; void CPosPrivacyNotifier::BaseConstructL(class TUid, int)
+	?CancelReason@CPosPrivacyNotifier@@QBE?AW4TPosVerifyCancelReason@@XZ @ 4 NONAME ; enum TPosVerifyCancelReason CPosPrivacyNotifier::CancelReason(void) const
+	?CheckClientSecureId@CPosPrivacyNotifier@@QAEHVTSecureId@@@Z @ 5 NONAME ; int CPosPrivacyNotifier::CheckClientSecureId(class TSecureId)
+	?CompleteAllRequests@CPosPrivacyNotifier@@QAEXH@Z @ 6 NONAME ; void CPosPrivacyNotifier::CompleteAllRequests(int)
+	?CompleteRequest@CPosPrivacyNotifier@@QAEXJH@Z @ 7 NONAME ; void CPosPrivacyNotifier::CompleteRequest(long, int)
+	?CurrentRequest@CPosPrivacyNotifier@@QBEJXZ @ 8 NONAME ; long CPosPrivacyNotifier::CurrentRequest(void) const
+	?GetRequestsL@CPosPrivacyNotifier@@QBEXAAV?$RArray@J@@@Z @ 9 NONAME ; void CPosPrivacyNotifier::GetRequestsL(class RArray<long> &) const
+	?LocationRequestDecision@CPosPrivacyNotifier@@QBE?AW4TPosRequestDecision@@XZ @ 10 NONAME ; enum TPosRequestDecision CPosPrivacyNotifier::LocationRequestDecision(void) const
+	?NotificationReason@CPosPrivacyNotifier@@QBE?AW4TPosNotificationReason@@XZ @ 11 NONAME ; enum TPosNotificationReason CPosPrivacyNotifier::NotificationReason(void) const
+	?NotifierBase@CPosPrivacyNotifier@@QBEPAVMEikSrvNotifierBase2@@XZ @ 12 NONAME ; class MEikSrvNotifierBase2 * CPosPrivacyNotifier::NotifierBase(void) const
+	?QueryTimeoutStrategy@CPosPrivacyNotifier@@QBE?AW4TPosRequestDecision@@XZ @ 13 NONAME ; enum TPosRequestDecision CPosPrivacyNotifier::QueryTimeoutStrategy(void) const
+	?RequestSource@CPosPrivacyNotifier@@QBE?AW4TPosRequestSource@@XZ @ 14 NONAME ; enum TPosRequestSource CPosPrivacyNotifier::RequestSource(void) const
+	?RequestTypeL@CPosPrivacyNotifier@@QBE?AW4TRequestType@1@J@Z @ 15 NONAME ; enum CPosPrivacyNotifier::TRequestType CPosPrivacyNotifier::RequestTypeL(long) const
+	?RequestorCountL@CPosPrivacyNotifier@@QBEHXZ @ 16 NONAME ; int CPosPrivacyNotifier::RequestorCountL(void) const
+	?RequestorLC@CPosPrivacyNotifier@@QBEPAVCPosRequestor@@H@Z @ 17 NONAME ; class CPosRequestor * CPosPrivacyNotifier::RequestorLC(int) const
+	?SetCurrentRequestL@CPosPrivacyNotifier@@QAEXJ@Z @ 18 NONAME ; void CPosPrivacyNotifier::SetCurrentRequestL(long)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/EABI/eposprvqnifU.DEF	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,24 @@
+EXPORTS
+	_ZN19CPosPrivacyNotifier14BaseConstructLE4TUidi @ 1 NONAME
+	_ZN19CPosPrivacyNotifier15CompleteRequestEli @ 2 NONAME
+	_ZN19CPosPrivacyNotifier18SetCurrentRequestLEl @ 3 NONAME
+	_ZN19CPosPrivacyNotifier19CheckClientSecureIdE9TSecureId @ 4 NONAME
+	_ZN19CPosPrivacyNotifier19CompleteAllRequestsEi @ 5 NONAME
+	_ZN19CPosPrivacyNotifierC2Ev @ 6 NONAME
+	_ZN19CPosPrivacyNotifierD0Ev @ 7 NONAME
+	_ZN19CPosPrivacyNotifierD1Ev @ 8 NONAME
+	_ZN19CPosPrivacyNotifierD2Ev @ 9 NONAME
+	_ZNK19CPosPrivacyNotifier11RequestorLCEi @ 10 NONAME
+	_ZNK19CPosPrivacyNotifier12CancelReasonEv @ 11 NONAME
+	_ZNK19CPosPrivacyNotifier12GetRequestsLER6RArrayIlE @ 12 NONAME
+	_ZNK19CPosPrivacyNotifier12NotifierBaseEv @ 13 NONAME
+	_ZNK19CPosPrivacyNotifier12RequestTypeLEl @ 14 NONAME
+	_ZNK19CPosPrivacyNotifier13RequestSourceEv @ 15 NONAME
+	_ZNK19CPosPrivacyNotifier14CurrentRequestEv @ 16 NONAME
+	_ZNK19CPosPrivacyNotifier15RequestorCountLEv @ 17 NONAME
+	_ZNK19CPosPrivacyNotifier18NotificationReasonEv @ 18 NONAME
+	_ZNK19CPosPrivacyNotifier20QueryTimeoutStrategyEv @ 19 NONAME
+	_ZNK19CPosPrivacyNotifier23LocationRequestDecisionEv @ 20 NONAME
+	_ZTI19CPosPrivacyNotifier @ 21 NONAME ; #<TI>#
+	_ZTV19CPosPrivacyNotifier @ 22 NONAME ; #<VT>#
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/group/EPos_PrivacyQNInterface.mmp	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,41 @@
+/*
+* Copyright (c) 2002-2005 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 for handling SUPL_INIT message.
+*
+*/
+
+
+
+TARGET          eposprvqnif.dll
+TARGETTYPE      dll
+UID             0x1000008d 0x101f7a88
+
+VENDORID        0x70000001
+CAPABILITY      ALL -TCB
+
+SOURCEPATH      ../src
+SOURCE          EPos_CPosPrivacyNotifier.cpp
+SOURCE          EPos_CPosPrivacyNotifierExtension.cpp
+SOURCE          EPos_CPosRequestHandler.cpp
+
+USERINCLUDE     ../inc
+
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+
+LIBRARY         euser.lib
+LIBRARY         estor.lib
+LIBRARY         eiksrv.lib
+LIBRARY         eposprvtyp.lib
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/group/bld.inf	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2002-2005 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 for handling SUPL_INIT message.
+*
+*/
+
+#include <platform_paths.hrh>
+									 
+PRJ_MMPFILES
+EPos_PrivacyQNInterface.mmp
+
+PRJ_EXPORTS
+./lbsqueryandnotification.iby           CORE_MW_LAYER_IBY_EXPORT_PATH(lbsqueryandnotification.iby)
+
+// End of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/group/lbsqueryandnotification.iby	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2002-2005 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 for handling SUPL_INIT message.
+*
+*/
+#ifndef __LBS_QUERYANDNOTIFICATION_IBY__
+#define __LBS_QUERYANDNOTIFICATION_IBY__
+
+
+REM LBS Query And Notification Api
+
+#if !defined(SYMBIAN_EXCLUDE_LOCATION) && defined(SYMBIAN_INCLUDE_LOCATION_ADVANCED_DIALOG)
+
+file=ABI_DIR\DEBUG_DIR\eposprvqnif.dll			System\libs\eposprvqnif.dll
+
+#endif // SYMBIAN_EXCLUDE_LOCATION && SYMBIAN_INCLUDE_LOCATION_ADVANCED_DIALOG
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosPrivacyNotifierExtension.h	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,204 @@
+/*
+* Copyright (c) 2002-2005 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 for privacy notifier extension helper.
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalComponent
+ @released
+*/
+
+#ifndef CPOSPRIVACYNOTIFIEREXTENSION_H
+#define CPOSPRIVACYNOTIFIEREXTENSION_H
+
+//  INCLUDES
+#include <eiknotapi.h>
+#include <lbs/epos_rposrequestorstack.h>
+#include <lbs/EPos_TPosQNInputData.h>
+#include <EPos_CPosPrivacyNotifier.h>
+// FORWARD DECLARATIONS
+class CPosRequestHandler;
+
+// CLASS DECLARATION
+
+/**
+*  The privacy notifier extension helper class.
+*/
+NONSHARABLE_CLASS(CPosPrivacyNotifierExtension) : public CBase, public MEikSrvNotifierBase2
+    {
+    public:
+
+        /**
+        * Two-phased constructor.
+        */
+        static CPosPrivacyNotifierExtension* NewL(
+            CPosPrivacyNotifier* aPrivNotifier);
+
+        /**
+        * Destructor.
+        */
+        ~CPosPrivacyNotifierExtension();
+
+    public: // New functions
+
+        /**
+        * Finds the request id in the array which matches the specified
+        * request id.
+        * @param aRequestId The id of a query or notification request.
+        * @return The index of the matching request id within the array.
+        * KErrNotFound, if no matching request id can be found.
+        */
+        TInt Find(TPosQNRequestId aRequestId) const;
+
+        /**
+        * Resets data
+        */
+        void ResetData();
+
+        /**
+        * Removes a request from the array containing all outstanding requests.
+        * @param aRequestId The id of a query or notification request.
+        * @return The index of the matching request id within the array.
+        * KErrNotFound, if no matching request id can be found.
+        */
+        TInt RemoveRequestFromArray(TPosQNRequestId aRequestId);
+
+        /**
+        * Empties the array containing all outstanding requests.
+        */
+//        void RemoveAllRequestsFromArray();
+
+        /**
+        * Prepares the current request by getting RequestorStack.
+        */
+        void PrepareL(TPosQNRequestId aRequestId);
+
+        /**
+        * This method completes a privacy query or notification request.
+        *
+        * @param aRequestId The id of the privacy query or notification request
+        *   to complete.
+        * @param aCompletionCode The request completion code.
+        */
+        void CompleteRequest(
+        /* IN  */       TPosQNRequestId aRequestId,
+        /* IN  */       TInt aCompletionCode
+        );
+
+        /**
+        * This method completes all outstanding requests.
+        *
+        * This function should be used if a serious error is encountered. All
+        * requests can then be completed with the same error code.
+        *
+        * @param aCompletionCode The request completion code.
+        */
+        void CompleteAllRequests(
+        /* IN  */       TInt aCompletionCode
+        );
+
+    public: // Functions from base classes
+
+        /**
+        * From MEikSrvNotifierBase2 Called to destroy notifier.
+        */
+        void Release();
+
+        /**
+        * From MEikSrvNotifierBase2 Called when the DLL is loaded.
+        * @return info object containing UID, channel and priority
+        */
+        TNotifierInfo RegisterL();
+
+        /**
+        * From MEikSrvNotifierBase2
+        * @return info object containing UID, channel and priority
+        */
+        TNotifierInfo Info() const;
+
+        /**
+        * From MEikSrvNotifierBase2
+        *
+        * Not supported, leaves if called.
+        * @param aBuffer Input descriptor. Not used.
+        * @return TPtrC8
+        */
+        TPtrC8 StartL(const TDesC8& aBuffer);
+
+        /**
+        * From MEikSrvNotifierBase2
+        *
+        * @param aBuffer Input descriptor, contains the format. Not used.
+        * @param aReplySlot Reply slot. Not used.
+        * @param aMessage Used to write data back to client
+        */
+        void StartL(
+            const TDesC8& aBuffer,
+            TInt aReplySlot,
+            const RMessagePtr2& aMessage
+        );
+
+        /**
+        * From MEikSrvNotifierBase2
+        * Cancels all outstanding requests.
+        */
+        void Cancel();
+
+        /**
+        * From MEikSrvNotifierBase2
+        * Starts the notifier dialog.
+        * @param aBuffer Input descriptor, contains the format.
+        * A TPosQNInputData is expected as input.
+        * @return TPtrC8
+        */
+        TPtrC8 UpdateL(const TDesC8& aBuffer);
+
+    private:
+        /**
+        * C++ default constructor.
+        */
+        CPosPrivacyNotifierExtension();
+
+       /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+        void ConstructL(CPosPrivacyNotifier* aPrivNotifier);
+
+        // By default, prohibit copy constructor
+        CPosPrivacyNotifierExtension(const CPosPrivacyNotifierExtension&);
+        // Prohibit assigment operator
+        CPosPrivacyNotifierExtension& operator= (
+            const CPosPrivacyNotifierExtension&);
+
+    public: // Data
+        TNotifierInfo           iNotifierInfo;
+        RArray<TPosQNInputData> iRequestArray;
+        TPosQNRequestId         iCurrentRequestId;
+        RPosRequestorStack      iRequestorStack;
+        RMessagePtr2            iMessage;
+
+    private: // Data
+        CPosPrivacyNotifier*    iPrivacyNotifier;
+        CPosRequestHandler*     iRequestHandler;
+
+    };
+
+#endif      // CPOSPRIVACYNOTIFIEREXTENSION_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/inc/EPos_CPosRequestHandler.h	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2002-2005 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 for privacy notifier request handling helper.
+*
+*/
+
+
+
+
+/**
+ @file
+ @internalComponent
+ @released
+*/
+
+#ifndef EPOS_CPOSREQUESTHANDLER_H
+#define EPOS_CPOSREQUESTHANDLER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <lbs/EPos_TPosQNInputData.h>
+#include <EPos_CPosPrivacyNotifier.h>
+
+// FORWARD DECLARATIONS
+class CPosPrivacyNotifier;
+
+// CLASS DECLARATION
+
+/**
+*  The privacy notifier request handling helper class.
+*/
+NONSHARABLE_CLASS(CPosRequestHandler) : public CActive
+    {
+    public: // Constructors and destructors
+
+       /**
+        * Two-phased constructor.
+        */
+        static CPosRequestHandler* NewL(
+            CPosPrivacyNotifier* aNotifier,
+            CPosPrivacyNotifierExtension* aExtension);
+
+        /**
+        * Destructor.
+        */
+        ~CPosRequestHandler();
+
+    public: // New functions
+
+        /**
+        * Starts the active scheduler.
+        * @param aInputData Data containing update parameters.
+        */
+        void ScheduleRequest(const TPosQNInputData& aInputData);
+
+    protected: // Functions from base classes
+
+        /**
+        * From CActive.
+        */
+        void RunL();
+
+        /**
+        * From CActive.
+        */
+        void DoCancel();
+
+        /**
+        * From CActive.
+        */
+        TInt RunError(TInt aError);
+
+    private:
+
+        /**
+        * Private C++ default constructor.
+        */
+        CPosRequestHandler();
+
+         /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+       void ConstructL(
+           CPosPrivacyNotifier* aNotifier,
+           CPosPrivacyNotifierExtension* aExtension);
+
+    private: // Data
+
+        CPosPrivacyNotifier* iPrivacyNotifier;
+        CPosPrivacyNotifierExtension* iExtension;
+        TPosQNInputData iInputData;
+
+};
+
+#endif      // EPOS_CPOSREQUESTHANDLER_H
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/src/EPos_CPosPrivacyNotifier.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,490 @@
+/*
+* Copyright (c) 2002-2005 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 for LBS Privacy Query & Notify (Q&N) privacy notifiers.
+*
+*/
+
+
+
+#include <lbs/epos_cposcontactrequestor.h>
+#include <lbs/epos_cposservicerequestor.h>
+#include <lbs/epos_privacynotifier.hrh>
+#include <EPos_CPosPrivacyNotifier.h>
+#include "EPos_CPosPrivacyNotifierExtension.h"
+
+#if defined(NRH_UNIT_TEST)
+// For the NRH unit test, use a custom notifier UID.
+// This is so that we can have both the unit test
+// Q&N notifier and the integration test Q&N notifier
+// (using the real UID) in the same ROM.
+const TUid KNotifierUid = { 0x10283744 };
+#else
+const TUid KNotifierUid = { KPosPrivacyNotifierImplUid };
+#endif // NRH_UNIT_TEST
+
+
+// ---------------------------------------------------------------------------
+/**
+Default constructor.
+
+This constructor assumes that the notifier only supports
+EBasicCapabilities, i.e. the notifier supports queries but only
+notifications of accepted requests are supported. If the notifier
+is more advanced, the overloaded constructor should be used.
+*/
+EXPORT_C CPosPrivacyNotifier::CPosPrivacyNotifier()
+    {
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Symbian 2nd phase constructor. Must be called first thing during construction.
+
+The notifier must specify channel and priority. These attributes are
+defined by the Notifier Framework in eiknotapi.h.
+
+The different priority values are defined in
+MEikSrvNotifierBase2::TNotifierPriority.
+
+@param aChannel A channel. See definition in Notifier Framework.
+@param aPriority A notifier priority. See definition in Notifier Framework.
+
+@see MEikSrvNotifierBase2::TNotifierPriority
+*/
+EXPORT_C void CPosPrivacyNotifier::BaseConstructL(
+    TUid aChannel,
+    TInt aPriority)
+    {
+    iExtension = CPosPrivacyNotifierExtension::NewL(this);
+    iExtension->iNotifierInfo.iChannel = aChannel;
+    iExtension->iNotifierInfo.iPriority = aPriority;
+    iExtension->iNotifierInfo.iUid = KNotifierUid;
+    }
+
+// ---------------------------------------------------------------------------
+EXPORT_C CPosPrivacyNotifier::~CPosPrivacyNotifier()
+    {
+    delete iExtension;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Retrieves a handle to the notifier base.
+
+This handle is needed to populate the notifier base array in the
+notifier factory method.
+
+@return A handle to the notifier base.
+*/
+EXPORT_C MEikSrvNotifierBase2* CPosPrivacyNotifier::NotifierBase() const
+    {
+    return iExtension;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Retrieves the cancel reason.
+
+Cancel reason can only be retrieved when HandleRequestCancelled or 
+HandleAllRequestCancelled is running. If the method is called at another 
+time, it will return ECancelReasonNotAvailable.
+
+Note that the TCancelReason enum is designed to be extendable,
+i.e. new values may be added in the future. This means that any
+unrecognized value must be treated like ECancelReasonNotAvailable.
+
+@return The cancel reason.
+
+@see HandleRequestCancelled()
+@see HandleAllRequestCancelled()
+@see ECancelReasonNotAvailable
+@see TCancelReason
+*/
+EXPORT_C TPosVerifyCancelReason
+   CPosPrivacyNotifier::CancelReason() const
+    {
+    TPosQNRequestId requestId = CurrentRequest();
+    TInt index = iExtension->Find(requestId);
+
+    if (index == KErrNotFound)
+        {
+        return EPosCancelReasonNotAvailable;
+        }
+
+    return iExtension->iRequestArray[index].iCancelReason;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Returns a list of all outstanding privacy query and notification requests.
+
+If there are no outstanding requests, an empty array will be returned.
+
+@param aRequestArray On return, this array will contain all
+  outstanding query and notification requests.
+*/
+EXPORT_C void CPosPrivacyNotifier::GetRequestsL(
+    RArray<TPosQNRequestId>& aRequestArray) const
+    {
+    aRequestArray.Reset();
+    for (TInt i = 0; i < iExtension->iRequestArray.Count(); i++)
+        {
+        User::LeaveIfError(
+            aRequestArray.Append(iExtension->iRequestArray[i].iId));
+        }
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Checks whether a request is privacy query or notification type.
+
+@param aRequestId The ID of the request to check.
+@return @p EQuery if query type and ENotification if notification type.
+
+@leave If the specified request is not an outstanding request, this method
+  will leave with error code KErrNotFound.
+*/
+EXPORT_C CPosPrivacyNotifier::TRequestType CPosPrivacyNotifier::RequestTypeL(
+    TPosQNRequestId aRequestId) const
+    {
+    TInt index = iExtension->Find(aRequestId);
+    __ASSERT_ALWAYS(index != KErrNotFound, User::Leave(KErrNotFound));
+
+    if (iExtension->iRequestArray[index].iType ==
+        TPosQNInputData::EQuery)
+        {
+        return CPosPrivacyNotifier::EQuery;
+        }
+
+    return CPosPrivacyNotifier::ENotification;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Sets the request which the notifier wants to read information about.
+
+Current request specifies the request which will be accessed when
+RequestorCountL and RequestorLC are called.
+
+@param aRequestId The ID of the current request.
+
+@leave If the specified request is not an outstanding request, this method
+  will leave with error code KErrNotFound.
+*/
+EXPORT_C void CPosPrivacyNotifier::SetCurrentRequestL(
+    TPosQNRequestId aRequestId)
+    {
+    iExtension->PrepareL(aRequestId);
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Returns the ID of the current request.
+
+Current request specifies the request which will be accessed when
+RequestorCountL and RequestorLC are called.
+
+@return The ID of the current request. If the current request has
+  become invalid, e.g. the request set as current has been cancelled,
+  KPosNullQNRequestId will be returned.
+
+@see RequestorCountL()
+@see RequestorLC()
+*/
+EXPORT_C TPosQNRequestId CPosPrivacyNotifier::CurrentRequest() const
+    {
+    return iExtension->iCurrentRequestId;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Retrieves the timeout strategy for a query.
+
+Timeout strategy specifies what the decision will be if the
+verification query times out. The decision is either
+EPosDecisionRejected or EPosDecisionAccepted.
+
+Before calling this method, current request must first be set by
+calling SetCurrentRequestL.
+
+Timeout strategy can only be retrieved for a query request. If the
+current request is a notification, this method will return
+EPosDecisionNotAvailable.
+
+Note that the TPosRequestDecision enum is designed to be
+extendable, i.e. new values may be added in the future. This means
+that any unrecognized value must be treated like
+EPosDecisionNotAvailable.
+
+@return The timeout strategy.
+
+@see SetCurrentRequestL()
+*/
+EXPORT_C TPosRequestDecision CPosPrivacyNotifier::QueryTimeoutStrategy() const
+    {
+    TPosQNRequestId requestId = CurrentRequest();
+    TInt index = iExtension->Find(requestId);
+
+    if (index == KErrNotFound ||
+        iExtension->iRequestArray[index].iType ==
+            TPosQNInputData::ENotification)
+        {
+        return EPosDecisionNotAvailable;
+        }
+
+    return iExtension->iRequestArray[index].iTimeoutStrategy;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Retrieves the source of the location request.
+
+Before calling this method, current request must first be set by
+calling SetCurrentRequestL.
+
+Note that the TPosRequestSource enum is designed to be extendable, 
+i.e. new values may be added in the future. This means that any 
+unrecognized value must be treated like EPosRequestSourceNotAvailable.
+
+@return The request source, e.g. EPosRequestSourceNetwork or
+  EPosRequestSourceNotAvailable if the request source is not specified.
+
+@see SetCurrentRequestL()
+@see TPosRequestSource
+*/
+EXPORT_C TPosRequestSource CPosPrivacyNotifier::RequestSource() const
+    {
+    TPosQNRequestId requestId = CurrentRequest();
+    TInt index = iExtension->Find(requestId);
+
+    if (index == KErrNotFound)
+        {
+        return EPosRequestSourceNotAvailable;
+        }
+
+    return iExtension->iRequestArray[index].iRequestSource;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Retrieves whether the location request was accepted or rejected.
+
+For notification requests, this method will return the request
+decision. For queries, this method will return EPosDecisionNotAvailable.
+
+Before calling this method, current request must first be set by
+calling SetCurrentRequestL, otherwise this method will return
+EPosDecisionNotAvailable.
+
+Note that the TPosRequestDecision enum is designed to be
+extendable, i.e. new values may be added in the future. 
+This means that any unrecognized value must be treated like
+EPosDecisionNotAvailable.
+
+@return Whether the location request was accepted or rejected, or
+  EPosDecisionNotAvailable if the outcome has not yet been decided.
+  
+@see SetCurrentRequestL()
+@see TPosRequestDecision
+*/
+EXPORT_C TPosRequestDecision
+    CPosPrivacyNotifier::LocationRequestDecision() const
+    {
+    TPosQNRequestId requestId = CurrentRequest();
+    TInt index = iExtension->Find(requestId);
+
+    if (index == KErrNotFound ||
+        iExtension->iRequestArray[index].iType == TPosQNInputData::EQuery)
+        {
+        return EPosDecisionNotAvailable;
+        }
+
+    return iExtension->iRequestArray[index].iRequestDecision;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Retrieves the reason for a notification.
+
+Note that the TPosNotificationReason enum is designed to be
+extendable, i.e. new values may be added in the future. This means
+that any unrecognized value must be treated like
+EPosNotificationReasonNotAvailable. 
+If the notification reason is not known, the notification request 
+should be completed with code KErrNotSupported.
+
+@return The notification reason.
+  For queries, this method will return EPosNotificationReasonNotAvailable.
+
+  Before calling this method, current request must first be set by
+  calling SetCurrentRequestL, otherwise this method will return
+  EPosNotificationReasonNotAvailable.
+
+@see EPosNotificationReasonNotAvailable
+@see SetCurrentRequestL()
+@see TPosNotificationReason
+*/
+EXPORT_C TPosNotificationReason CPosPrivacyNotifier::NotificationReason() const
+    {
+    TPosQNRequestId requestId = CurrentRequest();
+    TInt index = iExtension->Find(requestId);
+
+    if (index == KErrNotFound ||
+        iExtension->iRequestArray[index].iType == TPosQNInputData::EQuery)
+        {
+        return EPosNotificationReasonNotAvailable;
+        }
+
+    return iExtension->iRequestArray[index].iNotificationReason;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Returns the number of requestors in the current request.
+
+Before calling this method, current request must first be set by
+calling SetCurrentRequestL.
+
+@return The number of requestors in the current request.
+
+@leave If the current request has not been set or the current request is no
+  longer valid, e.g. because it has been cancelled or completed, this
+  method will leave with error code KErrNotFound.
+
+@see SetCurrentRequestL()
+*/
+EXPORT_C TInt CPosPrivacyNotifier::RequestorCountL() const
+    {
+    __ASSERT_ALWAYS(CurrentRequest() != KPosNullQNRequestId,
+        User::Leave(KErrNotFound));
+
+    return iExtension->iRequestorStack.Count();
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Returns basic information about the requestor at a specified index.
+
+Before calling this method, current request must first be set by
+calling SetCurrentRequestL. 
+
+Whether the requestor is a contact or a service can be found by
+calling CPosRequestor::RequestorType.
+
+If the requestor is a contact, the requestor object can be cast to
+CPosContactRequestor.
+
+If the requestor is a service, the requestor object can be cast to
+CPosServiceRequestor.
+
+@param aRequestorIndex The index of the requestor.
+@return Information about the requestor.
+
+@leave If the specified requestor index is not valid, i.e. less than 0 or
+  larger than or equal to RequestorCountL, this method will
+  leave with error code KErrArgument.
+
+  If the current request has not been set or the current request is no 
+  longer valid, e.g. because it has been cancelled or completed, this method 
+  will leave with error code KErrNotFound.
+
+@see SetCurrentRequestL()
+@see RequestorCountL()
+@see CPosContactRequestor
+@see CPosServiceRequestor
+@see CPosRequestor::RequestorType
+*/
+EXPORT_C CPosRequestor* CPosPrivacyNotifier::RequestorLC(
+    TInt aRequestorIndex) const
+    {
+    __ASSERT_ALWAYS(CurrentRequest() != KPosNullQNRequestId,
+        User::Leave(KErrNotFound));
+
+    __ASSERT_ALWAYS(aRequestorIndex >= 0 &&
+        aRequestorIndex < iExtension->iRequestorStack.Count(),
+        User::Leave(KErrArgument));
+
+    CPosRequestor* requestor = iExtension->iRequestorStack[aRequestorIndex];
+    TInt type = requestor->RequestorType();
+    CPosRequestor::TRequestorIdFormat format = requestor->RequestorIdFormat();
+    TPtrC idString = requestor->RequestorIdString();
+
+    if (type == CPosRequestor::ERequestorService)
+        {
+        CPosServiceRequestor* serviceRequestor = CPosServiceRequestor::NewLC(format, idString);
+        serviceRequestor->SetRequestType(requestor->RequestType());
+        serviceRequestor->SetNetworkType(requestor->NetworkType());
+        return serviceRequestor;
+        }
+
+    CPosContactRequestor* contactRequestor = CPosContactRequestor::NewLC(format, idString);
+    contactRequestor->SetRequestType(requestor->RequestType());
+    contactRequestor->SetNetworkType(requestor->NetworkType());
+    return contactRequestor;
+    }
+
+// ---------------------------------------------------------------------------
+/**
+This method completes a privacy query or notification request.
+
+@param aRequestId The ID of the privacy query or notification request
+  to complete.
+@param aCompletionCode The request completion code.
+  If the request is a privacy query, the completion code should be one of:
+  - KErrNone if query is accepted by the phone user.
+  - KErrAccessDenied if query is rejected by the phone user.
+  - KErrTimedOut if the query times out.
+
+  If the request is a privacy notification, the completion code should be one of:
+  - KErrNone if the phone user dismisses the privacy notification
+  - KErrTimedOut if the notification times out.
+*/
+EXPORT_C void CPosPrivacyNotifier::CompleteRequest(
+    TPosQNRequestId aRequestId,
+    TInt aCompletionCode)
+    {
+    iExtension->CompleteRequest(aRequestId, aCompletionCode);
+    }
+
+// ---------------------------------------------------------------------------
+/**
+This method completes all outstanding requests.
+
+This method can be used to accept or reject all outstanding
+requests by completing with codes @p KErrNone or @p KErrAccessDenied
+respectively. All notification requests will also be completed with
+this code.
+
+@param aCompletionCode The request completion code.
+*/
+EXPORT_C void CPosPrivacyNotifier::CompleteAllRequests(TInt aCompletionCode)
+    {
+    iExtension->CompleteAllRequests(aCompletionCode);
+    }
+
+// ---------------------------------------------------------------------------
+/**
+Checks that the Privacy UI was launched by the expected client.
+
+The caller specifies the secure ID of the expected client and this
+method returns whether the Privacy UI was launched by that client or not.
+
+@param aSecureId The secureID of the expected client
+@return ETrue if the client that called the notifier is the expected client
+*/
+#pragma message("NOTE: CPosPrivacyNotifier::CheckClientSecureId has no type/return definition.")
+EXPORT_C TBool CPosPrivacyNotifier::CheckClientSecureId(TSecureId aSecureId)
+    {
+    return iExtension->iMessage.SecureId() == aSecureId;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/src/EPos_CPosPrivacyNotifierExtension.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,293 @@
+/*
+* Copyright (c) 2002-2005 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:
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <s32mem.h>
+#include <lbs/epos_privacy.h>
+#include <lbs/epos_cposrequestor.h>
+#include "EPos_CPosPrivacyNotifierExtension.h"
+#include "EPos_CPosRequestHandler.h"
+
+// ================= MEMBER FUNCTIONS =======================
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CPosPrivacyNotifierExtension::CPosPrivacyNotifierExtension()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// CPosPrivacyNotifierExtension::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CPosPrivacyNotifierExtension::ConstructL(
+    CPosPrivacyNotifier* aPrivNotifier)
+    {
+    iRequestHandler = CPosRequestHandler::NewL(aPrivNotifier, this);
+    iPrivacyNotifier = aPrivNotifier;
+    ResetData();
+    }
+
+// Two-phased constructor
+CPosPrivacyNotifierExtension* CPosPrivacyNotifierExtension::NewL(
+    CPosPrivacyNotifier* aPrivNotifier)
+    {
+    CPosPrivacyNotifierExtension* self = new (ELeave)
+        CPosPrivacyNotifierExtension;
+    CleanupStack::PushL(self);
+    self->ConstructL(aPrivNotifier);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// Destructor
+CPosPrivacyNotifierExtension::~CPosPrivacyNotifierExtension()
+    {
+    iRequestorStack.ResetAndDestroy();
+    iRequestArray.Close();
+    delete iRequestHandler;
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::Find
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CPosPrivacyNotifierExtension::Find(TPosQNRequestId aRequestId) const
+    {
+    for (TInt index = 0; index < iRequestArray.Count(); index++)
+        {
+        if (iRequestArray[index].iId == aRequestId)
+            {
+            return index;
+            }
+        }
+    return KErrNotFound;
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::ResetData
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosPrivacyNotifierExtension::ResetData()
+    {
+    iRequestorStack.ResetAndDestroy();
+    iCurrentRequestId = KPosNullQNRequestId;
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::RemoveRequestFromArray
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CPosPrivacyNotifierExtension::RemoveRequestFromArray(
+    TPosQNRequestId aRequestId)
+    {
+    TInt index = Find(aRequestId);
+    if (index == KErrNotFound)
+        {
+        return KErrNotFound;
+        }
+
+    iRequestArray.Remove(index);
+    return index;
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::PrepareL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosPrivacyNotifierExtension::PrepareL(
+    TPosQNRequestId aRequestId)
+    {
+    TInt index = Find(aRequestId);
+    __ASSERT_ALWAYS(index != KErrNotFound, User::Leave(KErrNotFound));
+
+    iCurrentRequestId = aRequestId;
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::CompleteRequest
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosPrivacyNotifierExtension::CompleteRequest(
+    TPosQNRequestId aRequestId,
+    TInt aCompletionCode)
+    {
+    TInt index = Find(aRequestId);
+    if (index != KErrNotFound)
+        {
+        if (iRequestArray[index].iType == TPosQNInputData::EQuery)
+            {
+            // A verification request and the requestor is expecting a response
+            iMessage.Complete(aCompletionCode);
+            }
+        else
+            {
+            // Intentionally empty. The request was for displaying a notification
+            // The requestor is not expecting a response
+            }
+
+        iRequestArray.Remove(index);
+        ResetData();
+        }
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::CompleteAllRequests
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosPrivacyNotifierExtension::CompleteAllRequests(TInt aCompletionCode)
+    {
+    CompleteRequest(iCurrentRequestId, aCompletionCode);
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::Release
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosPrivacyNotifierExtension::Release()
+    {
+    delete iPrivacyNotifier;
+    iPrivacyNotifier = NULL;
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::RegisterL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+CPosPrivacyNotifierExtension::TNotifierInfo
+    CPosPrivacyNotifierExtension::RegisterL()
+    {
+    return iNotifierInfo;
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::Info
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+CPosPrivacyNotifierExtension::TNotifierInfo
+    CPosPrivacyNotifierExtension::Info() const
+    {
+    return iNotifierInfo;
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::StartL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TPtrC8 CPosPrivacyNotifierExtension::StartL(const TDesC8& /*aBuffer*/)
+    {
+    return TPtrC8();
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::StartL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosPrivacyNotifierExtension::StartL(
+    const TDesC8& /*aBuffer*/,
+    TInt /*aReplySlot*/,
+    const RMessagePtr2& aMessage)
+    {
+    iMessage = aMessage;
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::Cancel
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosPrivacyNotifierExtension::Cancel()
+    {
+    if (iRequestArray.Count() > 0)
+        {
+        TPosQNRequestId reqId = iRequestArray[0].iId;
+        iPrivacyNotifier->HandleRequestCancelled(reqId);
+        CompleteRequest(reqId, KErrCancel);
+        }
+    }
+
+// ---------------------------------------------------------
+// CPosPrivacyNotifierExtension::UpdateL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TPtrC8 CPosPrivacyNotifierExtension::UpdateL(const TDesC8& aBuffer)
+    {
+    TPtrC8 tposQnData = aBuffer.Left(KPosQNInputDataClassSize);
+
+    TPckgBuf<TPosQNInputData> input;
+    input.Copy(tposQnData);
+    TPosQNInputData update = input();
+
+    TInt index = Find(update.iId);
+    if (update.iCancelReason == EPosCancelReasonNotAvailable || 
+        (update.iCancelReason == EPosCancelReasonTimeout && 
+        update.iNotificationReason == EPosVerificationTimeout) )
+        {
+        HBufC8* buf = HBufC8::NewLC(update.iDataSize);
+        TPtrC8 bufPtr = aBuffer.Mid(KPosQNInputDataClassSize);
+
+        RDesReadStream stream(bufPtr);
+        CleanupClosePushL(stream);
+        iRequestorStack.InternalizeL(stream);
+        CleanupStack::PopAndDestroy(2, buf); //buf, stream
+
+        User::LeaveIfError(iRequestArray.Append(update));
+        iRequestHandler->ScheduleRequest(update);
+        }
+    else
+        {
+        if (index == KErrNotFound)
+            {
+            User::Leave(KErrArgument);
+            }
+
+        iRequestArray[index].iCancelReason = update.iCancelReason;
+        }
+
+    return TPtrC8();
+    }
+
+//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locationsystemui/locationsysui/queryandnotification/src/EPos_CPosRequestHandler.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,111 @@
+/*
+* Copyright (c) 2002-2005 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 for privacy notifier request handling helper.
+*
+*/
+
+
+
+#include <EPos_CPosPrivacyNotifier.h>
+#include "EPos_CPosRequestHandler.h"
+#include "EPos_CPosPrivacyNotifierExtension.h"
+
+// ================= MEMBER FUNCTIONS =======================
+
+// C++ default constructor can NOT contain any code, that
+// might leave.
+//
+CPosRequestHandler::CPosRequestHandler() :
+    CActive(CActive::EPriorityHigh)
+    {
+    }
+
+// EPOC default constructor can leave.
+void CPosRequestHandler::ConstructL(
+    CPosPrivacyNotifier* aNotifier,
+    CPosPrivacyNotifierExtension* aExtension)
+    {
+    iPrivacyNotifier = aNotifier;
+    iExtension = aExtension;
+    CActiveScheduler::Add(this);
+    }
+
+// Two-phased constructor.
+CPosRequestHandler* CPosRequestHandler::NewL(
+    CPosPrivacyNotifier* aNotifier,
+    CPosPrivacyNotifierExtension* aExtension)
+    {
+    CPosRequestHandler* self =
+        new(ELeave) CPosRequestHandler;
+    CleanupStack::PushL(self);
+    self->ConstructL(aNotifier, aExtension);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// Destructor
+CPosRequestHandler::~CPosRequestHandler()
+    {
+    Cancel();
+    }
+
+// ---------------------------------------------------------
+// CPosRequestHandler::ScheduleRequest
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosRequestHandler::ScheduleRequest(const TPosQNInputData& aInputData)
+    {
+    iInputData = aInputData;
+
+    SetActive();
+    TRequestStatus* status = &iStatus;
+    User::RequestComplete(status, KErrNone);
+    }
+
+// ---------------------------------------------------------
+// CPosRequestHandler::RunL
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosRequestHandler::RunL()
+    {
+    iPrivacyNotifier->HandleNewRequestL(iInputData.iId);
+    }
+
+// ---------------------------------------------------------
+// CPosRequestHandler::DoCancel
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+void CPosRequestHandler::DoCancel()
+    {
+    }
+
+// ---------------------------------------------------------
+// CPosRequestHandler::RunError
+//
+// (other items were commented in a header).
+// ---------------------------------------------------------
+//
+TInt CPosRequestHandler::RunError(TInt aError)
+    {
+    iExtension->CompleteRequest(iInputData.iId, aError);
+    return KErrNone;
+    }
+
+//  End of File
--- a/locationtriggering/lbtmgmtui/data/lbtmgmtpluginview.rss	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/lbtmgmtui/data/lbtmgmtpluginview.rss	Fri Apr 16 15:23:31 2010 +0300
@@ -27,7 +27,7 @@
 #include <avkon.rh>
 #include <avkon.rsg>
 #include <avkon.mbg>
-#include <eikcore.rsg>
+#include <EIKCORE.rsg>
 #include <eikon.rh>
 #include <eikon.rsg>
 #include <avkon.loc>
--- a/locationtriggering/lbtmgmtui/src/lbtmgmtdebug.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/lbtmgmtui/src/lbtmgmtdebug.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -50,6 +50,7 @@
 //
 void Debug( TRefByValue<const TDesC> aText, ... )
     {    
+    // coverity[var_decl : FALSE] 
     VA_LIST args;
     VA_START( args, aText );
     
--- a/locationtriggering/ltcontainer/src/lbtcontainerareafilter.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltcontainer/src/lbtcontainerareafilter.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -306,8 +306,7 @@
 	// Add rectangular filtering here.
 	if(aEntry != NULL)
 		{
-		CLbtTriggerEntry* trigEntry=aEntry->TriggerEntry();
-    	CLbtGeoRect* rectArea=static_cast<CLbtGeoRect*>(iArea);
+		CLbtGeoRect* rectArea=static_cast<CLbtGeoRect*>(iArea);
     	TReal northLat,southLat,eastLong,westLong;
     	rectArea->GetBorder(southLat,northLat,westLong,eastLong);
     	CLbtExtendedTriggerInfo* contExtInfo = aEntry->ExtendedTriggerInfo();
--- a/locationtriggering/ltcontainer/src/lbtcontainertriggerentry.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltcontainer/src/lbtcontainertriggerentry.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -228,7 +228,7 @@
 		}
 	else
 		{
-		entry=CLbtStartupTrigger::NewL();
+		// We use clone only for session triggers.
 		}
 		
     if(dynInfo!=NULL)
--- a/locationtriggering/ltcontainer/src/lbtdbtriggersmanager.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltcontainer/src/lbtdbtriggersmanager.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -1367,7 +1367,13 @@
     	CompleteClientRequest( KErrServerBusy );
     	return;
     	}
-    
+
+    if( aFilter == NULL )
+        {
+        CompleteClientRequest( KErrArgument );
+        return;
+        }
+
     // Check if this filter is application for the type of triggers supported by DB
     CLbtListTriggerOptions* options = aFilter->ListOptions();    
     if(options)
@@ -1379,12 +1385,6 @@
 	    	}
     	}
     
-    if( aFilter == NULL )
-        {
-        CompleteClientRequest( KErrArgument );
-        return;
-        }
-      
     // Store the parameters first for later references
     iFilter = aFilter;
     iTriggers = &aTriggers;
@@ -2478,7 +2478,6 @@
                             	
     if( !(aAttrMask & CLbtTriggerEntry::EAttributeCondition) )
     	{
-    	CLbtTriggerConditionBase* condBase = clientEntry->GetCondition();
     	clientEntry->SetCondition(NULL);
     	}
                             	
@@ -2938,7 +2937,6 @@
     CLbtExtendedTriggerInfo* extdInfo = iEntry->ExtendedTriggerInfo();
     CLbtTriggerConditionArea* cond = static_cast<CLbtTriggerConditionArea* >(trigger->GetCondition());
     CLbtGeoAreaBase * areaBase = cond->TriggerArea();
-    CLbtGeoCircle* area = static_cast<CLbtGeoCircle* >(cond->TriggerArea());
     
     // Insert a Row in the View
     iView.InsertL();  // Insert a row. Column order matches sql select statement
--- a/locationtriggering/ltcontainer/src/lbtramtriggersmanager.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltcontainer/src/lbtramtriggersmanager.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -238,8 +238,6 @@
         return;
     	}
 
-   CLbtListTriggerOptions* listOptions=aFilter->ListOptions();
-
    // Store client data 
    iFilter = aFilter;   
    iClientSecurityPolicy = aSecurityPolicy;
@@ -272,7 +270,6 @@
             break;
         
         CLbtListTriggerOptions* listOptions = iFilter->ListOptions();
-        CLbtContainerFilter* contFilter = iFilter->ContainerFilter();
         CLbtExtendedTriggerInfo* contExtInfo = tEntry->ExtendedTriggerInfo();   
         TLbtTriggerDynamicInfoFieldsMask dynInfoMask;
         TLbtTriggerAttributeFieldsMask attrMask;
@@ -281,7 +278,6 @@
         ++count;
         if( !LbtContainerUtilities::RunSecurityPolicy( tEntry, iClientSecurityPolicy ) )
             {
-         
             continue;
             }
         
@@ -296,9 +292,10 @@
         if(isFilterPresent > 0 && isEntryRequested)
             {
             entry = CLbtContainerTriggerEntry::NewL();
-            CleanupStack::PushL( entry );
+            iClientTriggerArray->Append( entry );
+
             clientEntry = CLbtSessionTrigger::NewL();
-            entry->SetTriggerEntry(clientEntry);
+            entry->SetTriggerEntry( clientEntry );
 
             if( attrMask & CLbtTriggerEntry::EAttributeId )
                 {
@@ -324,10 +321,11 @@
                 {
                 CLbtTriggerConditionArea* cond = static_cast<CLbtTriggerConditionArea*>(trigEntry->GetCondition());
                 // Condition area to be sent back to client
-                CLbtTriggerConditionArea* condArea=CLbtTriggerConditionArea::NewL();
+                CLbtTriggerConditionArea* condArea=CLbtTriggerConditionArea::NewLC();
                 CLbtGeoAreaBase* area = LbtContainerUtilities::CopyGeoAreaL( cond->TriggerArea() );
                 condArea->SetTriggerArea( area );
                 condArea->SetDirection( cond->Direction() );
+                CleanupStack::Pop( condArea );
                 clientEntry->SetCondition( condArea );
                 }
 
@@ -352,6 +350,16 @@
                 info->iFiredLocality=tEntry->DynInfo()->iFiredLocality;
                 }
                     
+            if(isDynInfoPresent)
+                {
+                entry->SetDynInfo(info);
+                }
+            else
+                {
+                delete info;
+                }
+            
+            
             if( dataMask & CLbtContainerTriggerEntry::EContainerAttributeHysteresisRadius )
                 {
                 if(clientExtInfo == NULL)
@@ -419,19 +427,7 @@
                 {
                 entry->SetExtendedTriggerInfo(clientExtInfo);
                 }
-            
-            if(isDynInfoPresent)
-                {
-                entry->SetDynInfo(info);
-                }
-                
-            if( entry != NULL )
-                {
-                iClientTriggerArray->Append( entry );
-                CleanupStack::Pop( entry );
-                }
             }
-        
         }
     
     if( tEntry == NULL )
@@ -645,93 +641,72 @@
     CLbtTriggerEntry* trigEntry = iClientTriggerEntry->TriggerEntry();
     CLbtExtendedTriggerInfo* trigExtInfo = iClientTriggerEntry->ExtendedTriggerInfo();
     TLbtTriggerDynamicInfo* trigDynInfo = iClientTriggerEntry->DynInfo();
-
+    
+    // Append the modification information
+    MLbtTriggerStore::TLbtTriggerModifiedInfo info;
+    info.iTriggerId = entry->TriggerEntry()->Id();   
+    TSecureId sid = entry->ExtendedTriggerInfo()->OwnerSid();    
+    info.iOwner.iUid= (TInt)(sid.iId);
+    iIdArray.Append(info);
 
     /* contTrigEntry is the trigger entry which is a part of 
      * the container trigger entry retrieved from the tree 
      */     
-    CLbtSessionTrigger* contTrigEntry = static_cast <CLbtSessionTrigger*>(entry->TriggerEntry());
+    CLbtSessionTrigger* contTrigEntry = NULL;
+    if( entry->TriggerEntry() )
+        {
+        contTrigEntry = static_cast <CLbtSessionTrigger*>(entry->TriggerEntry());
+        
+        CLbtTriggerConditionArea* condArea = static_cast <CLbtTriggerConditionArea*>(contTrigEntry->GetCondition());
+        CLbtGeoAreaBase* geoArea = condArea->TriggerArea();    
+        info.iAreaType = geoArea->Type();
+        }
+    else
+        {
+        contTrigEntry=CLbtSessionTrigger::NewL();
+        entry->SetTriggerEntry( contTrigEntry );
+        }
     
     /* Contextinfo is the extended information present in the entry 
      * retrieved from the tree 
      */
     CLbtExtendedTriggerInfo* contExtInfo = entry->ExtendedTriggerInfo();
-    TLbtTriggerDynamicInfo* contDynInfo = NULL;
-    contDynInfo = entry->DynInfo();
-    
-    // Append the modification information
-    MLbtTriggerStore::TLbtTriggerModifiedInfo info;
-    info.iTriggerId = entry->TriggerEntry()->Id();    
-    CLbtTriggerConditionArea* condArea = static_cast <CLbtTriggerConditionArea*>(contTrigEntry->GetCondition());
-    CLbtGeoAreaBase* geoArea = condArea->TriggerArea();    
-    info.iAreaType = geoArea->Type();
-    TSecureId sid = entry->ExtendedTriggerInfo()->OwnerSid();    
-    info.iOwner.iUid= (TInt)(sid.iId);
-    iIdArray.Append(info);
+    TLbtTriggerDynamicInfo* contDynInfo =  entry->DynInfo();
     
     if(trigEntry!=NULL)
         {
         if( iAttrMask & CLbtTriggerEntry::EAttributeId )
             {
-            if(contTrigEntry==NULL)
-                {
-                contTrigEntry=CLbtSessionTrigger::NewL();
-                }
-            contTrigEntry->SetId(trigEntry->Id());
+             contTrigEntry->SetId(trigEntry->Id());
             }
                 
         if( iAttrMask & CLbtTriggerEntry::EAttributeName )
             {
-            if(contTrigEntry==NULL)
-                {
-                contTrigEntry=CLbtSessionTrigger::NewL();
-                }
             contTrigEntry->SetNameL(trigEntry->Name()); 
             }
                             
         if( iAttrMask & CLbtTriggerEntry::EAttributeState )
             {
-            if(contTrigEntry==NULL)
-                {
-                contTrigEntry=CLbtSessionTrigger::NewL();
-                }
             contTrigEntry->SetState(trigEntry->State());        
             }
         
         if( iAttrMask & CLbtTriggerEntry::EAttributeRearmTime )
             {
-            if(contTrigEntry==NULL)
-                {
-                contTrigEntry=CLbtSessionTrigger::NewL();
-                }
             contTrigEntry->SetTimeToRearm((trigEntry->TimeToRearm()));
             }
                             
         if( iAttrMask & CLbtTriggerEntry::EAttributeRequestor )
             {
-            if(contTrigEntry==NULL)
-                {
-                contTrigEntry=CLbtSessionTrigger::NewL();
-                }
             //clientEntry->SetRequestorL(trigEntry->GetRequestor());        
             }
                                 
         if( iAttrMask & CLbtTriggerEntry::EAttributeManagerUi )
             {
-            if(contTrigEntry==NULL)
-                {
-                contTrigEntry=CLbtSessionTrigger::NewL();
-                }
             contTrigEntry->SetManagerUi(trigEntry->ManagerUi());        
             }
                     
         if( iAttrMask & CLbtTriggerEntry::EAttributeCondition )
             {
-            if(contTrigEntry==NULL)
-                {
-                contTrigEntry=CLbtSessionTrigger::NewL();
-                }
-        
             CLbtTriggerConditionArea* condArea = static_cast <CLbtTriggerConditionArea*>(contTrigEntry->GetCondition());
             CLbtGeoAreaBase* geoArea = condArea->TriggerArea();
             CLbtTriggerConditionArea* cond=static_cast <CLbtTriggerConditionArea*> (trigEntry->GetCondition());
@@ -750,7 +725,6 @@
                 CLbtGeoCell* containerCell = static_cast<CLbtGeoCell*>(geoArea);
                 CLbtGeoCell* geoCell = static_cast <CLbtGeoCell*> (cond->TriggerArea());
                 
-                // TODO: Check if we need to retreive GSM and WCDMA info
                 containerCell->SetNetworkType(geoCell->NetworkType());
                 containerCell->SetNetworkCountryCode(geoCell->NetworkCountryCode());
                 containerCell->SetNetworkIdentityCode(geoCell->NetworkIdentityCode());
@@ -840,6 +814,7 @@
             if(contExtInfo==NULL)
                 {
                 contExtInfo=CLbtExtendedTriggerInfo::NewL();
+                entry->SetExtendedTriggerInfo( contExtInfo );
                 }
             contExtInfo->SetHysteresisRadius(trigExtInfo->HysteresisRadius());
             }
@@ -849,6 +824,7 @@
             if(contExtInfo==NULL)
                 {
                 contExtInfo=CLbtExtendedTriggerInfo::NewL();
+                entry->SetExtendedTriggerInfo( contExtInfo );
                 }   
             contExtInfo->SetTriggerFiredState(trigExtInfo->IsTriggerFired());
             }
@@ -858,6 +834,7 @@
             if(contExtInfo==NULL)
                 {
                 contExtInfo=CLbtExtendedTriggerInfo::NewL();
+                entry->SetExtendedTriggerInfo( contExtInfo );
                 }   
             contExtInfo->SetFiredInfo( trigExtInfo->GetFiredInfo() );
             }
@@ -867,6 +844,7 @@
             if(contExtInfo==NULL)
                 {
                 contExtInfo=CLbtExtendedTriggerInfo::NewL();
+                entry->SetExtendedTriggerInfo( contExtInfo );
                 }
             contExtInfo->SetOwnerSid(trigExtInfo->OwnerSid()); 
             }
@@ -876,6 +854,7 @@
             if(contExtInfo==NULL)
                 {
                 contExtInfo=CLbtExtendedTriggerInfo::NewL();
+                entry->SetExtendedTriggerInfo( contExtInfo );
                 }
             contExtInfo->SetTriggerRectangleArea(trigExtInfo->TriggerReactangleArea()); 
             }   
@@ -885,6 +864,7 @@
             if(contExtInfo==NULL)
                 {
                 contExtInfo=CLbtExtendedTriggerInfo::NewL();
+                entry->SetExtendedTriggerInfo( contExtInfo );
                 }
             contExtInfo->SetStrategyDataL(trigExtInfo->StategyData()); 
             }
@@ -894,6 +874,7 @@
             if(contExtInfo==NULL)
                 {
                 contExtInfo=CLbtExtendedTriggerInfo::NewL();
+                entry->SetExtendedTriggerInfo( contExtInfo );
                 }
             contExtInfo->SetTriggerFireOnCreation(trigExtInfo->IsTriggerFireOnCreation()); 
             }   
@@ -906,6 +887,7 @@
             if(contDynInfo == NULL)
                 {
                 contDynInfo = new TLbtTriggerDynamicInfo;
+                entry->SetDynInfo( contDynInfo );
                 }
             contDynInfo->iValidity = trigDynInfo->iValidity;    
             }
@@ -965,8 +947,7 @@
 			filter->ProcessFilter(tEntry,isFilterPresent,isEntryRequested);
 			if(isFilterPresent>0 && isEntryRequested)
 				{
-				CLbtTriggerEntry* trigEntry = tEntry->TriggerEntry();
-			   	AppendTriggerInfo(tEntry);
+				AppendTriggerInfo(tEntry);
 				}
     		}		
 		tEntry=iTriggerIdTree->GetNextEntryL();		
@@ -1094,7 +1075,6 @@
                 info->iValidity = aValidity;
                 entry->SetDynInfo(info);                
                 }    
-            CLbtTriggerEntry* trigEntry = entry->TriggerEntry();
             AppendTriggerInfo(entry);
             }
         }
@@ -1193,7 +1173,6 @@
             iFilterBase->ProcessFilter(tEntry,isFilterPresent,isEntryRequested);
             if(isFilterPresent > 0 && isEntryRequested)
                 {
-                CLbtTriggerEntry* trigEntry = tEntry->TriggerEntry();
                 AppendTriggerInfo(tEntry);              
                 }
             }
--- a/locationtriggering/ltcontextsourceplugin/src/lbtcontextsourceplugin.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltcontextsourceplugin/src/lbtcontextsourceplugin.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -189,9 +189,7 @@
     
     
     LBTCONTEXTSOURCEPLUGINDEBUG( "CLBTContextSourcePlugin::ParseTriggerInformationL : IN " );
-    const RSettingParameterArray& parameters 
-                            = aItem.Parameters();
-    
+
     // Add check for improper syntax of XML file
     if ( aItem.Name() != KTriggerLocation )     
     {
@@ -533,9 +531,6 @@
         {
         const CCFContextSourceSetting& item = aSettingList.Item( i );
 
-        const RSettingParameterArray& parameters 
-                                = item.Parameters();
-        
         // Add check for improper syntax of XML file
         if ( item.Name() != KTriggerLocation )     
             {
--- a/locationtriggering/ltserver/ltserverlogic/src/lbtlistaooperation.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltserver/ltserverlogic/src/lbtlistaooperation.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -436,9 +436,8 @@
 		// HandleOperationClosureL method internally calls LoadOrUnloadStrategyPluginL 
 		// method which may leave only during the loading operation,but here the expected 
 		// behaviour is the unloading of strategy plugin which never fails .Hence we have ignored.
-	   
+        LbtGlobal::RequestComplete(iMessage,KErrCancel);   
 		TRAP_IGNORE( iObserver.HandleOperationClosureL(this,KErrCancel) );
-		LbtGlobal::RequestComplete(iMessage,KErrCancel);
 		}	
 	}
 
--- a/locationtriggering/ltserver/ltserverlogic/src/lbtserverlogic.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltserver/ltserverlogic/src/lbtserverlogic.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -335,8 +335,7 @@
 				}
 				
         	// The request can only be through the LT management API.
-        	// ToDo : Check for capabilities.
-			if ( TLbtManagementLibrary != aType ) 
+        	if ( TLbtManagementLibrary != aType ) 
 			    {
 			    // This is not a management library. Hence return access denied.
     		    aMessage.Complete( KErrAccessDenied );
@@ -982,11 +981,7 @@
 	FUNC_ENTER("CLbtServerLogic::ValidateCreateTriggerMessage");
 	// The server should check for the following parameters
 	// 1. capability checks for security.
-	// 2. checks for the Trigger area, ie. radius. (ToDo)
-
-	// Check if the requesting process has location and write user data capability
-	// ToDo : check the required set of capabilities from req spec.
-	if( !aMessage.HasCapability(ECapabilityLocation) ||
+		if( !aMessage.HasCapability(ECapabilityLocation) ||
 	    !aMessage.HasCapability(ECapabilityWriteUserData) )
 		{
 		return KErrPermissionDenied;
@@ -1133,6 +1128,7 @@
 	
 	// Populate the change event structure to send the information to the client based
 	// on the message for which the notification needs to be made
+	// coverity[var_decl : FALSE] 
 	TLbtTriggerChangeEvent event;
 	
 	switch(aOperation->GetFunction())
@@ -1207,6 +1203,7 @@
 
 	RArray<RMessage2> array;
 	RMessage2 message;
+	// coverity[var_decl : FALSE] 
 	TLbtTriggerChangeEvent event;
 	
     // sort by SID the retrieved list of triggers that were modified.
@@ -1611,6 +1608,7 @@
     FUNC_ENTER("CLbtServerLogic::HandleContainerTriggerChange");
     RMessage2 message;
     
+    // coverity[var_decl : FALSE] 
     TLbtTriggerChangeEvent event;
     // If there is change in the single trigger, set the trigger id else
     // update KLbtNullTriggerId for trigger id
--- a/locationtriggering/ltserver/ltserverlogic/src/lbttriggermodifyaooperation.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltserver/ltserverlogic/src/lbttriggermodifyaooperation.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -222,15 +222,18 @@
 	{
 	FUNC_ENTER("CLbtTriggerModifyAOOperation::CancelModifyOperation");
 	Cancel();
-	   
-   if( iStatus.Int() == KLbtErrPartial )
+	
+	// HandleOperationClosureL might leave either when it tries to unload strategy
+	// or during notification. Nothing can be done when this happens. Hence it will 
+	// be ignored.
+    if( iStatus.Int() == KLbtErrPartial )
        {
        LOG("Partial completion");  
-       iObserver.HandleOperationClosureL( this,KErrNone );
+       TRAP_IGNORE( iObserver.HandleOperationClosureL( this,KErrNone ) );
        }
-   else
+    else
        {
-       iObserver.HandleOperationClosureL( this,iStatus.Int() );
+       TRAP_IGNORE( iObserver.HandleOperationClosureL( this,iStatus.Int() ) );
        }
     }
 	
@@ -313,7 +316,6 @@
 			filter->AddTriggerIdL( iTriggerId );
             options->SetFilter( filter );
 			CleanupStack::Pop(filter);
-			// ToDo : if msg from LT client API then add SID filter as well.
 			break;
 		    }
 		case ELbtDeleteTriggers:
@@ -323,8 +325,7 @@
 			    InternalizeFilterFromIpcLC( iMessage, KParamFilter );
             options->SetFilter( filter );
 			CleanupStack::Pop(filter);
-			// ToDo : if msg from LT client API then add SID filter as well.
-		    break;
+			break;
 		    }
         }
 
@@ -512,6 +513,7 @@
     {
     FUNC_ENTER("CLbtTriggerModifyAOOperation::HandleModifyTriggerStateOpL");
 	CLbtTriggerFilterBase* filter = NULL;
+	// coverity[var_decl : FALSE] 
 	CLbtTriggerEntry::TLbtTriggerState triggerState;
 	
 	switch ( iFunction )
--- a/locationtriggering/ltstrategyengine/group/lbtstrategy.mmp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltstrategyengine/group/lbtstrategy.mmp	Fri Apr 16 15:23:31 2010 +0300
@@ -21,7 +21,7 @@
 #include <platform_paths.hrh>
 #include <data_caging_paths.hrh>
 
-
+    
 TARGET          lbtstrategy.dll
 TARGETTYPE      PLUGIN
 UID             0x10009d8d 0x10283132
@@ -45,7 +45,7 @@
 SOURCE          lbtpsychangelistner.cpp
 SOURCE          lbtcelliddatabase.cpp
 
-/* TODO: Need to add location monitor */
+
 
 USERINCLUDE     ../inc
 USERINCLUDE		../../inc
--- a/locationtriggering/ltstrategyengine/inc/lbtcellsupervisor.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltstrategyengine/inc/lbtcellsupervisor.h	Fri Apr 16 15:23:31 2010 +0300
@@ -93,7 +93,7 @@
     void Resume();
      
     /**
-     * TODO: Check if this needed.
+     * Resets cell supervision
      */
     void Reset();
 
--- a/locationtriggering/ltstrategyengine/inc/lbtcoordinatesupervisor.h	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltstrategyengine/inc/lbtcoordinatesupervisor.h	Fri Apr 16 15:23:31 2010 +0300
@@ -45,9 +45,7 @@
 class CLbtCoOrdinateSupervisor : public CActive,
                                  public MCellChangeObserver,
                                  public MLbtPsyChangeObserver
-    
     {
-    
     struct TTriggerArea;
     /**
      * Enum that specifies whether we need proper fix using any of the psy
--- a/locationtriggering/ltstrategyengine/src/lbtcellsupervisor.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltstrategyengine/src/lbtcellsupervisor.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -150,7 +150,7 @@
 //
 void CLbtCellSupervisor::Reset()
     {
-    // TODO: Check if this needed.
+    iRecentlyFiredTriggerArray.Reset();
     }
 
 
@@ -326,8 +326,8 @@
         
         if(dataMask)
         	{
+            // This is dummy position info. It has no significance.
         	TPositionInfo dummy;  
-	        // TODO : Remove dummy position info
 	        iView->UpdateTriggerInfo( CLbtGeoAreaBase::ECellular,dummy, aTrigger, dataMask );
         	}        
         }
@@ -335,7 +335,7 @@
     // EXIT Trigger    
     else
         {
-        
+        //This is not currently supported.
         }
     aTrigger->SetStrategyData( strategyData );    
     }
@@ -427,8 +427,8 @@
         
         if(dataMask)
             {
+            // This is dummy position info. It has no significance.
             TPositionInfo dummy;  
-            // TODO : Remove dummy position info
             iView->UpdateTriggerInfo( CLbtGeoAreaBase::ECellular,dummy, aTrigger, dataMask );
             }        
         }
--- a/locationtriggering/ltstrategyengine/src/lbtcoordinatesupervisor.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltstrategyengine/src/lbtcoordinatesupervisor.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -438,7 +438,6 @@
 
 	if( iStatus.Int() == KPositionQualityLoss )
 		{
-		// TODO: Remove this. Only for Debug
 		TPosition currentPosition;
 		iPosInfo.GetPosition( currentPosition );
 		LOG("Received KPositionQualityLoss");
@@ -692,7 +691,6 @@
 	                            }
 	                        break; 
 	                        
-	                    // TODO: Cell ID triggers need to be handled
 	                    default:
 	                        break;
                         }
@@ -1169,7 +1167,6 @@
     {
     FUNC_ENTER("CLbtCoOrdinateSupervisor::EstimateSleepInterval");
     
-    // TODO: Need to use GPS speed for observed speed values
     TReal maxUserSpeed = iSettings.iMaximumUserSpeed;
         
     TReal actualEstimatedSpeed = KMinProjSpeed;
@@ -1365,30 +1362,6 @@
     	    iProcessingInterval = seconds.Int();
     	    iSleepInterval = iSleepInterval.Int() - iProcessingInterval;
         	}
-        
-       // TODO: Check with Krishna on the commented code
-        // Check to determine if GPS method used for location information. If 
-        // true, then need to use the GPS tracking mode interval here 
-        /*if( iLocationRequestor->GPSUsed() )
-            {
-            if( ( iSleepInterval.Int() < 
-                    iSettings.iMinimumLocationUpdateInterval ) || 
-                    ( iSleepInterval.Int() - iSettings.iGpsTrackingModeInterval ) < 5 )
-                {
-                iSleepInterval = iSettings.iGpsTrackingModeInterval;
-                }
-            }
-        else
-            // 
-            {
-            // If GPS not used check if sleep interval is less than minimum 
-            // update interval. If true then use minimum update interval
-            if( iSleepInterval.Int() < 
-                    iSettings.iMinimumLocationUpdateInterval )
-                {
-                iSleepInterval = iSettings.iMinimumLocationUpdateInterval;
-                }
-            }*/
         }   
     
     // If sleep interval is less than KMinSleepInterval and the UE is travelling in
@@ -1584,20 +1557,12 @@
         }        
     else if( KErrNone == iStatus.Int() || KErrAbort == iStatus.Int() )
         {
-        // TODO: Check accuracy of movement monitor and 
-        //       if there was any detection made.
-        // For accuracy, pass the distance to nearest trigger as a reference 
-        // for movement detector plugin. If accuracy cannot be met then
-        // go ahead with acquiring current location else need to switch to
-        // movement detection mode.
         RequestTerminalPosition( iSettings.iLocationRequestTimeout );
         }
-    
-    // Error in timer operation
     else
         {
+        LOG1("Error in timer:%d",iStatus.Int());
         }
-
     }
     
 
@@ -1802,14 +1767,14 @@
         {
         if( KErrNotFound == err )
             {
-            
             // determine update interval
             iState = iProjectedState = EIdle;
             }
         else
             {
+            // TODO: Report error to server. This can be done only after 
+            // introducing new state to strategy dynamic info.
             Term();
-            // TODO: Server needs to be notified about termination of supervision 
             }
         return err;
         }
--- a/locationtriggering/ltstrategyengine/src/lbtstatusmanager.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltstrategyengine/src/lbtstatusmanager.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -19,9 +19,8 @@
 
 #include <e32base.h>
 #include <lbtstatuspskeys.h>
-
 #include "lbtstatusmanager.h"
-
+#include "lbtlogger.h"
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -72,7 +71,7 @@
     iLastLocAcqStatus = aStatus;        
     if( KErrNone != msg )
         {
-        // TODO: log error message here
+        LOG1("Error updating status info:%d",msg);
         }
     }
 
--- a/locationtriggering/ltstrategyengine/src/lbtstrategyengine.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltstrategyengine/src/lbtstrategyengine.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -154,7 +154,7 @@
                 }
             else
                 {
-                iCellSupervisor->Reset();   // TODO: Check if this needed
+                iCellSupervisor->Reset();   
                 }
             }
             
@@ -215,7 +215,7 @@
         iCellSupervisor->StopSupervision();
         }
     
-    // Todo: Remove the dummy positionInfo
+    // This is dummy position info, this is no significance.
     TPositionInfo dummy;
     iView->Refresh( dummy, aEventMask, aTriggerIds );
     }
--- a/locationtriggering/ltstrategyengine/src/lbttriggerview.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/ltstrategyengine/src/lbttriggerview.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -407,7 +407,7 @@
             } );
         if( KErrNone != err )
             {
-            // TODO: Log warning message that entries could not be deleted
+            LOG("Entries could not be deleted");
             }
         }
 
@@ -1100,7 +1100,7 @@
                 }
             else
                 {
-                // TODO: Log error message mentioning the trigger ID
+                LOG1("Invalid trigger ID:%d",( *aIDs )[index]);
                 InvalidateTrigger( ( *aIDs )[index] );
                 }
             }
@@ -1353,7 +1353,7 @@
     FUNC_ENTER("CLbtTriggerView::RunL");
     if( KErrNone != iStatus.Int() )
         {
-        // TODO: Log error here
+        LOG1("iStatus.Int = %d",iStatus.Int() );
         // TODO: Check if error needs to be reported through the 
         //       observer interface
         }
--- a/locationtriggering/rom/locationtriggering.iby	Tue Feb 02 10:12:24 2010 +0200
+++ b/locationtriggering/rom/locationtriggering.iby	Fri Apr 16 15:23:31 2010 +0300
@@ -51,7 +51,7 @@
 // Backup and restore registeration file
 data=DATAZ_\private\1028312B\backup_registration.xml			\private\1028312B\backup_registration.xml
 
-// TODO: This is temporary untill cenrep CR is approved
+// Central repository file
 data=DATAZ_\private\10202be9\1028312F.txt				\private\10202be9\1028312F.txt
 
 // Location Triggering Management Library
--- a/locsrv_plat/group/bld.inf	Tue Feb 02 10:12:24 2010 +0200
+++ b/locsrv_plat/group/bld.inf	Fri Apr 16 15:23:31 2010 +0300
@@ -41,5 +41,6 @@
 #include "../location_triggering_management_api/group/bld.inf"
 #include "../location_triggering_status_information_api/group/bld.inf"
 #include "../oma_supl_asn_codec_plugin_api/group/bld.inf"
+#include "../query_and_notification_api/group/bld.inf"
 #include "../location_local_variation_api/group/bld.inf"
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locsrv_plat/query_and_notification_api/group/bld.inf	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,27 @@
+/*
+* Copyright (c) 2006 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:  File that exports the files belonging to 
+:                SUPL Settings API
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+../inc/EPos_CPosPrivacyNotifier.h     MW_LAYER_PLATFORM_EXPORT_PATH(EPos_CPosPrivacyNotifier.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/locsrv_plat/query_and_notification_api/inc/EPos_CPosPrivacyNotifier.h	Fri Apr 16 15:23:31 2010 +0300
@@ -0,0 +1,141 @@
+/*
+* Copyright (c) 2002-2005 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 for LBS Privacy Query & Notify (Q&N) privacy notifiers.
+*
+*/
+
+
+
+#ifndef CPOSPRIVACYNOTIFIER_H
+#define CPOSPRIVACYNOTIFIER_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <lbs/epos_privacy.h>
+#include <lbs/EPos_TPosQNInputData.h>
+
+// DATA TYPES
+
+
+// CONSTANT DECLARATIONS
+/**
+@publishedPartner
+@deprecated
+*/
+const TPosQNRequestId KPosNullQNRequestId = -1;
+
+// FORWARD DECLARATIONS
+class CPosPrivacyNotifierExtension;
+class CPosRequestor;
+class MEikSrvNotifierBase2;
+
+// CLASS DECLARATION
+/**
+Base class for LBS Privacy Query & Notify (Q&N) privacy notifiers.
+
+A privacy notifier is a UI plug-in which handles privacy query and
+notification requests.
+
+This class contains declarations for event methods that must be implemented
+by the notifier in order to receive information about new requests or
+cancelled requests.
+
+It also contains methods for accessing information about a request and for
+completing a request.
+
+@publishedPartner
+@deprecated
+*/
+class CPosPrivacyNotifier : public CBase
+    {
+    public:
+        /**
+        Specifies whether the requested dialog should be a query or a
+        notification dialog.
+        */
+        enum TRequestType {
+            /** Query dialog requested. */
+            EQuery = 0,
+            /** Notification dialog requested. */
+            ENotification
+            };
+
+    public:
+        IMPORT_C virtual ~CPosPrivacyNotifier();
+
+    public:
+
+        /**
+        * This method is called when a new privacy query or notification has
+        * been requested.
+        *
+        * @param aRequestId The ID of the new query or notification request.
+        */
+        virtual void HandleNewRequestL(
+        /* IN  */       TPosQNRequestId aRequestId
+        ) = 0;
+
+        /**
+        * This method is called when a privacy query or notification request is
+        * cancelled.
+        *
+        * It is not necessary to call @ref CompleteRequest for a cancelled
+        * request.
+        *
+        * @param aRequestId The ID of the cancelled query or notification
+        *   request.
+        */
+        virtual void HandleRequestCancelled(
+        /* IN  */       TPosQNRequestId aRequestId
+        ) = 0;
+
+        /**
+        * This method is called to cancel all outstanding requests.
+        *
+        * It is not necessary to call @ref CompleteRequest for a cancelled
+        * request.
+        */
+        virtual void HandleAllRequestCancelled() = 0;
+        
+        IMPORT_C MEikSrvNotifierBase2* NotifierBase() const;
+        IMPORT_C TPosVerifyCancelReason CancelReason() const;
+        IMPORT_C void GetRequestsL(RArray<TPosQNRequestId>& aRequestArray) const;
+        IMPORT_C TRequestType RequestTypeL(TPosQNRequestId aRequestId) const;
+        IMPORT_C void SetCurrentRequestL(TPosQNRequestId aRequestId);
+        IMPORT_C TPosQNRequestId CurrentRequest() const;
+        IMPORT_C TPosRequestDecision QueryTimeoutStrategy() const;
+        IMPORT_C TPosRequestSource RequestSource() const;
+        IMPORT_C TPosRequestDecision LocationRequestDecision() const;
+        IMPORT_C TPosNotificationReason NotificationReason() const;
+        IMPORT_C TInt RequestorCountL() const;
+        IMPORT_C CPosRequestor* RequestorLC(TInt aRequestorIndex) const;
+        IMPORT_C void CompleteRequest(TPosQNRequestId aRequestId, TInt aCompletionCode);
+        IMPORT_C void CompleteAllRequests(TInt aCompletionCode);
+        IMPORT_C TBool CheckClientSecureId(TSecureId aSecureId);
+
+    protected:
+        IMPORT_C CPosPrivacyNotifier();
+        IMPORT_C void BaseConstructL(TUid aChannel,TInt aPriority);
+
+    private:
+        // By default, prohibit copy constructor
+        CPosPrivacyNotifier( const CPosPrivacyNotifier& );
+        // Prohibit assigment operator
+        CPosPrivacyNotifier& operator= ( const CPosPrivacyNotifier& );
+
+    private:
+        CPosPrivacyNotifierExtension* iExtension;
+    };
+
+#endif      // CPOSPRIVACYNOTIFIER_H
--- a/locsrv_pub/blid_application_satellite_info_api/tsrc/UT_CSatelliteUITest/group/CSatelliteUITest_DoxyFile.txt	Tue Feb 02 10:12:24 2010 +0200
+++ b/locsrv_pub/blid_application_satellite_info_api/tsrc/UT_CSatelliteUITest/group/CSatelliteUITest_DoxyFile.txt	Fri Apr 16 15:23:31 2010 +0300
@@ -1,19 +1,20 @@
-#
-# Copyright (c) 2009 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:
-#
-#
+/*
+* Copyright (c) 2009 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: MMP file for STIF Test Framework's Hardcoded test 
+* module.
+*
+*/
 
 # Doxyfile 1.4.1
 
--- a/package_definition.xml	Tue Feb 02 10:12:24 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,145 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
-  <package id="locationsrv" name="Location Services" levels="plugin fw server if">
-    <collection id="landmarks" name="Landmarks" level="server">
-      <component id="locationlandmarks" filter="s60" name="Location Landmarks">
-        <unit bldFile="landmarks/locationlandmarks/group"/>
-      </component>
-    </collection>
-    <collection id="locationmapnavfw" name="Location Map and Navigation Framework" level="fw">
-      <component id="library" filter="s60" name="Map and Navigation Library">
-      	<!-- should change ID to something more meaningful (mplibrary?) -->
-        <unit bldFile="locationmapnavfw/library/group"/>
-      </component>
-      <component id="aiwprovider" filter="s60" name="Map and Navigation AIW Provider">
-      	<!-- should change ID to something more meaningful (mpaiwprovider?) -->
-        <unit bldFile="locationmapnavfw/aiwprovider/group"/>
-      </component>
-      <component id="locationmapnavfw_build" filter="s60" name="Location Map and Navigation Framework Build">
-        <unit bldFile="locationmapnavfw/group"/>
-      </component>
-    </collection>
-    <collection id="locationsystemui" name="Location System UI" level="if">
-      <component id="locationsysui" filter="s60" name="Location System UI">
-        <unit bldFile="locationsystemui/locationsysui/group"/>
-      </component>
-    </collection>
-    <collection id="supl" name="SUPL" level="fw">
-      <component id="locationsuplfw" filter="s60" name="Location SUPL Framework">
-        <unit bldFile="supl/locationsuplfw/group"/>
-      </component>
-      <component id="locationomasuplprotocolhandler" filter="s60" name="OMA SUPL Protocol Handler">
-        <unit bldFile="supl/locationomasuplprotocolhandler/group"/>
-      </component>
-      <component id="locationomasuplpostester" filter="s60" name="OMA SUPL POS Tester">
-        <unit bldFile="supl/locationomasuplpostester/group"/>
-      </component>
-    </collection>
-    <collection id="locationtriggering" name="Location Triggering" level="server">
-      <component id="ltlogger" filter="s60" name="LT Logger">
-        <unit bldFile="locationtriggering/ltlogger/group"/>
-      </component>
-      <component id="ltclientlib" filter="s60" name="LT Client Library">
-        <unit bldFile="locationtriggering/ltclientlib/group"/>
-      </component>
-      <component id="ltmanagementlib" filter="s60" name="LT Management Library">
-        <unit bldFile="locationtriggering/ltmanagementlib/group"/>
-      </component>
-      <component id="ltcontainer" filter="s60" name="LT Container">
-        <unit bldFile="locationtriggering/ltcontainer/group"/>
-      </component>
-      <component id="ltserver" filter="s60" name="LT Server">
-        <unit bldFile="locationtriggering/ltserver/group"/>
-      </component>
-      <component id="ltstrategypluginapi" filter="s60" name="LT Strategy Plugin API">
-        <unit bldFile="locationtriggering/ltstrategypluginapi/group"/>
-      </component>
-      <component id="ltstrategyengine" filter="s60" name="LT Strategy Engine">
-        <unit bldFile="locationtriggering/ltstrategyengine/group"/>
-      </component>
-      <component id="ltmovementdetectionpluginapi" filter="s60" name="Movement Detection Plugin API">
-        <unit bldFile="locationtriggering/ltmovementdetectionpluginapi/group"/>
-      </component>
-      <component id="ltcellidmovementdetector" filter="s60" name="Cell ID Movement Detector">
-        <unit bldFile="locationtriggering/ltcellidmovementdetector/group"/>
-      </component>
-      <component id="lbtmgmtui" filter="s60" name="LBT Management UI" class="plugin">
-        <unit bldFile="locationtriggering/lbtmgmtui/group"/>
-      </component>
-      <component id="locationtriggering_test" filter="s60" name="Location Triggering Test" purpose="development">
-      	<!--  should have only one unit  -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtcancellationtest/cancelcreatetest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/additionaltests/createtest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/additionaltests/handlingprocesstest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtplatsectest/testlbtplatsecurity2_exe/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtcancellationtest/cancellisttriggerstest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtcancellationtest/cancelcreateiteratortest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtplatsectest/testlbtplatsecurity3_exe/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/firingofstartuptriggerandlisttrigger/createtest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/t_mgmtsettings/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtplatsectest/testlbtplatsecurity4_exe/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtcancellationtest/cancelgettriggerstest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/additionaltests/modifytest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/t_mgmtsettings/createtest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtplatsectest/testlbtplatsecurity5_exe/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/additionaltests/notificationtest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtcancellationtest/cancelsettriggerstest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtcancellationtest/canceldeletetest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/additionaltests/deletetest/group"/> -->
-        <!-- <unit bldFile="locationtriggering/tsrc/lbtengine_test/lbtplatsectest/testlbtplatsecurity1_exe/group"/> -->
-      </component>
-      <component id="locationtriggering_build" filter="s60" name="Location Triggering Build">
-      	<!--  should remove #include from this and maybe put exports in the above components -->
-        <unit bldFile="locationtriggering/group"/>
-      </component>
-    </collection>
-    <collection id="genericpositioningplugins" name="Generic Positioning Plugins" level="plugin">
-      <component id="genericpositioningplugins_build" filter="s60" name="Generic Positioning Plugins Build">
-        <unit bldFile="genericpositioningplugins/group"/>
-      </component>    
-      <component id="locationnpppsy" filter="s60" name="Location Positioning Proxy PSY" class="plugin"> 
-        <unit bldFile="genericpositioningplugins/locationnpppsy/group"/>
-      </component>
-    </collection>
-    <collection id="locationsrv_info" name="Location Services Info" level="if">
-      <component id="locsrv_plat" filter="s60" class="api"  name="Location Services Platform Interfaces">
-        <unit bldFile="locsrv_plat/group"/>
-        <!--  can only have one unit, should below be #included in the above? -->
-        <!-- <unit bldFile="locsrv_plat/geocoding_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/geocoding_api/tsrc/mapnavproviderrefapp/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/location_centre_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/location_settings_launch_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/map_and_navigation_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/map_and_navigation_api/tsrc/mapnavproviderrefapp/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/map_and_navigation_provider_discovery_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/map_and_navigation_provider_discovery_api/tsrc/mapnavproviderrefapp/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/map_image_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/map_image_api/tsrc/testprovider/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/map_image_conversion_plugin_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/map_image_conversion_plugin_api/tsrc/mapnavproviderrefapp/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/oma_supl_asn_codec_plugin_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/supl_network_initiation_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/supl_pos_message_plugin_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/supl_pos_message_plugin_api/tsrc/posmsgpluginreferenceimpl/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/supl_settings_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_plat/supl_terminal_initiation_api/tsrc/group"/> -->
-      </component>
-      <component id="locationsrv_test" filter="s60" name="Location Services Test" purpose="development">
-        <!-- <unit bldFile="tsrc/group"/> -->
-      </component>
-      <component id="locsrv_pub" filter="s60" class="api" name="Location Services Public Interfaces">
-        <unit bldFile="locsrv_pub/group"/>
-        <!--  can only have one unit, should below be #included in the above? -->
-        <!-- <unit bldFile="locsrv_pub/blid_application_satellite_info_api/tsrc/bc_blid_application_satellite_info_api/group"/> -->
-        <!-- <unit bldFile="locsrv_pub/blid_application_satellite_info_api/tsrc/ut_csatelliteuitest/group"/> -->
-        <!-- <unit bldFile="locsrv_pub/landmarks_api/tsrc/bc_landmarks_api/group"/> -->
-        <!-- <unit bldFile="locsrv_pub/landmarks_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_pub/landmarks_database_management_api/tsrc/bc_landmarks_database_management_api/group"/> -->
-        <!-- <unit bldFile="locsrv_pub/landmarks_database_management_api/tsrc/group"/> -->
-        <!-- <unit bldFile="locsrv_pub/landmarks_search_api/tsrc/bc_landmarks_search_api/group"/> -->
-        <!-- <unit bldFile="locsrv_pub/landmarks_search_api/tsrc/group"/> -->
-      </component>
-    </collection>
-  </package>
-</SystemDefinition>
--- a/supl/locationomasuplprotocolhandler/asnconverterpluginapi/src/epos_comasuplreport.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationomasuplprotocolhandler/asnconverterpluginapi/src/epos_comasuplreport.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -406,6 +406,10 @@
         
     iOptionalMask |= KSessionListShift;
     
+    sessionList.Close();
+    reportDataList.Close();
+    
+    
     }
 
 /*
--- a/supl/locationomasuplprotocolhandler/notifier/notifier/data/epos_omasuplnotifier.rss	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationomasuplprotocolhandler/notifier/notifier/data/epos_omasuplnotifier.rss	Fri Apr 16 15:23:31 2010 +0300
@@ -23,7 +23,7 @@
 #include <avkon.rh>
 #include <avkon.rsg>
 #include <avkon.mbg>
-#include <eikcore.rsg>
+#include <EIKCORE.rsg>
 #include <eikon.rh>
 #include <eikon.rsg>
 #include <avkon.loc>
--- a/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationomasuplprotocolhandler/protocolhandler/src/epos_comasuplprotocolmanager.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -243,17 +243,32 @@
 	
 	aStatus = KRequestPending;
 	TRequestStatus *status = &aStatus; 
-	if( iIsInitilized && iOMASuplProtocolHandler1 )
+	
+	if( iIsInitilized )
 		{
-		iOMASuplProtocolHandler1->RunSessionL(      
-											aSuplSession,
+			if( aSuplSession->GetSUPLVersion() == 1 )
+			{
+				iOMASuplProtocolHandler1->RunSessionL(      
+																						aSuplSession,
                                             aStatus,
                                             aHslpAddress,
                                             aFallBack,
                                             aFirstReq,
                                             aAllowedCapabilities,
                                             aRequestID);
-		}    
+			}    
+		else if( aSuplSession->GetSUPLVersion() == 2 )
+			{
+				iOMASuplProtocolHandler2->RunSessionL(      
+																						aSuplSession,
+                                            aStatus,
+                                            aHslpAddress,
+                                            aFallBack,
+                                            aFirstReq,
+                                            aAllowedCapabilities,
+                                            aRequestID);
+			}
+		}
 	else
 	    {
 	    User::RequestComplete(status,KErrOMASuplUnInitilized); 
@@ -281,7 +296,9 @@
 	aStatus = KRequestPending;
 	
 	TRequestStatus *status = &aStatus; 
-    if( iIsInitilized && iOMASuplProtocolHandler1 )
+    if( iIsInitilized )
+    	{
+    		if( aSuplSession->GetSUPLVersion() == 1 )
         {
         iOMASuplProtocolHandler1->RunSessionL(
                                             aSuplSession,
@@ -292,7 +309,20 @@
                                             aAllowedCapabilities,
                                             aQop,
                                             aRequestID);
-        }    
+        }  
+        else if( aSuplSession->GetSUPLVersion() == 2 )  
+        {
+        	iOMASuplProtocolHandler2->RunSessionL(
+                                            aSuplSession,
+                                            aStatus,
+                                            aHslpAddress,
+                                            aFallBack,
+                                            aFirstReq,
+                                            aAllowedCapabilities,
+                                            aQop,
+                                            aRequestID);	
+        }
+      }
     else
         {
         User::RequestComplete(status,KErrOMASuplUnInitilized); 
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasupletelnotifier.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasupletelnotifier.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -115,10 +115,13 @@
 //
 void COMASuplETelNotifier::CheckForRoaming()
     {
-	iCellMode = EOMASuplCellIdHome;
-    iTrace->Trace(_L("COMASuplETelNotifier::CheckForRoaming..."),KTraceFileName, __LINE__); 							
-    iPhone.GetHomeNetwork( iStatus, iHomeNetworkInfoPkg);
-    SetActive();            
+	iTrace->Trace(_L("COMASuplETelNotifier::CheckForRoaming..."),KTraceFileName, __LINE__); 							
+     if( !IsActive() )
+    	{
+    	iCellMode = EOMASuplCellIdHome;
+    	iPhone.GetHomeNetwork( iStatus, iHomeNetworkInfoPkg);
+    	SetActive();    
+    	}              
     }  
       
 // -----------------------------------------------------------------------------
@@ -128,10 +131,13 @@
 //
 void COMASuplETelNotifier::GetCurrentNetwork()
     {
-	iCellMode = EOMASuplCellIdCurrent;
-    iTrace->Trace(_L("COMASuplETelNotifier::GetCurrentNetwork..."),KTraceFileName, __LINE__); 							
-    iPhone.GetCurrentNetwork( iStatus, iNetworkInfoPkg, iLocationInfo );
-    SetActive();            
+	iTrace->Trace(_L("COMASuplETelNotifier::GetCurrentNetwork..."),KTraceFileName, __LINE__); 							
+    if( !IsActive() )
+    	{
+    	iCellMode = EOMASuplCellIdCurrent;
+    	iPhone.GetCurrentNetwork( iStatus, iNetworkInfoPkg, iLocationInfo );
+    	SetActive();  
+    	}               
     }  
 
 // -----------------------------------------------------------------------------
@@ -141,10 +147,13 @@
 //
 void COMASuplETelNotifier::NotifyCurrentNetworkChange()
     {
-	iCellMode = EOMASuplCellIdNotify;
-    iTrace->Trace(_L("COMASuplETelNotifier::NotifyCurrentNetworkChange..."),KTraceFileName, __LINE__);
-    iPhone.NotifyCurrentNetworkChange( iStatus, iNetworkInfoPkg, iLocationInfo );
-    SetActive();            
+	iTrace->Trace(_L("COMASuplETelNotifier::NotifyCurrentNetworkChange..."),KTraceFileName, __LINE__);
+    if( !IsActive() )
+    	{
+    	iCellMode = EOMASuplCellIdNotify;
+    	iPhone.NotifyCurrentNetworkChange( iStatus, iNetworkInfoPkg, iLocationInfo );
+    	SetActive();   
+    	}              
     }  
       
 // -----------------------------------------------------------------------------
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplprotocolmanager1.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -219,6 +219,7 @@
 	CSuplSessionBase* SuplSession = COMASuplSession::NewL(*iCommManager, iMobilePhone, iSuplSettings,
 															iSuplStorageSettings, aRequestType, *this, iPosHandler, iIMSI,
                                                             *this, aIpcSessionId,iOMASuplAsnHandlerBaseImpl);
+  SuplSession->SetSUPLVersion(1);                                                            
 	User::LeaveIfError(iSuplSessions.Append(SuplSession));
   	return SuplSession;
 	}
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver1/src/epos_comasuplsession.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -3286,8 +3286,9 @@
 		iSuplMsgType = ESUPL_END;
 		SetPOSMsgPluginState(COMASuplPosSessionBase::EOMASuplCreating);	
 		//SMP Changes
-		iSuplSessionState = ESUPL_GENERATE;
+		
 		iSuplState->GenerateMessageL();
+		iSuplSessionState = ESUPL_GENERATE; // HAs to be here because initialisation has to be complete..
 	
 	}
 
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasupletelnotifier.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasupletelnotifier.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -115,10 +115,13 @@
 //
 void COMASuplETelNotifier::CheckForRoaming()
     {
-	iCellMode = EOMASuplCellIdHome;
-    iTrace->Trace(_L("COMASuplETelNotifier::CheckForRoaming..."),KTraceFileName, __LINE__); 							
-    iPhone.GetHomeNetwork( iStatus, iHomeNetworkInfoPkg);
-    SetActive();            
+	iTrace->Trace(_L("COMASuplETelNotifier::CheckForRoaming..."),KTraceFileName, __LINE__); 							
+     if( !IsActive() )
+    	{
+    	iCellMode = EOMASuplCellIdHome;
+    	iPhone.GetHomeNetwork( iStatus, iHomeNetworkInfoPkg);
+    	SetActive();    
+    	}          
     }  
       
 // -----------------------------------------------------------------------------
@@ -128,10 +131,13 @@
 //
 void COMASuplETelNotifier::GetCurrentNetwork()
     {
-	iCellMode = EOMASuplCellIdCurrent;
-    iTrace->Trace(_L("COMASuplETelNotifier::GetCurrentNetwork..."),KTraceFileName, __LINE__); 							
-    iPhone.GetCurrentNetwork( iStatus, iNetworkInfoPkg, iLocationInfo );
-    SetActive();            
+	iTrace->Trace(_L("COMASuplETelNotifier::GetCurrentNetwork..."),KTraceFileName, __LINE__); 							
+    if( !IsActive() )
+    	{
+    	iCellMode = EOMASuplCellIdCurrent;
+    	iPhone.GetCurrentNetwork( iStatus, iNetworkInfoPkg, iLocationInfo );
+    	SetActive();  
+    	}                  
     }  
 
 // -----------------------------------------------------------------------------
@@ -141,10 +147,13 @@
 //
 void COMASuplETelNotifier::NotifyCurrentNetworkChange()
     {
-	iCellMode = EOMASuplCellIdNotify;
-    iTrace->Trace(_L("COMASuplETelNotifier::NotifyCurrentNetworkChange..."),KTraceFileName, __LINE__);
-    iPhone.NotifyCurrentNetworkChange( iStatus, iNetworkInfoPkg, iLocationInfo );
-    SetActive();            
+	iTrace->Trace(_L("COMASuplETelNotifier::NotifyCurrentNetworkChange..."),KTraceFileName, __LINE__);
+    if( !IsActive() )
+    	{
+    	iCellMode = EOMASuplCellIdNotify;
+    	iPhone.NotifyCurrentNetworkChange( iStatus, iNetworkInfoPkg, iLocationInfo );
+    	SetActive();   
+    	}                
     }  
       
 // -----------------------------------------------------------------------------
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplprotocolmanager2.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplprotocolmanager2.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -226,7 +226,7 @@
                                     *this, 
                                     aIpcSessionId,
                                     iOMASuplAsnHandlerBaseImpl);
-                                    
+  SuplSession->SetSUPLVersion(2);                                    
 	User::LeaveIfError(iSuplSessions.Append(SuplSession));
   	return SuplSession;
 	}
@@ -256,7 +256,10 @@
 	    iTrace->Trace(_L("NotifyOnPlugInUnInstallation starting"), KTraceFileName, __LINE__);	
 		iSuplEcomEventWatcher->NotifyOnPlugInUnInstallation();	
 		}
-    iNotifier = COMASuplETelNotifier::NewL(*this,iMobilePhone);
+		if(!iNotifier)
+			{
+    		iNotifier = COMASuplETelNotifier::NewL(*this,iMobilePhone);
+    	}
 	
 	iTrace->Trace(_L("ETEL Notifier created"), KTraceFileName, __LINE__);	
 	iTrace->Trace(_L("COMASUPLProtocolManager2::InitializeL completed"), KTraceFileName, __LINE__);
--- a/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsession2.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationomasuplprotocolhandler/protocolhandlerver2/src/epos_comasuplsession2.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -5554,6 +5554,7 @@
 // -----------------------------------------------------------------------------
 void COMASuplSession::RemoveActiveSession()
     {
+    			if (iTrace)
     			iTrace->Trace(_L("Removing Trigger Session from DB..."), KTraceFileName, __LINE__); 
     			//may need to reset the iActiveSessionId to 0 so that self deletion event will not come to same session...
     			TInt err = iSuplStorageSettings->DeleteSessionRecord(iSETSessionUniqueId);
--- a/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationsuplfw/protocolhandlerapi/src/epos_csuplconnection.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -406,12 +406,14 @@
 			}
     	// Socket Connect has completed
     	case EConnecting:
+    		iTimer->Cancel(); // Valid SUPL server, Cancel timer started for this purpose
     		if(iStatus == KErrNone)
     		{
 				if(iVariantEnabled)
 					{
 		    		iTrace->Trace(_L("CSuplConnection::RunL Making Secure Connection"), KTraceFileName, __LINE__);
 		    		iState = EMakingSecureConn;
+		    		
 		    		MakeSecureConnection();
 					}
 				else
@@ -603,7 +605,7 @@
     {
     	// Log
     	iTrace->Trace(_L("CSuplConnection::CancelConnect"), KTraceFileName, __LINE__);
-
+		iTimer->Cancel();  // Cancel all timers
         if (iConnArray.Count() > 1)
             {                
             CompleteConnectCancel(aStatus);
@@ -774,7 +776,17 @@
                 {
                 iResolver.Cancel();                        
 				break;	
-                }                
+                }     
+                case EConnecting:
+                	{
+                		iState = EFailure;
+    					iSocket.Close();
+						#ifndef __WINS__  // Bug Fix for close connection
+						// Close the RConnection
+						iConnection.Close();
+						#endif
+        				break;     
+      				}      
 			default:
 				{
 				if(iVariantEnabled)
@@ -1143,6 +1155,7 @@
     	iTrace->Trace(_L("CSuplConnection::Connect(void)"), KTraceFileName, __LINE__);
     	
     	iState = EConnecting;
+    	iTimer->Start(4000000); // For DNS pass case , but not a valid SUPL server
     	iSocket.Connect(iAddress, iStatus);
 	   	SetActive();
 	}
--- a/supl/locationsuplfw/settingsapi/src/epos_csettingsdatabasehandler.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationsuplfw/settingsapi/src/epos_csettingsdatabasehandler.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -516,9 +516,19 @@
         OtherProperties |= KEditable;
         }
     
-    TBuf<KGenericStringLen> tempBuf;
+    TBuf<KMaxHSLPAddrLen> tempBuf;
+    TBuf<KMaxIAPLen> tempIapBuf;
     tempBuf.Copy(*SLPAddress);
-    tempBuf.Trim();
+    tempIapBuf.Copy(*IAPName);
+    tempBuf.TrimAll();
+    tempIapBuf.TrimAll();
+    
+    if( tempBuf.Length() == 0 )
+	    {
+	    CleanupStack::PopAndDestroy(3); //SLPAddress,IAPName,manuName
+        User::Leave(KErrArgument);        
+	    }
+    
     
     iSQLString.Copy(KInsertIntoTable);
     iSQLString.Append(KCreateTableName);
@@ -594,7 +604,7 @@
     iSQLString.Append(KCommaSeparator);
 
     iSQLString.Append(KQuotes);
-    iSQLString.Append(*IAPName);
+    iSQLString.Append(tempIapBuf);
     iSQLString.Append(KQuotes);
     iSQLString.Append(KCommaSeparator);
 
--- a/supl/locationsuplfw/settingsapi/src/epos_csuplsettings.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationsuplfw/settingsapi/src/epos_csuplsettings.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -284,9 +284,12 @@
 //--------------------------------------------------------------------------------------
 EXPORT_C TInt CSuplSettings::SetServerAddress( const TInt64 aSlpId, const TDesC& aServerAddress)
     {
-    if(aServerAddress.Length() <= 0)
+    TBuf<KMaxHSLPAddrLen> serveraddr;
+    serveraddr.Copy(aServerAddress);
+    serveraddr.TrimAll();
+    if(serveraddr.Length() <= 0)
         return KErrArgument;
-    return iSettingsEngine->SetServerAddress(aSlpId,aServerAddress);          
+    return iSettingsEngine->SetServerAddress(aSlpId,serveraddr);          
     }            
 //-------------------------------------------------------------------------------------
 //CSuplSettings::GetServerAddress()
@@ -304,10 +307,12 @@
 //--------------------------------------------------------------------------------------
 EXPORT_C TInt CSuplSettings::SetIapName( const TInt64 aSlpId, const TDesC& aIapName)
     {
-
-    if(aIapName.Length() <= 0)
+    TBuf<KMaxIAPLen> iapname;
+    iapname.Copy(aIapName);
+    iapname.TrimAll();
+    if(iapname.Length() <= 0)
             return KErrArgument;
-    return iSettingsEngine->SetIapName(aSlpId,aIapName);             
+    return iSettingsEngine->SetIapName(aSlpId,iapname);             
     }            
 //-------------------------------------------------------------------------------------
 //CSuplSettings::GetIapName()
--- a/supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalapi.cpp	Tue Feb 02 10:12:24 2010 +0200
+++ b/supl/locationsuplfw/terminalinitiationapi/src/epos_suplterminalapi.cpp	Fri Apr 16 15:23:31 2010 +0300
@@ -840,6 +840,8 @@
 
 	if (!serverAddress || !iapName)
 		{
+		delete serverAddress;
+		delete iapName;
 		return KErrNoMemory;
 		}
 	delete iSuplStorageSettings;