browserui/browser/BrowserAppSrc/BrowserUtil.cpp
changeset 51 48e827313edd
parent 37 481242ead638
child 53 f427d27b98d8
--- a/browserui/browser/BrowserAppSrc/BrowserUtil.cpp	Tue Feb 02 00:12:41 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,407 +0,0 @@
-/*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the License "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: 
-*      Utilities.
-*      
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "logger.h"
-
-#include <e32base.h>
-#include <favouriteslimits.h>
-#include <favouritesitem.h>
-#include <uri16.h>
-#include <SysUtil.h>
-#include <ErrorUi.h>
-
-#include "BrowserUtil.h"
-#include "Browser.hrh"
-
-#include "CommonConstants.h"
-#include "ApiProvider.h"
-#include <commdb.h>
-#include <aputils.h>
-#include "commsmodel.h"
-#include "preferences.h"
-#include <FeatMgr.h>
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------
-// Util::Panic
-// ---------------------------------------------------------
-//
-void Util::Panic( Util::TPanicReason aReason )
-    {
-    _LIT( KAppName, "WmlBrowser" );
-	User::Panic( KAppName, aReason );
-    }
-
-// ---------------------------------------------------------
-// Util::SanityCheckL
-// ---------------------------------------------------------
-//
-void Util::SanityCheckL()
-    {
-#ifdef _DEBUG
-
-    // Check if the Engine limits for bookmarks match editing control sizes.
-    // Cannot do this compile time, because Engine limits are TInts instead of
-    // #define-s, so we must do run-time check (debug build only). Naturally,
-    // the conditional expression here is constant. Avoid warnings by using
-    // dummy variables (maxEngine...).
-    TInt maxEngineUrl = KFavouritesMaxUrl;
-    TInt maxEngineUsername = KFavouritesMaxUserName;
-    TInt maxEnginePassword = KFavouritesMaxPassword;
-    TInt maxEngineBookmarkName = KFavouritesMaxName;
-
-    if (
-        KFavouritesMaxUrlDefine != maxEngineUrl ||
-        KFavouritesMaxUsernameDefine != maxEngineUsername ||
-        KFavouritesMaxPasswordDefine != maxEnginePassword ||
-        KFavouritesMaxBookmarkNameDefine != maxEngineBookmarkName
-       )
-        {
-        Panic( ELimitMismatch );
-        }
-
-#endif
-    }
-
-// ---------------------------------------------------------
-// Util::RetreiveUsernameAndPasswordFromUrlL
-// ---------------------------------------------------------
-//
-void Util::RetreiveUsernameAndPasswordFromUrlL
-	( const TDesC& aUrl, CFavouritesItem& aItem )
-	{
-    /// Empty string.
-    _LIT( KEmptyBuf, "" ); 
-/*	CUrl* url = NULL;
-	TRAPD( error, url = CUrl::NewL( aUrl ) );
-	if( error == KErrNone )
-		{ 
-		CleanupStack::PushL( url );
-*/
-    TUriParser16 url;
-    url.Parse(aUrl);
-	TPtrC userInfo = url.Extract( EUriUserinfo );
-    TPtrC userName ;
-    TPtrC pass ;
-    userName.Set( KEmptyBuf );
-    pass.Set( KEmptyBuf );
-	if( userInfo.Length() )
-        { 
-        TInt position = userInfo.LocateF( ':' );
-	    if( ( position != KErrNotFound ) )
-            {
-            userName.Set( userInfo.Left( position ) );
-	        aItem.SetUserNameL( userName );
-            pass.Set( userInfo.Right( userInfo.Length()-position-1  ) );
-    		aItem.SetPasswordL( pass );
-            }
-	    }
-
-
-	HBufC* parsedUrl = HBufC::NewLC( url.UriDes().Length() );
-	// get the pure Url (without username & password)
-	TInt position = url.UriDes().LocateF( '@' );
-	if( ( position != KErrNotFound ) && ( userName.Length() )
-           && ( url.UriDes().Find(userInfo) != KErrNotFound) )
-		{
-		parsedUrl->Des().Copy( url.Extract( EUriScheme ) );
-		_LIT( KDoubleSlash, "://" );
-		parsedUrl->Des().Append( KDoubleSlash );
-		parsedUrl->Des().Append( url.UriDes().Right
-			( url.UriDes().Length() - position - 1  ) );
-		}
-	else
-		{
-		parsedUrl->Des().Copy( url.UriDes() );
-    	}
-    if( parsedUrl->Length() )
-		{
-		aItem.SetUrlL( *parsedUrl );
-		}
-	CleanupStack::PopAndDestroy( 1 ); //  parsedUrl
-	}
-
-
-// ---------------------------------------------------------
-// Util::StripUrl
-// ---------------------------------------------------------
-//
-TPtrC Util::StripUrl( const TDesC& aUrl )
-	{
-	TUriParser url;
-	TInt startPos;
-	TInt endPos;
-	
-	url.Parse ( aUrl );
-
-	//Return parsed url only if we have a scheme. Otherwise return full url
-	if ( url.IsPresent ( EUriScheme ) )
-		{
-		startPos = url.Extract ( EUriScheme ).Length();
-		//jump over the :// chars (or a mistyped version like :/ or :)
-		while ( startPos < url.UriDes().Length() &&
-				( aUrl.Mid( startPos, 1) == _L("/") || 
-				  aUrl.Mid( startPos, 1) == _L(":") ) )
-			{
-			startPos++;
-			}
-		endPos = url.UriDes().Length() - url.Extract ( EUriFragment ).Length();
-		}
-	else
-		{
-		startPos = 0;
-		endPos = url.UriDes().Length();
-		}
-	
-	return aUrl.Mid( startPos, endPos - startPos );
-	}
-
-// ---------------------------------------------------------
-// Util::UrlFromFileNameLC
-// ---------------------------------------------------------
-//
-HBufC* Util::UrlFromFileNameLC( const TDesC& aFileName )
-	{
-    HBufC* buf = HBufC::NewLC
-        ( aFileName.Length() + KWmlValueFileSlashSlashSlashStr().Length() );
-
-    HBufC* url = HBufC::NewLC
-        ( aFileName.Length() + KWmlValueFileSlashSlashSlashStr().Length() );
-    url->Des().Append( KWmlValueFileSlashSlashSlashStr );
-    url->Des().Append( aFileName );
-
-    for ( TInt i = 0; i < url->Length(); i++ )
-        {
-        if ( !url->Mid( i, 1 ).Compare( KWmlBackSlash ) )
-            {
-            buf->Des().Append( TChar('/') );
-            }
-        else
-            {
-            buf->Des().Append( url->Mid( i, 1 ) );
-            }
-        }
-    CleanupStack::PopAndDestroy();  // url
-    return buf;
-	}
-
-// ---------------------------------------------------------
-// Util::FFSSpaceBelowCriticalLevelL
-// ---------------------------------------------------------
-//
-TBool Util::FFSSpaceBelowCriticalLevelL
-        ( TBool aShowErrorNote, TInt aBytesToWrite /*=0*/ )
-    {
-    TBool ret( EFalse );
-    if ( SysUtil::FFSSpaceBelowCriticalLevelL
-                ( &(CCoeEnv::Static()->FsSession()), aBytesToWrite ) )
-        {
-        ret = ETrue;
-        if ( aShowErrorNote )
-            {
-            CErrorUI* errorUi = CErrorUI::NewLC( *(CCoeEnv::Static()) );
-            errorUi->ShowGlobalErrorNoteL( KErrDiskFull );
-            CleanupStack::PopAndDestroy();  // errorUi
-            }
-        }
-    return ret;
-    }
-
-// ---------------------------------------------------------
-// Util::CheckBookmarkApL
-// ---------------------------------------------------------
-//
-TBool Util::CheckBookmarkApL(
-        const MApiProvider& aApiProvider,
-        const TFavouritesWapAp& aItem )
-    {
-    TBool apValid( EFalse );
-
-    if ( !aItem.IsNull() && !aItem.IsDefault() )
-        {
-        CCommsDatabase& db = aApiProvider.CommsModel().CommsDb();
-        
-        CApUtils* apUtils = CApUtils::NewLC( db );
-        // if error, wapId is not found.
-        TRAPD( err, apValid = apUtils->WapApExistsL( aItem.ApId() ) );
-        if ( /* !apValid || */ err )
-            {
-            apValid = EFalse;
-            }
-        CleanupStack::PopAndDestroy();  // apUtils
-        }
-    else 
-        {
-        apValid = ETrue;
-        }
-    return apValid;
-    }
-
-// ---------------------------------------------------------
-// Util::IsValidAPFromParamL
-// ---------------------------------------------------------
-//
-TBool Util::IsValidAPFromParamL(
-        const MApiProvider& aApiProvider,
-        TUint32 aIAPid )
-    {
-    CCommsDatabase& db = aApiProvider.CommsModel().CommsDb();
-    CApUtils* apUtils = CApUtils::NewLC( db );
-    TBool retVal = apUtils->WapApExistsL( aIAPid );
-    CleanupStack::PopAndDestroy();  // apUtils
-    return retVal;
-    }
-
-// ---------------------------------------------------------
-// Util::CheckApValidityL
-// ---------------------------------------------------------
-//
-TBool Util::CheckApValidityL(
-        const MApiProvider& aApiProvider,
-        const TUint32 aItem )
-    {
-    CCommsDatabase& db = aApiProvider.CommsModel().CommsDb();
-    CApUtils* apUtils = CApUtils::NewLC( db );
-    TBool apValid( EFalse );
-
-    // if error, IapId is not found.
-    TRAPD( err, apUtils->IapIdFromWapIdL( aItem ) );
-    if( err == KErrNone )
-        {
-        apValid = ETrue;
-        }
-    CleanupStack::PopAndDestroy(); // apUtils
-
-    return apValid;
-    }
-
-// ---------------------------------------------------------
-// Util::IapIdFromWapIdL
-// ---------------------------------------------------------
-//
-TUint32 Util::IapIdFromWapIdL( const MApiProvider& aApiProvider, const TUint32 aItem )
-{
-    CCommsDatabase& db = aApiProvider.CommsModel().CommsDb();
-    CApUtils* apUtils = CApUtils::NewLC( db );
-    TUint32 ap = apUtils->IapIdFromWapIdL( aItem );
-    CleanupStack::PopAndDestroy();  // apUtil
-    return ap;
-}
-
-// ---------------------------------------------------------
-// Util::WapIdFromIapIdL
-// ---------------------------------------------------------
-//
-TUint32 Util::WapIdFromIapIdL( const MApiProvider& aApiProvider, const TUint32 aItem )
-{
-    CCommsDatabase& db = aApiProvider.CommsModel().CommsDb();
-    CApUtils* apUtils = CApUtils::NewLC( db );
-    TUint32 ap = apUtils->WapIdFromIapIdL( aItem );
-    CleanupStack::PopAndDestroy();  // apUtil
-    return ap;
-}
-
-// ---------------------------------------------------------
-// Util::EncodeSpaces
-// ---------------------------------------------------------
-//
-void Util::EncodeSpaces(HBufC*& aString)
-    {
-	_LIT(KSpace," ");
-	_LIT(KSpaceEncoded,"%20");
-
-    TInt space(KErrNotFound);
-    TInt spaces(0);
-    TPtr ptr = aString->Des();
-    
-    //Trim leading and trailing spaces in URL before encoding spaces inside URL
-    ptr.Trim();
-        
-    for (TInt i = ptr.Length()-1; i > 0 ; i--)
-        {
-        if (ptr[i] == ' ')
-            {
-            spaces++;
-            space = i;
-            }
-        }
-        
-    if (spaces)
-        {
-        TInt newLen = aString->Length() + (spaces * KSpaceEncoded().Length());
-        TRAPD(err,aString = aString->ReAllocL(newLen));
-        if (err != KErrNone)
-            {
-            return;  // aString was not changed
-            }
-        ptr.Set( aString->Des() );
-       
-        }
-        
-	while (space != KErrNotFound)
-    	{
-    	ptr.Replace(space,1,KSpaceEncoded);
-    	space = ptr.Find(KSpace);
-    	}
-        
-    }
-
-// ---------------------------------------------------------
-// Util::AllocateUrlWithSchemeL
-// ---------------------------------------------------------
-//
-HBufC* Util::AllocateUrlWithSchemeL( const TDesC& aUrl )
-    {
-    _LIT( KBrowserDefaultScheme, "http://" );
-    TBool addDefaultScheme( EFalse );
-    TInt len = aUrl.Length(); 
-
-    // Do not check return value from parse. If the caller wants to allocate a
-    // badly formed url then let them do so.
-    TUriParser url;
-    url.Parse( aUrl ); 
-
-    if( !url.IsPresent( EUriScheme ) )
-        { 
-        addDefaultScheme = ETrue; 
-        len = len + KBrowserDefaultScheme().Length();
-        }
-
-    HBufC* urlBuffer = HBufC::NewL( len );
-    TPtr ptr = urlBuffer->Des();
-
-    if ( addDefaultScheme )
-        {
-        ptr.Copy( KBrowserDefaultScheme );
-        }
-    ptr.Append( aUrl );
-
-    // Handle rare case that the url needs escape encoding.
-    // Below function will realloc enough space for encoded urlBuffer.
-    Util::EncodeSpaces( urlBuffer );
-
-    return urlBuffer;
-    }
-
-
-// End of File