ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp
changeset 49 f291796e213d
parent 48 d0b4e67b3a60
child 50 a0f57508af73
child 55 fb37077c270f
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Wed Jun 23 18:12:48 2010 +0300
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Tue Jul 06 14:16:16 2010 +0300
@@ -45,6 +45,8 @@
 //#define GLXPERFORMANCE_LOG  
 #include <glxperformancemacro.h>
 #include "glxtitlefetcher.h"
+#include"glxdrmutility.h"
+
 //constant declaration
 const TInt KTBAttributeAvailable(1);
 const TInt KTBAttributeUnavailable(0);
@@ -131,6 +133,7 @@
 		}
 	iMLGenericObserver = CGlxMLGenericObserver::NewL(*iMediaList,this);
 	iBlockyIteratorForFilmStrip.SetRangeOffsets(0,0);
+	iDrmUtility = CGlxDRMUtility::InstanceL();
     }
 
 // ---------------------------------------------------------------------------
@@ -140,6 +143,10 @@
 GlxMLWrapperPrivate::~GlxMLWrapperPrivate()
     {
     TRACER("GlxMLWrapperPrivate::~GlxMLWrapperPrivate");
+	if ( iDrmUtility )
+		{
+		iDrmUtility->Close();
+		}
 	RemoveGridContext();
 	RemovePtFsContext();
 	RemoveLsFsContext();
@@ -590,7 +597,12 @@
 		filter = TGlxFilterFactory::CreateCameraAlbumExclusionFilterL();
 		CleanupStack::PushL(filter);
 		}
-	else
+	else if(EGlxFilterImage == aFilterType)
+		{
+		filter = TGlxFilterFactory::CreateExcludeDrmImageTypeFilterL(aFilterType);   
+		CleanupStack::PushL(filter);
+		}
+	else 
 		{
 		filter = TGlxFilterFactory::CreateItemTypeFilterL(aFilterType);   //todo take actual filter type
 		CleanupStack::PushL(filter);
@@ -1368,7 +1380,6 @@
     {
     iViewTitle = QString::fromUtf16(aTitle.Ptr(), aTitle.Length());	
 	iMLWrapper->handleTitleAvailable(iViewTitle);
-    RDebug::Print(_L("GlxPhotos: GlxMLWrapperPrivate : TITLE =-%S"),&aTitle);
 	}
 
 QString GlxMLWrapperPrivate::RetrieveViewTitle()
@@ -1407,3 +1418,65 @@
         iDetailsContextActivated = EFalse;   
         }
     }
+
+bool GlxMLWrapperPrivate::IsDrmProtected(int index)
+    {
+    TInt itemIndex = index;
+    if(-1 == itemIndex)
+        {
+        itemIndex = iMediaList->FocusIndex();
+        }
+    const TGlxMedia& media = iMediaList->Item(itemIndex);
+    return media.IsDrmProtected();
+    }
+
+bool GlxMLWrapperPrivate::IsDrmValid(int index)
+    {
+    TInt itemIndex = index;
+    if(-1 == itemIndex)
+        {
+        itemIndex = iMediaList->FocusIndex();
+        }
+		
+    const TGlxMedia& media = iMediaList->Item(itemIndex);
+    TGlxMediaGeneralRightsValidity isValid = EGlxDrmRightsValidityUnknown;
+    TBool ret = media.GetDrmValidity(isValid);
+	if(ret && EGlxDrmRightsValidityUnknown == isValid )
+		{
+		// check rights           
+		TMPXGeneralCategory cat = media.Category();
+		const TDesC& uri = media.Uri();
+		if ( uri.Length() && cat != EMPXNoCategory )
+			{
+			TBool valid = iDrmUtility->ItemRightsValidityCheckL( uri, ( cat == EMPXImage ) );
+			CGlxMedia* properties = const_cast<CGlxMedia*>(media.Properties());
+			if( valid )
+				{
+				
+				isValid = EGlxDrmRightsValid;
+				}
+			else
+				{
+				
+				isValid = EGlxDrmRightsInvalid;
+				}
+			properties->SetTObjectValueL(KGlxMediaGeneralDRMRightsValid, isValid);
+			}
+		}
+    return ( EGlxDrmRightsValid == isValid );
+    }
+	
+void GlxMLWrapperPrivate::setDrmValid(int index,bool valid)	
+	{
+	const TGlxMedia& media = iMediaList->Item(index);
+	CGlxMedia* properties = const_cast<CGlxMedia*>(media.Properties());
+	if(valid)
+		{
+		properties->SetTObjectValueL(KGlxMediaGeneralDRMRightsValid, EGlxDrmRightsValid);
+		}
+	else
+		{
+		properties->SetTObjectValueL(KGlxMediaGeneralDRMRightsValid, EGlxDrmRightsInvalid);
+		}
+	}
+