--- 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;
+ }
+
+