90 TDataType dataType = attachInfo->MimeType(); |
90 TDataType dataType = attachInfo->MimeType(); |
91 |
91 |
92 TInt error = KErrNone; |
92 TInt error = KErrNone; |
93 TBool isCompleteSelf = EFalse; |
93 TBool isCompleteSelf = EFalse; |
94 |
94 |
95 RFile attachFile; |
95 RFile attachFile; |
96 TRAP( error, attachFile = store->AttachmentManagerL().GetAttachmentFileL(0)); |
96 TRAP( error, attachFile = store->AttachmentManagerL().GetAttachmentFileL(0)); |
|
97 TFileName fullName; |
|
98 attachFile.FullName(fullName); |
|
99 attachFile.Close(); |
|
100 |
97 if ( KErrNone == error ) |
101 if ( KErrNone == error ) |
98 { |
102 { |
99 CleanupClosePushL(attachFile); // 4th push |
103 CleanupClosePushL(attachFile); // 4th push |
100 CAiwGenericParamList* paramList = CAiwGenericParamList::NewLC(); // 5th push |
104 CAiwGenericParamList* paramList = CAiwGenericParamList::NewLC(); // 5th push |
101 TAiwGenericParam paramSave(EGenericParamFileSaved, ETrue); |
105 TAiwGenericParam paramSave(EGenericParamFileSaved, ETrue); |
104 if ( CEikonEnv::Static() ) |
108 if ( CEikonEnv::Static() ) |
105 { |
109 { |
106 // Launches an application in embedded mode |
110 // Launches an application in embedded mode |
107 iDocumentHandler = CDocumentHandler::NewL( CEikonEnv::Static()->Process() ); |
111 iDocumentHandler = CDocumentHandler::NewL( CEikonEnv::Static()->Process() ); |
108 iDocumentHandler->SetExitObserver( this ); |
112 iDocumentHandler->SetExitObserver( this ); |
109 TRAP( error, iDocumentHandler->OpenFileEmbeddedL( attachFile, dataType, *paramList )); |
113 RFile64 shareableFile; |
|
114 TRAP( error, iDocumentHandler->OpenTempFileL(fullName,shareableFile)); |
|
115 if ( error == KErrNone) |
|
116 { |
|
117 TRAP( error, iDocumentHandler->OpenFileEmbeddedL( shareableFile, dataType, *paramList )); |
|
118 } |
|
119 shareableFile.Close(); |
110 } |
120 } |
111 else |
121 |
112 { |
122 |
113 // Launches an application in standalone mode |
|
114 iDocumentHandler = CDocumentHandler::NewL( ); |
|
115 // We do not observe exit event when file is launched in standalone mode. |
|
116 iDocumentHandler->SetExitObserver( NULL ); |
|
117 TRAP( error, iDocumentHandler->OpenFileL( attachFile, dataType)); |
|
118 } |
|
119 |
|
120 if ( error == KErrNotSupported ) |
123 if ( error == KErrNotSupported ) |
121 // If file is not supported, we open the file manager at file location. |
124 // If file is not supported, we open the file manager at file location. |
122 { |
125 { |
123 // Launchs file manager at default folder |
126 // Launchs file manager at default folder |
124 delete iDocumentHandler; |
127 delete iDocumentHandler; |
125 iDocumentHandler = NULL; |
128 iDocumentHandler = NULL; |
126 |
129 |
127 TInt sortMethod = 2; // 0 = 'By name', 1 = 'By type', |
130 TInt sortMethod = 2; // 0 = 'By name', 1 = 'By type', |
128 // 2 = 'Most recent first' and 3 = 'Largest first' |
131 // 2 = 'Most recent first' and 3 = 'Largest first' |
129 TFileName fullName; |
132 TRAP (error, TObexUtilsUiLayer::LaunchFileManagerL( fullName, |
130 attachFile.FullName(fullName); |
133 sortMethod, |
131 |
134 ETrue )); // ETrue -> launch file manager in embedded mode. |
132 TRAP (error, TObexUtilsUiLayer::LaunchFileManagerL( fullName, |
|
133 sortMethod, |
|
134 ETrue )); // ETrue -> launch file manager in embedded mode. |
|
135 isCompleteSelf = ETrue; |
135 isCompleteSelf = ETrue; |
136 } // KErrNotSupported |
136 } // KErrNotSupported |
137 |
137 |
138 // Set message to READ |
138 // Set message to READ |
139 // |
139 // |