34 #include "thumbnaildiskunmountobserver.h" |
34 #include "thumbnaildiskunmountobserver.h" |
35 #include "thumbnailpanic.h" |
35 #include "thumbnailpanic.h" |
36 #include "thumbnailcenrep.h" |
36 #include "thumbnailcenrep.h" |
37 #include "thumbnailmemorycardobserver.h" |
37 #include "thumbnailmemorycardobserver.h" |
38 #include "tmgetimei.h" |
38 #include "tmgetimei.h" |
|
39 #include "thumbnailfetchedchecker.h" |
39 |
40 |
40 |
41 |
41 _LIT8( KThumbnailMimeWildCard, "*" ); |
42 _LIT8( KThumbnailMimeWildCard, "*" ); |
42 _LIT8( KThumbnailMimeImage, "image" ); |
43 _LIT8( KThumbnailMimeImage, "image" ); |
43 _LIT8( KThumbnailMimeVideo, "video" ); |
44 _LIT8( KThumbnailMimeVideo, "video" ); |
71 EGetMimeTypeList, |
72 EGetMimeTypeList, |
72 ERequestThumbByIdAsync, |
73 ERequestThumbByIdAsync, |
73 ERequestThumbByBufferAsync, |
74 ERequestThumbByBufferAsync, |
74 ERequestSetThumbnailByBuffer, |
75 ERequestSetThumbnailByBuffer, |
75 EDeleteThumbnailsById, |
76 EDeleteThumbnailsById, |
76 EReserved1, |
77 ERenameThumbnails, |
77 EUpdateThumbnails, |
78 EUpdateThumbnails, |
78 ERequestSetThumbnailByBitmap, |
79 ERequestSetThumbnailByBitmap, |
79 EThumbnailServerRequestCount, |
80 EThumbnailServerRequestCount, |
80 }; |
81 }; |
81 |
82 |
94 CPolicyServer::ECustomCheck, // EGetMimeTypeList |
95 CPolicyServer::ECustomCheck, // EGetMimeTypeList |
95 CPolicyServer::ECustomCheck, // ERequestThumbByIdAsync |
96 CPolicyServer::ECustomCheck, // ERequestThumbByIdAsync |
96 CPolicyServer::ECustomCheck, // ERequestThumbByBufferAsync |
97 CPolicyServer::ECustomCheck, // ERequestThumbByBufferAsync |
97 CPolicyServer::ECustomCheck, // ERequestSetThumbnailByBuffer |
98 CPolicyServer::ECustomCheck, // ERequestSetThumbnailByBuffer |
98 CPolicyServer::ECustomCheck, // EDeleteThumbnailsById |
99 CPolicyServer::ECustomCheck, // EDeleteThumbnailsById |
99 CPolicyServer::ECustomCheck, |
100 CPolicyServer::ECustomCheck, // ERenameThumbnails |
100 CPolicyServer::ECustomCheck, // EUpdateThumbnails |
101 CPolicyServer::ECustomCheck, // EUpdateThumbnails |
101 CPolicyServer::ECustomCheck, // ERequestSetThumbnailByBitmap |
102 CPolicyServer::ECustomCheck, // ERequestSetThumbnailByBitmap |
102 CPolicyServer::ECustomCheck, // EThumbnailServerRequestCount |
103 CPolicyServer::ECustomCheck, // EThumbnailServerRequestCount |
103 }; |
104 }; |
104 |
105 |
140 case EDeleteThumbnails: |
141 case EDeleteThumbnails: |
141 case EGetMimeTypeBufferSize: |
142 case EGetMimeTypeBufferSize: |
142 case EGetMimeTypeList: |
143 case EGetMimeTypeList: |
143 case ERequestSetThumbnailByBuffer: |
144 case ERequestSetThumbnailByBuffer: |
144 case EDeleteThumbnailsById: |
145 case EDeleteThumbnailsById: |
145 case EUpdateThumbnails: |
146 case EUpdateThumbnails: |
|
147 case ERenameThumbnails: |
146 case ERequestSetThumbnailByBitmap: |
148 case ERequestSetThumbnailByBitmap: |
147 { |
149 { |
148 if( aMsg.HasCapability( ECapabilityReadDeviceData ) && |
150 if( aMsg.HasCapability( ECapabilityReadDeviceData ) && |
149 aMsg.HasCapability( ECapabilityWriteDeviceData ) ) |
151 aMsg.HasCapability( ECapabilityWriteDeviceData ) ) |
150 { |
152 { |
151 securityCheckResult = EPass; |
153 securityCheckResult = EPass; |
152 } |
154 } |
153 break; |
155 break; |
154 } |
156 } |
155 |
|
156 case EReserved1: |
|
157 case EThumbnailServerRequestCount: |
157 case EThumbnailServerRequestCount: |
158 default: |
158 default: |
159 { |
159 { |
160 securityCheckResult = EFail; |
160 securityCheckResult = EFail; |
161 } |
161 } |
534 } |
536 } |
535 else |
537 else |
536 { |
538 { |
537 TN_DEBUG1( "CThumbnailServer::StoreThumbnailL() - file doesn't exists anymore, skip store!"); |
539 TN_DEBUG1( "CThumbnailServer::StoreThumbnailL() - file doesn't exists anymore, skip store!"); |
538 } |
540 } |
|
541 if( iFetchedChecker ) |
|
542 { |
|
543 iFetchedChecker->SetFetchResult( aPath, KErrNone ); |
|
544 } |
539 } |
545 } |
540 |
546 |
541 |
547 |
542 // ----------------------------------------------------------------------------- |
548 // ----------------------------------------------------------------------------- |
543 // CThumbnailServer::FetchThumbnailL() |
549 // CThumbnailServer::FetchThumbnailL() |
545 // |
551 // |
546 void CThumbnailServer::FetchThumbnailL( const TDesC& aPath, CFbsBitmap* & |
552 void CThumbnailServer::FetchThumbnailL( const TDesC& aPath, CFbsBitmap* & |
547 aThumbnail, TDesC8* & aData, const TThumbnailSize aThumbnailSize, TSize &aOriginalSize ) |
553 aThumbnail, TDesC8* & aData, const TThumbnailSize aThumbnailSize, TSize &aOriginalSize ) |
548 { |
554 { |
549 TN_DEBUG3( "CThumbnailServer::FetchThumbnailL(aPath=%S aThumbnailSize=%d)", &aPath, aThumbnailSize ); |
555 TN_DEBUG3( "CThumbnailServer::FetchThumbnailL(aPath=%S aThumbnailSize=%d)", &aPath, aThumbnailSize ); |
550 |
556 if( iFetchedChecker ) |
551 StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize); |
557 { |
|
558 TInt err( iFetchedChecker->LastFetchResult( aPath ) ); |
|
559 if ( err == KErrNone ) // To avoid useless sql gets that fails for sure |
|
560 { |
|
561 TRAP( err, StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize) ); |
|
562 if ( err != KErrNone ) |
|
563 { |
|
564 iFetchedChecker->SetFetchResult( aPath, err ); |
|
565 } |
|
566 } |
|
567 User::LeaveIfError( err ); |
|
568 } |
|
569 else |
|
570 { |
|
571 StoreForPathL( aPath )->FetchThumbnailL( aPath, aThumbnail, aData, aThumbnailSize, aOriginalSize); |
|
572 } |
552 } |
573 } |
553 |
574 |
554 |
575 |
555 |
576 |
556 // ----------------------------------------------------------------------------- |
577 // ----------------------------------------------------------------------------- |
598 void CThumbnailServer::DeleteThumbnailsL( const TDesC& aPath ) |
619 void CThumbnailServer::DeleteThumbnailsL( const TDesC& aPath ) |
599 { |
620 { |
600 TN_DEBUG2( "CThumbnailServer::DeleteThumbnailsL(%S)", &aPath); |
621 TN_DEBUG2( "CThumbnailServer::DeleteThumbnailsL(%S)", &aPath); |
601 |
622 |
602 StoreForPathL( aPath )->DeleteThumbnailsL( aPath ); |
623 StoreForPathL( aPath )->DeleteThumbnailsL( aPath ); |
|
624 if( iFetchedChecker ) |
|
625 { |
|
626 iFetchedChecker->SetFetchResult( aPath, KErrNone ); |
|
627 } |
603 } |
628 } |
604 |
629 |
605 // ----------------------------------------------------------------------------- |
630 // ----------------------------------------------------------------------------- |
606 // CThumbnailServer::ResolveMimeTypeL() |
631 // CThumbnailServer::ResolveMimeTypeL() |
607 // ----------------------------------------------------------------------------- |
632 // ----------------------------------------------------------------------------- |
1188 |
1213 |
1189 |
1214 |
1190 TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - no thumbs found, create new"); |
1215 TN_DEBUG1( "CThumbnailServer::UpdateThumbnailsL() - no thumbs found, create new"); |
1191 |
1216 |
1192 return EFalse; |
1217 return EFalse; |
|
1218 } |
|
1219 |
|
1220 // ----------------------------------------------------------------------------- |
|
1221 // Renames thumbnails. |
|
1222 // ----------------------------------------------------------------------------- |
|
1223 // |
|
1224 void CThumbnailServer::RenameThumbnailsL( const TDesC& aCurrentPath, const TDesC& aNewPath ) |
|
1225 { |
|
1226 TN_DEBUG2( "CThumbnailServer::RenameThumbnailsL(%S)", &aCurrentPath); |
|
1227 |
|
1228 StoreForPathL( aCurrentPath )->RenameThumbnailsL( aCurrentPath, aNewPath ); |
1193 } |
1229 } |
1194 |
1230 |
1195 // ----------------------------------------------------------------------------- |
1231 // ----------------------------------------------------------------------------- |
1196 // CThumbnailServer::MimeTypeFromFileExt() |
1232 // CThumbnailServer::MimeTypeFromFileExt() |
1197 // ----------------------------------------------------------------------------- |
1233 // ----------------------------------------------------------------------------- |