cellular/telephonysettings/src/PsetCallDiverting.cpp
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
equal deleted inserted replaced
19:7d48bed6ce0c 20:987c9837762f
    20 //  Include Files
    20 //  Include Files
    21 #include <etelmm.h>           
    21 #include <etelmm.h>           
    22 #include <e32math.h>
    22 #include <e32math.h>
    23 #include <e32svr.h>
    23 #include <e32svr.h>
    24 #include <badesca.h>
    24 #include <badesca.h>
       
    25 
       
    26 #include <vmnumber.h>
    25 #include <centralrepository.h>
    27 #include <centralrepository.h>
    26 #include <settingsinternalcrkeys.h> 
    28 #include <settingsinternalcrkeys.h>
    27 
    29 
    28 #include "psetcalldiverting.h" 
    30 #include "PsetCallDiverting.h"
    29 #include "psetcontainer.h" 
    31 #include "PsetContainer.h"
    30 #include "mpsetdivertobs.h" 
    32 #include "MPsetDivertObs.h"
    31 #include "psettelephony.h" 
    33 #include "PsetTelephony.h"
    32 #include "psetpanic.h" 
    34 #include "PSetPanic.h"
    33 #include "phonesettingslogger.h" 
    35 #include "PhoneSettingsLogger.h"
    34 
    36 
    35 #include "psetcalldivertingcreator.h" 
    37 #include "PSetCallDivertingCreator.h"
    36 #include "mcalldiverting.h" 
    38 #include "MCallDiverting.h"
    37 
    39 
    38 //  MEMBER FUNCTIONS
    40 //  MEMBER FUNCTIONS
    39 // ---------------------------------------------------------------------------
    41 // ---------------------------------------------------------------------------
    40 // First phase constructor
    42 // First phase constructor
    41 // ---------------------------------------------------------------------------       
    43 // ---------------------------------------------------------------------------       
   257 // ---------------------------------------------------------------------------
   259 // ---------------------------------------------------------------------------
   258 //
   260 //
   259 EXPORT_C void CPsetCallDiverting::SetRequestObserver( MPsetRequestObserver* aObs )
   261 EXPORT_C void CPsetCallDiverting::SetRequestObserver( MPsetRequestObserver* aObs )
   260     {
   262     {
   261     iReqObserver = aObs;
   263     iReqObserver = aObs;
   262     iDivert->SetRequestObserver(aObs);
       
   263     }
   264     }
   264 
   265 
   265 // ---------------------------------------------------------------------------
   266 // ---------------------------------------------------------------------------
   266 // Queries for voice mail box number
   267 // Queries for voice mail box number
   267 // ---------------------------------------------------------------------------
   268 // ---------------------------------------------------------------------------
   268 //
   269 //
   269 EXPORT_C void CPsetCallDiverting::VoiceMailQueryL( TDes& /*aTelNumber*/ )
   270 EXPORT_C void CPsetCallDiverting::VoiceMailQueryL( TDes& aTelNumber )
   270     {
   271     {
   271     __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VoiceMailQueryL" );
   272     __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VoiceMailQueryL" );
       
   273     RVmbxNumber vmbxConnection;
       
   274     TBool vmbxNrChanged = ETrue;
       
   275     TInt retValue = iDivert->OpenVmbxLC( aTelNumber, vmbxConnection );
       
   276     __PHSLOGSTRING1("[PHS]    CPsetCallDiverting::VoiceMailQueryL: aTelNumber = %S", &aTelNumber );
       
   277     __PHSLOGSTRING1("[PHS]    CPsetCallDiverting::VoiceMailQueryL: retValue = %d", retValue );
       
   278 
       
   279     if ( retValue == KErrNotFound )
       
   280         {
       
   281         vmbxNrChanged = vmbxConnection.QueryNumberL( EVmbxNotDefinedQuery, aTelNumber );
       
   282         }
       
   283     else if ( retValue != KErrNone )
       
   284         {
       
   285         //Problem with vmbx application, better leave.
       
   286         User::Leave( retValue );
       
   287         }
       
   288     if ( !vmbxNrChanged )
       
   289         {
       
   290         User::Leave( KErrCancel );
       
   291         }
       
   292     CleanupStack::PopAndDestroy(); // vmbxConnection
   272 
   293 
   273     __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VoiceMailQueryL" );
   294     __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VoiceMailQueryL" );
   274     }
   295     }
   275 
   296 
   276 // ---------------------------------------------------------------------------
   297 // ---------------------------------------------------------------------------
   277 // Queries for voice mail box number
   298 // Queries for voice mail box number
   278 // ---------------------------------------------------------------------------
   299 // ---------------------------------------------------------------------------
   279 //
   300 //
   280 EXPORT_C void CPsetCallDiverting::VideoMailQueryL( TDes& /*aTelNumber*/ )
   301 EXPORT_C void CPsetCallDiverting::VideoMailQueryL( TDes& aTelNumber )
   281     {
   302     {
   282     __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VideoMailQueryL" );
   303     __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VideoMailQueryL" );
       
   304     RVmbxNumber vmbxConnection;
       
   305     TBool vmbxNrChanged = ETrue;
       
   306     TInt retValue = OpenVideoMailboxLC( aTelNumber, vmbxConnection );
       
   307     __PHSLOGSTRING1("[PHS]    CPsetCallDiverting::VideoMailQueryL: aTelNumber = %S", &aTelNumber );
       
   308     __PHSLOGSTRING1("[PHS]    CPsetCallDiverting::VideoMailQueryL: retValue = %d", retValue );
       
   309 
       
   310     if ( retValue == KErrNotFound )
       
   311         {
       
   312         vmbxNrChanged = vmbxConnection.QueryVideoMbxNumberL( EVmbxNotDefinedQuery, aTelNumber );
       
   313         }
       
   314     else if ( retValue != KErrNone )
       
   315         {
       
   316         //Problem with vmbx application, better leave.
       
   317         User::Leave( retValue );
       
   318         }
       
   319     if ( !vmbxNrChanged )
       
   320         {
       
   321         User::Leave( KErrCancel );
       
   322         }
       
   323     CleanupStack::PopAndDestroy(); // vmbxConnection
   283 
   324 
   284     __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VideoMailQueryL" );
   325     __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VideoMailQueryL" );
   285     }    
   326     }    
   286     
   327     
   287 // ---------------------------------------------------------------------------
   328 // ---------------------------------------------------------------------------
   288 // Opens Vmbx. Leaves vmbx to the stack. 
   329 // Opens Vmbx. Leaves vmbx to the stack. 
   289 // ---------------------------------------------------------------------------
   330 // ---------------------------------------------------------------------------
   290 //
   331 //
   291 TInt CPsetCallDiverting::OpenVideoMailboxLC( TDes& /*aTelNumber*/, RVmbxNumber& /*aVmbx*/ )
   332 TInt CPsetCallDiverting::OpenVideoMailboxLC( TDes& aTelNumber, RVmbxNumber& aVmbx )
   292     {
   333     {
   293     return 0;
   334     __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::OpenVideoMailboxLC" );
       
   335     User::LeaveIfError( aVmbx.Open( iPhone ) );
       
   336     CleanupClosePushL( aVmbx );         
       
   337 	__PHSLOGSTRING("[PHS]<-- CPsetCallDiverting::OpenVideoMailboxLC" );
       
   338     return aVmbx.GetVideoMbxNumber( aTelNumber );
   294     }
   339     }
   295     
   340     
   296 // End of File
   341 // End of File