cellular/telephonysettings/xqbindings/psetwrapper/src/psetcalldivertingwrapper.cpp
changeset 31 a2467631ae02
parent 13 e32024264ebb
child 32 1f002146abb4
equal deleted inserted replaced
27:7eb70891911c 31:a2467631ae02
   198     
   198     
   199     DPRINT << ": OUT";
   199     DPRINT << ": OUT";
   200 }
   200 }
   201 
   201 
   202 /*!
   202 /*!
   203   PSetCallDivertingWrapper::getVoiceMailBoxNumber
   203  * PSetCallDivertingWrapper::getVoiceMailBoxNumber
   204  */
   204  * @param aNumber empty if not set
   205 void PSetCallDivertingWrapper::getVoiceMailBoxNumber(QString &aVmbxNumber)
   205  * @return -1 if not supported
       
   206  */
       
   207 int PSetCallDivertingWrapper::getVoiceMailBoxNumber(
       
   208         QString &aNumber, PsService aService)
   206 {
   209 {
   207     DPRINT << ": IN";
   210     DPRINT << ": IN";
   208 
   211 
   209     CVoiceMailboxEntry* psetVoiceMailboxEntry = NULL;
   212     CVoiceMailboxEntry* psetVoiceMailboxEntry = NULL;
   210     CVoiceMailbox* psetVoiceMailBoxScoped = NULL;
   213     CVoiceMailbox* psetVoiceMailBoxScoped = NULL;
   211     QT_TRAP_THROWING(psetVoiceMailBoxScoped = CVoiceMailbox::NewL());
   214     QT_TRAP_THROWING(psetVoiceMailBoxScoped = CVoiceMailbox::NewL());
   212     QScopedPointer<CVoiceMailbox> psetVoiceMailBox(psetVoiceMailBoxScoped);
   215     QScopedPointer<CVoiceMailbox> psetVoiceMailBox(psetVoiceMailBoxScoped);
   213 
   216 
   214     TVoiceMailboxParams psetVoiceMailboxParams;
   217     TVoiceMailboxParams psetVoiceMailboxParams;
   215     // Selected mailbox type is voice
   218     // Selected mailbox type is voice
   216     psetVoiceMailboxParams.iType = EVmbxVoice;
   219     psetVoiceMailboxParams.iType = m_Priv->convert(aService);
   217     psetVoiceMailboxEntry = 0;
   220     psetVoiceMailboxEntry = 0;
   218     TInt error = psetVoiceMailBox->GetStoredEntry( psetVoiceMailboxParams, psetVoiceMailboxEntry );
   221     int ret = 0;
   219     if ( KErrNone == error ) {
   222     TInt error = psetVoiceMailBox->GetStoredEntry(
       
   223             psetVoiceMailboxParams, psetVoiceMailboxEntry);
       
   224     DPRINT << "error: " << error;
       
   225     if (KErrNotSupported == error) {
       
   226         ret = -1;
       
   227     } else if (KErrNone == error) {
   220         // Entry ok, check the number
   228         // Entry ok, check the number
   221         TPtrC ptrNumber( KNullDesC );
   229         TPtrC ptrNumber(KNullDesC);
   222         if ( KErrNone == psetVoiceMailboxEntry->GetVmbxNumber( ptrNumber )) {
   230         if (KErrNone == psetVoiceMailboxEntry->GetVmbxNumber(ptrNumber)) {
   223             // number ok
   231             // number ok
   224             aVmbxNumber = QString::fromUtf16(ptrNumber.Ptr(),
   232             aNumber = QString::fromUtf16(ptrNumber.Ptr(),
   225                     ptrNumber.Length());
   233                     ptrNumber.Length());
   226             }
   234         }
   227         }
   235         
   228       else if ( KErrNotFound == error ) {
   236     } else {
       
   237         // illegal argument
       
   238     }
       
   239 
       
   240     delete psetVoiceMailboxEntry; // Entry ownership was transferred
       
   241     psetVoiceMailboxEntry = NULL;
       
   242 
       
   243     DPRINT << "aVmbxNumber: " << aNumber;
       
   244     DPRINT << ": OUT";
       
   245     return ret;
       
   246 }
       
   247 
       
   248 /*!
       
   249  * PSetCallDivertingWrapper::queryVoiceMailBoxNumber
       
   250  * @param aNumber empty if not set
       
   251  * @return -1 if not supported
       
   252  */
       
   253 int PSetCallDivertingWrapper::queryVoiceMailBoxNumber(
       
   254         QString &aNumber, PsService aService)
       
   255 {
       
   256     DPRINT << ": IN";
       
   257 
       
   258     CVoiceMailboxEntry* psetVoiceMailboxEntry = NULL;
       
   259     CVoiceMailbox* psetVoiceMailBoxScoped = NULL;
       
   260     QT_TRAP_THROWING(psetVoiceMailBoxScoped = CVoiceMailbox::NewL());
       
   261     QScopedPointer<CVoiceMailbox> psetVoiceMailBox(psetVoiceMailBoxScoped);
       
   262 
       
   263     TVoiceMailboxParams psetVoiceMailboxParams;
       
   264     // Selected mailbox type is voice
       
   265     psetVoiceMailboxParams.iType = m_Priv->convert(aService);
       
   266     psetVoiceMailboxEntry = 0;
       
   267     int ret = 0;
       
   268     TInt error = psetVoiceMailBox->GetStoredEntry(
       
   269             psetVoiceMailboxParams, psetVoiceMailboxEntry);
       
   270     
       
   271     if (KErrNotSupported == error) {
       
   272         ret = -1;
       
   273     } else if (KErrNone == error || KErrNotFound == error) {
   229         // No number defined, query new entry from user
   274         // No number defined, query new entry from user
   230         error = psetVoiceMailBox->QueryNewEntry( psetVoiceMailboxParams, psetVoiceMailboxEntry );
   275         error = psetVoiceMailBox->QueryNewEntry(
   231 
   276                 psetVoiceMailboxParams, psetVoiceMailboxEntry);
   232         if ( KErrNone == error ) {
   277 
       
   278         if (KErrNone == error) {
   233             // Save new entry and get the number.
   279             // Save new entry and get the number.
   234             error = psetVoiceMailBox->SaveEntry( *psetVoiceMailboxEntry );
   280             error = psetVoiceMailBox->SaveEntry( *psetVoiceMailboxEntry );
   235             TPtrC ptrNumber( KNullDesC );
   281             TPtrC ptrNumber( KNullDesC );
   236             if ( KErrNone == psetVoiceMailboxEntry->GetVmbxNumber( ptrNumber )) {
   282             if ( KErrNone == psetVoiceMailboxEntry->GetVmbxNumber( ptrNumber )) {
   237                 // New number ok.
   283                 // New number ok.
   238                 aVmbxNumber = QString::fromUtf16(ptrNumber.Ptr(),
   284                 aNumber = QString::fromUtf16(ptrNumber.Ptr(),
   239                         ptrNumber.Length());
   285                         ptrNumber.Length());
   240                 }
       
   241             } else {
       
   242                 // New number not given.
       
   243                 DPRINT << "New number error: " << error;
       
   244             }
   286             }
   245         }
   287         
   246     else {
   288         } else {
       
   289             // New number not given.
       
   290             DPRINT << "New number error: " << error;
       
   291         }
       
   292     } else {
   247         // illegal argument 
   293         // illegal argument 
   248         DPRINT << "error: " << error;
   294         DPRINT << "error: " << error;
   249         }
   295     }
   250 
   296 
   251     delete psetVoiceMailboxEntry; // Entry ownership was transferred
   297     delete psetVoiceMailboxEntry; // Entry ownership was transferred
   252     psetVoiceMailboxEntry = NULL;
   298     psetVoiceMailboxEntry = NULL;
   253 
   299 
   254     DPRINT << "aVmbxNumber: " << aVmbxNumber;
   300     DPRINT << "aVmbxNumber: " << aNumber;
   255     DPRINT << ": OUT";
   301     DPRINT << ": OUT";
       
   302     return ret;
   256 }
   303 }
   257 
   304 
   258 /*!
   305 /*!
   259   PSetCallDivertingWrapper::validateDivertNumber
   306   PSetCallDivertingWrapper::validateDivertNumber
   260  */
   307  */