Revision: 201015 RCL_3 PDK_3.0.i
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 17:31:46 +0300
branchRCL_3
changeset 11 9971b621ef6c
parent 10 bbcfd14ce6a7
child 13 53af9c3d61e4
Revision: 201015 Kit: 201017
devencdiskutils/DevEncCommonUtils/src/DevEncDiskUtils.cpp
devencdiskutils/DevEncCommonUtils/src/DevEncKeyUtils.cpp
pkiutilities/CTSecurityDialogs/NotifSrc/CTSecurityDialogsAO.cpp
pkiutilities/CertSaver/src/CertSaverModel.cpp
pkiutilities/CertmanUi/INC/Certmanuitrustids.h
pkiutilities/CertmanUi/SRC/CertmanuicontainerTrust.cpp
pkiutilities/DeviceToken/Src/Certstore/server/DevandTruSrvCertStoreServer.cpp
pkiutilities/StubSIS/c32exe.sis
pkiutilities/group/bld.inf
secsrv_plat/devenccommonutils_api/inc/DevEncDiskUtils.h
securitydialogs/Autolock/inc/AutolockAppUiPS.h
securitydialogs/Autolock/src/AutoLockModel.cpp
securitydialogs/Autolock/src/AutoLockView.cpp
securitydialogs/Autolock/src/AutolockAppUi.cpp
securitydialogs/Autolock/src/AutolockContainer.cpp
securitydialogs/lockapp/src/lockappappui.cpp
wim/WimServer/src/WimAuthObjHandler.cpp
wim/WimServer/src/WimBTSapObserver.cpp
wim/WimServer/src/WimSession.cpp
--- a/devencdiskutils/DevEncCommonUtils/src/DevEncDiskUtils.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/devencdiskutils/DevEncCommonUtils/src/DevEncDiskUtils.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -255,18 +255,23 @@
     if (!err)
         return err;
     TInt64 memoryWarningSpace(0);
-    TRAP(err, memoryWarningSpace = FindWarningLevelTresholdL());
+    TRAP(err, memoryWarningSpace = FindWarningLevelTresholdL( aNumber ));
     if (!err)
         return err;
     
     DFLOG2( "CDevEncDiskUtils::DiskFinalize => memoryCriticalSpace = %d", (TInt) memoryCriticalSpace );
     DFLOG2( "CDevEncDiskUtils::DiskFinalize => memoryWarningSpace = %d", (TInt) memoryWarningSpace );
     
-    //create the number of files needed to fill the mmc free space
+    //create the number of files needed to fill the mmc or phone memory free space
     while( freeSpace )
         {
-        /* The real warning space is a percentage of the free space */
-        TInt64 newMemoryWarningSpace = ( TInt64 ) ( volumeInfo.iSize*( 100 - memoryWarningSpace ) ) / 100;
+        TInt64 newMemoryWarningSpace(0);
+        if( aNumber == EDriveC )
+        	{
+            // The real warning space is a percentage of the free space. This applies only on drive C. 
+            newMemoryWarningSpace = ( TInt64 ) ( volumeInfo.iSize*( 100 - memoryWarningSpace ) ) / 100;
+        	}
+        
         DFLOG2( "CDevEncDiskUtils::DiskFinalize => newMemoryWarningSpace = %d", (TInt) newMemoryWarningSpace );
 
         if( TInt64( volumeInfo.iFree ) > TInt64( KMaxInt ) )
@@ -275,7 +280,14 @@
             }
         else
         	{
-        	size = Max( 0LL, TInt64( volumeInfo.iFree ) - memoryCriticalSpace - newMemoryWarningSpace );
+            if( aNumber == EDriveC )
+                {
+        	    size = Max( 0LL, TInt64( volumeInfo.iFree ) - memoryCriticalSpace - newMemoryWarningSpace );
+                }
+            else
+                {
+                size = Max( 0LL, TInt64( volumeInfo.iFree ) - memoryCriticalSpace - memoryWarningSpace );
+                }
         	}
 
         TFileName temp;
@@ -302,9 +314,19 @@
         if( err )
             DFLOG2( "..fs.Volume fail %d", err );    
 
-        if( TInt64( volumeInfo.iFree ) <= memoryCriticalSpace + newMemoryWarningSpace )
+        if( aNumber == EDriveC )
         	{
-            freeSpace = EFalse;
+            if( TInt64( volumeInfo.iFree ) <= memoryCriticalSpace + newMemoryWarningSpace )
+        	    {
+                freeSpace = EFalse;
+                }
+            }
+        else
+            {
+            if( TInt64( volumeInfo.iFree ) <= memoryCriticalSpace + memoryWarningSpace )
+                {
+                freeSpace = EFalse;
+                }
             }
         }
 
@@ -348,9 +370,16 @@
 // CDevEncDiskUtils::FindWarningLevelTresholdL()
 // 
 // --------------------------------------------------------------------------
-TInt64 CDevEncDiskUtils::FindWarningLevelTresholdL()
+TInt64 CDevEncDiskUtils::FindWarningLevelTresholdL( const TDriveNumber aNumber )
 	{
-	return (TInt64) FindValueL( KCRUidUiklaf, /*KUikOODDiskWarningThreshold*/KUikOODDiskFreeSpaceWarningNoteLevel );
+      if( aNumber == EDriveC )
+          {
+	      return (TInt64) FindValueL( KCRUidUiklaf, KUikOODDiskFreeSpaceWarningNoteLevel );
+          }
+      else
+          {
+          return (TInt64) FindValueL( KCRUidUiklaf, KUikOODDiskFreeSpaceWarningNoteLevelMassMemory );
+          }
 	}
 
 // End of file
--- a/devencdiskutils/DevEncCommonUtils/src/DevEncKeyUtils.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/devencdiskutils/DevEncCommonUtils/src/DevEncKeyUtils.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -24,7 +24,6 @@
 #include "DevEncLog.h"
 #include "DevEncUids.hrh"
 
-
 #include <pbe.h>
 #include <pbedata.h>
 //#include <PathInfo.h> // for system path literals
--- a/pkiutilities/CTSecurityDialogs/NotifSrc/CTSecurityDialogsAO.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/pkiutilities/CTSecurityDialogs/NotifSrc/CTSecurityDialogsAO.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -541,7 +541,6 @@
             }
         case EUserAuthentication:
             {
-            DoHandleMessageL( EUserAuthentication, KNullDesC, KNullDesC, 1, KMaxTInt );
             break;
             }
         case ESignText:
--- a/pkiutilities/CertSaver/src/CertSaverModel.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/pkiutilities/CertSaver/src/CertSaverModel.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -1337,6 +1337,7 @@
     dlg->SetOwnershipType( ELbmDoesNotOwnItemArray );
     if ( dlg->RunLD() )
         {
+        aUids.Reset();
         for ( TInt i = 0; i < selectionArray->Count(); ++i )
             {
             TInt ii = (*selectionArray)[ i ];
--- a/pkiutilities/CertmanUi/INC/Certmanuitrustids.h	Wed Apr 14 16:51:06 2010 +0300
+++ b/pkiutilities/CertmanUi/INC/Certmanuitrustids.h	Tue Apr 27 17:31:46 2010 +0300
@@ -28,7 +28,7 @@
 const TUid KCertManUIViewTrustJavaInstallingId = {270506792};
 const TUid KCertManUIViewOCSPCheckInstallingId = {268478646};
 const TUid KCertManUIViewTrustVPNId = {270498195};
-const TUid KCertManUIViewTrustWidgetInstallingId = {537028544};
+const TUid KCertManUIViewTrustWidgetInstallingId = {537028562};
 
 #endif // __CERTMANUITRUSTIDS_H
 
--- a/pkiutilities/CertmanUi/SRC/CertmanuicontainerTrust.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/pkiutilities/CertmanUi/SRC/CertmanuicontainerTrust.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -596,23 +596,23 @@
             }
         else if ( id == KCertManUIViewTrustMailAndImageConnId )
             {
-            item =
-             (*iTrustedClients)[ KTrustSettingsResourceIndexMailAndImageConn ];
+            item = (*iTrustedClients)[ KTrustSettingsResourceIndexMailAndImageConn ];
             }
         else if ( id == KCertManUIViewTrustJavaInstallingId )
             {
-            item =
-             (*iTrustedClients)[ KTrustSettingsResourceIndexJavaInstall ];
+            item = (*iTrustedClients)[ KTrustSettingsResourceIndexJavaInstall ];
             }
         else if ( id == KCertManUIViewOCSPCheckInstallingId )
             {
-            item =
-             (*iTrustedClients)[ KTrustSettingsResourceIndexOCSPCheck ];
+            item = (*iTrustedClients)[ KTrustSettingsResourceIndexOCSPCheck ];
             }
         else if ( id == KCertManUIViewTrustVPNId )
             {
-            item =
-             (*iTrustedClients)[ KTrustSettingsResourceIndexVPN ];
+            item = (*iTrustedClients)[ KTrustSettingsResourceIndexVPN ];
+            }
+        else if ( id == KCertManUIViewTrustWidgetInstallingId )
+            {
+            item = (*iTrustedClients)[ KTrustSettingsResourceIndexWidget ];
             }
         else
             {
--- a/pkiutilities/DeviceToken/Src/Certstore/server/DevandTruSrvCertStoreServer.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/pkiutilities/DeviceToken/Src/Certstore/server/DevandTruSrvCertStoreServer.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2006-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"
@@ -331,12 +331,6 @@
                 const TDesC8& aCert,
                 const RMessage2& aMessage, TBool aFromTruSiteSrv )
     {
-    // Check if a certificate with this name already exists
-    if (iEntryList->LabelExists(aInfo.iLabel))
-        {
-        User::Leave(KErrBadName);
-        }
-
     // Check subject key id and cert data are supplied, issuer key id is optional
     if (aInfo.iSubjectKeyId == KNullDesC8 || aCert == KNullDesC8)
         {
@@ -403,16 +397,19 @@
         {
         CX509Certificate* cert = CX509Certificate::NewLC( aCertData );
         TBuf8<KSHA1Length> certHash;
-        certHash.Copy(cert->Fingerprint()); 
-         
-          
+        certHash.Copy(cert->Fingerprint());
+
         const CX500DistinguishedName& dName = cert->SubjectName();
         // Retrieve CN
-        HBufC* cn = dName.ExtractFieldL( KX520CommonName );  
-        CleanupStack::PushL(cn);  
-        iTrustedSitesServer->AddL( certHash, *cn );
+        HBufC* cn = dName.ExtractFieldL( KX520CommonName );
+        if( cn )
+            {
+            CleanupStack::PushL( cn );
+            iTrustedSitesServer->AddL( certHash, *cn );
+            CleanupStack::PopAndDestroy( cn );
+            }
 
-        CleanupStack::PopAndDestroy( 2 );//cert, cn	
+        CleanupStack::PopAndDestroy( cert );
         }
     if (err != KErrNone)
         {
Binary file pkiutilities/StubSIS/c32exe.sis has changed
--- a/pkiutilities/group/bld.inf	Wed Apr 14 16:51:06 2010 +0300
+++ b/pkiutilities/group/bld.inf	Tue Apr 27 17:31:46 2010 +0300
@@ -27,7 +27,7 @@
 //Stub SIS
 PRJ_EXPORTS
 ../StubSIS/CenRepStub.sis   /epoc32/data/z/system/install/CenRepStub.sis
-../StubSIS/c32exe.sis   /epoc32/data/z/system/install/c32exe.sis
+
 
 //SWI and TLSProvider config files
 ../StubSIS/swipolicy.ini    /epoc32/release/winscw/udeb/z/system/data/swipolicy.ini
--- a/secsrv_plat/devenccommonutils_api/inc/DevEncDiskUtils.h	Wed Apr 14 16:51:06 2010 +0300
+++ b/secsrv_plat/devenccommonutils_api/inc/DevEncDiskUtils.h	Tue Apr 27 17:31:46 2010 +0300
@@ -43,7 +43,7 @@
         static void DoVerifyTestFileL();
         static TInt64 FindCriticalLevelTresholdL();
         static TInt FindValueL( const TUid aRepositoryUid, const TUint aCRKey );
-        static TInt64 FindWarningLevelTresholdL();
+        static TInt64 FindWarningLevelTresholdL( const TDriveNumber aNumber );
     };
 
 #endif // DEVENCDISKUTILS_H
--- a/securitydialogs/Autolock/inc/AutolockAppUiPS.h	Wed Apr 14 16:51:06 2010 +0300
+++ b/securitydialogs/Autolock/inc/AutolockAppUiPS.h	Tue Apr 27 17:31:46 2010 +0300
@@ -258,6 +258,7 @@
         TBool            iEmergencySupportReady;
         CWait*			 iWait;	
 		TRect aCallButtonRect;
+		TInt iGotEventDownDuringCall;
 	};
 
 	inline CAutoLockModel* CAutolockAppUi::Model() const
--- a/securitydialogs/Autolock/src/AutoLockModel.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/securitydialogs/Autolock/src/AutoLockModel.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -399,7 +399,7 @@
          // Reset inactivity time so that Screensaver gets to
         // run again after its timeout. We'll ignore the new
         // inactivity timeout, if already locked
-        RDebug::Printf( "%s %s (%u) CR 428-469 avoid User::ResetInactivityTime=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+        // RDebug::Printf( "%s %s (%u) CR 428-469 avoid User::ResetInactivityTime=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
         // User::ResetInactivityTime();
     }
     #if defined(_DEBUG)
--- a/securitydialogs/Autolock/src/AutoLockView.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/securitydialogs/Autolock/src/AutoLockView.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -99,18 +99,18 @@
     }
 void CAutolockView::HandleCall(TInt aCommand, TRect &aRect)
     {
-    	RDebug::Printf( "%s %s (%u) aCommand=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCommand );
+    	// RDebug::Printf( "%s %s (%u) aCommand=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCommand );
     if (iView)
     	{
         TRect cr = ClientRect();
         iView->SetRect( cr );
-    		RDebug::Printf( "%s %s (%u) got 2 cr=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCommand );
+    		// RDebug::Printf( "%s %s (%u) got 2 cr=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, aCommand );
         iView->DrawNow( );
         iView->GiveCoords( aRect );
 			}
     else
 			{
-			RDebug::Printf( "%s %s (%u) !iView ???=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iView );
+			// RDebug::Printf( "%s %s (%u) !iView ???=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, iView );
 			}
     }
 void CAutolockView::MakeVisible(TBool aVisibility)
--- a/securitydialogs/Autolock/src/AutolockAppUi.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/securitydialogs/Autolock/src/AutolockAppUi.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -57,6 +57,7 @@
 
 //  LOCAL CONSTANTS AND MACROS  
 #define KSysApUid TUid::Uid(0x100058F3)
+#define KPhoneAppUid TUid::Uid(0x100058B3)
 
 const TInt KTriesToConnectServer( 2 );
 const TInt KTimeBeforeRetryingServerConnection( 50000 );
@@ -93,6 +94,7 @@
 	iAppKey = 0;
 
 	aCallButtonRect = TRect (0,0,0,0);
+	iGotEventDownDuringCall = -1;
 	//connect to ETel
 
 	TInt err( KErrGeneral );
@@ -165,6 +167,16 @@
 	iPhone.GetLockInfo(iWait->iStatus, lockType, lockInfoPkg);
 	TInt res = iWait->WaitForRequestL();
 	User::LeaveIfError(res);
+	    
+  // Eventhough we might lock the device on boot-up (systemLocked == ETrue), we
+  // want to hide the app until the handshake is done. StartUp application will
+  // active the app when it is finished.   
+  TApaTask self(iCoeEnv->WsSession());
+  self.SetWgId(iCoeEnv->RootWin().Identifier());
+  self.SendToBackground();
+  // flush
+  iCoeEnv->WsSession().Flush();	    
+		    
     TInt lockValue = 0;
     CRepository* repository = CRepository::NewL(KCRUidSecuritySettings);
     TInt cRresult = repository->Get(KSettingsAutolockStatus, lockValue);
@@ -492,8 +504,8 @@
 			CAknView* view = View(KAutoLockViewId);
 			if(view)
 				{	
-		  		TRect aCallRect;
-				STATIC_CAST(CAutolockView*, view)->HandleCall(0x15, aCallRect);
+		  		TRect aInitialRect;
+				STATIC_CAST(CAutolockView*, view)->HandleCall(0x15, aInitialRect);
 				}
 		
 			}
@@ -519,8 +531,8 @@
 			CAknView* view = View(KAutoLockViewId);
 			if(view)
 				{	
-				TRect aCallRect;
-				STATIC_CAST(CAutolockView*, view)->HandleCall(0x19, aCallRect);
+				TRect aInitialRect;
+				STATIC_CAST(CAutolockView*, view)->HandleCall(0x19, aInitialRect);
 				}
 			TApaTask self(iCoeEnv->WsSession());
 			self.SetWgId(iCoeEnv->RootWin().Identifier());
@@ -533,8 +545,8 @@
 			CAknView* view = View(KAutoLockViewId);
 			if(view)
 				{	
-			  	TRect aCallRect;
-				STATIC_CAST(CAutolockView*, view)->HandleCall(0x16, aCallRect);
+			  	TRect aInitialRect;
+				STATIC_CAST(CAutolockView*, view)->HandleCall(0x16, aInitialRect);
 				}
 			}
 		}
@@ -755,7 +767,7 @@
 			TBool iAppKeyBelongedToBigClock=EFalse;
 			if(!iAppKey)
 				{
-				RDebug::Printf( "%s %s (%u) stealing EStdKeyApplication0 from BigClock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+				// RDebug::Printf( "%s %s (%u) stealing EStdKeyApplication0 from BigClock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
 				RWindowGroup& groupWin=iCoeEnv->RootWin();
 				iAppKey = groupWin.CaptureKeyUpAndDowns(EStdKeyApplication0, 0, 0); // Capture app key now, in case that it was given to BigClock
 				iAppKeyBelongedToBigClock=ETrue;
@@ -773,7 +785,7 @@
 				{  // make sure that we will be topmost still
 					if(iAppKey && iAppKeyBelongedToBigClock)
 						{
-						RDebug::Printf( "%s %s (%u) giving EStdKeyApplication0 to BigClock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+						// RDebug::Printf( "%s %s (%u) giving EStdKeyApplication0 to BigClock=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
 						RWindowGroup& groupWin=iCoeEnv->RootWin();
 						groupWin.CancelCaptureKeyUpAndDowns(iAppKey);	// give S60-Application key back to BigClock
 						iAppKey = 0;
@@ -940,7 +952,6 @@
 	if ( AknLayoutUtils::PenEnabled() )
      	{ 		
    			TApaTaskList apaTaskList(CCoeEnv::Static()->WsSession());
-   			#define KPhoneAppUid TUid::Uid(0x100058B3)
 
    			TApaTask apaTask = apaTaskList.FindApp(KPhoneAppUid);
    			if (apaTask.Exists())
@@ -963,8 +974,8 @@
 	CAknView* view = View(KAutoLockViewId);
 	if(view)
 	  {
-	  TRect aCallRect;
-      STATIC_CAST(CAutolockView*, view)->HandleCall(0x17, aCallRect);
+	  TRect aInitialRect;
+      STATIC_CAST(CAutolockView*, view)->HandleCall(0x17, aInitialRect);
 	  STATIC_CAST(CAutolockView*, view)->MakeVisible(ETrue);
 	  }
 	else
@@ -1278,7 +1289,14 @@
 		           	{
 		             	#if defined(_DEBUG)
 		    			RDebug::Print(_L("(AUTOLOCK)CAutolockAppUi::HandleWsEventL: ENABLE call bubble"));
-		    			#endif                      
+		    			#endif
+   						CAknView* view = View(KAutoLockViewId);
+							if(view)
+								{	
+								TRect aInitialRect;
+								STATIC_CAST(CAutolockView*, view)->HandleCall(0x1A, aInitialRect);
+								}
+
 		                iIncallBubble->SetIncallBubbleAllowedInIdleL( ETrue );
 		            }
 		    	break;	
@@ -1290,28 +1308,36 @@
     	    		{
     	    		TInt callState = 0;
     	    		RProperty::Get( KPSUidCtsyCallInformation, KCTsyCallState, callState );
-			        if ( 1==1 || callState == EPSCTsyCallStateNone || callState == EPSCTsyCallStateUninitialized )
-			        	{
 	    	        TPointerEvent *pointer = aEvent.Pointer();
 	    	          CAknView* view = View(KAutoLockViewId);
 								  if(view)
 								    {	
 								        STATIC_CAST(CAutolockView*, view)->ScreenDeviceChanged();
-								    	TRect aCallRect;
-								        STATIC_CAST(CAutolockView*, view)->HandleCall(0x1, aCallRect);
-   								    	if(aCallButtonRect.iBr.iX==0)
-   								    		aCallButtonRect = TRect (aCallRect);
+								    	TRect aInitialRect;
+								        STATIC_CAST(CAutolockView*, view)->HandleCall(0x1, aInitialRect);
+   								    	if(aCallButtonRect.iBr.iX==0)	// initialize if not done already
+   								    		aCallButtonRect = TRect (aInitialRect);
 								    }
+			        if ( callState != EPSCTsyCallStateNone && callState != EPSCTsyCallStateUninitialized )
+			        	{
+	    	        if(pointer->iType==TPointerEvent::EButton1Down)
+	    	        	{
+		    	        TPoint iPosition = pointer->iPosition;
+									if(aCallButtonRect.iBr.iX<iPosition.iX && iPosition.iX<aCallButtonRect.iBr.iX+aCallButtonRect.iTl.iX && iPosition.iY>400 )
+	    		        	{
+	    		        	iGotEventDownDuringCall=1;
+	    		        	}
+	    		        }
 	    	        if(pointer->iType==TPointerEvent::EButton1Up)
 	    	        	{
 		    	        TPoint iPosition = pointer->iPosition;
-						if(aCallButtonRect.iBr.iX<iPosition.iX && iPosition.iX<aCallButtonRect.iBr.iX+aCallButtonRect.iTl.iX && iPosition.iY>400 )
+		    	        // touching at any point inside and below the BigRedButton. This is to handle the case where another dialog overlaps
+						if(iGotEventDownDuringCall==1 && aCallButtonRect.iBr.iX<iPosition.iX && iPosition.iX<aCallButtonRect.iBr.iX+aCallButtonRect.iTl.iX && iPosition.iY>400 )
 	    		        	{
-	    		        		#define KPhoneAppUid1 TUid::Uid(0x100058B3)
 	    		        		TApaTaskList tasklist( iCoeEnv->WsSession() );
-                      TApaTask phonetask = tasklist.FindApp( KPhoneAppUid1 );
+                      TApaTask phonetask = tasklist.FindApp( KPhoneAppUid );
 	    		        		if ( phonetask.Exists() )
-                        {
+                        {	// send End key to Telephony to end the call
 										    TRawEvent event;
 										    event.Set(TRawEvent::EKeyDown, EStdKeyNo);
 										    iEikonEnv->WsSession().SimulateRawEvent(event);
@@ -1320,6 +1346,7 @@
 										    iEikonEnv->WsSession().SimulateRawEvent(event);
                         }
 	    		        	}
+	    		        iGotEventDownDuringCall=0;	// even if outside
 	    		        }
 	    		      }
     		      }
@@ -1331,6 +1358,7 @@
 	    	        SendMessageToSysAp( EEikSecurityQueryLights );
 	    	        break;
 		    default:
+		    	iGotEventDownDuringCall=0;	// any other event invalidates the Press inside the BigRedButton
 		    	break;
     	}
     	
@@ -1379,10 +1407,10 @@
 		            CAknView* view = View(KAutoLockViewId);
 								  if(view)
 								    {	
-								    	TRect aCallRect;
-								        STATIC_CAST(CAutolockView*, view)->HandleCall(0x10, aCallRect);
-												if(aCallButtonRect.iBr.iX==0)
-   								    		aCallButtonRect = TRect (aCallRect);
+								    	TRect aInitialRect;
+								        STATIC_CAST(CAutolockView*, view)->HandleCall(0x10, aInitialRect);
+												if(aCallButtonRect.iBr.iX==0)	// initialize if not done already
+   								    		aCallButtonRect = TRect (aInitialRect);
 								    }
         // So now system is locked. When call is not ongoing, autolock should
         // be on the foreground.
--- a/securitydialogs/Autolock/src/AutolockContainer.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/securitydialogs/Autolock/src/AutolockContainer.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -29,6 +29,9 @@
 #include <Autolock.rsg>
 #include "autolock.hrh"
 #include <eikdef.h>
+#include <aknnotedialog.h>
+#include <aknkeylock.h>
+#include <AknSoftNotifier.h>
 
 #include <coreapplicationuisdomainpskeys.h>
 
@@ -303,7 +306,24 @@
 					gc.SetPenStyle(CGraphicsContext::EDottedPen);
 					gc.DrawRoundRect(box,cornerSize);
         	gc.BitBltMasked(TPoint(aCallRect_x,aCallRect_y),iBitmapCall,TRect(TPoint(0,0),TPoint(aCallRect_width,aCallRect_height)), iMaskCall, ETrue);
-    	  	aCallRect_y+=100;	// coordinates are realtive to TRect, not to Screen
+    	  	aCallRect_y+=100;	// coordinates are relative to TRect, not to Screen
+    	  	
+    	  	// if active call, dismiss all pending notes. This avoids them on top of the BigRedButton
+    	  	CAknSoftNotifier *softNotifier = NULL;
+			    TRAPD (err, {
+			            softNotifier = CAknSoftNotifier::NewL();
+			            softNotifier->AddNotificationL(ESetIdleState, 0);
+			            // softNotifier->SetIdleStateL(EFalse);
+			    };)
+			    delete softNotifier;
+			    // during any call ,the touch need to be enabled, so that BigRedButton is available
+			    // It will be re-enabled when the call ends
+		    	RAknKeyLock keylock;
+			    if ( keylock.Connect() == KErrNone )
+				    {
+				    keylock.DisableWithoutNote();
+				    keylock.Close();
+				    }
         	}
         }
     else if (iBitmap && !iMask)
--- a/securitydialogs/lockapp/src/lockappappui.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/securitydialogs/lockapp/src/lockappappui.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -33,7 +33,9 @@
 // ---------------------------------------------------------------------------
 void CLockAppAppUi::ConstructL( )
     {
+    	#if defined(_DEBUG)
     	RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x8 );
+    	#endif
     	    
    // default appui constructor has to be called
     BaseConstructL( );    	    
@@ -42,7 +44,9 @@
     if(use_old_autolock)
     	{
 			// start autolock instead of lockapp . This is a backup solution to use in case that not all SysAp and Avkon changes are implemented
+			#if defined(_DEBUG)
 	 	  RDebug::Printf( "%s %s (%u) 1=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x1 );
+ 	  	#endif
 	    TApaTaskList taskList( iCoeEnv->WsSession() );
 	    TApaTask task( taskList.FindApp( _L("autolock.exe" )) );
 	    if ( !task.Exists() )
@@ -57,7 +61,9 @@
 	        
 		    // Try to launch the application.        
 	        User::LeaveIfError(ls.StartApp(*commandLine));
+	        #if defined(_DEBUG)
 	    	  RDebug::Printf( "%s %s (%u) autolock.exe created=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0x7 );
+	    	  #endif
 	        
 	        CleanupStack::PopAndDestroy(2); // commandLine, ls
 			}
@@ -182,10 +188,14 @@
 // ----------------------------------------------------------
 void CLockAppAppUi::HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination )
     {
+    #if defined(_DEBUG)
 		RDebug::Printf( "%s %s (%u) value=%x", __FILE__, __PRETTY_FUNCTION__, __LINE__, 0 );
+		#endif
     if ( aEvent.Type() == TRawEvent::EKeyDown )
         {
+        #if defined(_DEBUG)
         RDebug::Printf("CLockAppAppUi::HandleWsEventL() - aEvent.Key()->iCode: %d", aEvent.Key()->iCode );
+        #endif
         }
 
     // call super-class
--- a/wim/WimServer/src/WimAuthObjHandler.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/wim/WimServer/src/WimAuthObjHandler.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -407,7 +407,6 @@
 void CWimAuthObjHandler::VerifyDisabledPINRequestL( 
      const RMessage2& aMessage )
     {
-    __ASSERT_DEBUG( iResponseID == NULL, User::Panic( KWimAuthObjPanic, KErrGeneral ) );
     iResponseID = new ( ELeave )CWimResponse( aMessage );
     iResponseID->iOpcode = EVerifyDisabledPinReq;
     
@@ -436,11 +435,9 @@
     {
     _WIMTRACE(_L("WIM|WIMServer|CWimAuthObjHandler::VerifyPINRequestL|Begin"));
 
-    __ASSERT_DEBUG( iResponseID == NULL, User::Panic( KWimAuthObjPanic, KErrGeneral ) );
     iResponseID = new ( ELeave )CWimResponse( aMessage );
     iResponseID->iOpcode = EVerifyPinReq;
     
-    __ASSERT_DEBUG( iTrId == NULL, User::Panic( KWimAuthObjPanic, KErrGeneral ) );
     iTrId = iWimUtilFuncs->TrIdLC( iResponseID, EWimMgmtReq );
     CleanupStack::Pop( iTrId );
     
@@ -568,11 +565,9 @@
     {
     _WIMTRACE(_L("WIM|WIMServer|CWimAuthObjHandler::EnablePINReqL|Begin"));
 
-    __ASSERT_DEBUG( iResponseID == NULL, User::Panic( KWimAuthObjPanic, KErrGeneral ) );
     iResponseID = new( ELeave )CWimResponse( aMessage );
     iResponseID->iOpcode =EEnablePINReq;
     
-    __ASSERT_DEBUG( iTrId == NULL, User::Panic( KWimAuthObjPanic, KErrGeneral ) );
     iTrId = iWimUtilFuncs->TrIdLC( iResponseID, EWimMgmtReq );
     CleanupStack::Pop( iTrId );
     
@@ -681,11 +676,9 @@
     {
     _WIMTRACE(_L("WIM | WIMServer | CWimAuthObjHandler::ChangePINRequestL | Begin"));
 
-    __ASSERT_DEBUG( iResponseID == NULL, User::Panic( KWimAuthObjPanic, KErrGeneral ) );
     iResponseID = new ( ELeave ) CWimResponse( aMessage );
     iResponseID->iOpcode = EChangePINReq;
     
-    __ASSERT_DEBUG( iTrId == NULL, User::Panic( KWimAuthObjPanic, KErrGeneral ) );
     iTrId = iWimUtilFuncs->TrIdLC( iResponseID, EWimMgmtReq );
     CleanupStack::Pop( iTrId ); 
 
@@ -781,11 +774,9 @@
     {
     _WIMTRACE(_L("WIM | WIMServer | CWimAuthObjHandler::UnblockPinReqL | Begin"));
 
-    __ASSERT_DEBUG( iResponseID == NULL, User::Panic( KWimAuthObjPanic, KErrGeneral ) );
     iResponseID = new ( ELeave ) CWimResponse( aMessage );
     iResponseID->iOpcode = EUnblockPinReq;
     
-    __ASSERT_DEBUG( iTrId == NULL, User::Panic( KWimAuthObjPanic, KErrGeneral ) );
     iTrId = iWimUtilFuncs->TrIdLC( iResponseID, EWimMgmtReq );
     CleanupStack::Pop( iTrId );
     
--- a/wim/WimServer/src/WimBTSapObserver.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/wim/WimServer/src/WimBTSapObserver.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -175,6 +175,8 @@
                     WIMI_CloseDownReq();
                     _WIMTRACE(_L("WIM | CWimSatRefreshObserver::Refresh | WIMI closed."));
                     }
+
+                sessions.Close();
                 }
             else
                 {
--- a/wim/WimServer/src/WimSession.cpp	Wed Apr 14 16:51:06 2010 +0300
+++ b/wim/WimServer/src/WimSession.cpp	Tue Apr 27 17:31:46 2010 +0300
@@ -629,6 +629,8 @@
         {
         _WIMTRACE(_L("WIM | CWimSession::RefreshWimi: FAILED to get sessions."));
         }
+
+    sessions.Close();
     }
 
 //  End of File