--- a/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp Tue May 11 16:13:40 2010 +0300
+++ b/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp Tue May 25 12:42:31 2010 +0300
@@ -1071,8 +1071,16 @@
//Since uri can be either focused or unfocused item
//better call ItemRightsValidityCheckL which doesn't modify lastconsumedUri.
- drmInvalid = !iDrmUtility->ItemRightsValidityCheckL(uri, checkViewRights);
-
+ CreateImageViewerInstanceL();
+ if(iImageViewerInstance->IsPrivate())
+ {
+ drmInvalid = !iDrmUtility->ItemRightsValidityCheckL(iImageViewerInstance->ImageFileHandle(), checkViewRights);
+ }
+ else
+ {
+ drmInvalid = !iDrmUtility->ItemRightsValidityCheckL(uri, checkViewRights);
+ }
+ DeleteImageViewerInstance();
CGlxMedia* properties = const_cast<CGlxMedia*>(aMedia.Properties());
if( !drmInvalid )
{
@@ -1303,3 +1311,27 @@
}
return ETrue;
}
+
+// -----------------------------------------------------------------------------
+// CreateImageViewerInstanceL
+// -----------------------------------------------------------------------------
+//
+void CGlxTextureManagerImpl::CreateImageViewerInstanceL()
+ {
+ TRACER("CGlxTextureManagerImpl::CreateImageViewerInstanceL");
+ iImageViewerInstance = CGlxImageViewerManager::InstanceL();
+ __ASSERT_ALWAYS(iImageViewerInstance, Panic(EGlxPanicNullPointer));
+ }
+
+// -----------------------------------------------------------------------------
+// DeleteImageViewerInstance
+// -----------------------------------------------------------------------------
+//
+void CGlxTextureManagerImpl::DeleteImageViewerInstance()
+ {
+ TRACER("CGlxTextureManagerImpl::DeleteImageViewerInstance");
+ if ( iImageViewerInstance )
+ {
+ iImageViewerInstance->DeleteInstance();
+ }
+ }