Merge fix for bug 2631 (included in recent delivery) and workaround for bug 2620. RCL_3
authorPat Downey <patd@symbian.org>
Tue, 18 May 2010 16:57:04 +0100
branchRCL_3
changeset 25 8b6c1c3d207b
parent 23 66ecddbca914 (diff)
parent 20 d80caf2a6605 (current diff)
child 28 fd2cca8d453c
Merge fix for bug 2631 (included in recent delivery) and workaround for bug 2620.
hwrmhaptics/hapticseffectdatagetterfw/group/bld.inf
hwrmhaptics/hapticspacketizer/group/bld.inf
--- a/accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/remotecontrolfw/bearerplugin/bwins/remconbearerpluginU.DEF	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/remotecontrolfw/bearerplugin/eabi/remconbearerpluginU.DEF	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/remotecontrolfw/bearerplugin/public/remconbearerobserver.h	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/remotecontrolfw/bearerplugin/src/remconbearerobserver.cpp	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/remotecontrolfw/server/inc/bearermanager.h	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/remotecontrolfw/server/inc/server.h	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/remotecontrolfw/server/src/bearermanager.cpp	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/remotecontrolfw/server/src/server.cpp	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/remotecontrolfw/targetselectorplugin/public/remcontargetselectorplugininterface.h	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/accessoryservices/tspclientmapper/src/tspclientmapperimpl.cpp	Tue May 18 16:57:04 2010 +0100
@@ -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/layers.sysdef.xml	Fri May 07 16:55:32 2010 +0100
+++ b/layers.sysdef.xml	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sensorservices/sensorserver/src/server/sensrvpluginproxy.cpp	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_ext.rss	Tue May 18 16:57:04 2010 +0100
@@ -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 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/data/shutdowncmdlists.rss	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/data/uiswpcmdlists.rss	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/group/ssmcmdlists.mmp	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/rom/ssmcmdlists.iby	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sysstatemgmt/ssmpolicyplugins/group/bld.inf	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sysstatemgmt/ssmpolicyplugins/inc/ssmswp.hrh	Tue May 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sysstatemgmt/ssmpolicyplugins/rom/ssmpolicyplugins.iby	Tue May 18 16:57:04 2010 +0100
@@ -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 18 16:57:04 2010 +0100
@@ -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 18 16:57:04 2010 +0100
@@ -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 18 16:57:04 2010 +0100
@@ -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 18 16:57:04 2010 +0100
@@ -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 18 16:57:04 2010 +0100
@@ -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 18 16:57:04 2010 +0100
@@ -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	Fri May 07 16:55:32 2010 +0100
+++ b/sysstatemgmt/ssmpolicyplugins/ssmswppolicybase/src/ssmswppolicybase.cpp	Tue May 18 16:57:04 2010 +0100
@@ -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 );