Revision: 201017 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 11 May 2010 17:23:24 +0300
branchRCL_3
changeset 10 66ecddbca914
parent 9 21e939dd208a
child 12 4a5c47a50617
Revision: 201017 Kit: 201019
accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp
accessoryservices/remotecontrolfw/bearerplugin/bwins/remconbearerpluginU.DEF
accessoryservices/remotecontrolfw/bearerplugin/eabi/remconbearerpluginU.DEF
accessoryservices/remotecontrolfw/bearerplugin/public/remconbearerobserver.h
accessoryservices/remotecontrolfw/bearerplugin/src/remconbearerobserver.cpp
accessoryservices/remotecontrolfw/server/inc/bearermanager.h
accessoryservices/remotecontrolfw/server/inc/server.h
accessoryservices/remotecontrolfw/server/src/bearermanager.cpp
accessoryservices/remotecontrolfw/server/src/server.cpp
accessoryservices/remotecontrolfw/targetselectorplugin/public/remcontargetselectorplugininterface.h
accessoryservices/tspclientmapper/src/tspclientmapperimpl.cpp
hwrmhaptics/hapticseffectdatagetterfw/group/bld.inf
hwrmhaptics/hapticspacketizer/group/bld.inf
layers.sysdef.xml
sensorservices/sensorserver/src/server/sensrvpluginproxy.cpp
sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_ext.rss
sysstatemgmt/ssmcmdlists/data/noncriticalswpcmdlists.rss
sysstatemgmt/ssmcmdlists/data/shutdowncmdlists.rss
sysstatemgmt/ssmcmdlists/data/uiswpcmdlists.rss
sysstatemgmt/ssmcmdlists/group/ssmcmdlists.mmp
sysstatemgmt/ssmcmdlists/rom/ssmcmdlists.iby
sysstatemgmt/ssmpolicyplugins/group/bld.inf
sysstatemgmt/ssmpolicyplugins/inc/ssmswp.hrh
sysstatemgmt/ssmpolicyplugins/rom/ssmpolicyplugins.iby
sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/bwins/ssmnoncriticalswppolicyu.def
sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/eabi/ssmnoncriticalswppolicyu.def
sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/group/bld.inf
sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/group/ssmnoncriticalswppolicy.mmp
sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/inc/ssmnoncriticalswppolicy.h
sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/src/ssmnoncriticalswppolicy.cpp
sysstatemgmt/ssmpolicyplugins/ssmswppolicybase/src/ssmswppolicybase.cpp
--- a/accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp	Tue May 11 17:23:24 2010 +0300
@@ -761,22 +761,38 @@
     TAccPolAccessoryMode accMode;
 
     iServerModel->CurrentConnectionStatusL( genericIDArray );
-
-    if( (EFalse == aAudioOutputStatus) && (KErrUnknown != aDbId) ) 
-        { 
-        TInt index( TAccPolGenericIDArrayAccessor::FindWithUniqueIDL( 
-                genericIDArray, aDbId) ); 
-				if(KErrNotFound != index)
-					{
-        	TAccPolGenericIDArrayAccessor::RemoveIndexFromGenericIDArray(genericIDArray, index); 
-        	}
+    
+    TUint count;
+    TBool isHDMIConnected = EFalse;
+    
+    count = genericIDArray.Count();
+    if((1 < count) && (EFalse == aAudioOutputStatus) && (KErrUnknown != aDbId))
+        {
+        for(TInt i( 0 ); i < count; ++i)
+            {
+            if(genericIDArray.GetGenericIDL(i).PhysicalConnectionCaps() & KPCHDMI)
+                {
+                isHDMIConnected = ETrue;
+                break;
+                }        
+            }
+        }
+    
+    if(isHDMIConnected)
+        {
+        accMode = iServerModel->AccessoryMode();
+        }    
+    else
+        {
+        accMode = iPolicy->ResolveAccessoryModeL( genericIDArray, 
+                                                  aDbId, 
+                                                  aAudioOutputStatus, 
+                                                  iServerModel->AccessoryMode(), 
+                                                  iServerModel->UniqueID() );
         }
 
-    accMode = iPolicy->ResolveAccessoryModeL( genericIDArray, 
-                                              aDbId, 
-                                              aAudioOutputStatus, 
-                                              iServerModel->AccessoryMode(), 
-                                              iServerModel->UniqueID() );
+
+    
 
     if( iServerModel->SetAccessoryMode( accMode, aDbId ) ) //Store accessory mode
         {
--- a/accessoryservices/remotecontrolfw/bearerplugin/bwins/remconbearerpluginU.DEF	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/remotecontrolfw/bearerplugin/bwins/remconbearerpluginU.DEF	Tue May 11 17:23:24 2010 +0300
@@ -31,4 +31,6 @@
 	?NewTransactionId@MRemConBearerBulkObserver@@QAEIXZ @ 30 NONAME ; unsigned int MRemConBearerBulkObserver::NewTransactionId(void)
 	?NewCommand@MRemConBearerBulkObserver@@QAEHABVTRemConAddress@@ABI@Z @ 31 NONAME ; int MRemConBearerBulkObserver::NewCommand(class TRemConAddress const &, unsigned int const &)
 	?RemoveAddressing@MRemConBearerBulkObserver@@QAEHABVTRemConAddress@@@Z @ 32 NONAME ; int MRemConBearerBulkObserver::RemoveAddressing(class TRemConAddress const &)
+	?UnregisterLocalAddressedClientObserver@MRemConBearerObserver@@QAEHABVTUid@@@Z @ 33 NONAME ; int MRemConBearerObserver::UnregisterLocalAddressedClientObserver(class TUid const &)
+	?RegisterLocalAddressedClientObserver@MRemConBearerObserver@@QAEHABVTUid@@@Z @ 34 NONAME ; int MRemConBearerObserver::RegisterLocalAddressedClientObserver(class TUid const &)
 
--- a/accessoryservices/remotecontrolfw/bearerplugin/eabi/remconbearerpluginU.DEF	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/remotecontrolfw/bearerplugin/eabi/remconbearerpluginU.DEF	Tue May 11 17:23:24 2010 +0300
@@ -37,4 +37,6 @@
 	_ZN25MRemConBearerBulkObserver18SetAddressedClientERK14TRemConAddressRKj @ 36 NONAME
 	_ZN25MRemConBearerBulkObserver10NewCommandERK14TRemConAddressRKj @ 37 NONAME
 	_ZN25MRemConBearerBulkObserver16RemoveAddressingERK14TRemConAddress @ 38 NONAME
+	_ZN21MRemConBearerObserver36RegisterLocalAddressedClientObserverERK4TUid @ 39 NONAME
+	_ZN21MRemConBearerObserver38UnregisterLocalAddressedClientObserverERK4TUid @ 40 NONAME
 
--- a/accessoryservices/remotecontrolfw/bearerplugin/public/remconbearerobserver.h	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/remotecontrolfw/bearerplugin/public/remconbearerobserver.h	Tue May 11 17:23:24 2010 +0300
@@ -270,6 +270,18 @@
 	*/
 	IMPORT_C void SetRemoteAddressedClient(const TUid& aBearerUid, const TRemConClientId& aId);
 	
+	/**
+	Called by the bearer to indicate it would like to be informed when the 
+	locally addressed client changes.
+	*/
+	IMPORT_C TInt RegisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	
+	/**
+	Called by the bearer to indicate it would no longer like to be informed when 
+	the locally addressed client changes.
+	*/
+	IMPORT_C TInt UnregisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	
 private:
 	/** 
 	@see NewResponse.
@@ -366,6 +378,16 @@
 	@see SetRemoteAddressedClient
 	*/
 	virtual void MrcboDoSetRemoteAddressedClient(const TUid& aBearerUid, const TRemConClientId& aId) = 0;
+	
+	/**
+	@see RegisterLocalAddressedClientObserver
+	*/
+	virtual TInt MrcboDoRegisterLocalAddressedClientObserver(const TUid& aBearerUid) = 0;
+	
+	/**
+	@see UnregisterLocalAddressedClientObserver
+	*/
+	virtual TInt MrcboDoUnregisterLocalAddressedClientObserver(const TUid& aBearerUid) = 0;
 	};
 
 #endif // REMCONBEAREROBSERVER_H
--- a/accessoryservices/remotecontrolfw/bearerplugin/src/remconbearerobserver.cpp	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/remotecontrolfw/bearerplugin/src/remconbearerobserver.cpp	Tue May 11 17:23:24 2010 +0300
@@ -118,7 +118,6 @@
 	return MrcboDoSupportedInterfaces(aId, aUids);
 	}
 
-
 EXPORT_C TInt MRemConBearerObserver::SupportedOperations(const TRemConClientId& aId, TUid aInterfaceUid, RArray<TUint>& aOperations)
 	{
 	return MrcboDoSupportedOperations(aId, aInterfaceUid, aOperations);
@@ -129,4 +128,14 @@
 	MrcboDoSetRemoteAddressedClient(aBearerUid, aId);
 	}
 
+EXPORT_C TInt MRemConBearerObserver::RegisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return MrcboDoRegisterLocalAddressedClientObserver(aBearerUid);
+	}
 
+EXPORT_C TInt MRemConBearerObserver::UnregisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return MrcboDoUnregisterLocalAddressedClientObserver(aBearerUid);
+	}
+
+
--- a/accessoryservices/remotecontrolfw/server/inc/bearermanager.h	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/remotecontrolfw/server/inc/bearermanager.h	Tue May 11 17:23:24 2010 +0300
@@ -193,6 +193,9 @@
 	TInt MrcboDoSupportedInterfaces(const TRemConClientId& aId, RArray<TUid>& aUids);
 	TInt MrcboDoSupportedOperations(const TRemConClientId& aId, TUid aInterfaceUid, RArray<TUint>& aOperations);
 	
+	TInt MrcboDoRegisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	TInt MrcboDoUnregisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	
 private: // utility
 	/** Called during (2-phase) construction to instantiate all the bearer 
 	plugins, from ROM only. */
--- a/accessoryservices/remotecontrolfw/server/inc/server.h	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/remotecontrolfw/server/inc/server.h	Tue May 11 17:23:24 2010 +0300
@@ -254,6 +254,9 @@
 	TInt ControllerSupportedInterfaces(RArray<TUid>& aSupportedInterfaces);
 	
 	void SetRemoteAddressedClient(const TUid& aBearerUid, const TRemConClientId& aId);
+	
+	TInt RegisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	TInt UnregisterLocalAddressedClientObserver(const TUid& aBearerUid);
 
 public: // called by bulk server
 	TRemConClientId ClientIdByProcessId(TProcessId aProcessId);
@@ -521,6 +524,11 @@
 	// has been loaded.
 	MRemConTargetSelectorPluginInterfaceV4* iTspIf4;
 	
+	// This is the object supplied by the TSP which implements the TSP V5 API.
+	// The TSP may not support this interface, so RemCon must handle this 
+	// value being NULL
+	MRemConTargetSelectorPluginInterfaceV5* iTspIf5;
+	
 	// Collections we pass to the TSP for it to indicate addressing 
 	// information back to us.
 	TSglQue<TRemConAddress> iTspConnections;
--- a/accessoryservices/remotecontrolfw/server/src/bearermanager.cpp	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/remotecontrolfw/server/src/bearermanager.cpp	Tue May 11 17:23:24 2010 +0300
@@ -1111,6 +1111,16 @@
 	return iServer.SupportedOperations(aId, aInterfaceUid, aOperations);
 	}
 
+TInt CBearerManager::MrcboDoRegisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return iServer.RegisterLocalAddressedClientObserver(aBearerUid);
+	}
+
+TInt CBearerManager::MrcboDoUnregisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return iServer.UnregisterLocalAddressedClientObserver(aBearerUid);
+	}
+
 TInt CBearerManager::SetLocalAddressedClient(const TUid& aBearerUid, TRemConClientId aClientId)
 	{
 	LOG_FUNC;
--- a/accessoryservices/remotecontrolfw/server/src/server.cpp	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/remotecontrolfw/server/src/server.cpp	Tue May 11 17:23:24 2010 +0300
@@ -449,6 +449,10 @@
 
 	ASSERT_DEBUG(iBearerManager);
 	iBearerManager->TargetClientAvailable(aSession.Id(), aSession.PlayerType(), aSession.PlayerSubType(), aSession.Name());
+	if(iTspIf5)
+		{
+		iTspIf5->TargetClientAvailable(aSession.ClientInfo());
+		}
 
 	LOGSESSIONS;
 	}
@@ -523,7 +527,13 @@
 			// 1. Remove the session from our array.
 			iSessions.Remove(ii);
 
-			// 2. Tell the bearers about the session going away, if it was the 
+			// 2a. Tell the TSP if the session that has gone away is a target
+			if((aSession.Type() == ERemConClientTypeTarget) && iTspIf5)
+				{
+				iTspIf5->TargetClientUnavailable(aSession.ClientInfo());
+				}
+			
+			// 2b. Tell the bearers about the session going away, if it was the 
 			// last controller or last target.
 			// If the session hasn't already set its type, then it doesn't 
 			// count (we won't have told the bearers about it to begin with).
@@ -1998,6 +2008,10 @@
 			iTsp->GetInterface(TUid::Uid(KRemConTargetSelectorInterface4))
 		);
 	
+	iTspIf5 = reinterpret_cast<MRemConTargetSelectorPluginInterfaceV5*>(
+			iTsp->GetInterface(TUid::Uid(KRemConTargetSelectorInterface5))
+		);
+	
 	// If the TSP doesn't implement the required interface, panic server 
 	// startup.
 	ASSERT_ALWAYS(iTspIf);
@@ -3385,6 +3399,16 @@
 	iTspIf4->SetRemoteAddressedClient(aBearerUid, *clientInfo);
 	}
 
+TInt CRemConServer::RegisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return iTspIf5 ? iTspIf5->RegisterLocalAddressedClientObserver(aBearerUid) : KErrNotSupported;
+	}
+
+TInt CRemConServer::UnregisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return iTspIf5 ? iTspIf5->UnregisterLocalAddressedClientObserver(aBearerUid) : KErrNotSupported;
+	}
+
 TRemConClientId CRemConServer::ClientIdByProcessId(TProcessId aProcessId)
 	{
 	LOG_FUNC
--- a/accessoryservices/remotecontrolfw/targetselectorplugin/public/remcontargetselectorplugininterface.h	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/remotecontrolfw/targetselectorplugin/public/remcontargetselectorplugininterface.h	Tue May 11 17:23:24 2010 +0300
@@ -340,5 +340,46 @@
 			const TClientInfo& aClient) = 0;
 	};
 
+/**
+The UID of this version of the Target Selector Plugin interface.
+*/
+const TInt KRemConTargetSelectorInterface5 = 0x2002e6e1;
+
+class MRemConTargetSelectorPluginInterfaceV5
+	{
+public:
+	/** Called by RemCon when a new target client has connected.
+	 
+	 @aClientInfo The information about the new client.
+	 */
+	virtual void TargetClientAvailable(const TClientInfo& aClientInfo) = 0;
+	
+	/** Called by RemCon when a target client has disconnected. 
+	 
+	 @aClientInfo The information about the client that has disconnected.
+	 */
+	virtual void TargetClientUnavailable(const TClientInfo& aClientInfo) = 0;
+	
+	/** Called by RemCon when a bearer wishes to begin being informed when
+	the locally addressed player changes.  Once this function has been called
+	the TSP should inform RemCon via SetLocalAddressedPlayer each time the
+	player to which incoming commands from aBearer would be routed changes.
+	This might occur for example if a new application is launched, or if the
+	foreground application changes, depending on what the TSP's rules are
+	for deciding the target of the incoming message.  These updates should
+	occur until UnregisterLocalAddressedClientObserver is called.
+	
+	@param aBearerUid The bearer that wishes to be informed of updates
+	*/
+	virtual TInt RegisterLocalAddressedClientObserver(const TUid& aBearerUid) = 0;
+
+	/** Called by RemCon when a bearer wishes to stop being informed of 
+	changes to the local addresse client.
+	
+	@param aBearerUid The bearer that no longer wishes to be informed of updates
+	*/
+	virtual TInt UnregisterLocalAddressedClientObserver(const TUid& aBearerUid) = 0;
+	};
+
 
 #endif // TARGETSELECTORPLUGININTERFACE_H
--- a/accessoryservices/tspclientmapper/src/tspclientmapperimpl.cpp	Tue Apr 27 17:57:16 2010 +0300
+++ b/accessoryservices/tspclientmapper/src/tspclientmapperimpl.cpp	Tue May 11 17:23:24 2010 +0300
@@ -545,10 +545,14 @@
         if ( (TInt)buf().operator[]( i ) != 0 ) // count of registered clients is lost with TFixedArray, so rely on id being different from 0
             {
             COM_TRACE_1( "[TspClientMapperImpl] CTspClientMapperImpl::GetTspTargetClientsL() first client's Pid = %d", (TInt)buf().operator[]( i ) );
-            aPidArray.Append( buf().operator[]( i ) );
-            }
+            returnErr = aPidArray.Append( buf().operator[]( i ) );
+			if ( returnErr != KErrNone )
+				{
+				break;
+				}
+			}
         }
-	COM_TRACE_( "[TspClientMapperImpl] CTspClientMapperImpl::GetTspTargetClientsL() - return" );
+	COM_TRACE_1 ( "[TspClientMapperImpl] CTspClientMapperImpl::GetTspTargetClientsL() - returnErr: %d", returnErr );
 	return returnErr;
 	
 	}
--- a/hwrmhaptics/hapticseffectdatagetterfw/group/bld.inf	Tue Apr 27 17:57:16 2010 +0300
+++ b/hwrmhaptics/hapticseffectdatagetterfw/group/bld.inf	Tue May 11 17:23:24 2010 +0300
@@ -22,7 +22,6 @@
 
 PRJ_EXPORTS
 
-#include "../plugins/hapticsivtgetterplugin/group/bld.inf"
 
 PRJ_MMPFILES
 hwrmhapticseffectdatagetterfw.mmp
--- a/hwrmhaptics/hapticspacketizer/group/bld.inf	Tue Apr 27 17:57:16 2010 +0300
+++ b/hwrmhaptics/hapticspacketizer/group/bld.inf	Tue May 11 17:23:24 2010 +0300
@@ -20,7 +20,6 @@
 
 PRJ_EXPORTS
 
-#include "../plugins/hapticsvibepacketizerplugin/group/bld.inf"
 
 PRJ_MMPFILES
 hwrmhapticspacketizer.mmp
--- a/layers.sysdef.xml	Tue Apr 27 17:57:16 2010 +0300
+++ b/layers.sysdef.xml	Tue May 11 17:23:24 2010 +0300
@@ -14,6 +14,8 @@
       <module name="">
       		<unit unitID="sydo.devicesrv.fps_api" mrp="" bldFile="&layer_real_source_path;/devicesrv_plat/fps_api/group" name="sydo_devicesrv_fps_api" filter="dfs_build" />
       		<unit unitID="sydo.devicesrv.fpsclient" mrp="" bldFile="&layer_real_source_path;/sensorservices/fpsclient/group" name="sydo_devicesrv_fpsclient" filter="dfs_build" />
+      		<unit unitID="sydo.devicesrv.hapticsivtgetterplugin" mrp="" bldFile="&layer_real_source_path;/hwrmhaptics/hapticseffectdatagetterfw/plugins/hapticsivtgetterplugin/group" name="sydo_devicesrv_hapticsivtgetterplugin" filter="dfs_build" />
+      		<unit unitID="sydo.devicesrv.hapticsvibepacketizerplugin" mrp="" bldFile="&layer_real_source_path;/hwrmhaptics/hapticspacketizer/plugins/hapticsvibepacketizerplugin/group" name="sydo_devicesrv_hapticsvibepacketizerplugin" filter="dfs_build" />
       </module>                                                                                                                                                     
     </layer>                                                                                                                                                        
                                                                                                                                                                     
--- a/sensorservices/sensorserver/src/server/sensrvpluginproxy.cpp	Tue Apr 27 17:57:16 2010 +0300
+++ b/sensorservices/sensorserver/src/server/sensrvpluginproxy.cpp	Tue May 11 17:23:24 2010 +0300
@@ -1342,7 +1342,7 @@
         return KErrBadHandle;
         }
 
-    __UHEAP_MARK;
+   // __UHEAP_MARK;
 
 #ifdef MEMORY_TRACE_DEBUG
     // TRACE heap usage
@@ -1428,7 +1428,7 @@
     MEMORY_TRACE( ( _L( "#### Sensor Server, SSY exit - HEAP: Size: %d, Available: %d, Used: %d, Change in used: %d" ), heapSize, heapAvail, newUsed, newUsed - used ) );
 #endif
 
-    __UHEAP_MARKEND;
+   // __UHEAP_MARKEND;
 
     return err;
     }
--- a/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_ext.rss	Tue Apr 27 17:57:16 2010 +0300
+++ b/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_ext.rss	Tue May 11 17:23:24 2010 +0300
@@ -68,7 +68,6 @@
     {
     commands =
         {
-        r_cmd_adtupdater,       // Location, date & time queries ,prio 0xFFD5 
         r_cmd_waitforphone,     // prio 0xFFD1
         r_cmd_waitidle,         // prio 0xFFC5
         // prio 0xFFB7
@@ -111,48 +110,10 @@
         r_cmd_amastart,
         // prio 0x7F96
         r_cmd_multiple_wait,
-        // prio 0x7EFF
-        r_cmd_activitymonitor1,
-        // prio 0x7EFE
-        r_cmd_logs,
-        // prio 0x7EFD
-        r_cmd_activitymonitor2,
-        // prio 0x7EFC
-        r_cmd_pbk2,
-        // prio 0x7EFB
-        r_cmd_activitymonitor3,
-        // prio 0x7EFA
-        r_cmd_mce,
-        // prio 0x7EF9
-        r_cmd_activitymonitor4,
-        // prio 0x7EF8
-        r_cmd_clock,	//ESLT-842J9W
-        // prio 0x7EF7
-        r_cmd_activitymonitor5,
-        // prio 0x7EF6
-        r_cmd_videocenter,
-        // prio 0x7EF5
-        r_cmd_activitymonitor6,
-        // prio 0x7EF4
-        r_cmd_iaupdatebg,
-        // prio 0x7EF3
-        r_cmd_activitymonitor7,
-        // prio 0x7EF2
-        r_cmd_screensaver,
-        // prio 0x7EEF
-        r_cmd_activitymonitor8,
-        // prio 0x7EEE
-        r_cmd_autosync,
-        // prio 0x7EED
-        r_cmd_activitymonitor9,
-        // prio 0x7EEC
-        r_cmd_mylocationsengine
-#ifdef FF_ATT_ADDRESS_BK
-        //prio 0x7EEA
-        ,r_cmd_activitymonitor10,
-        //prio 0x7EE9
-        r_cmd_aab
-#endif
+        // prio 0x7F55
+        r_cmd_createswp_noncriticalphase,
+				// prio 0x7F54
+        r_cmd_setswp_noncriticalstart
         };
     }
 
@@ -161,184 +122,6 @@
 // ===========================================================================
 //
 
-// -----------------------------------------------------------------------------
-// r_cmd_aab
-// -----------------------------------------------------------------------------
-//
-#ifdef FF_ATT_ADDRESS_BK 
-RESOURCE SSM_START_APP_INFO r_cmd_aab
-    {
-    priority = 0x7EE9;
-    name = "z:\\sys\\bin\\AABPhonebookapp.exe";
-    retries = 2;
-    background = 1; // To background
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-#endif
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor1
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor1
-    {
-    priority = 0x7EFF;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor2
-    {
-    priority = 0x7EFD;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor3
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor3
-    {
-    priority = 0x7EFB;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor4
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor4
-    {
-    priority = 0x7EF9;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor5
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor5
-    {
-    priority = 0x7EF7;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor6
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor6
-    {
-    priority = 0x7EF5;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor7
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor7
-    {
-    priority = 0x7EF3;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor8
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor8
-    {
-    priority = 0x7EEF;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor9
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor9
-    {
-    priority = 0x7EED;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-	
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor10
-// ---------------------------------------------------------------------------
-//
-#ifdef FF_ATT_ADDRESS_BK
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor10
-    {
-    priority = 0x7EEA;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-#endif
-	
-// ---------------------------------------------------------------------------
-// r_cmd_adtupdater
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_adtupdater
-    {
-    priority = 0xFFD5;
-    name = "adtupdater.exe";
-    execution_behaviour = ESsmFireAndForget;
-    }
-
 // ---------------------------------------------------------------------------
 // r_cmd_amastart
 // ---------------------------------------------------------------------------
@@ -350,18 +133,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_autosync
-// ---------------------------------------------------------------------------
-//	
-RESOURCE SSM_START_PROCESS_INFO r_cmd_autosync
-    {
-    priority = 0x7EEE;
-    execution_behaviour = ESsmFireAndForget;
-    retries = 3;
-    name = "cctautosync.exe";
-    }
-	
-// ---------------------------------------------------------------------------
 // r_cmd_aosrv
 // ---------------------------------------------------------------------------
 //
@@ -402,19 +173,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_clock
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_clock
-    {
-    priority = 0x7EF8;
-    name = "clock.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_contentharvester
 // ---------------------------------------------------------------------------
 //
@@ -533,19 +291,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_iaupdatebg
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_iaupdatebg
-    {
-    priority = 0x7EF4;
-    name = "iaupdatebg.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    conditional_information = r_cond_feat_iadv2;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_loadsup_ippushman
 // ---------------------------------------------------------------------------
 //
@@ -584,32 +329,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_logs
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_logs
-    {
-    priority = 0x7EFE;
-    name = "z:\\sys\\bin\\logs.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_mce
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_mce
-    {
-    priority = 0x7EFA;
-    name = "mce.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-	
-// ---------------------------------------------------------------------------
 // r_cmd_ncnlist
 // ---------------------------------------------------------------------------
 //
@@ -623,19 +342,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_pbk2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_pbk2
-    {
-    priority = 0x7EFC;
-    name = "z:\\sys\\bin\\phonebook2.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    background = 1; // To background
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_pocstarter
 // ---------------------------------------------------------------------------
 //
@@ -701,20 +407,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_screensaver
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_screensaver
-    {
-    priority = 0x7EF2;
-    name = "z:\\sys\\bin\\screensaver.exe";
-    background = 1; // To background
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_supllistener
 // ---------------------------------------------------------------------------
 //
@@ -755,18 +447,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_videocenter
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_videocenter
-    {
-    priority = 0x7EF6;
-    name = "cseschedulerserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_waitcleanbootinfo
 // ---------------------------------------------------------------------------
 //
@@ -843,15 +523,6 @@
 //
 
 // ---------------------------------------------------------------------------
-// r_dlldata_activitymonitor_timeout
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_TIMEOUT r_dlldata_activitymonitor_timeout
-    {
-    timeout = 2;
-    }
-
-// ---------------------------------------------------------------------------
 // r_dlldata_waitcleanbootinfo
 // ---------------------------------------------------------------------------
 //
@@ -888,17 +559,6 @@
 	
 	
 // ---------------------------------------------------------------------------
-// r_cmd_mylocationsengine
-// ---------------------------------------------------------------------------
-//	
-RESOURCE SSM_START_PROCESS_INFO r_cmd_mylocationsengine
-    {
-    priority = 0x7EEC;
-    name = "z:\\sys\\bin\\mylocationsengine.exe";
-    execution_behaviour = ESsmFireAndForget;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_item_taskswitcher
 // ---------------------------------------------------------------------------  
 RESOURCE SSM_START_APP_INFO r_cmd_taskswitcher
@@ -911,6 +571,29 @@
      }
 
 // ---------------------------------------------------------------------------
+// r_cmd_createswp_noncriticalphase
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_CREATE_SYSTEM_WIDE_PROPERTY r_cmd_createswp_noncriticalphase
+    {
+    priority = 0x7F55;
+    severity = ECmdCriticalSeverity;
+    key = SWP_UID_SSM_NONCRITICAL_PHASE;
+    filename = "ssmnoncriticalswppolicy.dll";
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_setswp_noncriticalstart
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_REQUEST_SYSTEM_WIDE_PROPERTY r_cmd_setswp_noncriticalstart
+    {
+    priority = 0x7F54;
+    key = SWP_UID_SSM_NONCRITICAL_PHASE;
+    value = ESsmNonCriticalPhaseStarted;
+    }
+
+// ---------------------------------------------------------------------------
 // r_cmd_multiple_wait
 // ---------------------------------------------------------------------------
 //
@@ -963,15 +646,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cond_feat_iadv2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_iadv2
-    {
-    feature_id = KFeatureIdFfIaupdatePhase2;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cond_feat_ippush
 // ---------------------------------------------------------------------------
 //
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmcmdlists/data/noncriticalswpcmdlists.rss	Tue May 11 17:23:24 2010 +0300
@@ -0,0 +1,469 @@
+/*
+* Copyright (c) 2010 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:
+* Command lists for the noncritical phase SWP:
+*   - non-critical phase Started
+*
+*/
+
+#include <ssm/conditionresourcetypes.rh>
+#include <ssm/ssmcmd.rh>
+
+#include "ssmswp.hrh"
+#include "ssmdlldatadefs.rh"
+
+// Identify command list type
+UID2 KUidSsmCommandListResourceFile
+
+// ---------------------------------------------------------------------------
+// r_entry_point
+// This must be the first resource
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
+    {
+    command_list_mapping = r_map;
+    }
+
+// ---------------------------------------------------------------------------
+// r_map
+// Mapping of command list ids to resource ids.
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_COMMAND_LIST_MAPPING r_map
+    {
+    mappings =
+        {
+        SSM_COMMANDLISTID_TO_RESOURCEID
+            {
+            command_list_id = ESsmNonCriticalPhaseStarted;
+            resource_id = r_noncriticalphase_commands;
+            }
+        };
+    }
+
+// ===========================================================================
+// Command lists in alphabetical order
+// ===========================================================================
+//
+
+// ---------------------------------------------------------------------------
+// r_started_commands
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_COMMAND_LIST r_noncriticalphase_commands
+    {
+    commands =
+        {
+        // prio 0xFFF1
+        r_cmd_publishswp,
+        // prio 0x7EFF
+        r_cmd_activitymonitor1,
+        // prio 0x7EFE
+        r_cmd_logs,
+        // prio 0x7EFD
+        r_cmd_activitymonitor2,
+        // prio 0x7EFC
+        r_cmd_pbk2,
+        // prio 0x7EFB
+        r_cmd_activitymonitor3,
+        // prio 0x7EFA
+        r_cmd_mce,
+        // prio 0x7EF9
+        r_cmd_activitymonitor4,
+        // prio 0x7EF8
+        r_cmd_clockapp,
+        // prio 0x7EF7
+        r_cmd_activitymonitor5,
+        // prio 0x7EF6
+        r_cmd_videocenter,
+        // prio 0x7EF5
+        r_cmd_activitymonitor6,
+        // prio 0x7EF4
+        r_cmd_iaupdatebg,
+        // prio 0x7EF3
+        r_cmd_activitymonitor7,
+        // prio 0x7EF2
+        r_cmd_screensaver,
+        // prio 0x7EEF
+        r_cmd_activitymonitor8,
+        // prio 0x7EEE
+        r_cmd_autosync,
+        // prio 0x7EED
+        r_cmd_activitymonitor9,
+        // prio 0x7EEC
+        r_cmd_mylocationsengine
+#ifdef FF_ATT_ADDRESS_BK
+        //prio 0x7EEA
+        ,r_cmd_activitymonitor10,
+        //prio 0x7EE9
+        r_cmd_aab
+#endif
+		// prio 0x7EE8
+		,r_cmd_activitymonitor11,
+		// prio 0x7EE7
+		r_cmd_calendar //CR:MMUN-82ZHAD
+    	};
+    }
+
+// -----------------------------------------------------------------------------
+// r_cmd_aab
+// -----------------------------------------------------------------------------
+//
+#ifdef FF_ATT_ADDRESS_BK 
+RESOURCE SSM_START_APP_INFO r_cmd_aab
+    {
+    priority = 0x7EE9;
+    name = "z:\\sys\\bin\\AABPhonebookapp.exe";
+    retries = 2;
+    background = 1; // To background
+    monitor_info = r_mon_3_restarts_ignore;
+    }
+#endif
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor1
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor1
+    {
+    priority = 0x7EFF;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor2
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor2
+    {
+    priority = 0x7EFD;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor3
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor3
+    {
+    priority = 0x7EFB;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor4
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor4
+    {
+    priority = 0x7EF9;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor5
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor5
+    {
+    priority = 0x7EF7;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor6
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor6
+    {
+    priority = 0x7EF5;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor7
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor7
+    {
+    priority = 0x7EF3;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor8
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor8
+    {
+    priority = 0x7EEF;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor9
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor9
+    {
+    priority = 0x7EED;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+	
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor10
+// ---------------------------------------------------------------------------
+//
+#ifdef FF_ATT_ADDRESS_BK
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor10
+    {
+    priority = 0x7EEA;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+#endif
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor11
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor11
+    {
+    priority = 0x7EE8;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_autosync
+// ---------------------------------------------------------------------------
+//	
+RESOURCE SSM_START_PROCESS_INFO r_cmd_autosync
+    {
+    priority = 0x7EEE;
+    execution_behaviour = ESsmFireAndForget;
+    retries = 3;
+    name = "cctautosync.exe";
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_calendar
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_APP_INFO r_cmd_calendar
+	{
+   	priority = 0x7EE7;
+	name = "calendar.exe";
+	execution_behaviour = ESsmFireAndForget;
+	retries = 3;
+	background = 1; // To background
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_clockapp
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_APP_INFO r_cmd_clockapp
+    {
+    priority = 0x7EF8;
+    name = "z:\\sys\\bin\\clockapp.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    background = 1; // To background
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_iaupdatebg
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_iaupdatebg
+    {
+    priority = 0x7EF4;
+    name = "iaupdatebg.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    conditional_information = r_cond_feat_iadv2;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_mce
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_APP_INFO r_cmd_mce
+    {
+    priority = 0x7EFA;
+    name = "mce.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    background = 1; // To background
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_mylocationsengine
+// ---------------------------------------------------------------------------
+//	
+RESOURCE SSM_START_PROCESS_INFO r_cmd_mylocationsengine
+    {
+    priority = 0x7EEC;
+    name = "z:\\sys\\bin\\mylocationsengine.exe";
+    execution_behaviour = ESsmFireAndForget;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_pbk2
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_APP_INFO r_cmd_pbk2
+    {
+    priority = 0x7EFC;
+    name = "z:\\sys\\bin\\phonebook2.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    background = 1; // To background
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_publishswp
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_PUBLISH_SYSTEM_WIDE_PROPERTY r_cmd_publishswp
+    {
+    priority = 0xFFF1;
+    severity = ECmdCriticalSeverity;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_logs
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_APP_INFO r_cmd_logs
+    {
+    priority = 0x7EFE;
+    name = "z:\\sys\\bin\\logs.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    background = 1; // To background
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_screensaver
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_APP_INFO r_cmd_screensaver
+    {
+    priority = 0x7EF2;
+    name = "z:\\sys\\bin\\screensaver.exe";
+    background = 1; // To background
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    monitor_info = r_mon_3_restarts_ignore;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_videocenter
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_videocenter
+    {
+    priority = 0x7EF6;
+    name = "cseschedulerserver.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    }
+
+// ===========================================================================
+// Conditional blocks in alphabetical order
+// ===========================================================================
+//
+// ---------------------------------------------------------------------------
+// r_cond_feat_iadv2
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_iadv2
+    {
+    feature_id = KFeatureIdFfIaupdatePhase2;
+    }
+
+// ===========================================================================
+// DLL data items in alphabetical order
+// ===========================================================================
+//
+
+// ---------------------------------------------------------------------------
+// r_dlldata_activitymonitor_timeout
+// ---------------------------------------------------------------------------
+//
+RESOURCE CMD_PARAM_TIMEOUT r_dlldata_activitymonitor_timeout
+    {
+    timeout = 2;
+    }
+
+
+// monitoring.rss contains resource definitions, so it may not be included
+// before entry point.
+#include "monitoring.rss"
--- a/sysstatemgmt/ssmcmdlists/data/shutdowncmdlists.rss	Tue Apr 27 17:57:16 2010 +0300
+++ b/sysstatemgmt/ssmcmdlists/data/shutdowncmdlists.rss	Tue May 11 17:23:24 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -214,6 +214,7 @@
     {
     priority = 0xFFF1;
     severity = ECmdCriticalSeverity;
+    direction = 1;  // ETraverseChildrenFirst, Transition children first for graceful shutdown.
     retries = 2;
     }
 
--- a/sysstatemgmt/ssmcmdlists/data/uiswpcmdlists.rss	Tue Apr 27 17:57:16 2010 +0300
+++ b/sysstatemgmt/ssmcmdlists/data/uiswpcmdlists.rss	Tue May 11 17:23:24 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -71,10 +71,11 @@
         r_cmd_devlockcheck,         // prio 0xFFD7 - Security code query, if needed
         r_cmd_startanim,            // prio 0xFFC7 - Startup animation(s)
         r_cmd_waitanim,             // prio 0xFFB7 - Wait for the animations to finish
+		r_cmd_adtupdater,			// prio 0xFFAA - Location, date & time queries //CR:ESAH-84JFCU
         r_cmd_enableappskey,        // prio 0xFFA7 - Enable applications key
         r_cmd_enableglobalnotes,    // prio 0xFFA7 - Enable global notes
         r_cmd_swidaemon             // prio 0xFF97 - Initializes pre-installed applications from memory card
-        };
+		};
     }
 
 // ===========================================================================
@@ -83,6 +84,17 @@
 //
 
 // ---------------------------------------------------------------------------
+// r_cmd_adtupdater
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_adtupdater
+    {
+    priority = 0xFFAA;
+    name = "adtupdater.exe";
+    execution_behaviour = ESsmFireAndForget;
+    }
+
+// ---------------------------------------------------------------------------
 // r_cmd_devlockcheck
 // ---------------------------------------------------------------------------
 //
--- a/sysstatemgmt/ssmcmdlists/group/ssmcmdlists.mmp	Tue Apr 27 17:57:16 2010 +0300
+++ b/sysstatemgmt/ssmcmdlists/group/ssmcmdlists.mmp	Tue May 11 17:23:24 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -107,6 +107,10 @@
 TARGETPATH      /private/2000d75b/swpui              // Private directory of sysstatemgr.exe
 END
 
+START RESOURCE  noncriticalswpcmdlists.rss            // noncritical phase SWP
+TARGETPATH      /private/2000d75b/swpnoncritical      // Private directory of sysstatemgr.exe
+END
+
 USERINCLUDE     ../inc
 USERINCLUDE     ../../inc
 
--- a/sysstatemgmt/ssmcmdlists/rom/ssmcmdlists.iby	Tue Apr 27 17:57:16 2010 +0300
+++ b/sysstatemgmt/ssmcmdlists/rom/ssmcmdlists.iby	Tue May 11 17:23:24 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -36,5 +36,6 @@
 data=DATAZ_\private\2000D75B\shutdown\shutdowncmdlists.rsc              \private\2000D75B\shutdown\shutdowncmdlists.rsc
 data=DATAZ_\private\2000D75B\rfstatusswpcmdlist\rfswpcmdlists.rsc       \private\2000D75B\rfstatusswpcmdlist\rfswpcmdlists.rsc
 data=DATAZ_\private\2000D75B\swpui\uiswpcmdlists.rsc                    \private\2000D75B\swpui\uiswpcmdlists.rsc
+data=DATAZ_\private\2000D75B\swpnoncritical\noncriticalswpcmdlists.rsc  \private\2000D75B\swpnoncritical\noncriticalswpcmdlists.rsc
 
 #endif // SSMCMDLISTS_IBY
--- a/sysstatemgmt/ssmpolicyplugins/group/bld.inf	Tue Apr 27 17:57:16 2010 +0300
+++ b/sysstatemgmt/ssmpolicyplugins/group/bld.inf	Tue May 11 17:23:24 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -37,3 +37,5 @@
 #include "../ssmfailpolicy/group/bld.inf"
 #include "../ssmshutdownpolicy/group/bld.inf"
 #include "../ssmuiswppolicy/group/bld.inf"
+#include "../ssmnoncriticalswppolicy/group/bld.inf"
+
--- a/sysstatemgmt/ssmpolicyplugins/inc/ssmswp.hrh	Tue Apr 27 17:57:16 2010 +0300
+++ b/sysstatemgmt/ssmpolicyplugins/inc/ssmswp.hrh	Tue May 11 17:23:24 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -32,6 +32,19 @@
     };
 
 /**
+* Startup NonCritical phase SWP.
+*
+* These identifiers are also used as command list ids to find the correct
+* command list among all command lists in the system.
+*/
+#define SWP_UID_SSM_NONCRITICAL_PHASE 0x2002EA5B
+
+enum TSwpStartupNonCriticalPhase
+    {
+    ESsmNonCriticalPhaseStarted = 0xb1
+    };
+    
+/**
 * System-wide property for RF status.
 *
 * These identifiers are also used as command list ids to find the correct
--- a/sysstatemgmt/ssmpolicyplugins/rom/ssmpolicyplugins.iby	Tue Apr 27 17:57:16 2010 +0300
+++ b/sysstatemgmt/ssmpolicyplugins/rom/ssmpolicyplugins.iby	Tue May 11 17:23:24 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 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"
@@ -26,5 +26,6 @@
 file=ABI_DIR\BUILD_DIR\ssm.state.policy.0002.dll SHARED_LIB_DIR\ssm.state.policy.0002.dll
 file=ABI_DIR\BUILD_DIR\ssm.state.policy.0003.dll SHARED_LIB_DIR\ssm.state.policy.0003.dll
 file=ABI_DIR\BUILD_DIR\ssmuiswppolicy.dll        SHARED_LIB_DIR\ssmuiswppolicy.dll
+file=ABI_DIR\BUILD_DIR\ssmnoncriticalswppolicy.dll      SHARED_LIB_DIR\ssmnoncriticalswppolicy.dll
 
 #endif // SSMPOLICYPLUGINS_IBY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/bwins/ssmnoncriticalswppolicyu.def	Tue May 11 17:23:24 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	?NewL@CSsmNonCriticalSwpPolicy@@SAPAVMSsmSwpPolicy@@XZ @ 1 NONAME ; class MSsmSwpPolicy * CSsmNonCriticalSwpPolicy::NewL(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/eabi/ssmnoncriticalswppolicyu.def	Tue May 11 17:23:24 2010 +0300
@@ -0,0 +1,3 @@
+EXPORTS
+	_ZN24CSsmNonCriticalSwpPolicy4NewLEv @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/group/bld.inf	Tue May 11 17:23:24 2010 +0300
@@ -0,0 +1,28 @@
+/*
+* Copyright (c) 2010 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:
+* Build information file for the ssmnoncriticalswppolicy project.
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+ssmnoncriticalswppolicy.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/group/ssmnoncriticalswppolicy.mmp	Tue May 11 17:23:24 2010 +0300
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2010 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:
+* Project definition file for the ssmnoncriticalswppolicy project.
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          ssmnoncriticalswppolicy.dll
+TARGETTYPE      dll
+UID             0x2000D765 0x2002EA59
+
+CAPABILITY      PowerMgmt ReadDeviceData WriteDeviceData ProtServ DiskAdmin SwEvent
+VENDORID        VID_DEFAULT
+
+SOURCEPATH      ../src
+SOURCE          ssmnoncriticalswppolicy.cpp
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../ssmpolicybase/inc
+USERINCLUDE     ../../ssmswppolicybase/inc
+USERINCLUDE     ../../../inc
+
+OS_LAYER_SYSTEMINCLUDE
+
+LIBRARY         euser.lib
+LIBRARY         ssmcmd.lib
+LIBRARY         ssmcmn.lib
+LIBRARY         ssmpolicybase.lib
+LIBRARY         ssmswppolicybase.lib
+
+// >>> uncomment to enable function-level tracing
+// MACRO        __SSM_FUNC_TRACE__
+// <<< uncomment to enable function-level tracing
+
+// >>> uncomment to direct trace output to file
+// MACRO        __SSM_TRACE_INTO_FILE__
+// LIBRARY      flogger.lib
+// <<< uncomment to direct trace output to file
+
+SMPSAFE
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/inc/ssmnoncriticalswppolicy.h	Tue May 11 17:23:24 2010 +0300
@@ -0,0 +1,65 @@
+/*
+* Copyright (c) 2010 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: Declaration of CSsmNonCriticalSwpPolicy class.
+*
+*/
+
+#ifndef SSMNONCRITICALSWPPOLICY_H
+#define SSMNONCRITICALSWPPOLICY_H
+
+#include "ssmswppolicybase.h"
+
+/**
+ *  Policy plugin for noncritical phase SWP.
+ */
+NONSHARABLE_CLASS( CSsmNonCriticalSwpPolicy ) : public CSsmSwpPolicyBase
+    {
+
+public:
+
+    /**
+     * Constructs a CSsmNonCriticalSwpPolicy object.
+     *
+     * @return The new object
+     */
+    IMPORT_C static MSsmSwpPolicy* NewL();
+
+    /**
+     * Destructor.
+     */
+    virtual ~CSsmNonCriticalSwpPolicy();
+
+private: // From CSsmPolicyBase
+
+    void GetCommandListPathL( TDes& aCmdListPath );
+
+private: // From MSsmSwpPolicy
+
+	/**
+	 * @see MSsmSwpPolicy.
+     */
+    TResponse TransitionAllowed(
+	    const TSsmSwp& aSwp,
+	    const RMessagePtr2& aMessage );
+
+private:
+
+    /**
+    * First phase constructor.
+    */
+    CSsmNonCriticalSwpPolicy();
+
+    };
+
+#endif // SSMNONCRITICALSWPPOLICY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/src/ssmnoncriticalswppolicy.cpp	Tue May 11 17:23:24 2010 +0300
@@ -0,0 +1,117 @@
+/*
+* Copyright (c) 2010 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: Implementation of CSsmNonCriticalSwpPolicy class.
+*
+*/
+
+#include <ssm/ssmswp.h>
+#include <ssm/ssmstate.h>
+
+#include "ssmnoncriticalswppolicy.h"
+#include "ssmswp.hrh"
+#include "ssmmapperutility.h"
+#include "trace.h"
+#include "ssmsubstateext.hrh"
+
+/**
+* SWP noncritical phase policy resource file path format : "\private\<SID of SSM>\swpnoncritical\"
+*/
+_LIT( KCommandListPath, "Z:\\private\\2000D75B\\swpnoncritical\\" );
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C MSsmSwpPolicy* CSsmNonCriticalSwpPolicy::NewL()
+    {
+	FUNC_LOG;
+
+    CSsmNonCriticalSwpPolicy* self = new( ELeave ) CSsmNonCriticalSwpPolicy;
+    CleanupStack::PushL( self );
+    self->BaseConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::~CSsmNonCriticalSwpPolicy
+// ---------------------------------------------------------------------------
+//
+CSsmNonCriticalSwpPolicy::~CSsmNonCriticalSwpPolicy()
+    {
+    FUNC_LOG;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::GetCommandListPathL
+// ---------------------------------------------------------------------------
+//
+void CSsmNonCriticalSwpPolicy::GetCommandListPathL( TDes& aCmdListPath )
+    {
+    FUNC_LOG;
+
+    aCmdListPath = KCommandListPath;
+    iUtil->GetCommandListPath( aCmdListPath );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::TransitionAllowed
+// ---------------------------------------------------------------------------
+//
+MSsmSwpPolicy::TResponse CSsmNonCriticalSwpPolicy::TransitionAllowed(
+    const TSsmSwp& aSwp,
+    const RMessagePtr2& aMessage )
+    {
+    FUNC_LOG;
+    INFO_2( "Requested SWP transition: 0x%08x::0x%08x", aSwp.Key(), aSwp.Value() );
+
+    TResponse response = ENotAllowed;
+    if ( iUtil->CheckCaps( aMessage ) )
+        {
+	    TSsmState currentState;
+		const TInt errorCode = GetCurrentState(currentState);
+		ERROR( errorCode, "Failed to get current state" );
+
+		// this SwP transition would be allowed only once per boot(during the system startup).
+        if ((KErrNone == errorCode) && (ESsmStartup == currentState.MainState()) && (aSwp.Value() == ESsmNonCriticalPhaseStarted))
+            {
+            response = EAllowed;
+            }
+        else
+            {
+            INFO( "Requested SWP transition not allowed" );
+            }
+        }
+    else
+        {
+        INFO( "Capability Check Failed" );
+        }
+
+    return response;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::CSsmNonCriticalSwpPolicy
+// ---------------------------------------------------------------------------
+//
+CSsmNonCriticalSwpPolicy::CSsmNonCriticalSwpPolicy()
+    {
+    FUNC_LOG;
+    }
--- a/sysstatemgmt/ssmpolicyplugins/ssmswppolicybase/src/ssmswppolicybase.cpp	Tue Apr 27 17:57:16 2010 +0300
+++ b/sysstatemgmt/ssmpolicyplugins/ssmswppolicybase/src/ssmswppolicybase.cpp	Tue May 11 17:23:24 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009 - 2010 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"
@@ -22,6 +22,7 @@
 #include <ssm/ssmswp.h>
 #include <ssm/ssmsubstates.hrh>
 #include <ssm/starterclient.h>
+#include <startupdomaindefs.h>
 
 #include "ssmswppolicybase.h"
 #include "trace.h"
@@ -135,27 +136,30 @@
         }
     else
         {
-        RSsmStateManager session;
-        TInt errorCode = session.Connect();
-        ERROR( errorCode, "Failed to connect to RSsmStateManager" );
-        if ( errorCode == KErrNone )
-            {
-            if ( ResetLimitReached() ) // Updates the reset count
-                {
-                INFO( "SWP transition failed -> Fail" );
-                errorCode = session.RequestStateTransition(
-                    TSsmStateTransition( ESsmFail, KSsmAnySubState, 0 ) );
-        	    }
-    	    else
-    	        {
-                INFO( "SWP transition failed -> Reset" );
-                errorCode = session.RequestStateTransition(
-                    TSsmStateTransition( ESsmShutdown, KSsmAnySubState,
-                        RStarterSession::EUnknownReset ) );
-    	        }
+		TSsmState currentState;
+		TInt errorCode = GetCurrentState(currentState);
 
-            session.Close();
-            }
+		if ( ((currentState.MainState() != ESsmShutdown) && (currentState.MainState() != ESsmFail)) || KErrNone != errorCode)
+			{
+			RSsmStateManager session;
+			errorCode = session.Connect();
+			ERROR( errorCode, "Failed to connect to RSsmStateManager" );
+			if ( KErrNone == errorCode )
+				{
+				if ( ResetLimitReached() ) // Updates the reset count
+					{
+					INFO_1( "SWP 0x%08x transition failed -> Fail", aSwp.Key() );
+					errorCode = session.RequestStateTransition(	TSsmStateTransition( ESsmFail, KSsmAnySubState, 0 ) );
+					}
+				else
+					{
+					INFO_1( "SWP 0x%08x transition failed -> Reset", aSwp.Key() );
+					errorCode = session.RequestStateTransition(
+									TSsmStateTransition( ESsmShutdown, KSsmAnySubState, RStarterSession::EUnknownReset ) );
+					}
+				session.Close();
+				}
+			}
 
         TRequestStatus* status = &aStatus;
         User::RequestComplete( status, errorCode );