williamr@2
|
1 |
// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies).
|
williamr@2
|
2 |
// All rights reserved.
|
williamr@2
|
3 |
// This component and the accompanying materials are made available
|
williamr@4
|
4 |
// under the terms of "Eclipse Public License v1.0"
|
williamr@2
|
5 |
// which accompanies this distribution, and is available
|
williamr@4
|
6 |
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
williamr@2
|
7 |
//
|
williamr@2
|
8 |
// Initial Contributors:
|
williamr@2
|
9 |
// Nokia Corporation - initial contribution.
|
williamr@2
|
10 |
//
|
williamr@2
|
11 |
// Contributors:
|
williamr@2
|
12 |
//
|
williamr@2
|
13 |
// Description:
|
williamr@4
|
14 |
// SMSCLNT.H
|
williamr@2
|
15 |
//
|
williamr@4
|
16 |
/**
|
williamr@4
|
17 |
* @file
|
williamr@4
|
18 |
* @publishedAll
|
williamr@4
|
19 |
* @released
|
williamr@4
|
20 |
*/
|
williamr@2
|
21 |
#ifndef __SMSCLNT_H__
|
williamr@2
|
22 |
#define __SMSCLNT_H__
|
williamr@2
|
23 |
|
williamr@2
|
24 |
#include <mtclbase.h>
|
williamr@2
|
25 |
#include <smuthdr.h>
|
williamr@2
|
26 |
|
williamr@2
|
27 |
class CSmsHeader;
|
williamr@2
|
28 |
class CSmsMessage;
|
williamr@2
|
29 |
class CSmsSettings;
|
williamr@2
|
30 |
class TSmsUtilities;
|
williamr@2
|
31 |
class CSmsSimParamOperation;
|
williamr@2
|
32 |
class CMobilePhoneSmspList;
|
williamr@2
|
33 |
class RResourceFile;
|
williamr@2
|
34 |
|
williamr@2
|
35 |
/**
|
williamr@2
|
36 |
The SMS client MTM interface.
|
williamr@2
|
37 |
|
williamr@2
|
38 |
Most of the functions in this class are implementations of the virtual functions
|
williamr@2
|
39 |
defined by the base class CBaseMtm.
|
williamr@2
|
40 |
|
williamr@2
|
41 |
An object of this class can be obtained from the Client MTM registry. The message
|
williamr@2
|
42 |
server provides the necessary information required by the registry to provide
|
williamr@2
|
43 |
the SMS client MTM.
|
williamr@2
|
44 |
|
williamr@2
|
45 |
All client MTM objects have a current context. This is an entry in the message
|
williamr@2
|
46 |
store that will be manipulated by certain APIs supplied by the MTM. If the
|
williamr@2
|
47 |
current context is not set then certain APIs will panic.
|
williamr@2
|
48 |
|
williamr@2
|
49 |
The CBaseMtm::HasContext API can be used to check that the current context has
|
williamr@2
|
50 |
been set. It can be set using either the CBaseMtm::SwitchCurrenEntryL API or the
|
williamr@2
|
51 |
CBaseMtm::SetCurrentEntryL API.
|
williamr@2
|
52 |
|
williamr@2
|
53 |
@see CClientMtmRegistry
|
williamr@2
|
54 |
@see CBaseMtm::HasContext
|
williamr@2
|
55 |
@see CBaseMtm::SetCurrentEntryL
|
williamr@2
|
56 |
@see CBaseMtm::SwitchCurrenEntryL
|
williamr@2
|
57 |
|
williamr@2
|
58 |
@publishedAll
|
williamr@2
|
59 |
@released
|
williamr@2
|
60 |
*/
|
williamr@4
|
61 |
NONSHARABLE_CLASS (CSmsClientMtm) : public CBaseMtm
|
williamr@2
|
62 |
{
|
williamr@2
|
63 |
public:
|
williamr@2
|
64 |
|
williamr@2
|
65 |
IMPORT_C static CSmsClientMtm* NewL(CRegisteredMtmDll& aRegisteredMtmDll,CMsvSession& aSession);
|
williamr@2
|
66 |
virtual ~CSmsClientMtm();
|
williamr@2
|
67 |
|
williamr@2
|
68 |
void HandleEntryEvent(enum MMsvEntryObserver::TMsvEntryEvent,TAny*,TAny*,TAny*);
|
williamr@2
|
69 |
|
williamr@2
|
70 |
inline CSmsHeader& SmsHeader();
|
williamr@2
|
71 |
inline const CSmsHeader& SmsHeader() const;
|
williamr@2
|
72 |
inline CSmsSettings& ServiceSettings();
|
williamr@2
|
73 |
inline const CSmsSettings& ServiceSettings() const;
|
williamr@2
|
74 |
inline TInt ServiceId() const;
|
williamr@2
|
75 |
|
williamr@2
|
76 |
IMPORT_C void RestoreServiceAndSettingsL();
|
williamr@2
|
77 |
IMPORT_C CSmsSimParamOperation* ReadSimParamsL(TRequestStatus& aObserverRequestStatus);
|
williamr@4
|
78 |
IMPORT_C CSmsSimParamOperation* WriteSimParamsL(const CMobilePhoneSmspList& aList, TRequestStatus& aObserverRequestStatus);
|
williamr@4
|
79 |
IMPORT_C void SaveMessageL(CMsvStore& aEditStore, TMsvEntry& aEntry);
|
williamr@4
|
80 |
IMPORT_C void CreateMessageL(TMsvEntry& aEntry);
|
williamr@2
|
81 |
/**
|
williamr@2
|
82 |
Sets the character encoding value. The character encoding value options are 7-bit,
|
williamr@2
|
83 |
8-bit and 16-Bit Unicode. By default the character set encoding is 7 bit encoding.
|
williamr@2
|
84 |
*/
|
williamr@2
|
85 |
void SetMessageCharacterSetL(TSmsDataCodingScheme::TSmsAlphabet aTsmsAlphabet);
|
williamr@2
|
86 |
|
williamr@2
|
87 |
public: // methods from CBaseMtm
|
williamr@2
|
88 |
|
williamr@2
|
89 |
virtual void SaveMessageL();
|
williamr@2
|
90 |
virtual void LoadMessageL();
|
williamr@2
|
91 |
virtual TMsvPartList ValidateMessage(TMsvPartList aPartList);
|
williamr@2
|
92 |
virtual TMsvPartList Find(const TDesC& aTextToFind, TMsvPartList aPartList);
|
williamr@2
|
93 |
virtual CMsvOperation* ReplyL(TMsvId aDestination, TMsvPartList aPartList, TRequestStatus& aCompletionStatus);
|
williamr@2
|
94 |
virtual CMsvOperation* ForwardL(TMsvId aDestination, TMsvPartList aPartList, TRequestStatus& aCompletionStatus);
|
williamr@2
|
95 |
virtual void AddAddresseeL(const TDesC& aRealAddress);
|
williamr@2
|
96 |
virtual void AddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias);
|
williamr@2
|
97 |
virtual void RemoveAddressee(TInt aIndex);
|
williamr@2
|
98 |
virtual TInt QueryCapability(TUid aCapability, TInt& aResponse);
|
williamr@2
|
99 |
virtual void InvokeSyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter);
|
williamr@2
|
100 |
virtual CMsvOperation* InvokeAsyncFunctionL(TInt aFunctionId,const CMsvEntrySelection& aSelection, TDes8& aParameter, TRequestStatus& aCompletionStatus);
|
williamr@2
|
101 |
|
williamr@2
|
102 |
IMPORT_C void CreateMessageL(TMsvId aServiceId);
|
williamr@2
|
103 |
IMPORT_C void BioTypeChangedL(TUid aBioTypeUid);
|
williamr@2
|
104 |
|
williamr@2
|
105 |
protected:
|
williamr@2
|
106 |
/**
|
williamr@2
|
107 |
Methods from CBaseMtm, The implementation of this function assumes that
|
williamr@2
|
108 |
the new service for setting the charset encoding value for a SMS message is supported.
|
williamr@2
|
109 |
*/
|
williamr@2
|
110 |
IMPORT_C virtual TInt Extension_(TUint aExtensionId, TAny*& a0, TAny* a1);
|
williamr@2
|
111 |
|
williamr@2
|
112 |
private:
|
williamr@2
|
113 |
|
williamr@2
|
114 |
CSmsClientMtm(CRegisteredMtmDll& aRegisteredMtmDll,CMsvSession& aSession);
|
williamr@2
|
115 |
void ConstructL();
|
williamr@2
|
116 |
|
williamr@2
|
117 |
void BasicReplyForwardEntry(TMsvEntry& aNewEntry) const;
|
williamr@2
|
118 |
CMsvOperation* CreateNewEntryL(TMsvEntry& aNewEntry, TMsvId aDestination,CSmsHeader& aSmsHeader,const CRichText& aBody, TRequestStatus& aCompletionStatus);
|
williamr@2
|
119 |
TBool ValidRecipients() const;
|
williamr@2
|
120 |
TBool ValidNumber(const TDesC& aNumber) const;
|
williamr@2
|
121 |
|
williamr@2
|
122 |
private: // methods from CBaseMtm
|
williamr@2
|
123 |
|
williamr@2
|
124 |
virtual void ContextEntrySwitched();
|
williamr@2
|
125 |
|
williamr@2
|
126 |
private:
|
williamr@2
|
127 |
|
williamr@2
|
128 |
void DoAddAddresseeL(const TDesC& aRealAddress, const TDesC& aAlias);
|
williamr@2
|
129 |
void AddRecipientL(const TDesC& aRealAddress, const TDesC& aAlias);
|
williamr@2
|
130 |
void DoAddRecipientL(CSmsHeader* aSmsHeader, const TDesC& aRealAddress, const TDesC& aAlias);
|
williamr@2
|
131 |
void ResetHeader();
|
williamr@2
|
132 |
TMsvPartList DoFindL(const TDesC& aTextToFind,TMsvPartList aPartList);
|
williamr@2
|
133 |
void FindL(const TDesC& aTextToFind, const TMsvPartList aPartList,TMsvPartList& aFoundList);
|
williamr@2
|
134 |
void FindInBodyL(const TDesC& aTextToFind, const TMsvPartList& aFoundList, TMsvPartList& aResult);
|
williamr@2
|
135 |
HBufC* ReadEmailSubjectFormatL(RResourceFile& aResourceFile, TInt aResourceId, const TDesC& aDefaultFormat);
|
williamr@2
|
136 |
|
williamr@2
|
137 |
private:
|
williamr@2
|
138 |
|
williamr@2
|
139 |
CSmsSettings* iServiceSettings;
|
williamr@2
|
140 |
TMsvId iServiceId;
|
williamr@2
|
141 |
CSmsHeader* iSmsHeader;
|
williamr@2
|
142 |
TChar iRealAddressOpen;
|
williamr@2
|
143 |
TChar iRealAddressClose;
|
williamr@2
|
144 |
HBufC* iEmailForwardSubjectFormat;
|
williamr@2
|
145 |
HBufC* iEmailReplySubjectFormat;
|
williamr@2
|
146 |
};
|
williamr@2
|
147 |
|
williamr@2
|
148 |
#include <smsclnt.inl>
|
williamr@2
|
149 |
|
williamr@2
|
150 |
#endif // __SMSCLNT_H__
|