CSendUiImpl Class Reference
class CSendUiImpl : public CBase
|
Implementation of SendUI API
Can be used to show "Send" list query and to create and send messages via available services. Sending services can be based on the MTM or ECom architecture. Created messages are sent directly or message editor is opened for editing, depending on the type of selected service. sendui.lib
-
Since
-
S60 v3.0
Public Member Functions
|
|
~CSendUiImpl
()
|
void
|
AddTypedMenuItemL
(
CSendUi::TSendUiMenuType
, CEikMenuPane &,
TInt
,
TInt
,
TSendingCapabilities
)
|
void
|
AvailableServicesL
(
RPointerArray
<
CSendingServiceInfo
> &,
TUid
)
|
void
|
CreateAndSendMessageL
(
TUid
, const
CMessageData
*,
TBool
)
|
void
|
GetServicesL
()
|
TBool
|
IsEmailAppendableL
(
TMsvEntry
)
|
TBool
|
IsMailboxAvailableL
(void)
|
TBool
|
IsThirdPartyMailService
(
TUid
)
|
CSendUiImpl
*
|
NewL
()
|
TBool
|
QueryCapabilities
(
TInt
,
TSendingCapabilities
)
|
TInt
|
ResolveServiceIndex
(
TUid
)
|
TInt
|
SendMessageL
(
TUid
, const
CMessageData
*,
TBool
)
|
void
|
SendMessageViaServerL
(
TUid
, const
CMessageData
*,
TBool
)
|
TInt
|
ServiceCapabilities
(
TUid
,
TSendingCapabilities
&)
|
void
|
ShowTypedQueryAndSendL
(
CSendUi::TSendUiMenuType
, const
CMessageData
*,
TSendingCapabilities
,
CArrayFix
<
TUid
> *,
TBool
, const
TDesC
&)
|
TUid
|
ShowTypedQueryL
(
CSendUi::TSendUiMenuType
, const
CMessageData
*,
TSendingCapabilities
,
CArrayFix
<
TUid
> *, const
TDesC
&)
|
TUid
|
TechnologyType
(
TUid
)
|
TBool
|
ValidateAttachmentsL
(const
CMessageData
*)
|
Private Member Functions
|
|
CSendUiImpl
()
|
TBool
|
CanSendContentL
(
TUid
,
TUid
, const
CMessageData
*,
TDataType
*)
|
TBool
|
CheckServiceCapabilities
(
TUid
,
TSendingCapabilities
)
|
void
|
ConstructL
()
|
void
|
FeatureStatus
(
TInt
,
TInt
&,
TInt
)
|
void
|
FilterServicesL
(
CDesCArrayFlat
&,
CArrayFix
<
TUid
> &,
TSendingCapabilities
, const
CMessageData
*,
CSendUi::TSendUiMenuType
)
|
void
|
ResetIsSending
(
TAny
*)
|
TUid
|
ShowListQueryL
(MDesCArray *, const
CArrayFix
<
TUid
> &, const
TDesC
&,
CSendUi::TSendUiMenuType
)
|
void
|
SortListL
(
CDesCArrayFlat
&,
CArrayFix
<
TUid
> &)
|
Constructor & Destructor Documentation
CSendUiImpl()
CSendUiImpl
|
(
|
)
|
[private]
|
~CSendUiImpl()
~CSendUiImpl
|
(
|
)
|
[virtual]
|
Member Functions Documentation
AddTypedMenuItemL(CSendUi::TSendUiMenuType, CEikMenuPane &, TInt, TInt, TSendingCapabilities)
Adds menu item of given type to menupane.
Parameters
CSendUi::TSendUiMenuType
aMenuType
|
Type of the menu, e.g. "ESendMenu" or "EWriteMenu"
|
CEikMenuPane & aMenuPane
|
Menupane where the menu item should be added.
|
TInt
aIndex
|
The place of the menu item in menupane.
|
TInt
aCommandId
|
Command id for the menu item.
|
TSendingCapabilities
aRequiredCapabilities = KCapabilitiesForAllServices
|
Capabilities required by services to be shown in "Send" list query. If no capabilities are required (KCapabilitiesForAllServices), all available services are shown in "Send" list query.
|
AvailableServicesL(RPointerArray< CSendingServiceInfo > &, TUid)
Populates given list with the information about services provided by specified ECom service provider. Each service provider can provide 1..n services. Ownership of the pointed objects are transfered to caller.
Can be used for ex. when creating own "Send" menu, which needs to include ECom based services.
NOTE: Can be used only for ECom based services, also for MTMs
Parameters
RPointerArray
<
CSendingServiceInfo
> & aServiceList
|
Service list to be populated.
|
TUid
aServiceProvider = KNullUid
|
Id of the specified service provider. KNullId means all service providers. Service providers are defined in SendUiConsts.h
|
CanSendContentL(TUid, TUid, const CMessageData *, TDataType *)
Filtering services by their content
Parameters
TUid
aServiceUid
|
|
TUid
aServiceProviderUid
|
|
const
CMessageData
* aMessageData
|
Message data, which is base of the content filtering.
|
TDataType
* aMimeType
|
The mimetype of the first attachment.
|
CheckServiceCapabilities(TUid, TSendingCapabilities)
Compares ECom service sending capabilities to required capabilities.
-
Since
-
Series 60 3.0
Parameters
TUid
aServiceUid
|
Uid of the sending service.
|
TSendingCapabilities
aRequiredCapabilities
|
Capabilities required for the sending service.
|
ConstructL()
void
|
ConstructL
|
(
|
)
|
[private]
|
CreateAndSendMessageL(TUid, const CMessageData *, TBool)
void
|
CreateAndSendMessageL
|
(
|
TUid
|
aServiceUid,
|
|
const
CMessageData
*
|
aMessageData,
|
|
TBool
|
aLaunchEditorEmbedded = ETrue
|
|
)
|
|
Creates the message and launches the editor for editing the message or sends the message directly without opening the editor. Functionality depends on the type of selected service.
Parameters
TUid
aServiceUid
|
Uid of the sending service.
|
const
CMessageData
* aMessageData
|
Data for the message.
|
TBool
aLaunchEditorEmbedded = ETrue
|
|
FeatureStatus(TInt, TInt &, TInt)
void
|
FeatureStatus
|
(
|
TInt
|
aFeature,
|
|
TInt
&
|
aNewFeatures,
|
|
TInt
|
aFeatureFlag
|
|
)
|
[private]
|
Checks if the feature is supported by feature manager.
-
Since
-
Series 60 3.2.3
Parameters
TInt
aFeature
|
Feature manager id of the sending service.
|
TInt
& aNewFeatures
|
To keep track of which feature is modified
|
TInt
aFeatureFlag
|
Uid of the sending service used for central repository storage.
|
FilterServicesL(CDesCArrayFlat &, CArrayFix< TUid > &, TSendingCapabilities, const CMessageData *, CSendUi::TSendUiMenuType)
GetServicesL()
Copies sending service information from Central Repository to local data
IsEmailAppendableL(TMsvEntry)
Checks if Email entry is valid to be appended
IsMailboxAvailableL(void)
TBool
|
IsMailboxAvailableL
|
(
|
void
|
|
)
|
|
Checks if Device has any mailbox or not
IsThirdPartyMailService(TUid)
Checks if Device has any ThirdParty Mail Services or not
QueryCapabilities(TInt, TSendingCapabilities)
Compares service capabilities with the required capabilities
ResetIsSending(TAny *)
void
|
ResetIsSending
|
(
|
TAny
*
|
aAny
|
)
|
[private, static]
|
Resets sending state flag.
-
Since
-
Series 60 3.0
ResolveServiceIndex(TUid)
Returns the index of the service in service array
SendMessageL(TUid, const CMessageData *, TBool)
Creates the message and launches the editor for editing the message or sends the message directly without opening the editor. Functionality depends on the type of selected service.
Parameters
TUid
aServiceUid
|
Uid of the sending service.
|
const
CMessageData
* aMessageData
|
Data for the message.
|
TBool
aLaunchEditorEmbedded
|
|
SendMessageViaServerL(TUid, const CMessageData *, TBool)
void
|
SendMessageViaServerL
|
(
|
TUid
|
aServiceUid,
|
|
const
CMessageData
*
|
aMessageData,
|
|
TBool
|
aLaunchEditorEmbedded
|
|
)
|
|
Launches server application, which will eventually call SendMessageL with the same parameters.
Parameters
TUid
aServiceUid
|
Uid of the sending service.
|
const
CMessageData
* aMessageData
|
Data for the message.
|
TBool
aLaunchEditorEmbedded
|
|
ServiceCapabilities(TUid, TSendingCapabilities &)
Returns sending capabilities of the sending service.
-
Since
-
Series 60 3.0
Parameters
TUid
aServiceUid
|
Uid of the sending service.
|
TSendingCapabilities
& aServiceCapabilities
|
TSendingCapabilities of the sending service as a return value.
|
ShowListQueryL(MDesCArray *, const CArrayFix< TUid > &, const TDesC &, CSendUi::TSendUiMenuType)
Parameters
MDesCArray * aListItems
|
|
const
CArrayFix
<
TUid
> & aListItemUids
|
|
const
TDesC
& aTitleText
|
Title of the pop-up list query. If no title is defined, then the localised default title is used.
|
CSendUi::TSendUiMenuType
aMenuType
|
|
ShowTypedQueryAndSendL(CSendUi::TSendUiMenuType, const CMessageData *, TSendingCapabilities, CArrayFix< TUid > *, TBool, const TDesC &)
First displays list query and then creates the message. Editor is launched for editing the message or the message is sent directly without opening the editor. Functionality depends on the type of selected service.
List query can be manipulated in three ways. All three methods can be used or just some of those.
The first option is to set the required capabilities for services. Eg. attachments supported. Sending services not matching to required capabilities are filtered away. Capabilities are defined in TSendingCapabilities.h.
The second option is content based filtering. Filtering is based on the files intended to send. Those files can be set as part of message data. Filtering is done according the predefined rules.
The third option is to set the array of service uids not wanted to be shown in list query. Uid can be the technology type, service provider or service id. These sending services are filtered away even if those match to required capabilities.
Parameters
CSendUi::TSendUiMenuType
aMenuType
|
Type of the menu, e.g. "ESendMenu" or "EWriteMenu"
|
const
CMessageData
* aMessageData
|
Data for the message.
|
TSendingCapabilities
aRequiredCapabilities = KCapabilitiesForAllServices
|
Capabilities required by sending services to be shown in "Send" pop-up list query. If no capabilities are required (KCapabilitiesForAllServices), all available services are shown in "Send" pop-up list query.
|
CArrayFix
<
TUid
> * aServicesToDim = NULL
|
Array of service uids (service uid, service provider's uid or service's TechnologyType) _NOT_ wanted to "Send" list query. See predefined sending service uids in SendUiConsts.h .
|
TBool
aLaunchEditorEmbedded = ETrue
|
ETrue if the editor should be launched embedded. Otherwise the editor is launched stand-alone. Note: some services sends the messages without launching the editor at all.
|
const
TDesC
& aTitleText =
KNullDesC
|
Title of the list query. If no title is defined, then the localised default title is used, e.g. "Send" or "Write".
|
ShowTypedQueryL(CSendUi::TSendUiMenuType, const CMessageData *, TSendingCapabilities, CArrayFix< TUid > *, const TDesC &)
Displays list query and returns the user selection.
List query can be manipulated in three ways. All three methods can be used or just some of those.
The first option is to set the required capabilities for services. Eg. attachments supported. Sending services not matching to required capabilities are filtered away. Capabilities are defined in TSendingCapabilities.h.
The second option is content based filtering. Filtering is based on the files intended to send. Those files can be set as part of message data. Filtering is done according the predefined rules.
The third option is to set the array of service uids not wanted to be shown in list query. These sending services are filtered away even if those match to required capabilities.
Parameters
CSendUi::TSendUiMenuType
aMenuType
|
Type of the menu, e.g. "ESendMenu" or "EWriteMenu"
|
const
CMessageData
* aMessageData = NULL
|
Data for the message. Attachments are used for content based filtering.
|
TSendingCapabilities
aRequiredCapabilities = KCapabilitiesForAllServices
|
Capabilities required by sending services to be shown in list query. If no capabilities are required (KCapabilitiesForAllServices), all available services are shown in list query.
|
CArrayFix
<
TUid
> * aServicesToDim = NULL
|
Array of service uids (service uid, service provider's uid or service's TechnologyType) _NOT_ wanted to "Send" list query. See predefined sending service uids in SendUiConsts.h .
|
const
TDesC
& aTitleText =
KNullDesC
|
Title of the list query. If no title is defined, then the localised default title is used, e.g. "Send" or "Write"
|
SortListL(CDesCArrayFlat &, CArrayFix< TUid > &)
TechnologyType(TUid)
TUid
|
TechnologyType
|
(
|
TUid
|
aServiceUid
|
)
|
|
Returns the technology type of a service
ValidateAttachmentsL(const CMessageData *)
Validates if all the attachments are DRM protected
Member Data Documentation
CCoeEnv * iCoeEnv
Pointer to Control environment Not own.
TBool
iEmailClientIntegration
TBool
|
iEmailClientIntegration
|
[private]
|
TBool
iEmailFramework
TBool
|
iEmailFramework
|
[private]
|
Variable to know if Cmail Feature is on
RFs & iFs
Pointer to File Server Session. Initialized from CCoeEnv->FsSession. Not own.
TBool
iIsSending
TBool
|
iIsSending
|
[private]
|
Indicates whether or not the sending process is in progress.
CPropertyObserver * iPropertyObserver
CPropertyObserver *
|
iPropertyObserver
|
[private]
|
TFileName
iResourceFileName
Resource file name and path. Own.
RConeResourceLoader
iResourceLoader
For UI resource loading Own.
RSendUiServiceClient * iSendUiClient
RSendUiServiceClient *
|
iSendUiClient
|
[private]
|
IPC client with SendUiLauncherApp Own.
CArrayFixFlat< TInt32 > * iSendUiServicesOrderArray
The requested order of sending services in the menu. Read from resources. Own.
RPointerArray< CSendingServiceInfo > iSendingServices
Array of available sending service Own.
TBool
iServerAppLaunch
TBool
|
iServerAppLaunch
|
[private]
|
CArrayFixFlat< TUid > * iServicesToDim
Services to be dimmed Own.
CSendUiSingleton * iSingleton
CSendUiSingleton *
|
iSingleton
|
[private]
|
Pointer to CSendUiSingleton Own.
Copyright ©2010 Nokia Corporation and/or its subsidiary(-ies).
All rights
reserved. Unless otherwise stated, these materials are provided under the terms of the Eclipse Public License
v1.0.