--- a/filemanager/View/src/CFileManagerFullOmaDrmInfo.cpp Thu Aug 19 09:42:45 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,997 +0,0 @@
-/*
-* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0""
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Gets the item DRM information
-*
-*/
-
-
-// INCLUDE FILES
-#include <coemain.h>
-#include <StringLoader.h>
-#include <DRMHelper.h>
-#include <DRMRights.h>
-#include <AknUtils.h>
-#include <filemanagerview.rsg>
-#include <FileManagerDebug.h>
-#include <drmuihandling.h>
-#include "CFileManagerFullOmaDrmInfo.h"
-
-// CONSTANTS
-_LIT( KSeparator, "\t" );
-#ifndef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-_LIT( KDateFormat1, "%1" );
-_LIT( KDateFormat2, "%2" );
-_LIT( KDateFormat3, "%3" );
-_LIT( KTimeFormatBefore, " %-B %J:%T" );
-_LIT( KTimeFormatAfter, " %J:%T %+B" );
-_LIT( KEmptyChar, " " );
-const TInt KDateStringLen = 20;
-
-const TUint KSecondSeparator = 1;
-const TUint KThirdSeparator = 2;
-
-
-const TInt KPlayRights = 0;
-const TInt KDisplayRights = 1;
-const TInt KExecuteRights = 2;
-const TInt KPrintRights = 3;
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-
-// ============================ LOCAL FUNCTIONS ================================
-
-// -----------------------------------------------------------------------------
-// AppendLabelAndDataToArrayL
-// -----------------------------------------------------------------------------
-static void AppendLabelAndDataToArrayL( CDesCArray& aArray,
- const TDesC& aLabel,
- const TDesC& aData )
- {
- HBufC* dataStr = HBufC::NewLC( aLabel.Length() +
- KSeparator().Length() +
- aData.Length() );
-
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( aLabel );
- dataPtr.Append( KSeparator );
- dataPtr.Append( aData );
-
- AknTextUtils::LanguageSpecificNumberConversion( dataPtr );
-
- aArray.AppendL( dataPtr );
-
- CleanupStack::PopAndDestroy( dataStr );
- }
-
-#ifndef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-// -----------------------------------------------------------------------------
-// ResetAndDestroy
-// -----------------------------------------------------------------------------
-static void ResetAndDestroy( TAny* aPtr )
- {
- RPointerArray< CDRMHelperRightsConstraints >* array =
- static_cast< RPointerArray<CDRMHelperRightsConstraints>* >( aPtr );
- array->ResetAndDestroy();
- array->Close();
- }
-
-// -----------------------------------------------------------------------------
-// IsFutureRights
-// -----------------------------------------------------------------------------
-static TBool IsFutureRights(
- RPointerArray<CDRMRightsConstraints>& aRightsArray )
- {
- TBool ret( EFalse );
- const TInt count( aRightsArray.Count() );
- for( TInt i = 0 ; i < count ; ++i )
- {
- CDRMRightsConstraints* rights = aRightsArray[i];
- TUint32 expiration( 0 );
- TUint32 constType( 0 );
- TInt topPriorityValue( CDRMRights::EInvalidRights );
- if( rights )
- {
- TInt currentPriorityValue( rights->GetConstraintInfo( expiration, constType ) );
- if( currentPriorityValue > topPriorityValue )
- {
- // priority is higher than previous rigths
- topPriorityValue = currentPriorityValue;
- if( CDRMRights::EFutureRights == expiration )
- {
- ret = ETrue;
- }
- else
- {
- // no future rights
- ret = EFalse;
- }
- }
- }
- }
- return ret;
- }
-
-// -----------------------------------------------------------------------------
-// DateTimeStringLC
-// -----------------------------------------------------------------------------
-static HBufC* DateTimeStringLC( const TTime& aTime )
- {
- TBuf<KDateStringLen> dateStr;
- TBuf<KDateStringLen> timeStr;
- TBuf<KDateStringLen> dateStrFormat;
-
- // Localized date separator form
- TLocale local;
- dateStrFormat.Append( KDateFormat1 );
- dateStrFormat.Append( local.DateSeparator( KSecondSeparator ) );
- dateStrFormat.Append( KDateFormat2 );
- dateStrFormat.Append( local.DateSeparator( KThirdSeparator ) );
- dateStrFormat.Append( KDateFormat3 );
- aTime.FormatL( dateStr, dateStrFormat );
-
- if ( local.AmPmSymbolPosition() == ELocaleBefore )
- {
- aTime.FormatL( timeStr, KTimeFormatBefore );
- }
- else
- {
- aTime.FormatL( timeStr, KTimeFormatAfter );
- }
-
- HBufC* buf = HBufC::NewLC( dateStr.Length() +
- KEmptyChar().Length() +
- timeStr.Length() );
- TPtr ptrBuffer( buf->Des() );
- ptrBuffer.Append( dateStr );
- ptrBuffer.Append( KEmptyChar );
- ptrBuffer.Append( timeStr );
-
- return buf;
- }
-
-// -----------------------------------------------------------------------------
-// DateTimeL
-// -----------------------------------------------------------------------------
-static void DateTimeL( CDesCArray& aArray,
- const TTime& aTime,
- TInt aResourceId,
- const TDesC& aType )
- {
- HBufC* label = StringLoader::LoadLC( aResourceId, aType );
- HBufC* dateTime = DateTimeStringLC( aTime );
-
- AppendLabelAndDataToArrayL( aArray, *label, *dateTime );
-
- CleanupStack::PopAndDestroy( dateTime );
- CleanupStack::PopAndDestroy( label );
- }
-
-// -----------------------------------------------------------------------------
-// FillCounterInfoL
-// -----------------------------------------------------------------------------
-static void FillCounterInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints& aRights,
- const TDesC& aType )
- {
- TUint32 count( 0 );
- TUint32 timedCount( 0 );
- TUint32 ignore1( 0 );
- TUint32 ignore2( 0 );
- TTimeIntervalSeconds ignore3( 0 );
- TInt err( KErrNone );
-
- TRAPD( errCount, aRights.GetCountersL( count, ignore1 ) );
- TRAPD( errTimedCount, aRights.GetTimedCountL( timedCount, ignore2,
- ignore3 ) );
-
- if ( errCount == KErrNone && errTimedCount == KErrNone )
- {
- // Both counts present, use minimum
- count = Min( count, timedCount );
- err = KErrNone;
- }
- else if ( errCount == KErrNone )
- {
- // Use count
- err = KErrNone;
- }
- else if ( errTimedCount == KErrNone )
- {
- // Use timed count
- count = timedCount;
- err = KErrNone;
- }
- else
- {
- // Neither regular nor timed count constraint
- // present, return error
- err = KErrNotFound;
- }
-
- if ( err == KErrNone )
- {
- // "Times left (%U)"
- HBufC* label =
- StringLoader::LoadLC( R_QTN_DRM_MGR_DET_UTL_X, aType );
-
- HBufC* data = NULL;
-
- if ( count == 1 )
- {
- // "1 count"
- data = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_1_COUNT );
- }
- else
- {
- // "%N counts"
- data = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_N_COUNTS, count );
- }
-
- AppendLabelAndDataToArrayL( aArray, *label, *data );
-
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- }
- }
-
-// -----------------------------------------------------------------------------
-// SplitTime
-// -----------------------------------------------------------------------------
-//
-static void SplitTime( const TTimeIntervalSeconds& aInterval,
- TInt& aIntYrs, TInt& aIntMon, TInt& aIntDay,
- TInt& aIntHrs, TInt& aIntMin, TInt& aIntSec )
- {
- const TInt KSecsInMin( 60 );
- const TInt KSecsInHour( KSecsInMin * 60 );
- const TInt KSecsInDay( KSecsInHour * 24 );
-
- // includes leap year day
- const TInt KLastMonthIndex = 11;
- const TInt KMaxDaysInMonths[] = {
- 31, 62, 92, 123, 153, 184,
- 215, 245, 276, 306, 337, 366 };
-
- // calculate full days
- TInt temp( aInterval.Int() / KSecsInDay );
-
- // calculate full years, calculate without leap year for user to get the
- // longest time possible
- aIntYrs = temp / ( KMaxDaysInMonths[KLastMonthIndex] - 1 );
-
- // calc remainder days
- temp = temp % ( KMaxDaysInMonths[KLastMonthIndex] - 1 );
-
- aIntMon = 0;
-
- TInt i( 0 );
- if ( temp >= KMaxDaysInMonths[0] )
- {
- for ( i = 0; i < KLastMonthIndex; i++ )
- {
- // found correct amount of months
- if ( temp >= KMaxDaysInMonths[i] && temp < KMaxDaysInMonths[i+1] )
- {
- // i now contains amount of full months (+1 because of table index)
- aIntMon = i + 1;
- break;
- }
- }
- }
-
- // calc remainder days = allSecs - secsInFullYears - secsInFullMonts
- if( temp >= KMaxDaysInMonths[i] )
- {
- aIntDay = temp - KMaxDaysInMonths[i];
- }
- else
- {
- aIntDay = temp;
- }
-
- // calculate remainder secs
- temp = aInterval.Int() % KSecsInDay;
-
- aIntHrs = temp / KSecsInHour;
-
- // calculate remainder secs
- temp = temp % KSecsInHour;
-
- aIntMin = temp / KSecsInMin;
-
- // calculate remainder secs
- aIntSec = temp % KSecsInMin;
- }
-
-// -----------------------------------------------------------------------------
-// AddSinglePartOfTimeL
-// -----------------------------------------------------------------------------
-//
-static void AddSinglePartOfTimeL( TInt aNumOfElements,
- TInt aResourceIdSingle,
- TInt aResourceIdOneFinal,
- TInt aResourceIdTwoFour,
- TInt aResourceIdFiveZero,
- CDesCArrayFlat* aStrings )
- {
- const TInt KDigitFive = 5;
- const TInt KDigitNine = 9;
- const TInt KDigitTen = 10;
- const TInt KDigitEleven = 11;
- const TInt KDigitFourTeen = 14;
- const TInt KDigitHundred = 100;
- HBufC* stringHolder = NULL;
- TInt finalOneDigit( aNumOfElements % KDigitTen );
- TInt finalTwoDigits( aNumOfElements % KDigitHundred );
-
- if ( aNumOfElements == 1 )
- {
- stringHolder = StringLoader::LoadLC( aResourceIdSingle );
- }
- else if ( finalOneDigit == 1 && finalTwoDigits != KDigitEleven )
- {
- stringHolder = StringLoader::LoadLC( aResourceIdOneFinal,
- aNumOfElements );
- }
- else if ( finalOneDigit == 0 ||
- ( finalOneDigit >= KDigitFive && finalOneDigit <= KDigitNine ) ||
- ( finalTwoDigits >= KDigitEleven && finalTwoDigits <= KDigitFourTeen ) )
- {
- stringHolder = StringLoader::LoadLC( aResourceIdFiveZero,
- aNumOfElements );
- }
- else
- {
- stringHolder = StringLoader::LoadLC( aResourceIdTwoFour,
- aNumOfElements );
- }
-
- if ( aStrings )
- {
- aStrings->AppendL( *stringHolder );
- }
-
- CleanupStack::PopAndDestroy ( stringHolder );
- }
-
-// -----------------------------------------------------------------------------
-// AddPartsOfTimeLC
-// -----------------------------------------------------------------------------
-//
-static HBufC* AddPartsOfTimeLC( TInt aIntYrs, TInt aIntMon, TInt aIntDay,
- TInt aIntHrs, TInt aIntMin, TInt aIntSec )
- {
- // Only the two most meaningful data will be showed
- TInt numOfData( 0 );
- const TInt KMaxDataItems = 2;
-
- CDesCArrayFlat* strings = new ( ELeave ) CDesCArrayFlat( KMaxDataItems );
- CleanupStack::PushL( strings );
-
- if ( aIntYrs > 0 )
- {
- AddSinglePartOfTimeL( aIntYrs,
- R_QTN_DRM_NBR_OF_YEARS_ONE,
- R_QTN_DRM_NBR_OF_YEARS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_YEARS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_YEARS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- if ( aIntMon > 0 )
- {
- // Second type not provided because 11 is the maximum
- AddSinglePartOfTimeL( aIntMon,
- R_QTN_DRM_NBR_OF_MONTHS_ONE,
- 0,
- R_QTN_DRM_NBR_OF_MONTHS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_MONTHS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- // Only if years or months were missing
- if ( aIntDay > 0 && numOfData < KMaxDataItems )
- {
- AddSinglePartOfTimeL( aIntDay,
- R_QTN_DRM_NBR_OF_DAYS_ONE,
- R_QTN_DRM_NBR_OF_DAYS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_DAYS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_DAYS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- if ( aIntHrs > 0 && numOfData < KMaxDataItems )
- {
- AddSinglePartOfTimeL( aIntHrs,
- R_QTN_DRM_NBR_OF_HOURS_ONE,
- R_QTN_DRM_NBR_OF_HOURS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_HOURS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_HOURS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- if ( aIntMin > 0 && numOfData < KMaxDataItems )
- {
- AddSinglePartOfTimeL( aIntMin,
- R_QTN_DRM_NBR_OF_MINS_ONE,
- R_QTN_DRM_NBR_OF_MINS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_MINS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_MINS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- // If interval is 0, then it shows "0 seconds" anyway
- if ( ( aIntSec > 0 && numOfData < KMaxDataItems ) || numOfData == 0 )
- {
- AddSinglePartOfTimeL( aIntSec,
- R_QTN_DRM_NBR_OF_SECS_ONE,
- R_QTN_DRM_NBR_OF_SECS_ONE_FINAL,
- R_QTN_DRM_NBR_OF_SECS_TWO_FOUR,
- R_QTN_DRM_NBR_OF_SECS_FIVE_ZERO,
- strings );
- numOfData++;
- }
-
- HBufC* stringHolder = NULL;
- if ( numOfData == 1 )
- {
- stringHolder = StringLoader::LoadL( R_QTN_DRM_MGR_DET_INTER,
- strings->MdcaPoint(0) );
- }
- else
- {
- stringHolder = StringLoader::LoadL( R_QTN_DRM_MGR_DET_INTER_TWO,
- *strings );
- }
-
- CleanupStack::PopAndDestroy( strings );
-
- CleanupStack::PushL( stringHolder );
-
- return stringHolder;
- }
-
-// -----------------------------------------------------------------------------
-// FillUsageTimeLeftInfoL
-// -----------------------------------------------------------------------------
-static void FillUsageTimeLeftInfoL( CDesCArray& aArray,
- const TTimeIntervalSeconds& aInterval,
- const TDesC& aType,
- TBool aIsAccumulatedTime )
- {
- TInt years( 0 );
- TInt months( 0 );
- TInt days( 0 );
- TInt hours( 0 );
- TInt minutes( 0 );
- TInt seconds( 0 );
- HBufC* label = NULL;
- HBufC* data = NULL;
-
- if ( aIsAccumulatedTime )
- {
- // "Usage time left"
- label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_ACCUM_TIME_LEFT );
- }
- else
- {
- // "Time left (%U)"
- label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_UDL_X, aType );
- }
-
- SplitTime( aInterval, years, months, days, hours, minutes, seconds );
- data = AddPartsOfTimeLC( years, months, days, hours, minutes, seconds );
-
- AppendLabelAndDataToArrayL( aArray, *label, *data );
-
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- }
-
-// -----------------------------------------------------------------------------
-// FillIntervalInfoL
-// -----------------------------------------------------------------------------
-static void FillIntervalInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints& aRights,
- const TDesC& aType )
- {
- TTimeIntervalSeconds intervalSeconds( 0 );
-
- TRAPD( err, aRights.GetIntervalL( intervalSeconds ) );
-
- if ( err != KErrNotFound && err != KErrNone )
- {
- User::Leave( err );
- }
-
- if ( err == KErrNone )
- {
- TTime intervalStartTime( 0 );
-
- TRAP( err, aRights.GetIntervalStartL( intervalStartTime ) );
-
- if ( ( err != KErrNotFound ) && ( err != KErrNone ) )
- {
- User::Leave( err );
- }
-
- if ( err == KErrNotFound )
- {
- // "Times status (%U)"
- HBufC* label =
- StringLoader::LoadLC( R_QTN_DRM_MGR_DET_UTS_X, aType );
-
- // "Not activated"
- HBufC* data = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_NOT_ACT );
-
- AppendLabelAndDataToArrayL( aArray, *label, *data );
-
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
-
- // "Time left (%U)"
- FillUsageTimeLeftInfoL( aArray, intervalSeconds, aType, EFalse );
- }
- else
- {
- TTime endTime( intervalStartTime );
- endTime += intervalSeconds;
-
- // "Valid from (%U)"
- DateTimeL( aArray, intervalStartTime,
- R_QTN_DRM_MGR_DET_RVF_X, aType );
-
- // "Valid until (%U)"
- DateTimeL( aArray, endTime, R_QTN_DRM_MGR_DET_RVT_X, aType );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// FillTimeInfoL
-// -----------------------------------------------------------------------------
-static void FillTimeInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints& aRights,
- const TDesC& aType )
- {
- TTime startTime;
- TRAPD( err, aRights.GetStartTimeL( startTime ) );
- if ( err != KErrNotFound && err != KErrNone )
- {
- User::Leave( err );
- }
- if ( err == KErrNone )
- {
- // "Valid from (%U)"
- DateTimeL( aArray, startTime, R_QTN_DRM_MGR_DET_RVF_X, aType );
- }
-
- TTime endTime;
- TRAP( err, aRights.GetEndTimeL( endTime ) );
- if ( err != KErrNotFound && err != KErrNone )
- {
- User::Leave( err );
- }
- if ( err == KErrNone )
- {
- // "Valid until (%U)"
- DateTimeL( aArray, endTime, R_QTN_DRM_MGR_DET_RVT_X, aType );
- }
- }
-
-// -----------------------------------------------------------------------------
-// FillAccumulatedTimeInfoL
-// -----------------------------------------------------------------------------
-static void FillAccumulatedTimeInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints& aRights,
- const TDesC& aType )
- {
- TTimeIntervalSeconds accumSeconds( 0 );
- TRAPD( err, aRights.GetAccumulatedTimeL( accumSeconds ));
- if ( err != KErrNotFound && err != KErrNone )
- {
- User::Leave( err );
- }
- if ( err == KErrNone )
- {
- // "Usage time left"
- FillUsageTimeLeftInfoL( aArray, accumSeconds, aType, ETrue );
- }
- }
-
-// -----------------------------------------------------------------------------
-// FillDrmInfoL
-// -----------------------------------------------------------------------------
-static void FillDrmInfoL( CDesCArray& aArray,
- CDRMHelperRightsConstraints* aRights,
- TInt aResourceId )
- {
- // Check if no rights at all
- if ( !aRights )
- {
- return;
- }
-
- // Rights type is either "Play", "Display", "Execute" or "Print"
- HBufC* type = StringLoader::LoadLC( aResourceId );
-
- // Check if full rights
- if ( aRights->FullRights() )
- {
- // "Rights (%U)"
- HBufC* label =
- StringLoader::LoadLC( R_QTN_DRM_MGR_DET_FULL_X, *type );
-
- // "Unlimited"
- HBufC* data = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_UNLIMITED );
-
- AppendLabelAndDataToArrayL( aArray, *label, *data );
-
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- CleanupStack::PopAndDestroy( type );
- return; // full rights -> return
- }
-
- // Get detailed counter constraint information
- FillCounterInfoL( aArray, *aRights, *type );
-
- // Get detailed interval constraint information (start time + duration)
- FillIntervalInfoL( aArray, *aRights, *type );
-
- // Get detailed time constraint information (start time + end time)
- FillTimeInfoL( aArray, *aRights, *type );
-
- // Get detailed accumulated time constraint information (duration)
- FillAccumulatedTimeInfoL( aArray, *aRights, *type );
-
- CleanupStack::PopAndDestroy( type );
- }
-
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CFileManagerFullOmaDrmInfo
-// C++ default constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFullOmaDrmInfo::CFileManagerFullOmaDrmInfo()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFullOmaDrmInfo::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFullOmaDrmInfo* CFileManagerFullOmaDrmInfo::NewL( CDesCArray& aArray,
- const TDesC& aFullPath,
- CCoeEnv& aCoeEnv )
- {
- CFileManagerFullOmaDrmInfo* self = NewLC( aArray, aFullPath, aCoeEnv );
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFullOmaDrmInfo::NewLC
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CFileManagerFullOmaDrmInfo* CFileManagerFullOmaDrmInfo::NewLC( CDesCArray& aArray,
- const TDesC& aFullPath,
- CCoeEnv& aCoeEnv )
- {
- CFileManagerFullOmaDrmInfo* self = new( ELeave ) CFileManagerFullOmaDrmInfo();
-
- CleanupStack::PushL( self );
- self->ConstructL( aArray, aFullPath, aCoeEnv );
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CFileManagerFullOmaDrmInfo::~CFileManagerFullOmaDrmInfo
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CFileManagerFullOmaDrmInfo::~CFileManagerFullOmaDrmInfo()
- {
- }
-
-#ifndef RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// -----------------------------------------------------------------------------
-// CImageInfoPopupList::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFullOmaDrmInfo::ConstructL( CDesCArray& aItemArray,
- const TDesC& aFileName,
- CCoeEnv& aCoeEnv )
- {
- TBool expired ( EFalse );
- TBool sendingAllowed( EFalse );
- RPointerArray<CDRMHelperRightsConstraints> tempArr;
- TCleanupItem cleanupItem( ResetAndDestroy, &tempArr );
- CleanupStack::PushL( cleanupItem );
- tempArr.AppendL( NULL ); // Play
- tempArr.AppendL( NULL ); // Display
- tempArr.AppendL( NULL ); // Execute
- tempArr.AppendL( NULL ); // Print
-
- CDRMHelper* drmHelper = CDRMHelper::NewLC( aCoeEnv );
-
- TRAPD( err, drmHelper->GetRightsDetailsL(
- aFileName,
- 0, // Details for everything
- expired,
- sendingAllowed,
- tempArr[KPlayRights],
- tempArr[KDisplayRights],
- tempArr[KExecuteRights],
- tempArr[KPrintRights] ) );
- TBool future( EFalse );
- if( expired || err == CDRMRights::ENoRights )
- {
- // Check future rights
- RPointerArray<CDRMRightsConstraints> fArr;
- TCleanupItem cleanupItem( ResetAndDestroy, &fArr );
- CleanupStack::PushL( cleanupItem );
- fArr.AppendL( NULL ); // Play
- fArr.AppendL( NULL ); // Display
- fArr.AppendL( NULL ); // Execute
- fArr.AppendL( NULL ); // Print
-
- TBool tmp( EFalse );
- TBool tmp2( EFalse );
- TRAP( err, drmHelper->GetRightsDetailsL( aFileName,
- 0,
- tmp,
- tmp2,
- fArr[KPlayRights],
- fArr[KDisplayRights],
- fArr[KExecuteRights],
- fArr[KPrintRights] ) );
-
- if( err == KErrNone || err == CDRMRights::ENoRights )
- {
- future = IsFutureRights( fArr );
- }
- CleanupStack::PopAndDestroy( &fArr );
-
- ERROR_LOG2( "CFileManagerFullOmaDrmInfo::ConstructL-err:%d,future:%d",
- err, future )
- }
- CleanupStack::PopAndDestroy( drmHelper );
-
- ERROR_LOG3( "CFileManagerFullOmaDrmInfo::ConstructL-err:%d,expired:%d,sendingAllowed:%d",
- err, expired, sendingAllowed )
-
- // Check if the rights are valid or expired
- // Should probably be able to append this information also when the
- // rights have expired.
- // "Status"
- HBufC* label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_STAT );
- HBufC* data = NULL;
- // "Valid" or "Expired" or "Not valid yet"
- TInt resId( R_QTN_DRM_MGR_DET_VALID );
- if( future )
- {
- resId = R_QTN_DRM_MGR_DET_NOT_VALID_YET;
- }
- else if ( expired || err == CDRMRights::ENoRights )
- {
- resId = R_QTN_DRM_MGR_DET_EXP;
- }
- data = StringLoader::LoadLC( resId );
- AppendLabelAndDataToArrayL( aItemArray, *label, *data );
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
-
- // "Play"
- FillDrmInfoL( aItemArray, tempArr[KPlayRights], R_QTN_DRM_MGR_DET2_PLAY );
-
- // "Display"
- FillDrmInfoL( aItemArray, tempArr[KDisplayRights], R_QTN_DRM_MGR_DET2_DISPLAY );
-
- // "Execute"
- FillDrmInfoL( aItemArray, tempArr[KExecuteRights], R_QTN_DRM_MGR_DET2_EXECUTE );
-
- // "Print"
- FillDrmInfoL( aItemArray, tempArr[KPrintRights], R_QTN_DRM_MGR_DET2_PRINT );
-
- CleanupStack::PopAndDestroy( &tempArr );
-
- // Check whether sending is allowed or not
-
- // "Sending"
- label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_CS );
- data = NULL;
- // "Allowed" or "Forbidden"
- resId = ( sendingAllowed ? R_QTN_DRM_MGR_DET_ALLOWED
- : R_QTN_DRM_MGR_DET_FORBID );
- data = StringLoader::LoadLC( resId );
- AppendLabelAndDataToArrayL( aItemArray, *label, *data );
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- }
-
-#else // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// -----------------------------------------------------------------------------
-// CImageInfoPopupList::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFullOmaDrmInfo::ConstructL( CDesCArray& aItemArray,
- const TDesC& /*aFileName*/,
- CCoeEnv& /*aCoeEnv*/ )
- {
- /*
- TBool expired ( EFalse );
- TBool sendingAllowed( EFalse );
- RPointerArray<CDRMHelperRightsConstraints> tempArr;
- TCleanupItem cleanupItem( ResetAndDestroy, &tempArr );
- CleanupStack::PushL( cleanupItem );
- tempArr.AppendL( NULL ); // Play
- tempArr.AppendL( NULL ); // Display
- tempArr.AppendL( NULL ); // Execute
- tempArr.AppendL( NULL ); // Print
-
- CDRMHelper* drmHelper = CDRMHelper::NewLC( aCoeEnv );
-
- TRAPD( err, drmHelper->GetRightsDetailsL(
- aFileName,
- 0, // Details for everything
- expired,
- sendingAllowed,
- tempArr[KPlayRights],
- tempArr[KDisplayRights],
- tempArr[KExecuteRights],
- tempArr[KPrintRights] ) );
- TBool future( EFalse );
- if( expired || err == CDRMRights::ENoRights )
- {
- // Check future rights
- RPointerArray<CDRMRightsConstraints> fArr;
- TCleanupItem cleanupItem( ResetAndDestroy, &fArr );
- CleanupStack::PushL( cleanupItem );
- fArr.AppendL( NULL ); // Play
- fArr.AppendL( NULL ); // Display
- fArr.AppendL( NULL ); // Execute
- fArr.AppendL( NULL ); // Print
-
- TBool tmp( EFalse );
- TBool tmp2( EFalse );
- TRAP( err, drmHelper->GetRightsDetailsL( aFileName,
- 0,
- tmp,
- tmp2,
- fArr[KPlayRights],
- fArr[KDisplayRights],
- fArr[KExecuteRights],
- fArr[KPrintRights] ) );
-
- if( err == KErrNone || err == CDRMRights::ENoRights )
- {
- future = IsFutureRights( fArr );
- }
- CleanupStack::PopAndDestroy( &fArr );
-
- ERROR_LOG2( "CFileManagerFullOmaDrmInfo::ConstructL-err:%d,future:%d",
- err, future )
- }
- CleanupStack::PopAndDestroy( drmHelper );
-
- ERROR_LOG3( "CFileManagerFullOmaDrmInfo::ConstructL-err:%d,expired:%d,sendingAllowed:%d",
- err, expired, sendingAllowed )
-
- if ( tempArr[KPlayRights] ||
- tempArr[KDisplayRights] ||
- tempArr[KExecuteRights] ||
- tempArr[KPrintRights] )
- {
- */
- // Add link to display rights details
- _LIT( KLinkTagStart, "<AknMessageQuery Link>" );
- _LIT( KLinkTagEnd, "</AknMessageQuery Link>" );
-
- HBufC* linkTitle = StringLoader::LoadLC( R_QTN_FMGR_DRM_DET_LINK );
- HBufC* linkText = StringLoader::LoadLC( R_QTN_FMGR_DRM_DET_LINK_VIEW );
- HBufC* dataStr = HBufC::NewLC( KLinkTagStart().Length() +
- linkText->Length() +
- KLinkTagEnd().Length() );
- TPtr dataPtr( dataStr->Des() );
- dataPtr.Append( KLinkTagStart );
- dataPtr.Append( *linkText );
- dataPtr.Append( KLinkTagEnd );
- AppendLabelAndDataToArrayL( aItemArray, *linkTitle, *dataStr );
- CleanupStack::PopAndDestroy( dataStr );
- CleanupStack::PopAndDestroy( linkText );
- CleanupStack::PopAndDestroy( linkTitle );
- /*
- }
- else
- {
- // Add forward-lock details
- // "Status"
- HBufC* label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_STAT );
- HBufC* data = NULL;
- // "Valid" or "Expired" or "Not valid yet"
- TInt resId( R_QTN_DRM_MGR_DET_VALID );
- if( future )
- {
- resId = R_QTN_DRM_MGR_DET_NOT_VALID_YET;
- }
- else if ( expired || err == CDRMRights::ENoRights )
- {
- resId = R_QTN_DRM_MGR_DET_EXP;
- }
- data = StringLoader::LoadLC( resId );
- AppendLabelAndDataToArrayL( aItemArray, *label, *data );
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
-
- // "Sending"
- label = StringLoader::LoadLC( R_QTN_DRM_MGR_DET_CS );
- data = NULL;
- // "Allowed" or "Forbidden"
- resId = ( sendingAllowed ? R_QTN_DRM_MGR_DET_ALLOWED
- : R_QTN_DRM_MGR_DET_FORBID );
- data = StringLoader::LoadLC( resId );
- AppendLabelAndDataToArrayL( aItemArray, *label, *data );
- CleanupStack::PopAndDestroy( data );
- CleanupStack::PopAndDestroy( label );
- }
-
- CleanupStack::PopAndDestroy( &tempArr );
- */
- }
-
-// -----------------------------------------------------------------------------
-// CImageInfoPopupList::ViewDetailsL
-// -----------------------------------------------------------------------------
-//
-void CFileManagerFullOmaDrmInfo::ViewDetailsL(
- const TDesC& aFileName,
- DRM::CDrmUiHandling* aUiHandling )
- {
- RFs fs;
- User::LeaveIfError( fs.Connect() );
- CleanupClosePushL( fs );
-
- RFile64 drmFile;
- User::LeaveIfError( drmFile.Open(
- fs, aFileName, EFileRead | EFileShareReadersOrWriters ) );
-
- CleanupClosePushL( drmFile );
-
- TRAPD( err, aUiHandling->ShowDetailsViewL( drmFile ) );
-
- CleanupStack::PopAndDestroy( &drmFile );
- CleanupStack::PopAndDestroy( &fs );
-
- }
-
-#endif // RD_DRM_COMMON_INTERFACE_FOR_OMA_AND_WMDRM
-
-// End of file