diff -r 000000000000 -r 3ce708148e4d customization/EmbeddedLinkAdapter/src/EmbeddedLinkHandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/customization/EmbeddedLinkAdapter/src/EmbeddedLinkHandler.cpp Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,346 @@ +/* +* Copyright (c) 2009 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: Implementation of customization components +* +*/ + +#include "EmbeddedLinkHandler.h" +#include "EmbeddedLinkApp.h" + +// --------------------------------------------------------- +// CEmbeddedLinkHandler::NewL +// +// +// --------------------------------------------------------- +CEmbeddedLinkHandler* CEmbeddedLinkHandler::NewL() +{ + CEmbeddedLinkHandler* self = CEmbeddedLinkHandler::NewLC(); + CleanupStack::Pop( self ); + return self; +} + +// --------------------------------------------------------- +// CEmbeddedLinkHandler::NewLC +// +// +// --------------------------------------------------------- +CEmbeddedLinkHandler* CEmbeddedLinkHandler::NewLC() +{ + CEmbeddedLinkHandler* self = new ( ELeave ) CEmbeddedLinkHandler; + CleanupStack::PushL( self ); + self->ConstructL(); + return self; +} + +// --------------------------------------------------------- +// CEmbeddedLinkHandler::ConstructL +// +// +// --------------------------------------------------------- +void CEmbeddedLinkHandler::ConstructL() +{ + iEmbeddedLinkImage = CEmbeddedLinkApp::NewL( KFavouritesImageContextId ); + iEmbeddedLinkRingtone = CEmbeddedLinkApp::NewL( KFavouritesRingingToneContextId ); + iEmbeddedLinkVideo = CEmbeddedLinkApp::NewL( KFavouritesVideoContextId ); + iEmbeddedLinkAudio = CEmbeddedLinkApp::NewL( KFavouritesAudioContextId ); + iEmbeddedLinkSkin = CEmbeddedLinkApp::NewL( KFavouritesSkinContextId ); + iEmbeddedLinkGame = CEmbeddedLinkApp::NewL( KFavouritesGameDataContextId ); + iEmbeddedLinkApplication = CEmbeddedLinkApp::NewL( KFavouritesApplicationContextId ); + iEmbeddedLinkMusic = CEmbeddedLinkApp::NewL( KFavouritesMusicContextId ); + + User::LeaveIfError( iFavouritesSess.Connect() ); +} + +// --------------------------------------------------------- +// CEmbeddedLinkHandler::~CEmbeddedLinkHandler +// +// +// --------------------------------------------------------- +CEmbeddedLinkHandler::~CEmbeddedLinkHandler() + { + delete iEmbeddedLinkImage; + delete iEmbeddedLinkRingtone; + delete iEmbeddedLinkVideo; + delete iEmbeddedLinkAudio; + delete iEmbeddedLinkSkin; + delete iEmbeddedLinkGame; + delete iEmbeddedLinkApplication; + delete iEmbeddedLinkMusic; + + iFavouritesSess.Close(); + } + +// --------------------------------------------------------- +// CEmbeddedLinkHandler::SupportingApplicationsL +// +// +// --------------------------------------------------------- +void CEmbeddedLinkHandler::SupportingApplicationsL( RArray& aArray ) + { + TEmbeddedLinkAppName appName; + + appName.Zero(); + appName.AppendNum( KFavouritesApplicationContextId, EHex ); + aArray.Append( appName ) ; + + appName.Zero(); + appName.AppendNum( KFavouritesImageContextId, EHex ); + aArray.Append( appName ) ; + + appName.Zero(); + appName.AppendNum( KFavouritesAudioContextId, EHex ); + aArray.Append( appName ); + + appName.Zero(); + appName.AppendNum( KFavouritesVideoContextId, EHex ); + aArray.Append( appName ); + + appName.Zero(); + appName.AppendNum( KFavouritesGameDataContextId, EHex ); + aArray.Append( appName ); + + appName.Zero(); + appName.AppendNum( KFavouritesRingingToneContextId, EHex ); + aArray.Append( appName ); + + appName.Zero(); + appName.AppendNum( KFavouritesSkinContextId, EHex ); + aArray.Append( appName ); + + appName.Zero(); + appName.AppendNum( KFavouritesMusicContextId, EHex ); + aArray.Append( appName ); + } + +// --------------------------------------------------------- +// CEmbeddedLinkHandler::GetLinkAppL +// +// +// --------------------------------------------------------- +TInt CEmbeddedLinkHandler::GetLinkAppL( TInt aLinkType, CEmbeddedLinkApp*& aLinkApp ) + { + TInt err( KErrNone ); + + switch( aLinkType ) + { + //Lisää browseri! KFavouritesRootUid + + case KFavouritesImageContextId: + aLinkApp = iEmbeddedLinkImage; + break; + + case KFavouritesRingingToneContextId: + aLinkApp = iEmbeddedLinkRingtone; + break; + + case KFavouritesVideoContextId: + aLinkApp = iEmbeddedLinkVideo; + break; + + case KFavouritesAudioContextId: + aLinkApp = iEmbeddedLinkAudio; + break; + + case KFavouritesSkinContextId: + aLinkApp = iEmbeddedLinkSkin; + break; + + case KFavouritesGameDataContextId: + aLinkApp = iEmbeddedLinkGame; + break; + + case KFavouritesApplicationContextId: + aLinkApp = iEmbeddedLinkApplication; + break; + + case KFavouritesMusicContextId: + aLinkApp = iEmbeddedLinkMusic; + break; + + default: + err = KErrNotFound; + break; + } + + return err; + } + + +TInt CEmbeddedLinkHandler::RemoveLinkL( TInt aLinkUid ) + { + TInt ret = KErrNone; + + RFavouritesDb db; + User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) ); + CleanupClosePushL( db ); + + ret=db.Delete( aLinkUid ); + db.Close(); + + + CleanupStack::PopAndDestroy(); //db + return ret; + } + + +TInt CEmbeddedLinkHandler::UpdateLinkUrlL( TInt aLinkUid, const TDesC& aURL ) + { + TInt err( KErrNone ); + + RFavouritesDb db; + User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) ); + CleanupClosePushL( db ); + + CFavouritesItem* favItem = CFavouritesItem::NewL(); + CleanupStack::PushL( favItem ); + + err = db.Get( aLinkUid, *favItem ); + + if( err==KErrNone ) + { + favItem->SetUrlL( aURL ); + } + + err = db.Update( *favItem, aLinkUid, ETrue ); + db.Close(); + + CleanupStack::PopAndDestroy( 2 ); //db, favItem + + return err; + } + + +TInt CEmbeddedLinkHandler::UpdateLinkNameL( TInt aLinkUid, const TDesC& aName ) + { + TInt err( KErrNone ); + + RFavouritesDb db; + User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) ); + CleanupClosePushL( db ); + + CFavouritesItem* favItem = CFavouritesItem::NewL(); + CleanupStack::PushL( favItem ); + + err = db.Get( aLinkUid, *favItem ); + + if( err == KErrNone ) + { + favItem->SetNameL( aName ); + } + + err=db.Update( *favItem, aLinkUid, ETrue ); + db.Close(); + + CleanupStack::PopAndDestroy( 2 ); //db + + return err; + } + + +TInt CEmbeddedLinkHandler::UpdateUserNameL( TInt aLinkUid, const TDesC& aUserName ) + { + TInt err( KErrNone ); + + RFavouritesDb db; + User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) ); + CleanupClosePushL( db ); + + CFavouritesItem* favItem = CFavouritesItem::NewL(); + CleanupStack::PushL( favItem ); + + err = db.Get( aLinkUid, *favItem ); + + if( err==KErrNone ) + { + favItem->SetUserNameL( aUserName ); + } + + err = db.Update( *favItem, aLinkUid, ETrue ); + db.Close(); + + CleanupStack::PopAndDestroy( 2 ); //db + + return err; + } + + +TInt CEmbeddedLinkHandler::UpdatePasswordL( TInt aLinkUid, const TDesC& aPassword ) + { + TInt err( KErrNone ); + + RFavouritesDb db; + User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) ); + CleanupClosePushL( db ); + + CFavouritesItem* favItem = CFavouritesItem::NewL(); + CleanupStack::PushL( favItem ); + + err = db.Get( aLinkUid, *favItem ); + + if ( err == KErrNone ) + { + favItem->SetPasswordL( aPassword ); + } + + err = db.Update( *favItem, aLinkUid, ETrue ); + db.Close(); + + CleanupStack::PopAndDestroy( 2 ); //db + + return err; + } + +TInt CEmbeddedLinkHandler::UpdateWapApL( TInt aLinkUid, const TDesC& aWapAp ) + { + TInt err( KErrNone ); + + RFavouritesDb db; + User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) ); + CleanupClosePushL( db ); + + CFavouritesItem* favItem = CFavouritesItem::NewL(); + CleanupStack::PushL( favItem ); + + err = db.Get( aLinkUid, *favItem ); + + if ( err == KErrNone ) + { + TFavouritesWapAp wapAp; + wapAp.SetDefault(); + if (aWapAp.Length() > 0) + { + TUint value = 0; + TLex lex( aWapAp ); + TInt lexErr = lex.Val( value ); + if (lexErr == KErrNone) + { + wapAp.SetApId( value ); + } + else + { + wapAp.SetNull(); + } + } + + favItem->SetWapAp( wapAp ); + } + + err = db.Update( *favItem, aLinkUid, ETrue ); + db.Close(); + + CleanupStack::PopAndDestroy( 2 ); //db + + return err; + } +