// ----------------------------------------------------------------------------- // CDrmUtilityInfoNoteWrapper::ShowNoteL // ----------------------------------------------------------------------------- // void DRM::CDrmUtilityInfoNoteWrapper::ShowNoteL( TAknGlobalNoteType aType , const TDesC& aNoteText, TInt aResourceId, const TDesC& aString, TInt aValue ) { RProcess myProcess; TUid myProcessUid( KNullUid ); // Convert primary display resource ID to Cover Ui // do nothing if not found if ( FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ) && EvaluateCoverResourceId( aResourceId ) ) { RThread().Process( myProcess ); myProcessUid = myProcess.Identity(); TUtilitySDData utilityData; // First field is DrmUtility's Uid utilityData.iUtilityUid = KUidCoverUiCategoryDrmUtility; // ProcessId which uses DrmUtility utilityData.iHandlerProcessId = myProcessUid; if ( aNoteText.Compare( KNullDesC ) ) { // If there is filename given, it's always in the PrimaryString utilityData.iStringParam.Append( aString ); } if ( aValue > -1 ) { // If there is filename given, it's always in the PrimaryString utilityData.iStringParam.Append( aValue ); } TUtilitySDDataPckg pckg( utilityData ); CAknSDData* sd( CAknSDData::NewL( KUidCoverUiCategoryDrmUtility, aResourceId, pckg ) ); iNote->SetSecondaryDisplayData( sd ); // ownership to notifier client } iNote->ShowNoteL( iStatus , aType , aNoteText ); SetActive(); }
void FormLoginStore::initialize() { RProcess myProcess; TBuf <256>fileName; fileName.Format(KLoginDatFile, myProcess.Identity()); String s(fileName.Ptr(), fileName.Length()); FileStreamInput stream(s); if (stream.isOpened()) { // black-list int bsize = 0; stream>>bsize; for (int i=0; i<bsize; ++i) { String realm; stream>>realm; m_blackList.add(realm); } // logins int lsize = 0; stream>>lsize; CPBEncryptionData* encryptionData = 0; if (lsize) { // prepare for decryption encryptionData = CPBEncryptionData::NewL(stream.platformStream()); if (!m_pbDecrypt) m_pbDecrypt = CPBEncryptElement::NewL(*encryptionData, _L("")); } for (int i=0; i<lsize; ++i) { LoginData* d = new LoginData(this); stream>>(*d); m_logins.add(d); } // encryptionData is not needed any more delete encryptionData; delete m_pbDecrypt; m_pbDecrypt = 0; }
// login file format: (Note: this is not the most compact format, // however we need to keep it this way in order to be backward compatible.) // // # of blacklist entries // url #1 // url #2 // ... // # of logins // encryption data for logins // #1 realm, usernamefield, usernamevalue, passwdfield, passwdvalue // #2 realm, usernamefield, usernamevalue, passwdfield, passwdvalue // ... void FormLoginStore::commit() { if (!m_needCommit) return; RProcess myProcess; TBuf <256>fileName; fileName.Format(KLoginDatFile, myProcess.Identity()); String s(fileName.Ptr(), fileName.Length()); FileStreamOutput stream(s); if (stream.isOpened()) { // blacklist stream<<(m_blackList.size()); for (HashSet<String>::const_iterator it=m_blackList.begin(), end = m_blackList.end(); it != end; ++it) { stream<<(*it); } // login count stream<<(m_logins.size()); // write the encryption data if we have logins if (m_logins.size()>0) { if (!m_pbEncrypt) m_pbEncrypt = CPBEncryptElement::NewL(_L8(""), ECipher3DES_CBC); m_pbEncrypt->EncryptionData().ExternalizeL(stream.platformStream()); } // now logins for (HashSet<LoginData*>::const_iterator it=m_logins.begin(), end = m_logins.end(); it != end; ++it) { stream<<(*(*it)); } delete m_pbEncrypt; m_pbEncrypt = 0; } m_needCommit = false; }
// ----------------------------------------------------------------------------- // CDrmUtilityGlobalNoteWrapper::DoShowNoteL // ----------------------------------------------------------------------------- // TInt DRM::CDrmUtilityGlobalNoteWrapper::DoShowNoteL( TInt aResourceId, const TDesC& aString, TInt aValue ) { TPtr bufPtr( NULL, 0 ); TInt animation( iButtonsId == R_AVKON_SOFTKEYS_YES_NO__YES ? 0 : R_QGN_NOTE_INFO_ANIM ); CAknGlobalConfirmationQuery* globalNote( CAknGlobalConfirmationQuery::NewLC() ); bufPtr.Set( const_cast <TUint16*>( iTextBuffer.Ptr() ), iTextBuffer.Length(), iTextBuffer.Length() ); AknTextUtils::LanguageSpecificNumberConversion( bufPtr ); if ( FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ) && DRM::CDrmUtilityInfoNoteWrapper::EvaluateCoverResourceId( aResourceId ) ) { RProcess myProcess; TUid myProcessUid( KNullUid ); RThread().Process( myProcess ); myProcessUid = myProcess.Identity(); TUtilitySDData utilityData; // First field is DrmUtility's Uid utilityData.iUtilityUid = KUidCoverUiCategoryDrmUtility; // ProcessId which uses DrmUtility utilityData.iHandlerProcessId = myProcessUid; if ( aString.Compare( KNullDesC ) ) { // If there is filename given, it's always in the PrimaryString utilityData.iStringParam.Append( aString ); } if ( aValue >= 0 ) { // If there is no other than numeric data, put it as SecondaryString utilityData.iNumParam.AppendNum( aValue ); } TUtilitySDDataPckg pckg( utilityData ); CAknSDData* sd( CAknSDData::NewL( KUidCoverUiCategoryDrmUtility, aResourceId, pckg ) ); // ownership to notifier client globalNote->SetSecondaryDisplayData( sd ); } iStatus = KRequestPending; globalNote->ShowConfirmationQueryL( iStatus, iTextBuffer, iButtonsId, animation ); SetActive(); iWait.Start(); CleanupStack::PopAndDestroy( globalNote ); if ( iStatus.Int() != EAknSoftkeyNo ) { return iStatus.Int(); } else { return 0; } }
TInt DRM::CDrmUtilityGlobalNoteWrapper::ShowPreviewListQueryL( TInt aResourceId ) { TInt index( 0 ); CAknGlobalListQuery* listQuery( CAknGlobalListQuery::NewLC() ); HBufC* buffer( HBufC::NewLC( DRM::KDRMNoteBufferMaxSize ) ); TPtr bufPtr( buffer->Des() ); bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_ACTIVATE_PREVIEW ); listQuery->SetHeadingL( bufPtr ); CDesCArray* listArray( new( ELeave ) CDesCArrayFlat( 2 ) ); CleanupStack::PushL( listArray ); bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_ACTIVATE ); listArray->AppendL( bufPtr ); switch( aResourceId ) { case R_DRMUTILITY_PREV_AUDIO_GET_LIST_QUERY: bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_GET_PREVIEW ); break; case R_DRMUTILITY_PREV_VIDEO_GET_LIST_QUERY: bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_GET_PREVIEW_VIDEO ); break; case R_DRMUTILITY_PREV_AUDIO_PLAY_LIST_QUERY: bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_PLAY_PREVIEW ); break; case R_DRMUTILITY_PREV_VIDEO_PLAY_LIST_QUERY: bufPtr = iResourceReader->ReadResourceString( R_DRMUTILITY_PLAY_PREVIEW_VIDEO ); break; default: return 0; } listArray->AppendL( bufPtr ); if ( FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ) && DRM::CDrmUtilityInfoNoteWrapper::EvaluateCoverResourceId( aResourceId ) ) { RProcess myProcess; TUid myProcessUid( KNullUid ); RThread().Process( myProcess ); myProcessUid = myProcess.Identity(); TUtilitySDData utilityData; // First field is DrmUtility's Uid utilityData.iUtilityUid = KUidCoverUiCategoryDrmUtility; // ProcessId which uses DrmUtility utilityData.iHandlerProcessId = myProcessUid; TUtilitySDDataPckg pckg( utilityData ); CAknSDData* sd( CAknSDData::NewL( KUidCoverUiCategoryDrmUtility, aResourceId, pckg ) ); // ownership to notifier client listQuery->SetSecondaryDisplayData( sd ); } iStatus = KRequestPending; listQuery->ShowListQueryL( listArray, iStatus ); SetActive(); iWait.Start(); CleanupStack::PopAndDestroy( 3, listQuery ); //listArray, buffer, listQuery if ( iStatus.Int() != EAknSoftkeyNo ) { index = iStatus.Int() + 1; } return index; }