88 CleanupStack::PushL(attachInfo); // 3rd push |
88 CleanupStack::PushL(attachInfo); // 3rd push |
89 |
89 |
90 TDataType dataType = attachInfo->MimeType(); |
90 TDataType dataType = attachInfo->MimeType(); |
91 TFileName filePath; |
91 TFileName filePath; |
92 filePath = attachInfo->FilePath(); |
92 filePath = attachInfo->FilePath(); |
93 |
93 |
94 TInt error = KErrNone; |
94 TInt error = KErrNone; |
95 TBool isCompleteSelf = EFalse; |
95 TBool isCompleteSelf = EFalse; |
96 CEikonEnv* eikEnv = CEikonEnv::Static(); |
96 CEikonEnv* eikEnv = CEikonEnv::Static(); |
97 |
97 |
98 if ( attachInfo->Type() == CMsvAttachment::EMsvFile ) |
98 if ( attachInfo->Type() == CMsvAttachment::EMsvFile ) |
121 CAiwGenericParamList* paramList = CAiwGenericParamList::NewLC(); // 4th push |
121 CAiwGenericParamList* paramList = CAiwGenericParamList::NewLC(); // 4th push |
122 TAiwGenericParam paramSave(EGenericParamFileSaved, ETrue); |
122 TAiwGenericParam paramSave(EGenericParamFileSaved, ETrue); |
123 paramList->AppendL( paramSave ); |
123 paramList->AppendL( paramSave ); |
124 |
124 |
125 if ( eikEnv ) |
125 if ( eikEnv ) |
126 { |
126 { |
127 |
|
128 iDocumentHandler = CDocumentHandler::NewL( eikEnv->Process() ); |
127 iDocumentHandler = CDocumentHandler::NewL( eikEnv->Process() ); |
129 iDocumentHandler->SetExitObserver( this ); |
128 iDocumentHandler->SetExitObserver( this ); |
130 RFile64 shareableFile; |
129 RFs rfs; |
131 TRAP( error, iDocumentHandler->OpenTempFileL(filePath,shareableFile)); |
130 User::LeaveIfError( rfs.Connect() ); |
132 if ( error == KErrNone) |
131 if ( BaflUtils::FileExists( rfs, filePath ) ) |
133 { |
132 { |
134 TRAP( error, iDocumentHandler->OpenFileEmbeddedL( shareableFile, dataType, *paramList)); |
133 RFile64 shareableFile; |
135 } |
134 TRAP( error, iDocumentHandler->OpenTempFileL(filePath,shareableFile)); |
136 shareableFile.Close(); |
135 if ( error == KErrNone) |
137 if ( error == KErrNotFound ) |
136 { |
|
137 TRAP( error, iDocumentHandler->OpenFileEmbeddedL( shareableFile, dataType, *paramList)); |
|
138 } |
|
139 shareableFile.Close(); |
|
140 |
|
141 if ( error == KErrNotSupported ) |
|
142 { |
|
143 delete iDocumentHandler; |
|
144 iDocumentHandler = NULL; |
|
145 |
|
146 const TInt sortMethod = 2; // 0 = 'By name', 1 = 'By type', |
|
147 // 2 = 'Most recent first' and 3 = 'Largest first' |
|
148 TRAP (error, TObexUtilsUiLayer::LaunchFileManagerL( filePath, |
|
149 sortMethod, |
|
150 ETrue )); // ETrue -> launch file manager in embedded mode. |
|
151 isCompleteSelf = ETrue; |
|
152 } // KErrNotSupported |
|
153 } |
|
154 else |
138 { |
155 { |
139 error = KErrNone; |
156 error = KErrNone; |
140 TFileName fileName; |
157 TFileName fileName; |
141 if (LocateFileL(fileName, filePath)) |
158 if (LocateFileL(fileName, filePath)) |
142 { |
159 { |
150 note->ShowNoteL(EAknGlobalConfirmationNote, *stringholder); |
167 note->ShowNoteL(EAknGlobalConfirmationNote, *stringholder); |
151 CleanupStack::PopAndDestroy(2); //note and stringholder |
168 CleanupStack::PopAndDestroy(2); //note and stringholder |
152 } |
169 } |
153 } |
170 } |
154 isCompleteSelf = ETrue; |
171 isCompleteSelf = ETrue; |
155 } // KErrNotFound |
172 } |
|
173 |
|
174 rfs.Close(); |
156 } // eikEnv |
175 } // eikEnv |
157 |
176 |
158 else if ( error == KErrNotSupported ) |
|
159 { |
|
160 delete iDocumentHandler; |
|
161 iDocumentHandler = NULL; |
|
162 |
|
163 const TInt sortMethod = 2; // 0 = 'By name', 1 = 'By type', |
|
164 // 2 = 'Most recent first' and 3 = 'Largest first' |
|
165 TRAP (error, TObexUtilsUiLayer::LaunchFileManagerL( filePath, |
|
166 sortMethod, |
|
167 ETrue )); // ETrue -> launch file manager in embedded mode. |
|
168 isCompleteSelf = ETrue; |
|
169 } // KErrNotSupported |
|
170 |
|
171 CleanupStack::PopAndDestroy(); // paramList |
177 CleanupStack::PopAndDestroy(); // paramList |
172 } // EMsvLinkedFile |
178 } // EMsvLinkedFile |
173 |
179 |
174 |
180 |
175 // Set message to READ |
181 // Set message to READ |
176 TMsvEntry entry = aMessage->Entry(); |
182 TMsvEntry entry = aMessage->Entry(); |
177 entry.SetUnread( EFalse ); |
183 entry.SetUnread( EFalse ); |
178 aMessage->ChangeL( entry ); |
184 aMessage->ChangeL( entry ); |
179 |
185 |
180 User::LeaveIfError ( error ); |
186 User::LeaveIfError ( error ); |
181 CleanupStack::PopAndDestroy(3); // attachInfo, store, attachEntry |
187 CleanupStack::PopAndDestroy(3); // attachInfo, store, attachEntry |
182 |
|
183 |
|
184 |
188 |
185 iObserverRequestStatus = KRequestPending; // CMsvOperation (observer) |
189 iObserverRequestStatus = KRequestPending; // CMsvOperation (observer) |
186 iStatus = KRequestPending; // CMsvOperation |
190 iStatus = KRequestPending; // CMsvOperation |
187 SetActive(); |
191 SetActive(); |
188 |
192 |