gssettingsuis/Gs/GSNetworkPlugin/Src/GSNetworkPluginModel.cpp
branchRCL_3
changeset 11 23553eb4e470
parent 0 8c5d936e5675
child 17 3b47783fdf16
equal deleted inserted replaced
10:c8b9b0986973 11:23553eb4e470
    38 #include <LogsDomainCRKeys.h>
    38 #include <LogsDomainCRKeys.h>
    39 #include <PsetContainer.h>
    39 #include <PsetContainer.h>
    40 #include <PsetSAObserver.h>  //ongoing call check
    40 #include <PsetSAObserver.h>  //ongoing call check
    41 #include "GSNetworkDebugHelper.h"
    41 #include "GSNetworkDebugHelper.h"
    42 #include <GsNetworkPluginRsc.rsg>           //for resource IDs
    42 #include <GsNetworkPluginRsc.rsg>           //for resource IDs
    43 
    43 #include <mmtsy_names.h>
    44 //CONSTANTS
    44 //CONSTANTS
    45 // default value for autolock period
    45 // default value for autolock period
    46 // default value for Sat operations
    46 // default value for Sat operations
    47 
    47 
    48 
    48 
   388     if ( !iPhoneSettingsEngine )
   388     if ( !iPhoneSettingsEngine )
   389         {
   389         {
   390         iPhoneSettingsEngine = iSettingsContainer->CreateNetworkModeObjectL( *this );
   390         iPhoneSettingsEngine = iSettingsContainer->CreateNetworkModeObjectL( *this );
   391         }
   391         }
   392     iPhoneSettingsEngine->SetNetworkModeObserver( *this );
   392     iPhoneSettingsEngine->SetNetworkModeObserver( *this );
   393     // get the current net mode asynchronously
   393     //CPSMNetworkPlugin will init iPlugin NULL.
   394     StartAsynGetCurrentNetworkModeSelectionL();
   394     if ( iPlugin == NULL )
       
   395     	{
       
   396     	// get the current net mode synchronously
       
   397     	StartSynGetCurrentNetworkModeSelectionL();
       
   398     	}
       
   399     else
       
   400     	{
       
   401     	// get the current net mode asynchronously
       
   402     	StartAsynGetCurrentNetworkModeSelectionL();
       
   403     	}
   395     
   404     
   396     __GSLOGSTRING("[GS] <--CGSNetworkPluginModel::CreatePhoneSettingsEngineL");
   405     __GSLOGSTRING("[GS] <--CGSNetworkPluginModel::CreatePhoneSettingsEngineL");
   397     }
   406     }
   398 
   407 
   399 
   408 
   544         iPhoneSettingsEngine->GetCurrentNetworkModeSelectionL();   
   553         iPhoneSettingsEngine->GetCurrentNetworkModeSelectionL();   
   545         }
   554         }
   546     }
   555     }
   547 
   556 
   548 // ---------------------------------------------------------------------------
   557 // ---------------------------------------------------------------------------
       
   558 // CGSNetworkPluginModel::StartSynGetCurrentNetworkModeSelectionL
       
   559 //
       
   560 // ---------------------------------------------------------------------------
       
   561 //
       
   562 void CGSNetworkPluginModel::StartSynGetCurrentNetworkModeSelectionL()
       
   563     {
       
   564 	// Connects to Etel and loads Tsy module
       
   565 	RMobilePhone phone;
       
   566     RTelServer   server;
       
   567     // Custom phone.
       
   568     RMmCustomAPI customPhone;
       
   569     
       
   570     TInt err = KErrNone;
       
   571 	for ( TInt a = 0; a < KPSetRetryCount; a++ )
       
   572 		{
       
   573 		err = server.Connect();
       
   574 
       
   575 		if ( err == KErrNone )
       
   576 			{
       
   577 			break;
       
   578 			}
       
   579 
       
   580 		User::After( KPSetRetryTimeout );
       
   581 		}
       
   582 
       
   583 	if ( err != KErrNone )
       
   584 		{
       
   585 		User::Leave( err );
       
   586 		}
       
   587 	else
       
   588 		{
       
   589 		server.LoadPhoneModule( KMmTsyModuleName );
       
   590 		}
       
   591 	User::LeaveIfError( server.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) );
       
   592 
       
   593 	TInt numPhones;
       
   594 
       
   595 	User::LeaveIfError( server.EnumeratePhones( numPhones ) );
       
   596 	if ( !numPhones )
       
   597 		{
       
   598 		User::Leave( KErrGeneral );
       
   599 		}
       
   600 
       
   601 	//match phone name to correct one
       
   602 	RTelServer::TPhoneInfo phoneInfo;
       
   603 	TName matchTsyName;
       
   604 	TInt i = 0;
       
   605 	for (; i < numPhones; i++)
       
   606 		{
       
   607 		User::LeaveIfError(server.GetTsyName(i, matchTsyName));
       
   608 		if (matchTsyName.CompareF(KMmTsyModuleName) == 0)
       
   609 			{
       
   610 			User::LeaveIfError(server.GetPhoneInfo(i, phoneInfo));
       
   611 			break;
       
   612 			}
       
   613 		}
       
   614 	if (i == numPhones)
       
   615 		{
       
   616 		User::Leave(KErrGeneral);
       
   617 		}
       
   618 
       
   619 	//open phone subsession
       
   620 	User::LeaveIfError( phone.Open( server, phoneInfo.iName ) );
       
   621 	User::LeaveIfError( customPhone.Open( phone ) );
       
   622 	TUint32 currentNetworkModes;
       
   623 	customPhone.GetCurrentSystemNetworkModes( currentNetworkModes );
       
   624 	iNetworkMode = (TInt)currentNetworkModes;
       
   625 	customPhone.Close();
       
   626 	phone.Close();
       
   627 	server.Close();	
       
   628 	}
       
   629 
       
   630 // ---------------------------------------------------------------------------
   549 // CGSNetworkPluginModel::GetNetworkMode
   631 // CGSNetworkPluginModel::GetNetworkMode
   550 //
   632 //
   551 // ---------------------------------------------------------------------------
   633 // ---------------------------------------------------------------------------
   552 //
   634 //
   553 TUint32 CGSNetworkPluginModel::GetNetworkMode()
   635 TUint32 CGSNetworkPluginModel::GetNetworkMode()
   660 #endif //__WINS__
   742 #endif //__WINS__
   661     
   743     
   662     return callActive;
   744     return callActive;
   663     }
   745     }
   664 
   746 
   665 
       
   666 
       
   667 //  End of File
   747 //  End of File