--- a/phonesrv_plat/voice_mailbox_number_api/inc/vmnumber.h Thu Aug 19 10:28:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1415 +0,0 @@
-/*
-* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Interface for fetching/saving the vmbx number and querying
-* for it.
-* Also notify on a number change is supported.
-*
-*/
-
-
-#ifndef VMNUMBER_H
-#define VMNUMBER_H
-
-// INCLUDES
-/*****************************************************
-* Series 60 Customer / ETel
-* Series 60 ETel API
-*****************************************************/
-#include <etelmm.h>
-#include <etelsat.h>
-#include <mmtsy_names.h>
-
-#include <PhCltTypes.h> // from PhoneClient
-
-#include <MSSSettingsObserver.h>
-#include <msatrefreshobserver.h>
-#include <rsatsession.h>
-#include <rsatrefresh.h>
-#include <centralrepository.h>
-#include <cenrepnotifyhandler.h>
-#include <aknappui.h>
-#include <AknQueryDialog.h>
-#include <CPhCltEmergencyCall.h> // CPhCltEmergencyCall
-#include <MPhCltEmergencyCallObserver.h>
-
-// FORWARD DECLARATIONS
-
-class CVmSPSHandler;
-
-// CONSTANTS
-
-
-_LIT( KEmptyVoiceMailNumber, "" );
-
-enum TVmbxQueryType
- {
- EVmbxNotDefinedQuery, // use this
- EVmbxChangeNumberQuery // this is only for vmbx application
- };
-
-enum TVmbxNumberEntry
- {
- EAlsActiveLineEntry = 0, // currently active ALS line
- EAlsLine1Entry = 1, // ALS primary line
- EAlsLine2Entry = 2 // ALS auxiliary line
- };
-
-enum TVmbxAlsLine
- {
- EAlsLine1 = 1,
- EAlsLine2 = 2
- };
-
-enum TVmbxPhonebookOperation
- {
- EVmbxPhonebookGetInfo,
- EVmbxPhonebookRead,
- EVmbxPhonebookWrite,
- EVmbxPhonebookDelete
- };
-
-
-enum TVmbxMemoryLocation
- {
- EVmbxSimMemory = 0,
- EVmbxPhoneMemory
- };
-
-_LIT( KVmbxPanicCategory, "RVmbxNumber");
-
-enum TVmbxPanic
- {
- EVmbxNotConnected = 0,
- EVmbxDescriptorTooSmall = 1,
- EVmbxNumberTooLong = 2,
- EVmbxNoNotifyHandler = 3,
- EVmbxNoCoeEnv = 4,
- EVmbxUnhandledOperation = 5
- };
-
-enum TVmbxSimNumAcceptance
- {
- EVmbxSimNumNotAccepted = 0,
- EVmbxSimNumAccepted
- };
-
-enum TVmbxUserEditIndicator
- {
- EVmbxNotUserEdit = 0,
- EVmbxUserEdit,
- EvmbxPhoneMemForcedEdit
- };
-
-const TInt KVmbxMaxNumberLength = KPhCltTelephoneNumberLength;
-const TInt KVmbxMaxAddressLength = 100;
-
-// Phonebook entry name length
-const TInt KVmbxPhoneBookEntryNameLength = 5;
-
-// Branding id
-const TInt KVmSettingsUiBrandingIdLength = 512;
-
-// Publish & Subscribe property category definition
-
-enum TVmbxNumType
- {
- EVmbxMDN,
- EVmbxMIN
- };
-
-enum TVmbxType
- {
- EVmbx,
- EVmbxIP,
- EVmbxVideo,
- EVmbxNone
- };
-
-enum TVmbxTitle
- {
- EVmbxCall,
- EVmbxDefine
- };
-
-// Phonebook types (VMBX = 6f17)
-enum TVmSimPhoneBookTypes
- {
- EVMBXPhoneBook = 0,
- EMBDNPhoneBook
- };
-
-
-// FORWARD DECLARATIONS
-class CVmTextQueryDialog;
-class CCoeEnv;
-class CVPbkContactManager;
-class CPhCntSingleItemFetch;
-class CVMSimQueryDilaog;
-class CVmListQueryDialog;
-class CVmBSHandler;
-// CLASS DECLARATION
-
-/**
-* TVmbxEntry
-* Contains vmbx sim entry data.
-*
-* @lib vmbx.lib
-* @since 2.0
-**/
-class TVmbxEntry
- {
- public: // Constructors and destructor
-
- /**
- * C++ default constructor.
- */
- TVmbxEntry() : iIndex( 0 )
- {
- iTelNumber.FillZ();
- iTelNumber.Zero();
- };
-
- public: // Data
-
- // Data index
- TInt iIndex;
-
- // Telefony number
- TBuf16<KVmbxMaxNumberLength> iTelNumber;
-
- // Phonebook entry name
- TBuf16<KVmbxPhoneBookEntryNameLength> iText;
- };
-
-/**
-* MVmbxNotifyHandler
-*
-* @lib vmbx.lib
-* @since
-**/
-class MVmbxNotifyHandler
- {
- public:
- /**
- * Does the action user wants when a vmbx number has been changed.
- * If the parameter aNotifyOnActiveLineOnly was ETrue in notify request,
- * only a change of the vmbx number of the active ALS line causes
- * calling this.
- *
- * @param aLine ALS line of which number was changed ( 1 or 2 )
- * @param aValue the new vmbx number of that line.
- * (this reference is only valid in scope of this method)
- */
- virtual void HandleNotifyL( TInt aLine, const TDesC& aValue ) = 0;
- };
-
-
-/**
- * Observer interface for ServiceNotifier.
- *
- * @since S60 3.2
- **/
-class MServiceNotifyHandler
- {
- public:
-
- /**
- * Called when a Service profile has been changed.
- */
- virtual void HandleServiceNotifyL() = 0;
- };
-
-/**
-* MVmbxAlsObserver
-*
-* @lib vmbx.lib
-* @since
-**/
-class MVmbxAlsObserver
- {
- public:
- /**
- * Does the action user wants when the active ALS line has been changed.
- *
- * @param aLine new ALS line number ( 1 or 2 )
- **/
- virtual void HandleAlsChangeL( TVmbxAlsLine aLine ) = 0;
-
- };
-
-
-/**
- * TVmbxServiceInfo, contains Service information.
- *
- * @since S60 3.2
- **/
-class TVmbxServiceInfo
- {
- public: // Constructors and destructor
-
- TVmbxServiceInfo()
- {
- iServiceId = 0;
- iSnapId = 0;
- }
-
- public: // Data
-
- // Service's Id
- TUint iServiceId;
-
- // Service's SNAP Id
- TUint32 iSnapId;
-
- // Service's name.
- TBuf<64> iName;
-
- // Service's address.
- TBuf<KVmbxMaxAddressLength> iAddress;
- };
-
-
-/**
- * TVmbxServiceSelection, contains selected service information.
- *
- * @since S60 3.2
- **/
-class TVmbxServiceSelection
- {
- public: // Constructors and destructor
-
- TVmbxServiceSelection( TVmbxType aServiceType = EVmbxNone,
- TUint aServiceId = 0 )
- {
- iServiceType = aServiceType;
- iServiceId = aServiceId;
- }
-
- public: // Data
-
- // Service type
- TVmbxType iServiceType;
-
- // Service Id
- TUint iServiceId;
-
- };
-
-
-/**
-* RVmbxNumber
-*
-* @lib vmbx.lib
-* @since
-**/
-class RVmbxNumber : public MCenRepNotifyHandlerCallback,
- public MSSSettingsObserver,
- public MSatRefreshObserver,
- public MPhCltEmergencyCallObserver
- {
- public:
- /**
- * status for QueryNumberL.
- * EVmQueryNormal Query number running normal case
- * EVmQueryProcess Query number running FOREVER case
- */
- enum TVmVmQueryStatusType
- {
- EVmQueryNormal = 0,
- EVmQueryProcess
- };
-
- public:
-
- /**
- * C++ default constructor.
- */
- IMPORT_C RVmbxNumber();
-
- /**
- * Destructor.
- */
- IMPORT_C ~RVmbxNumber();
-
- public: // New functions
-
- /**
- * Opens the resources needed. This or the other overloaded Open() has to
- * be called successfully before doing anything else.
- *
- * ----------------------------------------------------------------------
- * A new ETel connection is opened when using this method!
- * ----------------------------------------------------------------------
- *
- * @return Symbian OS error code (KErrNone is successful)
- **/
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- IMPORT_C TInt Open();
-
- /**
- * Opens the resources needed. This or the other overloaded Open() has to
- * be called successfully before doing anything else.
- *
- * Use this overload if you already have ETel connection.
- *
- * ----------------------------------------------------------------------
- * An existing ETel connection is used when using this method!
- * ----------------------------------------------------------------------
- *
- * @param aPhone Phone client
- * @return Symbian OS error code (KErrNone is successful)
- **/
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- IMPORT_C TInt Open( RMobilePhone& aPhone );
-
- /**
- * Fetches the specified vmbx number. If there is no vmbx number
- * saved for the specified ALS line, parameter aNumber remains unchanged
- * and the return value is KErrNotFound.
- *
- * @param aNumber vmbx number is saved here (must be room for at least
- * KVmbxMaxNumberLength characters)
- *
- * @param aEntry determines which vmbx number entry is used:
- * EAlsLine1Entry = vmbx number entry of primary line
- * EAlsLine2Entry = vmbx number entry of secondary line
- * EAlsActiveLineEntry = entry of currently active line
- *
- * @return - KErrNone if the number was found.
- * aNumber will contain the vmbx number.
- *
- * - KErrNotFound if the number is not defined
- *
- * - Other error code if there was a problem in getting
- * the number. Clients should show error note if this happens.
- **/
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- IMPORT_C TInt GetVmbxNumber( TDes& aNumber,
- TVmbxNumberEntry aEntry = EAlsActiveLineEntry );
-
- /**
- * Check wether the voice mailbox number can be changed. If the number
- * cannot be edited, the QueryNumberL leaves with and SaveVmbxNumber
- * returns KErrAccessDenied.
- * @since 2.7
- * @return ETrue if editing is allowed.
- * EFalse if editing is forbidden.
- */
- IMPORT_C TBool AllowedToChangeTheNumber();
-
- /**
- * Puts a query on the screen asking for a voice mailbox number.
- *
- * IMPORTANT:
- *
- * Other subsystems than voice mailbox application should call this
- * ONLY IF GetVmbxNumber() returned KErrNotFound. Also, only the
- * parameter EVmbxNotDefinedQuery should be used outside the voice
- * mailbox application.
- *
- * @param aQueryType type of the query, alternatives:
- * - EVmbxNotDefinedQuery
- * (use this when no vmbx number is defined)
- *
- * - EVmbxChangeNumberQuery
- * @param aNumber Initial value for the query, AND the result value
- * of an accepted query. (must be room for at least
- * KVmbxMaxNumberLength characters. Not allowed to
- * contain longer initial value than
- * KVmbxMaxNumberLength)
- * @param aShowQuery When this is set and the sim has support for vmbx
- * number the user is shown a list query by which the
- * storage of sim number can be decided
- *
- * @return ETrue if the query was accepted and the vmbx number saved.
- * This is the case also when user saves empty number!
- * EFalse if the user canceled the query. No vmbx number changed.
- **/
- IMPORT_C TBool QueryNumberL( TVmbxQueryType aQueryType, TDes& aNumber,
- TBool aShowQuery = EFalse );
-
- /**
- * Saves the vmbx number. (in phone file system and SIM)
- *
- * @param aNumber vmbx number ( max length is KVmbxMaxNumberLength )
- * @param aEntry determines in which entry the number is saved:
- * EAlsLine1Entry = vmbx number entry of ALS primary line
- * EAlsLine2Entry = vmbx number entry of ALS secondary line
- * EAlsActiveLineEntry = entry of currently active ALS line
- *
- * @return Symbian OS error code (KErrNone is successful)
- **/
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- IMPORT_C TInt SaveVmbxNumber( const TDesC& aNumber,
- TVmbxNumberEntry aEntry );
-
- /**
- * Saves vmbx number to Sim
- * @since
- * @param aNumber Vmbx number
- * @param aEntry Als line entry
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt SaveVmbxNumberToSim( const TDesC& aNumber,
- TVmbxNumberEntry aEntry );
-
- /**
- * Saves vmbx number to phone memory
- * @since
- * @param aNumber Vmbx number
- * @param aEntry Als line entry
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt SaveVmbxNumberToPhone( const TDesC& aNumber,
- TVmbxNumberEntry aEntry );
-
- /**
- * Issues a notify request on a vmbx number change.
- * User's HandleNotifyL() will be called whenever the vmbx number has
- * been changed by any subsystem. Only one notify request can be done
- * per one RVmbxNumber object simultaneously. When issuing a notify
- * request while one is active already, only parameters aHandler and
- * aNotifyOnActiveLineOnly are updated in existing request.
- *
- * @param aHandler user's notify handler
- * @param aNotifyOnActiveLineOnly if this is ETrue, notify events will
- * be generated only if the vmbx number of the active ALS line is
- * changed, not if the number of the other line is changed. When
- * there is no ALS support, this has no effect ie. notification
- * will be generated always.
- *
- * Leaves if the notify request could not be done.
- **/
- IMPORT_C void NotifyVmbxNumberChangeL( MVmbxNotifyHandler* aHandler,
- TBool aNotifyOnActiveLineOnly );
-
- /**
- * Cancels a notify request on a vmbx number change.
- **/
- IMPORT_C void NotifyVmbxNumberChangeCancel();
-
- /**
- * Gets the currently active ALS line number ( 1 or 2 ).
- * Information is fetched from supplementary settings client.
- * @param aLineNumber line number is returned here. If ALS is not
- * supported, value 1 is returned.
- * @return Symbian OS error code (KErrNone is successful)
- **/
- IMPORT_C TInt GetAlsLine( TInt& aLineNumber ) const;
-
- /**
- * Issues a notify request on active ALS line change. A callback to
- * user's code is made when the ALS line is changed. The notify request
- * remains active as long as it is canceled with
- * NotifyAlsLineChangeCancel(), ie. it is not canceled when the ALS line
- * is changed. Implementation uses SharedData's notify system.
- * Leaves if the notify request could not be done.
- * @param aObserver user's observer
- **/
- IMPORT_C void NotifyAlsLineChangeL( MVmbxAlsObserver* aObserver );
-
- /**
- * Cancels a notify request on ALS line change.
- **/
- IMPORT_C void NotifyAlsLineChangeCancel();
-
- /**
- * Closes the resources allocated in Open().
- *
- * Cancels all issued notify requests.
- **/
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- IMPORT_C void Close();
-
-
- /**
- * Puts a query on the screen asking for a voice mailbox address.
- * @since 3.0
- *
- * IMPORTANT:
- *
- * Other subsystems than voice mailbox application should call this
- * ONLY IF GetVmbxNumber() returned KErrNotFound. Also, only the
- * parameter EVmbxNotDefinedQuery should be used outside the voice
- * mailbox application.
- *
- * @param aQueryType type of the query, alternatives:
- * - EVmbxNotDefinedQuery
- * (use this when no vmbx address is defined)
- *
- * - EVmbxChangeNumberQuery
- * @param aNumber Initial value for the query, AND the result value
- * of an accepted query. (must be room for at least
- * KVmbxMaxAddressLength characters. Not allowed to
- * contain longer initial value than
- * KVmbxMaxAddressLength)
- * @return ETrue if the query was accepted and the vmbx address saved.
- * This is the case also when user saves empty address!
- * EFalse if the user canceled the query. No vmbx address
- * changed.
- **/
- IMPORT_C TBool QueryAddressL( TVmbxQueryType aQueryType,
- TDes& aNumber );
-
- /**
- * Puts a popup on the screen asking for which type of Vmbx is used.
- * @since 3.0
- * @param aTitle Vmbx title type ( call / define ).
- * @return which type of Vmbx is selected.
- */
- IMPORT_C TInt SelectTypeL( TBool aTitle );
-
- /**
- * Save address.
- * @since 3.0
- * @param aAddress includes saved vmbx address
- * @return Symbian OS error code (KErrNone is successful)
- **/
- IMPORT_C TInt SaveVmbxAddressL( TDes& aAddress );
-
- /**
- * Check if VoIP profiles exists.
- * @since 3.0
- * @return ETrue if there is at least one VoIP profile, otherwise EFalse
- */
- IMPORT_C TBool IsVoIPProfilesFound();
-
- /**
- * Check if VoIP voice mailbox services exists
- * @since 5.0
- * @return ETrue if there is at least one service, otherwise EFalse
- */
- IMPORT_C TBool IsIpVoiceMailboxServices();
-
- /**
- * Fetches the specified video mailbox number. If there is no video
- * mailbox number saved for the specified ALS line, parameter aNumber
- * remains unchanged and the return value is KErrNotFound.
- * @since 3.1
- * @param aNumber video mailbox number is saved here (must be room for
- * at least KVmbxMaxNumberLength characters)
- * @param aEntry determines which video mbx number entry is used:
- * EAlsLine1Entry = video mbx number entry of primary line
- * EAlsLine2Entry = video mbx number entry of secondary line
- * EAlsActiveLineEntry = entry of currently active line
- * @return - KErrNone if the number was found.
- * aNumber will contain the video mbx number.
- *
- * - KErrNotFound if the number is not defined
- *
- * - Other error code if there was a problem in getting
- * the number. Clients should show error note if this happens.
- **/
- IMPORT_C TInt GetVideoMbxNumber( TDes& aNumber,
- TVmbxNumberEntry aEntry = EAlsActiveLineEntry );
-
- /**
- * Puts a query on the screen asking for a video mailbox number.
- * @since 3.1
- *
- * IMPORTANT:
- *
- * Other subsystems than voice mailbox application should call this
- * ONLY IF GetVideoMbxNumber() returned KErrNotFound. Also, only the
- * parameter EVmbxNotDefinedQuery should be used outside the voice
- * mailbox application.
- *
- * @param aQueryType type of the query, alternatives:
- * - EVmbxNotDefinedQuery
- * (use this when no vmbx number is defined)
- * - EVmbxChangeNumberQuery
- * @param aNumber Initial value for the query, AND the result value
- * of an accepted query. (must be room for at least
- * KVmbxMaxNumberLength characters. Not allowed to
- * contain longer initial value than
- * KVmbxMaxNumberLength)
- * @return ETrue if the query was accepted and the vmbx number saved.
- * This is the case also when user saves empty number!
- * EFalse if the user canceled the query. No vmbx number changed.
- **/
- IMPORT_C TBool QueryVideoMbxNumberL( TVmbxQueryType aQueryType,
- TDes& aNumber );
-
- /**
- * Saves the vmbx number. (in phone file system)
- * @since 3.1
- * @param aNumber video mbx number ( max length is KVmbxMaxNumberLength )
- * @param aEntry determines in which entry the number is saved:
- * EAlsLine1Entry = video mbx number entry of ALS primary
- * line
- * EAlsLine2Entry = video mbx number entry of ALS secondary
- * line
- * EAlsActiveLineEntry = entry of currently active ALS line
- * @return Standard Symbian OS errorcode.
- * KErrNone if number was successfully saved.
- **/
- IMPORT_C TInt SaveVideoMbxNumber( const TDesC& aNumber,
- TVmbxNumberEntry aEntry );
-
- /**
- * Returns if the memory location for vmbx is sim memory
- * @since 3.0
- * @return ETrue if the vmbx number should be stored in the SIM
- * EFalse otherwise.
- */
- IMPORT_C TBool IsSimMemory();
-
- /**
- * Fetches vmbx address from SPS.
- * @since 3.0
- * @param aAddress vmbx address is saved here (must be room for at least
- * KVmbxMaxAddressLength characters).
- * @return - KErrNone if the address was found.
- * aNumber will contain the vmbx address.
- *
- * - KErrNotFound if the address is not defined
- *
- * - Other error code if there was a problem in getting
- * the address. Clients should show error note if this happens.
- */
- IMPORT_C TInt GetVmbxAddressL( TDes& aAddress );
-
- /**
- * Fetches vmbx address from SPS.
- * @since 3.2
- * @param aAddress vmbx address is saved here (must be room for at least
- * KVmbxMaxAddressLength characters).
- * @param aServiceId Used Service Id
- * @return General symbian error code.
- */
- IMPORT_C TInt GetVmbxAddress( TDes& aAddress, TUint aServiceId );
-
- /**
- * Puts a popup on the screen asking for which type of Vmbx is used.
- * @since 3.2
- * @param aTitle Vmbx title type ( call / define ).
- * @param aServiceId On completion, contains selected service's
- * Service Id. If CS or Video Vmbx selected, value is 1, otherwise
- * service's value is dynamic.
- * @return which type of Vmbx is selected.
- */
- IMPORT_C TInt SelectTypeL( TBool aTitle, TUint& aServiceId );
-
- /**
- * Service Ids getter
- * @since 3.2
- * @param aProfileIds On completion, contains all Service Ids.
- * @return General symbian error code.
- */
- IMPORT_C TInt GetServiceIds( RArray<TUint>& aProfileIds );
-
- /**
- * Service info getter
- * @since 3.2
- * @param aServiceInfo On completion, contains Service information
- * @return General symbian error code.
- */
- IMPORT_C TInt GetServiceInfo( TVmbxServiceInfo& aServiceInfo );
-
- /**
- * Issues a notify request on a Service profile change.
- * @param aHandler User's notify handler
- */
- IMPORT_C void NotifyServiceChange( MServiceNotifyHandler* aHandler );
-
- /**
- * Cancels a notify request on a Service profile change.
- */
- IMPORT_C void NotifyServiceChangeCancel();
-
- /**
- * Get Service's Brand Id
- * @since S60 3.2
- * @param aServiceId Used Service Id
- * @param aBrandId On completion, contains Brand Id
- */
- IMPORT_C void BrandIdL( TInt aServiceId, TDes8& aBrandId );
-
- /**
- * Branded icon getter
- * @since S60 3.2
- * @param aBrandingId Used branding Id
- * @param aBrandedBitmap Bitmap for branded icon
- * @param aBrandedBitmapMask Mask to branded icon
- */
- IMPORT_C void GetBrandedIconL( const TDesC8& aBrandingId,
- CFbsBitmap*& aBrandedBitmap,
- CFbsBitmap*& aBrandedBitmapMask );
-
- /**
- * Construct default icons(CS, Video and VoIP)
- * @since S60 3.2
- * @param aIcons On completion, contains created icons
- */
- IMPORT_C void ConstructDefaultIconsL( CArrayPtr<CGulIcon>* aIcons );
-
- private:
-
- /**
- * Add brand icon if it exist.
- * @since S60 3.2
- * @param aIcons On completion, contains new brand icon
- * @param aServiceId Used Service Id
- * @param aIconId On completion, contains branded icon's icon list id
- */
- void AddBrandIconL( CArrayPtr<CGulIcon>* aIcons, TUint aServiceId, TInt& aIconId );
-
- public: // Functions from base classes
-
- /**
- * From MCenRepNotifyHandlerCallback, to notify the client about
- * changes for string value keys
- **/
- void HandleNotifyString( TUint32 aKey, const TDesC16& aValue );
-
- /**
- * From MCenRepNotifyHandlerCallback, to notify the client about
- * changes in keys when the whole repository is listened for.
- **/
- void HandleNotifyGeneric( TUint32 aKey );
-
- /**
- * From MSSSettingsObserver, to notify changes in SS settings in phone
- **/
- void PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue );
-
- /**
- * From MVmbxAlsObserver:
- **/
- void HandleAlsChangeL( TVmbxAlsLine aLine );
- /**
- * Refresh query. Client should determine whether it allow the
- * refresh to happen.
- * @since 2.6
- * @param aType Refresh type.
- * @param aFiles Elementary files which are to be changed.
- * May be zero length.
- * @return ETrue to allow refresh, EFalse to decline refresh.
- */
- TBool AllowRefresh( TSatRefreshType aType, const TSatRefreshFiles& aFiles ) ;
-
- /**
- * Notification of refresh.
- * @since 2.6
- * @param aType Type of refresh which has happened.
- * @param aFiles List of elementary files which has been changed.
- * May be zero length.
- */
- void Refresh( TSatRefreshType aType, const TSatRefreshFiles& aFiles );
-
- private: // New functions
-
- /**
- * Routine to query SIM number
- * @since
- * @param aNumber Vmbx number
- * @param aEntry Als line entry
- * @return ETrue if user inserted number
- **/
- TBool QuerySimNumberL( TDes& aNumber,
- TVmbxNumberEntry aEntry = EAlsActiveLineEntry );
-
-
- /**
- * Loads the resources needed for queries and confirmation notes.
- * @since
- **/
- void LoadResourceL();
-
- /**
- * Shows a confirmation note after a saved vmbx number.
- * @param aResourceId Resource id
- **/
- void ShowConfirmationNoteL( TInt aResourceId ) const;
-
- /**
- * Verifies that the given string is a valid phone number.
- * Rules:
- *
- * - '+' is only allowed as the first character
- * - The phone number part must have 3-21 digits
- * @since
- * @param aNumber Vmbx number
- * @return ETrue if valid number
- **/
- TBool IsValidPhoneNumber( const TDesC& aNumber ) const;
-
- /**
- * Checks if a number is an emergency number.
- * @since
- * @param aNumber Vmbx number
- * @return ETrue if emergency number
- **/
- TBool IsEmergencyNumberL( const TDesC& aNumber );
-
- /**
- * Fetches information about the SIM phonebook for vmbx numbers.
- * Updates internal flags KVmFlagSimSupport and
- * KVmFlagPhonebookBeingCached.
- *
- * @return Phonebook's GetInfo() return code.
- **/
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- TInt PhoneBookInfo();
-
- /**
- * Does a vmbx phonebook operation
- *
- * If the phonebook is being cached, defined amount of retries are
- * made with 0.2 second delay in between.
- * @param aOperation Operation identifier
- * @param aEntry Vmbx entry (NULL)
- * @return Phonebook error code. Specifically, KErrInUse, if
- * the phonebook is still being cached after retries.
- **/
- TInt DoPhonebookOperation( TVmbxPhonebookOperation aOperation,
- TVmbxEntry* aEntry = NULL );
-
- // Prohibit copy constructor
- RVmbxNumber( const RVmbxNumber& );
-
- // Prohibit assigment operator
- RVmbxNumber& operator = ( const RVmbxNumber& );
-
- /**
- * Reads an entry from the ICC-based phonebook.
- * @since
- * @param aEntry Vmbx sim entry data
- **/
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- void PhonebookReadL( TVmbxEntry& aEntry );
-
- /**
- * Writes an entry into ICC-based phonebook.
- * @since
- * @param aEntry Vmbx sim entry data
- * @return Completion status of a request
- **/
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- TInt PhonebookWrite( TVmbxEntry& aEntry );
-
- /**
- * Removes an entry from ICC-based phonebook.
- * @since
- * @param aEntry Vmbx sim entry data
- * @return Completion status of a request
- **/
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- TInt PhonebookDelete( TVmbxEntry& aEntry );
-
- /**
- * Converts a phone number to western format
- * @param aDes Parameter to change
- **/
- void ConvertToWesternDigits( TDes& aDes ) const;
-
- /**
- * Create connection to ETel server
- * @since
- * @return KErrNone if success
- **/
- TInt ConnectETelServer();
-
- /**
- * Open phonebook's Single Fetch Dialog
- * @since
- * @param aPhoneNumber Phone number
- */
- void FetchNumberFromPhonebook2L( TDes& aPhoneNumber );
-
- /**
- * Handling of emergency dial result.
- * @since 3.2
- * @see MPhCltEmergencyCallObserver::HandleEmergencyDialL().
- */
- void HandleEmergencyDialL( const TInt aStatus );
-
- /**
- * Retrieves voice mailbox number from SIM/R-UIM
- * @since
- * @param aNumber Number
- * @param aLineNumber Line 1 or 2
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt GetVmNumFromSIM( TDes& aNumber, TInt aLineNumber );
-
- /**
- * Retrieves voice mailbox number from VMN summary info
- * @since
- * @param aNumber Number
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt GetVmNumFromVMN( TDes& aNumber );
-
- /**
- * Retrieves voice mailbox number from NAM
- * @since
- * @param aNumber Number
- * @param aNumType Number type (EVmbxMDN)
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt GetVmNumFromNamStore( TDes& aNumber, TInt aNumType = EVmbxMDN );
-
- /**
- * Retrieves voice mailbox number from Shared Data
- * @since
- * @param aNumber Number
- * @param aLineNumber Line 1 or 2
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt GetVmNumFromSD( TDes& aNumber, TInt aLineNumber );
-
- /**
- * Closes ETel resources
- * @since
- */
- void CloseETel();
-
- /**
- * Appends string from resource to descriptor array
- * @since
- * @param aResourceId Resource id
- * @param aArray String array
- */
- void AppendStrToArrayL( TInt aResourceId, CDesCArray& aArray );
-
- /**
- * Set query dialog header text from resource string
- * @since
- * @param aResourceId Resource id
- * @param aDlg Query dialog
- */
- void SetHeaderFromResourceL( TInt aResourceId, CAknQueryDialog& aDlg );
-
- /**
- * Subscribe SAT notifications
- * @since
- */
- void SubscribeSATNotificationsL();
-
- /**
- * Gets MBI-file settings from Sim. MBI-file identifies the usage
- * of the mailbox records settings
- * @since
- * @return ETrue if successed
- */
- TInt MailboxNumbersIdentifiers();
-
- /**
- * Reading and writing to sim are tested
- * @since
- */
- void TestAndSetSimAccessFlags();
-
- /**
- * The actual size for number must be determine from max length
- * returned from GetInfo-method and saved number length on Sim.
- * @param aSimNumberLength The length of the number read from sim.
- * @since
- */
- void CalculateActualMaxLengthOnSim( TInt aSimNumberLength );
-
- /**
- * Returns video support state
- * @since S60 3.2
- * return ETrue if supported
- */
- TBool VideoSupported();
-
- /**
- * Checks if writing to sim is prohibited
- * @since S60 3.2
- * return ETrue if writing is not allowed
- */
- TBool IsReadOnlySIM();
-
- /**
- * Checks is VMBX number defined in phone memory
- * @since S60 3.2
- * @param aLineNumber Line 1 or 2
- * @return ETrue if VMBX number defined in Phone memory
- */
- TBool VmbxNumDefInPhoneMemory( TInt aLineNumber);
-
- /**
- * Checks is the given number stored in phone memory
- * @since S60 3.2
- * @param aNumber The number checked
- * @param aLineNumber Line 1 or 2
- * @return ETrue if number stored in Phone memory
- */
- TBool NumStoredInPhone( const TDesC& aNumber, TInt aLineNumber );
-
- /**
- * Saves VMBX number to the backup store
- * @since S60 3.2
- * @param aNumber The number to be saved
- * @param aLineNumber Line 1 or 2
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt BackUpSimNumber( const TDesC& aNumber, TInt aLineNumber );
-
- /**
- * Fetches VMBX number from backup store
- * @since S60 3.2
- * @param aNumber number
- * @param aLineNumber Line 1 or 2
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt FetchSimNumberBackUp( TDes& aNumber, TInt aLineNumber );
-
- /**
- * Clears VMBX number from the phone memory
- * @since S60 3.2
- * @param aLineNumber Line 1 or 2
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt ClearVMBXNumberFromPhone( TInt aLineNumber );
-
- /**
- * Indicates if user has edited VMBX number
- * @since S60 3.2
- * @param aLineNumber Line 1 or 2
- * @return ETrue if VMBX is edited by user
- */
- TBool UserEditNumber( TInt aLineNumber );
-
- /**
- * Sets the flag indicating that the user has edited
- * VMBX number
- * @since S60 3.2
- * @param aLineNumber Line 1 or 2
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt SetUserEditNumber( TInt aLineNumber );
-
- /**
- * Resets the flag that indicates that the user has edited
- * VMBX number
- * @since S60 3.2
- * @param aLineNumber Line 1 or 2
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt ResetUserEditNumber( TInt aLineNumber );
-
- /**
- * Fetches VMBX number stored in SIM if number is
- * available
- * @since S60 3.2
- * @param aNumber number
- * @param aLineNumber Line 1 or 2
- * @return ETrue if number is fetched
- */
- TBool UseSimNumIfAvailable( TDes& aNumber, TInt aLineNumber );
-
- /**
- * Handles the updating of a number stores in phone memory
- * @since S60 3.2
- * @param aLineNumber Line 1 or 2
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt HandleNumberStores( TInt aLineNumber );
-
- /**
- * Returns if the SIM memory is used on ALS 1
- * @since 3.2
- * @return ETrue if the SIM memory is used to store ALS1 number
- * EFalse otherwise.
- */
- TBool UsesSimMemory();
-
- /**
- * check count of VMBX number
- * available
- * @since S60 3.2.2
- * @param out aDefinedNumber a count of defined numbers
- * @param out aDefinedFlag a flag of which voice mail services are defined
- * @param out aServiceId Id of selected service is set
- *
- * @return Type of Vmbx, if there is only one mailbox configured, otherwise EVmbxNone
- */
- TInt CheckDefinedNumberCountL( TInt& aDefinedNumber,
- TInt& aDefinedFlag, TUint& aServiceId );
-
- /**
- * Returns if VMBX number stored in phone memory via external clients
- * @since S60 3.2.3
- * @param aLineNumber Line 1 or 2
- * @return ETrue if number is stored in phone memory via
- * external clients
- * EFalse number is stored in phone memory via internal clients
- */
- TBool IsPhoneMemForcedEdit( const TInt aLineNumber );
-
- /**
- * Sets the flag indicating that external clients has edited
- * VMBX number
- * @since S60 3.2.3
- * @param aLineNumber Line 1 or 2
- * @return Symbian OS error code (KErrNone is successful)
- */
- TInt SetPhoneMemForcedEdit( TInt aLineNumber );
-
- /**
- * Displays a note with a text loaded from resource file.
- * @since S60 v5.2
- * @param aResourceId Resource id for loading text for note
- */
- void ShowInformationNoteL( const TInt aResourceId ) const;
-
- /**
- * Check whether the note should be shown
- * this check is done because phone client calls GetVmbxNumber
- * and then SelectTypeL, which causes note qtn_... to be shown twice
- * @since S60 v5.2
- * @return ETrue if the note should be shown
- */
- TBool IsNoNumberNoteAllowed();
-
- /**
- * Check whether the number had been edited in inactive line
- * @since S60 v5.2
- * @param aInactiveLineNumber the inactive line number
- * @return ETrue if the number had been edited in inactive line
- */
- TBool IsInactiveLineEdited( TInt& aInactiveLineNumber );
-
- private: // data
-
- // Observer for user action for saved vmbx number
- MVmbxNotifyHandler* iNotifyCallBack;
-
- // Observer for user action for als line
- MVmbxAlsObserver* iUserAlsObserver;
-
-
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- // Root telephony server session
- RTelServer iTelServer;
-
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- //Mobile phone client
- RMobilePhone iPhone;
-
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- //Phonebook client
- RMobilePhoneBookStore iPhoneBook;
-
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- // Multimode ETel phone book info structure that will
- // be used to retrieve data from phone book store.
- RMobilePhoneBookStore::TMobilePhoneBookInfoV1 iPhoneBookInfo;
-
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- // A package for the iPhoneBookInfo.
- RMobilePhoneBookStore::TMobilePhoneBookInfoV1Pckg iPhoneBookInfoPckg;
-
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- // A package for the iPhoneVoicemailInfo.
- RMobilePhone::TMobilePhoneVoicemailIdsV3 iPhoneVoicemailInfo;
-
- /*****************************************************
- * Series 60 Customer / ETel
- * Series 60 ETel API
- *****************************************************/
- // A package for the iPhoneVoicemailInfoPckg.
- RMobilePhone::TMobilePhoneVoicemailIdsV3Pckg iPhoneVoicemailInfoPckg;
-
- /*****************************************************
- * Series 60 Customer / RSAT
- * Series 60 RSAT API
- *****************************************************/
- RSatSession iRSatSession; //// Root RSATsession opening RSatClient
-
- /*****************************************************
- * Series 60 Customer / RSAT
- * Series 60 RSAT API
- *****************************************************/
- RSatRefresh iRSatClient; //RSatClient for notification of file changed.
-
- /*****************************************************
- * Series 60 Customer / RSAT
- * Series 60 RSAT API/ ETel
- * Series 60 ETel API
- *****************************************************/
- // A package for the TRefreshFileList.
- // list of files, waiting for notification.
- RSat::TRefreshFileList iObservedFileList;
-
- //Central repository observer
- CCenRepNotifyHandler* iNotifyHandler;
-
- //Central repository session
- CRepository* iSession;
-
- //SS setting
- RSSSettings iSsSettings;
-
- // Offset in resourse file
- TInt iResourceFileOffset;
-
- // Vmbx state flags
- TInt iFlags;
-
- // text query dialog
- CVmTextQueryDialog* iQuery; // owned
-
- // indicates if the RVmbxNumber was closed during a dialog
- TBool* iClosedPtr;
-
- // Control enviroment
- CCoeEnv* iCoeEnv; // not owned
-
- //PRI settings
- // nNumber options
- TInt iVmNumOpts;
-
- //Ui options
- TInt iVmUiOpts;
-
- // Synchronization state
- TBool iSynchronize;
-
- // Vmbx type
- TInt iType;
-
- // Memory location (sim/phone)
- TInt iMemoryLocation;
-
- // Sim query dialog
- CVMSimQueryDilaog* iVMSimQueryDialog;
-
- // Text query dialog
- CVmTextQueryDialog* iVideoQuery; // owned
-
- // voice mailbox type selection dialog
- CAknListQueryDialog* iTypeSelectionQuery; //owned
-
-
- TBool iAlphaStringFound;
- // Alpha string which is read from the SIM card
- HBufC* iAlphaStringFromSIM;
- // True if number in sim
- TBool iNumberFound;
- //Phonebook type
- TUint8 iPhoneBookType;
- //Number fetched from Sim when checking write protection
- TBuf<KVmbxMaxNumberLength> iNumberFromSim;
-
- //ETrue when first USim phonebook type is tested
- TBool iUSimFirstRoundTest;
-
-
- private:
-
- /**
- * True if Sim access rights are tested
- */
- TBool iStartUpTest;
-
- /**
- * For single item fetch
- */
- CPhCntSingleItemFetch* iCntFetch;
-
- /**
- * To test if mbdn number doesn't exist
- */
- TBool iNoNumberFound;
-
- /**
- * To test if number can be found from vmbx-phonebook
- */
- TBool iMbdnPhonebookOk;
-
- /**
- * querying state of QueryNumberL
- */
- TVmVmQueryStatusType iQueryingState;
-
- /**
- * Type and Id of mailboxes to list in iTypeSelectionQuery, Own
- */
- RArray<TVmbxServiceSelection> iVmbxServiceSelection;
-
- /**
- * Handles Service proviver Settings, Own.
- */
- CVmSPSHandler* iVmSpsHandler;
-
- /**
- * Handles Branding Server, Own.
- */
- CVmBSHandler* iVmBsHandler;
-
- /**
- * Feature manager is initialized
- */
- TBool iFeatMgrInitialized;
-
- /**
- * Sim card is whether found in ME
- */
- TBool iSimCardFound;
-
- };
-
-#endif // VMNUMBER_H
-
-// End of File