accesspointcontrol/apcontrollistplugin/src/apcontrollistapiwrapper.cpp
branchRCL_3
changeset 55 fc7b30ed2058
parent 17 c14618f9de99
--- a/accesspointcontrol/apcontrollistplugin/src/apcontrollistapiwrapper.cpp	Thu Jul 15 19:05:04 2010 +0300
+++ b/accesspointcontrol/apcontrollistplugin/src/apcontrollistapiwrapper.cpp	Thu Aug 19 10:18:49 2010 +0300
@@ -43,7 +43,8 @@
 							CAPControlListPlugin& aPlugin, TInt aPriority ) : 
 											CActive( aPriority ), 
 											iPlugin(aPlugin),
-											iApnPKG(iApn)
+											iApnPKG(iApn),
+											iSimCardError( EFalse )
 	{
 	CActiveScheduler::Add( this ); 
 	}
@@ -200,28 +201,23 @@
 //
 void CAPControlListAPIWrapper::RunL()
 	{
-	if ( iStatus != KErrNone )
-		{
-		CLOG( ( ESelector, 0, _L( "Bad RequestStatus: %d for request: %d" ), 
-													iStatus.Int(), iRequest) );	    
+    CLOG( ( ESelector, 0, _L( "RequestStatus: %d for request: %d" ), 
+                                                iStatus.Int(), iRequest) );     
 
-		// KErrOverflow can occur during APN adding process, if the APN list is full
-		// or there is no space for an additional entry in SIM card.
-	    if( iStatus.Int() == KErrOverflow && iRequest == EAddAPN)
-	        {
-            HBufC* text = StringLoader::LoadLC ( 
-                R_QTN_ACL_ERR_SIM_CARD );
-            CAknErrorNote* note = new ( ELeave ) CAknErrorNote(
-                 ETrue );
-            note->ExecuteLD( *text );
+    // If there happens an error show error note and set this sw to error
+    // state --> does not accept any operations but closing.
+	if ( iStatus.Int() != KErrNone )
+		{
+        ShowSimCardErrorNoteL();
 
-            CleanupStack::PopAndDestroy( text );
-	        }
-	    
+        iSimCardError = ETrue;
 	    iRequest = ENoRequest;  
 
 		return;
 		}
+	
+	iSimCardError = EFalse;
+	
 	switch(iRequest)
 	{
 	case EGetACLStatus:
@@ -367,7 +363,7 @@
 // ---------------------------------------------------------
 void CAPControlListAPIWrapper::EnumerateAPN() 
     {
-    CLOG( ( ESelector, 0, _L( "-> CAPControlListAPIWrapper::ReadData" ) ) );
+    CLOG( ( ESelector, 0, _L( "-> CAPControlListAPIWrapper::EnumerateAPN" ) ) );
 	if( !IsActive() )
 		{
 		iRequest = EEnumerateAPN;			
@@ -375,7 +371,7 @@
 		iPhone.EnumerateAPNEntries(iStatus, iSize);
 		SetActive();
 		}    
-    CLOG( ( ESelector, 0, _L( "<- CAPControlListAPIWrapper::ReadData" ) ) );
+    CLOG( ( ESelector, 0, _L( "<- CAPControlListAPIWrapper::EnumerateAPN" ) ) );
     }
     
 // ---------------------------------------------------------
@@ -386,6 +382,13 @@
     {   	
     CLOG( ( ESelector, 0, _L( 
     			"-> CAPControlListAPIWrapper::DeActivateACLL" ) ) );
+    
+    // Check if in error state
+    if ( iSimCardError )
+        {
+        ShowSimCardErrorNoteL();
+        return;
+        }
 	if (iSecurityChecked)
 		{
 		SetACLStatus( RMobilePhone::EAPNControlListServiceDisabled );
@@ -407,6 +410,13 @@
     {   	
     CLOG( ( ESelector, 0, _L( 
     			"-> CAPControlListAPIWrapper::ActivateACLL" ) ) );
+
+    // Check if in error state
+    if ( iSimCardError )
+        {
+        ShowSimCardErrorNoteL();
+        return;
+        }
 	if (iSecurityChecked)
 		{
 		SetACLStatus( RMobilePhone::EAPNControlListServiceEnabled );
@@ -429,6 +439,14 @@
     {   	
     CLOG( ( ESelector, 0, 
     				_L( "-> CAPControlListAPIWrapper::SetACLStatus" ) ) );
+    
+    // Check if in error state
+    if ( iSimCardError )
+        {
+        ShowSimCardErrorNoteL();
+        return;
+        }
+
 	if( !IsActive() )
 		{
    		iPhone.SetAPNControlListServiceStatus( iStatus, 
@@ -456,6 +474,14 @@
 void CAPControlListAPIWrapper::RemoveAPN()
     {   	
     CLOG( ( ESelector, 0, _L( "-> CAPControlListAPIWrapper::RemoveAPNL" ) ) );
+    
+    // Check if in error state
+    if ( iSimCardError )
+        {
+        ShowSimCardErrorNoteL();
+        return;
+        }
+
     if( iPlugin.Container()->NumberOfItems() > 0)
         {
     	if (iSecurityChecked)
@@ -477,6 +503,14 @@
 void CAPControlListAPIWrapper::DoRemoveAPN()
     {   	
     CLOG( ( ESelector, 0, _L( "-> CAPControlListAPIWrapper::RemoveAPN2L" ) ) );
+    
+    // Check if in error state
+    if ( iSimCardError )
+        {
+        ShowSimCardErrorNoteL();
+        return;
+        }
+
 	if( !IsActive() )
 		{
 		TInt index = iPlugin.Container()->CurrentItemIndex();
@@ -494,6 +528,13 @@
 void CAPControlListAPIWrapper::AddAPNL()
     {   	
     CLOG( ( ESelector, 0, _L( "-> CAPControlListAPIWrapper::AddAPNL" ) ) );
+    
+    // Check if in error state
+    if ( iSimCardError )
+        {
+        ShowSimCardErrorNoteL();
+        return;
+        }
 	if (iSecurityChecked)
 		{
 		DoAddAPNL();
@@ -704,3 +745,30 @@
     CLOG( ( ESelector, 0, 
         _L( "<- CAPControlListAPIWrapper::CancelNotify" ) ) );
     }
+// ----------------------------------------------------------
+// CAPControlListPlugin::ShowSimCardErrorNoteL()
+// ----------------------------------------------------------
+//
+void CAPControlListAPIWrapper::ShowSimCardErrorNoteL()
+    {
+    HBufC* text = StringLoader::LoadLC ( 
+        R_QTN_ACL_ERR_SIM_CARD );
+    CAknErrorNote* note = new ( ELeave ) CAknErrorNote(
+         ETrue );
+    note->ExecuteLD( *text );
+
+    CleanupStack::PopAndDestroy( text );
+    }
+// -----------------------------------------------------------------------------
+// Handles the leave from the RunL()
+// -----------------------------------------------------------------------------
+//
+TInt CAPControlListAPIWrapper::RunError( TInt /*aLeaveCode*/ )
+    {
+    iSimCardError = ETrue;
+    iRequest = ENoRequest;  
+
+    return KErrNone;
+    }
+
+