--- a/messagingfw/muiuutils/src/MuiuServiceUtilities.cpp Tue Aug 31 15:41:11 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,344 +0,0 @@
-/*
-* Copyright (c) 2002 - 2005 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:
-* Static class to help mtm service queries.
-*
-*/
-
-
-
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <bldvariant.hrh> // For feature flags
-#include <msvuids.h> // KUidMsvServiceEntry
-#include <data_caging_path_literals.hrh> // KDC_RESOURCE_FILES_DIR
-#include <msvapi.h>
-#include <msvstd.hrh>
-#include <msvids.h>
-#include <mtclreg.h> // CClientMtmRegistry
-#include <mtclbase.h> // CBaseMtm
-#include <centralrepository.h> // CRepository
-#include <UiklafInternalCRKeys.h> // KCRUidUiklaf, KUikOODDiskCriticalThreshold
-
-#include <MuiuServiceUtilities.h>
-
-// CONSTANTS
-const TInt KMuiuCharQuote = '\"';
-const TInt KMuiuCharBackSlash = '\\';
-const TInt KMuiuCharDot = '.';
-const TInt KMuiuCharSpace = ' ';
-const TInt KMuiuCharDel = 127;
-const TInt KMuiuCharAt = '@';
-const TInt KMuiuSpecialCharStrLen = 12;
-_LIT( KRFC822Specials,"()<>@,;:\\\"[]");
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// ---------------------------------------------------------
-// MsvUiServiceUtilitiesr::GetListOfAccountsL
-//
-// ---------------------------------------------------------
-//
-EXPORT_C CMsvEntrySelection* MsvUiServiceUtilities::GetListOfAccountsL( CMsvSession& aSession,
- TBool aAlwaysListHidden )
- { // static
- return DoGetListOfAccountsL( aSession, KNullUid, aAlwaysListHidden );
- }
-
-
-// ---------------------------------------------------------
-// MsvUiServiceUtilitiesr::GetListOfAccountsWithMTML
-//
-// ---------------------------------------------------------
-//
-EXPORT_C CMsvEntrySelection* MsvUiServiceUtilities::GetListOfAccountsWithMTML(
- CMsvSession& aSession,
- TUid aMtm, TBool aAlwaysListHidden )
- { // static
- return DoGetListOfAccountsL( aSession, aMtm, aAlwaysListHidden );
- }
-
-
-// ---------------------------------------------------------
-// MsvUiServiceUtilitiesr::DoGetListOfAccountsL
-//
-// ---------------------------------------------------------
-//
-CMsvEntrySelection* MsvUiServiceUtilities::DoGetListOfAccountsL( CMsvSession& aSession,
- TUid aMtm,
- TBool aAlwaysListHidden )
- {
- CMsvEntrySelection* sel = new( ELeave ) CMsvEntrySelection();
- CleanupStack::PushL( sel );
- CMsvEntry* entry = aSession.GetEntryL( KMsvRootIndexEntryIdValue );
- CleanupStack::PushL( entry );
- TBool visible = EFalse;
- TInt err;
-
- TInt cnt = entry->Count();
- if ( cnt != 0 )
- {
- entry->SetSortTypeL( TMsvSelectionOrdering( KMsvGroupByType | KMsvGroupByStandardFolders,
- EMsvSortByDetailsReverse, ETrue ) );
- const TMsvEntry* tentry;
- for (TInt cc = entry->Count(); --cc >= 0; )
- {
- tentry=&(*entry)[cc];
- if ( aMtm == KNullUid || tentry->iMtm == aMtm )
- {
- if ( tentry->iType.iUid == KUidMsvServiceEntryValue &&
- tentry->Id() != KMsvLocalServiceIndexEntryIdValue )
- {
- const TBool noRelatedId = tentry->iRelatedId == KMsvNullIndexEntryId ||
- tentry->iRelatedId == tentry->Id();
- if ( tentry->Visible() || noRelatedId || aAlwaysListHidden )
- {
- // Add this service if:
- // it is visible, or,there is no associated related service, or,
- // we have been asked to list all services.
- sel->AppendL( tentry->Id() );
- }
- else
- {
- // This service is invisible and has a related service.
- // If the related service is visible we will add it later.
- // If the related service is also invisible, and has not yet been added,
- // add this service.
- TRAP( err, visible = entry->ChildDataL( tentry->iRelatedId ).Visible() )
- if ( err == KErrNone && !visible &&
- sel->Find(tentry->iRelatedId) != KErrNone )
- {
- sel->AppendL( tentry->Id() );
- }
- }
- }
- }
- }
- }
- CleanupStack::PopAndDestroy( entry );
- CleanupStack::Pop( sel );
- return sel;
- }
-
-// ----------------------------------------------------
-// MsvUiServiceUtilities::IsValidEmailAddressL
-//
-// ----------------------------------------------------
-EXPORT_C TBool MsvUiServiceUtilities::IsValidEmailAddressL( const TDesC& aAddress )
- {
- TInt c;
- TInt length = aAddress.Length ();
- TBufC<KMuiuSpecialCharStrLen> rfc822Specials ( KRFC822Specials );
-
- // first we validate the name portion (name@domain)
- if ( length && aAddress[0] == KMuiuCharDot )
- {
- return EFalse;
- }
- for ( c = 0 ; c < length ; c++ )
- {
- if ( aAddress[c] == KMuiuCharQuote && ( c == 0 ||
- aAddress[c-1] == KMuiuCharDot || aAddress[c-1] == KMuiuCharQuote ) )
- {
- while ( ++c < length )
- {
- if ( aAddress[c] == KMuiuCharQuote )
- {
- if( (c + 1) == length)
- {
- return EFalse;
- }
- break;
- }
- if ( aAddress[c] == KMuiuCharBackSlash &&
- ( aAddress[++c] == KMuiuCharSpace) )
- {
- continue;
- }
- if ( aAddress[c] <= KMuiuCharSpace ||
- aAddress[c] >= KMuiuCharDel )
- {
- return EFalse;
- }
- }
- if ( c++ == length )
- {
- return EFalse;
- }
- if ( aAddress[c] == KMuiuCharAt )
- {
- break;
- }
- if ( aAddress[c] != KMuiuCharDot )
- {
- return EFalse;
- }
- continue;
- }
- if ( aAddress[c] == KMuiuCharAt )
- {
- break;
- }
- if ( aAddress[c] <= KMuiuCharSpace || aAddress[c] >= KMuiuCharDel )
- {
- return EFalse;
- }
- if ( rfc822Specials.Locate ( aAddress[c] ) != KErrNotFound )
- {
- return EFalse;
- }
- }
- if ( c == 0 || aAddress[c-1] == KMuiuCharDot )
- {
- return EFalse;
- }
- // next we validate the domain portion (name@domain)
- if ( c == length )
- {
- return EFalse;
- }
- else
- {
- c++;
- return IsValidDomainL ( aAddress.Mid ( ( c ) , length-c ) );
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// MsvUiServiceUtilities::IsValidDomainL
-// -----------------------------------------------------------------------------
-EXPORT_C TBool MsvUiServiceUtilities::IsValidDomainL ( const TDesC& aDomain )
- {
- TInt c = 0;
- TInt length = aDomain.Length ();
- TBufC<KMuiuSpecialCharStrLen> rfc822Specials ( KRFC822Specials );
-
- if ( length == 0 )
- {
- return EFalse;
- }
-
- do
- {
- if ( aDomain[c] == KMuiuCharDot )
- {
- if ( c == 0 || aDomain[c-1] == KMuiuCharDot )
- {
- return EFalse;
- }
- }
- if ( aDomain[c] <= KMuiuCharSpace || aDomain[c] >= KMuiuCharDel )
- {
- return EFalse;
- }
- if ( rfc822Specials.Locate( aDomain[c] ) != KErrNotFound )
- {
- return EFalse;
- }
- }
- while ( ++c < length );
-
- return ( aDomain[length-1] != '.' );
- }
-
-
-// ---------------------------------------------------------
-// MsvUiServiceUtilitiesr::DiskSpaceBelowCriticalLevelL
-//
-// ---------------------------------------------------------
-//
-EXPORT_C TBool MsvUiServiceUtilities::DiskSpaceBelowCriticalLevelL( CMsvSession& aSession,
- TInt aBytesToWrite )
- {
- RFs& fs = aSession.FileSession();
- TInt err = KErrNone;
- TVolumeInfo vinfo;
- TInt currentDrive = TInt( aSession.CurrentDriveL() );
- err = fs.Volume( vinfo, currentDrive );
- if ( err != KErrNone )
- {
- User::LeaveIfError( err );
- }
-
- TInt64 freespace = vinfo.iFree;
- TInt64 newFree = freespace - ( TInt64 )aBytesToWrite;
- TInt criticalLevel;
- CRepository* repository = CRepository::NewLC( KCRUidUiklaf );
- repository->Get( KUikOODDiskCriticalThreshold, criticalLevel );
- CleanupStack::PopAndDestroy( repository ); //repository
- return ( newFree <= (TInt64)criticalLevel );
- }
-
-
-
-// ---------------------------------------------------------
-// MsvUiServiceUtilities::DiskSpaceBelowCriticalLevelWithOverheadL
-//
-// ---------------------------------------------------------
-//
-EXPORT_C TBool MsvUiServiceUtilities::DiskSpaceBelowCriticalLevelWithOverheadL(
- CMsvSession& aSession,
- TInt aBytesToWrite,
- TInt aPhoneMemoryOverheadBytes )
- {
- RFs& fs = aSession.FileSession();
- TInt err = KErrNone;
- TBool belowCritical = EFalse;
- TVolumeInfo vinfo;
- TInt criticalLevel;
- CRepository* repository = CRepository::NewLC( KCRUidUiklaf );
- repository->Get( KUikOODDiskCriticalThreshold, criticalLevel );
- CleanupStack::PopAndDestroy( repository ); //repository
-
- TInt currentDrive = TInt( aSession.CurrentDriveL() );
- // Sending eat always some memory from C drive
- if( currentDrive != EDriveC )
- {
- err = fs.Volume( vinfo, EDriveC );
- if ( err != KErrNone )
- {
- User::LeaveIfError( err );
- }
- belowCritical = ( vinfo.iFree < ( (TInt64)aPhoneMemoryOverheadBytes +
- (TInt64)criticalLevel ) );
- }
-
- if ( !belowCritical )
- {
- err = fs.Volume( vinfo, currentDrive );
- if ( err != KErrNone )
- {
- User::LeaveIfError( err );
- }
- if( currentDrive == EDriveC )
- {
- belowCritical = ( vinfo.iFree < ( (TInt64)aBytesToWrite +
- (TInt64)aPhoneMemoryOverheadBytes +
- (TInt64)criticalLevel ) );
- }
- else
- {
- belowCritical = ( vinfo.iFree < ( (TInt64)aBytesToWrite + (TInt64)criticalLevel ) );
- }
- }
-
- return belowCritical;
- }
-
-// End of File