commondrm/drmrightsmanagerui/src/DRMRightsMgrAppUi.cpp
branchRCL_3
changeset 17 e16d72588c28
parent 0 95b198f216e5
child 18 8a03a285ab14
--- a/commondrm/drmrightsmanagerui/src/DRMRightsMgrAppUi.cpp	Fri Feb 19 23:05:49 2010 +0200
+++ b/commondrm/drmrightsmanagerui/src/DRMRightsMgrAppUi.cpp	Fri Mar 12 15:43:46 2010 +0200
@@ -231,7 +231,7 @@
         {
         case EDrmSchemeOmaDrm:
             CheckOmaDrmRightsL( aContentURI, aLocalID, rights, status );
-            if ( status ) 
+            if ( status < 0 ) 
                 {
                 rights = NULL;
                 }
@@ -331,6 +331,7 @@
                                        const TBool aIsGroup )
     {
     CDcfCommon* dcf = NULL;
+    HBufC8* buffer( NULL );
     TBool getName = ETrue;
     TParse parse;
 
@@ -356,19 +357,52 @@
 
         if ( err == KErrNotFound || itemNameBuf->Length() == 0 )
             {
-            if ( aIsGroup )
+            // Do not show name if group rights or forward lock
+            if ( !aIsGroup )
                 {
-                aItemName = aFullName;
-                }
-            else
-                {
-                parse.Set( aFullName, NULL, NULL );
-                aItemName = parse.NameAndExt();
+                if ( ( iRightsClient.ForwardLockURI( buffer ) == 
+                        KErrNone ) && buffer )  
+                    {
+                    
+                    // Not forward lock
+                    if ( aID.Compare( *buffer ) != 0 )    
+                        {
+                        parse.Set( aFullName, NULL, NULL );
+                        aItemName = parse.NameAndExt();
+                        }   
+                    delete buffer;
+                    buffer = NULL;
+                    
+                    }       
+                else
+                    {
+                    parse.Set( aFullName, NULL, NULL );
+                    aItemName = parse.NameAndExt();
+                    }
                 }
             }
         else if ( err == KErrNone )
             {
-            aItemName = *itemNameBuf;
+            // Forward lock or combined delivery
+            // If forward lock, do not show name
+            if ( iRightsClient.ForwardLockURI( buffer ) == KErrNone &&
+                    buffer )
+                {
+                if ( aID.Compare( *buffer ) != 0 )
+                    {
+                    // Combined delivery
+                    aItemName = *itemNameBuf;
+                    }
+                delete buffer;
+                }
+            else 
+                {
+                // Do not show name if having group rights
+                if ( !aIsGroup )
+                    {
+                    aItemName = *itemNameBuf;
+                    }
+                }
             }
         else
             {
@@ -720,11 +754,21 @@
             if ( entry )
                 {
                 fullName = entry->FileName();
-                delete entry;
                 SetSelectedItemFullName( fullName );
 
                 TFileName itemName;
-                GetItemNameL( fullName, itemName, aContentURI, EFalse );
+                
+                if ( entry->GroupId().Length() > 0 )
+                    {
+                    GetItemNameL( fullName, itemName, aContentURI, ETrue );
+                    }    
+                else 
+                    {
+                    GetItemNameL( fullName, itemName, aContentURI, EFalse );
+                    }
+                
+                delete entry;
+                
                 SetSelectedItemName( itemName );
 
                 if ( GetItemDataL( fullName, aContentURI, listable,
@@ -738,6 +782,7 @@
             {
             SetSelectedItemFullName( KNullDesC );
             TFileName itemName;
+            // Treat in GetItemNameL as if having group rights
             GetItemNameL( KNullDesC, itemName, aContentURI, ETrue );
             SetSelectedItemName( itemName );
 
@@ -753,15 +798,15 @@
         {
         aStatus = iDRMCommon->GetSingleRightsObject( aContentURI,
             aLocalID, aRights );
+        if ( aStatus )
+            {
+            aRights = NULL;
+            }
         }
-        else
+    else
         {
         aStatus = iDRMCommon->GetActiveRights( aContentURI, 0, aRights );
         }
-    if ( aStatus )
-        {
-        aRights = NULL;
-        }
 
     CheckIndividualConstraint( aContentURI, individualConstraint, usageAllowed );
     SetSelectedIndividualConstraint( individualConstraint );