vmbx/vmbxengine/inc/voicemailboximpl.h
changeset 19 e44a8c097b15
parent 12 ae8abd0db65c
equal deleted inserted replaced
15:d7fc66ccd6fb 19:e44a8c097b15
     1 /*
     1 /*
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
     3 * All rights reserved.
     3 * All rights reserved.
     4 * This component and the accompanying materials are made available
     4 * This component and the accompanying materials are made available
     5 * under the terms of "Eclipse Public License v1.0"
     5 * under the terms of "Eclipse Public License v1.0"
     6 * which accompanies this distribution, and is available
     6 * which accompanies this distribution, and is available
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
    39 
    39 
    40 /**
    40 /**
    41 *  Implemets mailbox entry base class functionality
    41 *  Implemets mailbox entry base class functionality
    42 *
    42 *
    43 *  @lib vmbxengine.lib
    43 *  @lib vmbxengine.lib
    44 *  @since S60 v5.2
       
    45 */
    44 */
    46 NONSHARABLE_CLASS( CVoiceMailboxImpl ) : public CBase,
    45 NONSHARABLE_CLASS( CVoiceMailboxImpl ) : public CBase,
    47                          public MVmbxChangeObserver,
    46                          public MVmbxChangeObserver,
    48                          public MVmbxResourceProvider
    47                          public MVmbxResourceProvider
    49     {
    48     {
    68 public: // New functions
    67 public: // New functions
    69 
    68 
    70     /**
    69     /**
    71      * see CVoiceMailbox::GetStoredEntry
    70      * see CVoiceMailbox::GetStoredEntry
    72      * 
    71      * 
    73      * @since S60 v5.2
       
    74      */
    72      */
    75     TInt GetStoredEntry( const TVoiceMailboxParams& aParams,
    73     TInt GetStoredEntry( const TVoiceMailboxParams& aParams,
    76                                     CVoiceMailboxEntry*& aEntry ) const;
    74                                     CVoiceMailboxEntry*& aEntry ) const;
    77 
    75 
    78     /**
    76     /**
    79      * see CVoiceMailbox::SaveEntry
    77      * see CVoiceMailbox::SaveEntry
    80      * 
    78      * 
    81      * @since S60 v5.2
       
    82      */
    79      */
    83     TInt SaveEntry( const CVoiceMailboxEntry& aEntry );
    80     TInt SaveEntry( const CVoiceMailboxEntry& aEntry );
    84 
    81 
    85     /**
    82     /**
    86      * see CVoiceMailbox::QueryNewEntry
    83      * see CVoiceMailbox::QueryNewEntry
    87      * 
    84      * 
    88      * @since S60 v5.2
       
    89      */
    85      */
    90     TInt QueryNewEntry( const TVoiceMailboxParams& aParams,
    86     TInt QueryNewEntry( const TVoiceMailboxParams& aParams,
    91                                         CVoiceMailboxEntry*& aEntry );
    87                                         CVoiceMailboxEntry*& aEntry );
    92 
    88 
    93     /**
    89     /**
    94      * see CVoiceMailbox::QueryChangeEntry
    90      * see CVoiceMailbox::QueryChangeEntry
    95      * 
    91      * 
    96      * @since S60 v5.2
       
    97      */
    92      */
    98     TInt QueryChangeEntry( const TVoiceMailboxParams& aParams,
    93     TInt QueryChangeEntry( const TVoiceMailboxParams& aParams,
    99                                     CVoiceMailboxEntry*& aEntry);
    94                                     CVoiceMailboxEntry*& aEntry);
   100 
    95 
   101     /**
    96     /**
   102      * see CVoiceMailbox::QueryVmbxType
    97      * see CVoiceMailbox::QueryVmbxType
   103      * 
    98      * 
   104      * @since S60 v5.2
       
   105      */
    99      */
   106     TInt QueryVmbxType( TVoiceMailboxParams& aParams );
   100     TInt QueryVmbxType( TVoiceMailboxParams& aParams );
   107 
   101 
   108     /**
   102     /**
   109      * see CVoiceMailbox::NotifyVmbxNumberChangeL
   103      * see CVoiceMailbox::NotifyVmbxNumberChangeL
   110      * 
   104      * 
   111      * @since S60 v5.2
       
   112      */
   105      */
   113     void NotifyVmbxNumberChangeL( MVoiceMailboxObserver& aObserver,
   106     void NotifyVmbxNumberChangeL( MVoiceMailboxObserver& aObserver,
   114                                      const TBool aNotifyOnActiveLineOnly );
   107                                      const TBool aNotifyOnActiveLineOnly );
   115 
   108 
   116     /**
   109     /**
   117      * see CVoiceMailbox::NotifyVmbxNumberChangeCancel
   110      * see CVoiceMailbox::NotifyVmbxNumberChangeCancel
   118      * 
   111      * 
   119      * @since S60 v5.2
       
   120      */
   112      */
   121     void NotifyVmbxNumberChangeCancel();
   113     void NotifyVmbxNumberChangeCancel();
   122 
   114 
   123     /**
   115     /**
   124      * see CVoiceMailbox::CheckConfiguration
   116      * see CVoiceMailbox::CheckConfiguration
   129                                  const TInt aFlags );
   121                                  const TInt aFlags );
   130 
   122 
   131     /**
   123     /**
   132      * see CVoiceMailbox::GetServiceIds
   124      * see CVoiceMailbox::GetServiceIds
   133      * 
   125      * 
   134      * @since S60 v5.2
       
   135      */
   126      */
   136     TInt GetServiceIds( RIdArray& aProfileIds );
   127     TInt GetServiceIds( RIdArray& aProfileIds );
   137 
   128 
   138     /**
   129     /**
   139      * see CVoiceMailbox::GetVmbxImage
   130      * see CVoiceMailbox::GetVmbxImage
   140      * 
   131      * 
   141      * @since S60 v5.2
       
   142      */
   132      */
   143     //CGulIcon* GetVmbxImage( const TVoiceMailboxParams& aParams );
   133     //CGulIcon* GetVmbxImage( const TVoiceMailboxParams& aParams );
   144 
   134 
   145     /**
   135     /**
   146      * see CVoiceMailbox::GetVmbxImages
   136      * see CVoiceMailbox::GetVmbxImages
   147      * 
   137      * 
   148      * @since S60 v5.2
       
   149      */
   138      */
   150     //CArrayPtr<CGulIcon>* GetVmbxImages(
   139     //CArrayPtr<CGulIcon>* GetVmbxImages(
   151     //                        RArray<TVoiceMailboxParams>& aParams );
   140     //                        RArray<TVoiceMailboxParams>& aParams );
   152 
   141 
   153     /**
   142     /**
   154      * see CVoiceMailbox::SaveProvisionedEntry
   143      * see CVoiceMailbox::SaveProvisionedEntry
   155      * 
   144      * 
   156      * @since S60 v5.2
       
   157      */
   145      */
   158     TInt SaveProvisionedEntry( const CVoiceMailboxEntry& aEntry );
   146     TInt SaveProvisionedEntry( const CVoiceMailboxEntry& aEntry );
   159 
   147 
   160 
   148 
   161 public:  // From MVmbxChangeObserver
   149 public:  // From MVmbxChangeObserver
   162 
   150 
   163     /**
   151     /**
   164      * see MVmbxChangeObserver::SatRefreshL
   152      * see MVmbxChangeObserver::SatRefreshL
   165      * 
   153      * 
   166      * @since S60 v5.2
       
   167      */
   154      */
   168     void SatRefreshL();
   155     void SatRefreshL();
   169 
   156 
   170     /**
   157     /**
   171      * see MVmbxChangeObserver::CenRepChangedL
   158      * see MVmbxChangeObserver::CenRepChangedL
   172      * 
   159      * 
   173      * @since S60 v5.2
       
   174      */
   160      */
   175     void CenRepChangedL( TVmbxCenRepKey aId );
   161     void CenRepChangedL( TVmbxCenRepKey aId );
   176 
   162 
   177     /**
   163     /**
   178      * see MVmbxChangeObserver::SimStoreChangedL
   164      * see MVmbxChangeObserver::SimStoreChangedL
   179      * 
   165      * 
   180      * @since S60 v5.2
       
   181      */
   166      */
   182     void SimStoreChangedL();
   167     void SimStoreChangedL();
   183 
   168 
   184 public:  // From MVmbxChangeObserver
   169 public:  // From MVmbxChangeObserver
   185 
   170 
   186     /**
   171     /**
   187      * Get Handler of VmbxUiUtilities
   172      * Get Handler of VmbxUiUtilities
   188      *
   173      *
   189      * @since S60 v5.2
       
   190      * @return Refereance of MVmbxUiUtilities
   174      * @return Refereance of MVmbxUiUtilities
   191      */
   175      */
   192     MVmbxUiUtilities& VmbxUiUtilities();
   176     MVmbxUiUtilities& VmbxUiUtilities();
   193 
   177 
   194     /**
   178     /**
   195      * Get Handler of VmbxCenrepHandler
   179      * Get Handler of VmbxCenrepHandler
   196      *
   180      *
   197      * @since S60 v5.2
       
   198      * @return Refereance of MVmbxCenrepHandler
   181      * @return Refereance of MVmbxCenrepHandler
   199      */
   182      */
   200     MVmbxCenrepHandler& VmbxCenRepHandler();
   183     MVmbxCenrepHandler& VmbxCenRepHandler();
   201 
   184 
   202 
   185 
   209     CVoiceMailboxImpl();
   192     CVoiceMailboxImpl();
   210 
   193 
   211     /**
   194     /**
   212      * ConstructL
   195      * ConstructL
   213      *
   196      *
   214      * @since S60 v5.2
       
   215      */
   197      */
   216     void ConstructL();
   198     void ConstructL();
   217 
   199 
   218     /**
   200     /**
   219      * Retrieves voice mailbox entry for the specified service.
   201      * Retrieves voice mailbox entry for the specified service.
   220      * Leave - KErrNotFound if no entry available 
   202      * Leave - KErrNotFound if no entry available 
   221      *       - KErrArgument when illegal argument
   203      *       - KErrArgument when illegal argument
   222      *       - Other system wide errors.
   204      *       - Other system wide errors.
   223      *
   205      *
   224      * @since S60 v5.2
       
   225      * @param in Params Service id and type of the mailbox for which
   206      * @param in Params Service id and type of the mailbox for which
   226      *          a number/address should be defined.
   207      *          a number/address should be defined.
   227      * @param out aEntry If successful, a new result container is
   208      * @param out aEntry If successful, a new result container is
   228      *  created and ownership passed to the caller.
   209      *  created and ownership passed to the caller.
   229      */
   210      */
   246      *         - KErrArgument When illegal argument.
   227      *         - KErrArgument When illegal argument.
   247      *         - KErrNotSupported if not capable or allowed to execute this
   228      *         - KErrNotSupported if not capable or allowed to execute this
   248      *              for the specified mailbox.
   229      *              for the specified mailbox.
   249      *         - Other system wide errors.
   230      *         - Other system wide errors.
   250      *
   231      *
   251      * @since S60 v5.2
       
   252      * @param in aParams Service id and type of the mailbox for which
   232      * @param in aParams Service id and type of the mailbox for which
   253      *          a number/address should be defined.
   233      *          a number/address should be defined.
   254      * @param out aEntry If successful, a new result container is
   234      * @param out aEntry If successful, a new result container is
   255      *  created and ownership passed to the caller.
   235      *  created and ownership passed to the caller.
   256      */
   236      */
   266      *
   246      *
   267      * Some mailbox types may not support saving all arguments.
   247      * Some mailbox types may not support saving all arguments.
   268      * In that case unsupported arguments are ignored.
   248      * In that case unsupported arguments are ignored.
   269      * This method may display related UI notes or queries.
   249      * This method may display related UI notes or queries.
   270      *
   250      *
   271      * @since S60 v5.2
       
   272      * @param in aEntry The vmbx entry to save.
   251      * @param in aEntry The vmbx entry to save.
   273      */
   252      */
   274     void SaveEntryL( const CVoiceMailboxEntry& aEntry );
   253     void SaveEntryL( const CVoiceMailboxEntry& aEntry );
   275 
   254 
   276     /**
   255     /**
   289      *         - KErrArgument When illegal argument.
   268      *         - KErrArgument When illegal argument.
   290      *         - KErrNotSupported if not capable or allowed to execute this
   269      *         - KErrNotSupported if not capable or allowed to execute this
   291      *              for the specified mailbox.
   270      *              for the specified mailbox.
   292      *         - Other system wide errors.
   271      *         - Other system wide errors.
   293      *
   272      *
   294      * @since S60 v5.2
       
   295      * @param in aParams Service id and type of the mailbox.
   273      * @param in aParams Service id and type of the mailbox.
   296      * @param out aEntry If successful, a new result container is
   274      * @param out aEntry If successful, a new result container is
   297      */
   275      */
   298     void QueryChangeEntryL( const TVoiceMailboxParams& aParams,
   276     void QueryChangeEntryL( const TVoiceMailboxParams& aParams,
   299                                     CVoiceMailboxEntry*& aEntry);
   277                                     CVoiceMailboxEntry*& aEntry);
   306      *         - KErrNotFound if there is no defined voice number and
   284      *         - KErrNotFound if there is no defined voice number and
   307      *             user have selected the type to define or the default
   285      *             user have selected the type to define or the default
   308      *             type given.
   286      *             type given.
   309      *         - Other system wide errors.
   287      *         - Other system wide errors.
   310      *
   288      *
   311      * @since S60 v5.2
       
   312      * @param out aParams If successful,
   289      * @param out aParams If successful,
   313      *          contains selected mailbox info.
   290      *          contains selected mailbox info.
   314      */
   291      */
   315     void QueryVmbxTypeL( TVoiceMailboxParams& aParams );
   292     void QueryVmbxTypeL( TVoiceMailboxParams& aParams );
   316 
   293 
   317     /**
   294     /**
   318      * Get defined entries via an array
   295      * Get defined entries via an array
   319      * Leave with symbian OS error code except KErrNotFound and KErrSupported.
   296      * Leave with symbian OS error code except KErrNotFound and KErrSupported.
   320      *
   297      *
   321      * @since S60 v5.2
       
   322      * @param out aArray array contains the defined entries
   298      * @param out aArray array contains the defined entries
   323      */
   299      */
   324     void GetDefinedEntriesL( RPointerArray<CVoiceMailboxEntry>& aArray );
   300     void GetDefinedEntriesL( RPointerArray<CVoiceMailboxEntry>& aArray );
   325 
   301 
   326     /**
   302     /**
   327      * Get defined voice entry via an array
   303      * Get defined voice entry via an array
   328      *  Leave with symbian OS error code except KErrSupported.
   304      *  Leave with symbian OS error code except KErrSupported.
   329      *
   305      *
   330      * @since S60 v5.2
       
   331      * @param out aArray array contains the defined entries
   306      * @param out aArray array contains the defined entries
   332      */
   307      */
   333     void GetDefinedVoiceEntryL( 
   308     void GetDefinedVoiceEntryL( 
   334                             RPointerArray<CVoiceMailboxEntry>& aArray );
   309                             RPointerArray<CVoiceMailboxEntry>& aArray );
   335 
   310 
   336     /**
   311     /**
   337      * Get defined video entry via an array
   312      * Get defined video entry via an array
   338      * Leave with symbian OS error code except KErrNotFound and KErrSupported.
   313      * Leave with symbian OS error code except KErrNotFound and KErrSupported.
   339      *
   314      *
   340      * @since S60 v5.2
       
   341      * @param out ay array contains the defined entries
   315      * @param out ay array contains the defined entries
   342      */
   316      */
   343     void GetDefinedVideoEntryL( 
   317     void GetDefinedVideoEntryL( 
   344                             RPointerArray<CVoiceMailboxEntry>& aArray );
   318                             RPointerArray<CVoiceMailboxEntry>& aArray );
   345 
   319 
   346     /**
   320     /**
   347      * Get defined voip entries via an array
   321      * Get defined voip entries via an array
   348      * Leave with symbian OS error code except KErrNotFound and KErrSupported.
   322      * Leave with symbian OS error code except KErrNotFound and KErrSupported.
   349      *
   323      *
   350      * @since S60 v5.2
       
   351      * @param out aArray array contains the defined entries
   324      * @param out aArray array contains the defined entries
   352      */
   325      */
   353     void GetDefinedVoipEntriesL( 
   326     void GetDefinedVoipEntriesL( 
   354                             RPointerArray<CVoiceMailboxEntry>& aArray );
   327                             RPointerArray<CVoiceMailboxEntry>& aArray );
   355 
   328 
   356     /**
   329     /**
   357      * Checks the Voice Mailbox how many VoIP service Ids
   330      * Checks the Voice Mailbox how many VoIP service Ids
   358      * Leave with symbian OS error code
   331      * Leave with symbian OS error code
   359      *
   332      *
   360      * @since S60 v5.2
       
   361      * @param out aProfileIds
   333      * @param out aProfileIds
   362      * @return KErrNone if get service Ids successfully.
   334      * @return KErrNone if get service Ids successfully.
   363      */
   335      */
   364     void GetServiceIdsL( RIdArray& aProfileIds );
   336     void GetServiceIdsL( RIdArray& aProfileIds );
   365 
   337 
   367      * Retrieves an image associated with the specified mailbox,
   339      * Retrieves an image associated with the specified mailbox,
   368      * if an image is available.
   340      * if an image is available.
   369      * Image can be displayed e.g. in a selection list.
   341      * Image can be displayed e.g. in a selection list.
   370      * Leave with symbian OS error code.
   342      * Leave with symbian OS error code.
   371      *
   343      *
   372      * @since S60 v5.2
       
   373      * @param in aParams Mailbox service id and type for which image is needed.
   344      * @param in aParams Mailbox service id and type for which image is needed.
   374      * @return aImage New image. Ownership is transferred.
   345      * @return aImage New image. Ownership is transferred.
   375      */
   346      */
   376     //CGulIcon* GetVmbxImageL( const TVoiceMailboxParams& aParams );
   347     //CGulIcon* GetVmbxImageL( const TVoiceMailboxParams& aParams );
   377 
   348 
   385      * corresponding to the index of the service id in the input
   356      * corresponding to the index of the service id in the input
   386      * array aMailboxServices.
   357      * array aMailboxServices.
   387      * NULL array pointer is returned if not a signle icon was retrieved
   358      * NULL array pointer is returned if not a signle icon was retrieved
   388      * successfully.
   359      * successfully.
   389      *
   360      *
   390      * @since S60 v5.2
       
   391      * @param in aParams Mailboxes (id and type) for which an image is needed.
   361      * @param in aParams Mailboxes (id and type) for which an image is needed.
   392      * @return aImage Icons for the specified mailboxes.
   362      * @return aImage Icons for the specified mailboxes.
   393      *          Index of an image in the returned array corresponds to the
   363      *          Index of an image in the returned array corresponds to the
   394      *          index of the service id in the input array.
   364      *          index of the service id in the input array.
   395      *          Array and icon ownerships are transferred to caller.
   365      *          Array and icon ownerships are transferred to caller.
   401 
   371 
   402     /**
   372     /**
   403      * Notify entry changed
   373      * Notify entry changed
   404      * Leave with symbian OS error code.
   374      * Leave with symbian OS error code.
   405      *
   375      *
   406      * @since S60 v5.2
       
   407      * @param in aType Type of TVmbxType
   376      * @param in aType Type of TVmbxType
   408      */
   377      */
   409     void NotifyChangedL( TVmbxType aType);
   378     void NotifyChangedL( TVmbxType aType);
   410 
   379 
   411     /**
   380     /**
   417      *         - Other system wide errors.
   386      *         - Other system wide errors.
   418      *
   387      *
   419      * Some mailbox types may not support saving all arguments.
   388      * Some mailbox types may not support saving all arguments.
   420      * In that case unsupported arguments are ignored.
   389      * In that case unsupported arguments are ignored.
   421      *
   390      *
   422      * @since S60 v5.2
       
   423      * @param in aEntry The provisioned vmbx entry to save.
   391      * @param in aEntry The provisioned vmbx entry to save.
   424      */
   392      */
   425     void SaveProvisionedEntryL( const CVoiceMailboxEntry& aEntry );
   393     void SaveProvisionedEntryL( const CVoiceMailboxEntry& aEntry );
       
   394 
       
   395     /**
       
   396      * Check number provisioned or not
       
   397      * Leave if systrm wide errors
       
   398      *
       
   399      * @param in aParams params of TVoiceMailboxParams
       
   400      */
       
   401     void CheckNumberProvisionedL( const TVoiceMailboxParams& aParams );
   426 
   402 
   427 protected: // data
   403 protected: // data
   428 
   404 
   429     /**
   405     /**
   430      * Pointer to CVmbxUiUtilities
   406      * Pointer to CVmbxUiUtilities