photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp
branchRCL_3
changeset 18 78ad99c24f08
parent 15 191387a8b767
child 19 420f6808bf21
--- 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