messagingappbase/msgavkon/muiu_internal/servicesinternal/inc/MuiuMsvUiServiceUtilitiesInternal.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/msgavkon/muiu_internal/servicesinternal/inc/MuiuMsvUiServiceUtilitiesInternal.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,288 @@
+/*
+* Copyright (c) 2002 - 2005 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: MuiuMsvUiServiceUtilitiesInternal declaration
+*
+*/
+
+
+
+
+#ifndef __MSVUISERVICEUTILITIESINTERNAL_H__
+#define __MSVUISERVICEUTILITIESINTERNAL_H__
+
+// INCLUDES
+#include <msvipc.h>
+#include <commonphoneparser.h>
+
+// DATA TYPES
+/// Address types used inside messaging application
+enum TMuiuAddressType
+ {
+ EMuiuAddressTypeNone, // Address does not exist or type is not any of below values
+ EMuiuAddressTypePhoneNumber,
+ EMuiuAddressTypeEmail
+ };
+
+
+// FORWARD DECLARATIONS
+class CMsvSession;
+class RFs;
+class CEikonEnv;
+class CMsgVoIPExtension;
+/**
+* Static class to help service handling.
+*/
+class MsvUiServiceUtilitiesInternal
+ {
+ public:
+
+ /**
+ * Messaging application viewer or other application may call to sender or
+ * higlighted address when send key is pressed or in other situation.
+ * This function makes the decision whether voice or VoIP
+ * call is done. For more information about usage see CallToSenderQueryL(),
+ * CallServiceL(), InternetCallToSenderQueryL() and InternetCallServiceL().
+ * @param aSenderAddress: Sender's address number. Calling voice call to email
+ * address is not supported.
+ * Address must be pure address i.e. alias must not be part of it.
+ * @param aSenderName: Sender name
+ * @param aAddressInFocus: Address which is highlighted in message.
+ * Calling voice call to email address is not supported.
+ * Address must be pure address i.e. alias must not be part of it.
+ * @param aDialWithoutQueries: If this parameter is true and calling to sender
+ * is chosen, then call immediately to sender of the message and
+ * doesn't ask nothing from user before it.
+ * @return Returns ETrue if the address was valid.
+ */
+ IMPORT_C static TBool InternetOrVoiceCallServiceL(
+ const CMsgVoIPExtension& aVoIPExtension,
+ const TDesC& aSenderAddress,
+ const TDesC& aSenderName,
+ const TDesC& aAddressInFocus = KNullDesC,
+ TBool aDialWithoutQueries = ETrue,
+ CEikonEnv* aEnv = NULL );
+
+ /**
+ * Messaging application viewer or other application may call to sender or
+ * higlighted address when send key is pressed or in other situation.
+ * This function makes the decision whether voice or VoIP
+ * call is done. For more information about usage see CallToSenderQueryL(),
+ * CallServiceL(), InternetCallToSenderQueryL() and InternetCallServiceL().
+ * @param aSenderAddress: Sender's address number. Calling voice call to email
+ * address is not supported.
+ * Address must be pure address i.e. alias must not be part of it.
+ * @param aSenderName: Sender name
+ * @param aSenderAddressType address type of sender
+ * @param aAddressInFocus: Address which is highlighted in message.
+ * Calling voice call to email address is not supported.
+ * Address must be pure address i.e. alias must not be part of it.
+ * @param aAddressInFocusType address type of focused address
+ * @param aDialWithoutQueries: If this parameter is true and calling to sender
+ * is chosen, then call immediately to sender of the message and
+ * doesn't ask nothing from user before it.
+ * @return Returns ETrue if the address was valid.
+ */
+ IMPORT_C static TBool InternetOrVoiceCallServiceL(
+ CEikonEnv& aEnv,
+ const CMsgVoIPExtension& aVoIPExtension,
+ const TDesC& aSenderAddress,
+ const TDesC& aSenderName,
+ TMuiuAddressType aSenderAddressType,
+ const TDesC& aAddressInFocus = KNullDesC,
+ TMuiuAddressType aAddressInFocusType = EMuiuAddressTypeNone,
+ TBool aDialWithoutQueries = ETrue );
+
+ /**
+ * Used when asking from user if calling to sender of the message and dial to sender
+ * if user select "Yes". Check immediately if phone number is valid. If phone number
+ * is not valid then return EFalse and doesn't do nothing.If parameter "aDialWithoutQueries"
+ * is true then call immediately to sender of the message and doesn't ask nothing from user before it.
+ * @param aNumber: Phone number.
+ * @param aName: Name
+ * @param aDialWithoutQueries: If this parameter is true then call immediately
+ * to sender of the message and doesn't ask nothing from user before it.
+ * @return Returns ETrue if the phone number was valid.
+ */
+ IMPORT_C static TBool CallToSenderQueryL(
+ const TDesC& aNumber,
+ const TDesC& aName,
+ TBool aDialWithoutQueries = ETrue );
+
+ /**
+ * When SMS viewer or MMS viewer is open it is possible to call
+ * back to sender or phone number which is currently highlighted
+ * in message. If user select Send-key then CAknListQueryDialog
+ * is opened with items "Back to sender" and currently highlighted
+ * phone number and with soft keys "Call" and "Cancel". If item
+ * "Back to sender" is selected and user select "Call" then function
+ * call "CallToSenderQueryL" function with parameters "aSenderNumber"
+ * and "aSenderName".
+ * If currently highlighted item is selected and user select "Call"
+ * then function call "CallToSenderQueryL" function with parameters "aSenderNumber"
+ * and KNullDesC. If no phone number is highlighted in message and user
+ * select Send-key then function launch the normal call query.
+ * @param aSenderNumber: Sender phone number.
+ * @param aSenderName: Sender name
+ * @param aNumberInFocus: Phone number which is highlighted in message
+ * @return Returns ETrue if the phone number was valid.
+ */
+ IMPORT_C static TBool CallServiceL(
+ const TDesC& aSenderNumber,
+ const TDesC& aSenderName,
+ const TDesC& aNumberInFocus = KNullDesC,
+ CEikonEnv* aEnv = NULL );
+
+ /**
+ * Used when asking from user if calling to sender of the message and dial to sender
+ * if user select "Yes". Assumes allways that Internet call number is valid and
+ * ETrue returned. If parameter "aDialWithoutQueries"
+ * is true then call immediately to sender of the message and doesn't ask nothing from user before it.
+ * @since 3.0
+ * @param aNumber: Phone number.
+ * @param aName: Name
+ * @param aDialWithoutQueries: If this parameter is true then call immediately
+ * to sender of the message and doesn't ask nothing from user before it.
+ * @return Returns ETrue.
+ */
+ IMPORT_C static TBool InternetCallToSenderQueryL(
+ const TDesC& aNumber,
+ const TDesC& aName,
+ TBool aDialWithoutQueries = ETrue );
+
+ /**
+ * When SMS viewer or MMS viewer is open it is possible to call
+ * back to sender or phone number which is currently highlighted
+ * in message. If user select Send-key then CAknListQueryDialog
+ * is opened with items "Back to sender" and currently highlighted
+ * phone number and with soft keys "Call" and "Cancel". If item
+ * "Back to sender" is selected and user select "Call" then function
+ * call "CallToSenderQueryL" function with parameters "aSenderNumber"
+ * and "aSenderName".
+ * If currently highlighted item is selected and user select "Call"
+ * then function call "CallToSenderQueryL" function with parameters "aSenderNumber"
+ * and KNullDesC. If no phone number is highlighted in message and user
+ * select Send-key then function launch the normal call query.
+ * @since 3.0
+ * @param aSenderNumber: Sender phone number.
+ * @param aSenderName: Sender name
+ * @param aNumberInFocus: Phone number which is highlighted in message
+ * @return Returns ETrue if the phone number was valid.
+ */
+ IMPORT_C static TBool InternetCallServiceL(
+ const TDesC& aSenderNumber,
+ const TDesC& aSenderName,
+ const TDesC& aNumberInFocus = KNullDesC,
+ CEikonEnv* aEnv = NULL );
+
+ /**
+ * Sets message store to phone's internal memory.
+ * This function is possible to use for example in situation
+ * where current drive is memory card and memory card is not in use.
+ * @param aSession: reference to CMsvSession object
+ *
+ */
+ IMPORT_C static void ChangeMessageStoreToPhoneL( CMsvSession& aSession );
+
+ /**
+ * Check if iUnicueID of memory card is same than uniqueid of
+ * memory card in message server.
+ * @param aSession: reference to CMsvSession object
+ * @return Returns ETrue if iUniqueID of memory card is same than
+ * memory card unique id in message server.
+ *
+ */
+ IMPORT_C static TBool MmcDriveInfoL( CMsvSession& aSession );
+
+ /**
+ * Returns id of the default service of certain mtm type.
+ * @param aSession: reference to CMsvSession object
+ * @param aMtm: uid of the mtm type to be searched.
+ * @param aFindFirstServiceIfNoDefault: if true returns first service
+ * if no default set.
+ * @return TMsvId of the default service.
+ * KMsvUnknownServiceIndexEntryId if no default service.
+ */
+ IMPORT_C static TMsvId DefaultServiceForMTML(
+ CMsvSession& aSession,
+ TUid aMtm,
+ TBool aFindFirstServiceIfNoDefault );
+
+ /**
+ * Sets default service for the certain mtm type.
+ * @param aSession: reference to CMsvSession object
+ * @param aMtm: uid of the mtm type to be searched.
+ * @param aServiceId: id of the new default service.
+ */
+ IMPORT_C static void SetDefaultServiceForMTML(
+ CMsvSession& aSession,
+ TUid aMtm,
+ TMsvId aServiceId );
+
+ /**
+ * Checks if phone is in offline mode or not
+ * Make sure that offline feature has been checked
+ * using feature manager
+ *
+ * @return ETrue if phone is in offline mode
+ * Otherwise EFalse.
+ */
+ IMPORT_C static TBool IsPhoneOfflineL();
+
+ /**
+ * Resolves type of given address
+ * Phone number is checked by CommonPhoneParser.
+ * Email address is checked by MsvUiServiceUtilities
+ * @param aAddress address to check
+ * @param aDefaultPhoneNumberType subtype of phone number check
+ * @return TMuiuAddressType
+ */
+ IMPORT_C static TMuiuAddressType ResolveAddressTypeL(
+ const TDesC& aAddress,
+ CommonPhoneParser::TPhoneNumberType aDefaultPhoneNumberType =
+ CommonPhoneParser::EPhoneClientNumber);
+
+ /**
+ * Converts UTC time to local time
+ *
+ * @param aTime Utc time that is converted to local time on return.
+ */
+ IMPORT_C static void ConvertUtcToLocalTime( TTime& aTime );
+
+ /**
+ * Compares two phone numbers.
+ * @param aNumber1
+ * @param aNumber2
+ * @return ETrue if numbers are same, EFalse if numbers are different.
+ */
+ IMPORT_C static TBool ComparePhoneNumberL(
+ const TDesC& aNumber1, const TDesC& aNumber2, TInt aCompareLength = -1);
+ IMPORT_C static TBool OtherEmailMTMExistL( CMsvSession& aSession, TInt aMailbox = 0 );
+
+ private:
+ /**
+ * Launch CMuiuListQueryDialog
+ * @param aGroupedNumberPtr Phone number
+ * which is groupped before it goes to dialog
+ * @param aIndex tell which item is selected when dialog is closed
+ * @return command id of dialog:
+ * return 1 if user select some item in the list,
+ * return 0 if user cancel selection
+ */
+ static TInt LaunchDialogL( const TPtr aGroupedNumberPtr, TInt* aIndex );
+
+ };
+
+#endif //__MSVUISERVICEUTILITIES_H__
+
+// End of file