22 #include <vwsdefpartner.h> |
22 #include <vwsdefpartner.h> |
23 #else |
23 #else |
24 #include <viewcli.h> |
24 #include <viewcli.h> |
25 #include <vwsdef.h> |
25 #include <vwsdef.h> |
26 #endif // SYMBIAN_ENABLE_SPLIT_HEADERS |
26 #endif // SYMBIAN_ENABLE_SPLIT_HEADERS |
27 |
27 #include <coemain.h> // CCoeEnv |
|
28 #include <coeaui.h> // CCoeAppUi |
|
29 #include <centralrepository.h> |
28 #include "emailclientapiimpl.h" |
30 #include "emailclientapiimpl.h" |
29 #include "emailapiutils.h" |
31 #include "emailapiutils.h" |
30 #include "emailmailbox.h" |
32 #include "emailmailbox.h" |
31 #include <memailaddress.h> |
33 #include <memailaddress.h> |
32 #include "cfsmailplugin.h" |
34 #include "cfsmailplugin.h" |
33 #include "cfsclientapi.h" |
35 #include "cfsclientapi.h" |
34 #include "emailclientapiimpldefs.h" |
36 #include "emailclientapiimpldefs.h" |
35 #include "emailmailboxcache.h" |
37 #include "emailmailboxcache.h" |
36 #include "FreestyleEmailUiConstants.h" |
38 #include "FreestyleEmailUiConstants.h" |
37 #include "emailclientapi.hrh" |
39 #include "emailclientapi.hrh" |
|
40 #include "FreestyleEmailCenRepKeys.h" |
|
41 #include "FreestyleEmailUiConstants.h" |
38 // --------------------------------------------------------------------------- |
42 // --------------------------------------------------------------------------- |
39 // CEmailClientApi::MailboxL |
43 // CEmailClientApi::MailboxL |
40 // --------------------------------------------------------------------------- |
44 // --------------------------------------------------------------------------- |
41 // |
45 // |
42 MEmailMailbox* CEmailClientApi::MailboxL( const TMailboxId& aId ) |
46 MEmailMailbox* CEmailClientApi::MailboxL( const TMailboxId& aId ) |
134 // ----------------------------------------------------------------------------- |
138 // ----------------------------------------------------------------------------- |
135 // implement this |
139 // implement this |
136 // ----------------------------------------------------------------------------- |
140 // ----------------------------------------------------------------------------- |
137 void CEmailClientApi::LaunchEmailL( const TLaunchPolicy aPolicy ) |
141 void CEmailClientApi::LaunchEmailL( const TLaunchPolicy aPolicy ) |
138 { |
142 { |
139 if ( aPolicy != EDefault ) |
143 if ( aPolicy == EShowLastUnseenMailbox) |
140 { |
144 { |
141 // no other launch policies supported |
145 CRepository* emailRepository = CRepository::NewL( KFreestyleEmailCenRep ); |
142 User::Leave( KErrNotSupported ); |
146 CleanupStack::PushL(emailRepository); |
143 } |
147 TInt numberOfMailboxes(0); |
144 const TUid dummy = {0}; |
148 TInt inboxId(0); |
145 |
149 TInt pluginId(0); |
146 CVwsSessionWrapper* viewSrvSession = CVwsSessionWrapper::NewLC(); |
150 emailRepository->Get(KNumberOfMailboxesWithNewEmails,numberOfMailboxes); |
147 viewSrvSession->ActivateView(TVwsViewId(KFSEmailUiUid, AppGridId), |
151 if(numberOfMailboxes > 0) |
|
152 { |
|
153 emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2-1),pluginId); |
|
154 emailRepository->Get(KNumberOfMailboxesWithNewEmails+(numberOfMailboxes*2),inboxId); |
|
155 |
|
156 TUid pluginUid = {pluginId}; |
|
157 TMailListActivationData activationData; |
|
158 |
|
159 activationData.iMailBoxId.SetId(inboxId); |
|
160 activationData.iMailBoxId.SetPluginId(pluginUid); |
|
161 activationData.iFolderId.SetPluginId(pluginUid); |
|
162 TPckgBuf<TMailListActivationData> pkgBuf(activationData); |
|
163 |
|
164 CCoeEnv::Static()->AppUi()->CreateActivateViewEventL( |
|
165 TVwsViewId(KFSEmailUiUid, MailListId), KStartListWithFolderId, |
|
166 pkgBuf ); |
|
167 } |
|
168 else |
|
169 { |
|
170 // We should never come here since the mailbox count should be more than 0 if launchemailL is called |
|
171 // but just to be safe launch the email in launchergrid if something went wrong with the repository |
|
172 const TUid dummy = {0}; |
|
173 CCoeEnv::Static()->AppUi()->CreateActivateViewEventL(TVwsViewId(KFSEmailUiUid, AppGridId), |
|
174 dummy, KNullDesC8() ); |
|
175 } |
|
176 CleanupStack::PopAndDestroy();//emailRepository |
|
177 } |
|
178 else if ( aPolicy == EDefault ) |
|
179 { |
|
180 const TUid dummy = {0}; |
|
181 CCoeEnv::Static()->AppUi()->CreateActivateViewEventL(TVwsViewId(KFSEmailUiUid, AppGridId), |
148 dummy, KNullDesC8() ); |
182 dummy, KNullDesC8() ); |
149 CleanupStack::PopAndDestroy(); |
183 } |
150 } |
184 } |
151 |
185 |
152 // ----------------------------------------------------------------------------- |
186 // ----------------------------------------------------------------------------- |
153 // |
187 // |
154 // ----------------------------------------------------------------------------- |
188 // ----------------------------------------------------------------------------- |