diff -r a60acebbbd9d -r 78ad99c24f08 photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp --- a/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp Tue May 11 16:13:40 2010 +0300 +++ b/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp Tue May 25 12:42:31 2010 +0300 @@ -129,47 +129,71 @@ //URI length could be zero for Media Id based Thumbnail fetch else if ( fsTnmAvailable ) { - GLX_DEBUG1("GlxThumbnailVariantType::CreateThumbnailTextureL"); - TMPXGeneralCategory cat = aMedia.Category(); - //Check if media is DRM rights protected - if(drm) + GLX_DEBUG1("GlxThumbnailVariantType::CreateThumbnailTextureL"); + TMPXGeneralCategory cat = aMedia.Category(); + //Check if media is DRM rights protected + if (drm) { + TBool privatePath = EFalse; + CreateImageViewerInstanceL(); + if (iImageViewerInstance->IsPrivate()) + { + privatePath = ETrue; + } //call 'DisplayItemRightsCheckL' only for focused item - if(aIsFocused) - { - expired = !iDrmUtility->DisplayItemRightsCheckL(uri, (cat == EMPXImage)); - } - else - { - //call 'ItemRightsValidityCheckL' for validity check of non-focused item - expired = !iDrmUtility->ItemRightsValidityCheckL(uri, (cat == EMPXImage)); - } - - //Check If DRM rights have expired. - if( expired ) + if (aIsFocused) { - TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateIconTextureL( - EMbmGlxiconsQgn_prop_image_notcreated, resFile, defaultSize ).Id() ); + if (privatePath) + { + expired = !iDrmUtility->DisplayItemRightsCheckL + (iImageViewerInstance->ImageFileHandle(),(cat == EMPXImage)); + } + else + { + expired = !iDrmUtility->DisplayItemRightsCheckL(uri, (cat == EMPXImage)); + } } else { - if ( isValid == EGlxDrmRightsValid) - { - // Fix for EABI-7RL9DD - // Replaced defaultSize with aSize - TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateThumbnailTextureL( - aMedia, aMedia.IdSpaceId(), aSize, this ).Id() ); - } + if (privatePath) + { + expired = !iDrmUtility->ItemRightsValidityCheckL( + iImageViewerInstance->ImageFileHandle(), (cat + == EMPXImage)); + } + else + { + //call 'ItemRightsValidityCheckL' for validity check of non-focused item + expired = !iDrmUtility->ItemRightsValidityCheckL(uri, + (cat == EMPXImage)); + } + } + DeleteImageViewerInstance(); + //Check If DRM rights have expired. + if (expired) + { + TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateIconTextureL( + EMbmGlxiconsQgn_prop_image_notcreated, resFile, defaultSize ).Id() ); + } + else + { + if (isValid == EGlxDrmRightsValid) + { + // Fix for EABI-7RL9DD + // Replaced defaultSize with aSize + TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateThumbnailTextureL( + aMedia, aMedia.IdSpaceId(), aSize, this ).Id() ); + } } - } - else - { - TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateThumbnailTextureL( - aMedia, aMedia.IdSpaceId(), aSize, this ).Id() ); - } - } + } + else + { + TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateThumbnailTextureL( + aMedia, aMedia.IdSpaceId(), aSize, this ).Id() ); + } + } else if ( aMedia.GetIconInfo(icon) ) { GLX_DEBUG1("GlxThumbnailVariantType::CreateIconTextureL"); @@ -398,6 +422,30 @@ } return EFalse; } + +// ----------------------------------------------------------------------------- +// CreateImageViewerInstanceL +// ----------------------------------------------------------------------------- +// +void GlxThumbnailVariantType::CreateImageViewerInstanceL() + { + TRACER("GlxThumbnailVariantType::CreateImageViewerInstanceL"); + iImageViewerInstance = CGlxImageViewerManager::InstanceL(); + __ASSERT_ALWAYS(iImageViewerInstance, Panic(EGlxPanicNullPointer)); + } + +// ----------------------------------------------------------------------------- +// DeleteImageViewerInstance +// ----------------------------------------------------------------------------- +// +void GlxThumbnailVariantType::DeleteImageViewerInstance() + { + TRACER("GlxThumbnailVariantType::DeleteImageViewerInstance"); + if ( iImageViewerInstance ) + { + iImageViewerInstance->DeleteInstance(); + } + } // ---------------------------------------------------------------------------- // type