photosgallery/viewframework/drmutility/src/glxdrmutility.cpp
branchRCL_3
changeset 24 ea65f74e6de4
parent 23 b023a8d2866a
--- a/photosgallery/viewframework/drmutility/src/glxdrmutility.cpp	Thu Jul 15 18:39:01 2010 +0300
+++ b/photosgallery/viewframework/drmutility/src/glxdrmutility.cpp	Thu Aug 19 09:55:03 2010 +0300
@@ -32,6 +32,9 @@
 #include "glxtracer.h"
 #include "glxlog.h"
 
+#include <drmuihandling.h>
+using namespace DRM;
+
 const TInt KGlxDRMThumbnailHeight = 120;
 const TInt KGlxDRMThumbnailWidth = 90;
 
@@ -366,15 +369,22 @@
 EXPORT_C void CGlxDRMUtility::ShowDRMDetailsPaneL(const TDesC& aUri)
     {
     TRACER("CGlxDRMUtility::ShowDRMDetailsPaneL(URI)");
-    TRAPD( err, iDrmHelper->LaunchDetailsViewEmbeddedL( aUri ) );
-    // if no rights ask user to re-activate
-    if (err == KErrCANoRights)
-        {
-        HBufC* buf = aUri.AllocLC();
-        iDrmHelper->ActivateContentL(*buf);
-        CleanupStack::PopAndDestroy(buf);
-        }
+    GLX_LOG_URI("CGlxDRMUtility::ShowDRMDetailsPaneL(%S)", &aUri);
+    RFs fs;
+    User::LeaveIfError(fs.Connect());
+    CleanupClosePushL(fs);
 
+    RFile64 drmFile;
+    User::LeaveIfError(drmFile.Open(fs, aUri, EFileRead
+            | EFileShareReadersOrWriters));
+    CleanupClosePushL(drmFile);
+
+    CDrmUiHandling* drmUiHandler = CDrmUiHandling::NewLC();
+    TRAP_IGNORE(drmUiHandler->ShowDetailsViewL(drmFile));
+    CleanupStack::PopAndDestroy(drmUiHandler);
+
+    CleanupStack::PopAndDestroy(&drmFile);
+    CleanupStack::PopAndDestroy(&fs);
     }
 
 //============================================================================
@@ -383,12 +393,9 @@
 EXPORT_C void CGlxDRMUtility::ShowDRMDetailsPaneL(RFile& aFileHandle)
     {
     TRACER("CGlxDRMUtility::ShowDRMDetailsPaneL(RFile)");
-    TRAPD( err, iDrmHelper->LaunchDetailsViewEmbeddedL( aFileHandle ) );
-    // if no rights ask user to re-activate
-    if (err == KErrCANoRights)
-        {
-        //need to check if we need to handle.
-        }
+    CDrmUiHandling* drmUiHandler = CDrmUiHandling::NewLC();
+    TRAP_IGNORE(drmUiHandler->ShowDetailsViewL(aFileHandle));
+    CleanupStack::PopAndDestroy(drmUiHandler);
     }
 
 //============================================================================