customization/EmbeddedLinkAdapter/src/EmbeddedLinkHandler.cpp
changeset 0 3ce708148e4d
equal deleted inserted replaced
-1:000000000000 0:3ce708148e4d
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: Implementation of customization components
       
    15 *
       
    16 */
       
    17 
       
    18 #include "EmbeddedLinkHandler.h"
       
    19 #include "EmbeddedLinkApp.h"
       
    20 
       
    21 // ---------------------------------------------------------
       
    22 // CEmbeddedLinkHandler::NewL
       
    23 //
       
    24 //
       
    25 // ---------------------------------------------------------
       
    26 CEmbeddedLinkHandler* CEmbeddedLinkHandler::NewL()
       
    27 {
       
    28 	CEmbeddedLinkHandler* self = CEmbeddedLinkHandler::NewLC();
       
    29     CleanupStack::Pop( self );
       
    30     return self;
       
    31 }
       
    32 
       
    33 // ---------------------------------------------------------
       
    34 // CEmbeddedLinkHandler::NewLC
       
    35 //
       
    36 //
       
    37 // ---------------------------------------------------------
       
    38 CEmbeddedLinkHandler* CEmbeddedLinkHandler::NewLC()
       
    39 {
       
    40 	CEmbeddedLinkHandler* self = new ( ELeave ) CEmbeddedLinkHandler;
       
    41     CleanupStack::PushL( self );
       
    42     self->ConstructL();
       
    43     return self;
       
    44 }
       
    45 
       
    46 // ---------------------------------------------------------
       
    47 // CEmbeddedLinkHandler::ConstructL
       
    48 //
       
    49 //
       
    50 // ---------------------------------------------------------
       
    51 void CEmbeddedLinkHandler::ConstructL()
       
    52 {
       
    53 	iEmbeddedLinkImage = CEmbeddedLinkApp::NewL( KFavouritesImageContextId );
       
    54 	iEmbeddedLinkRingtone = CEmbeddedLinkApp::NewL( KFavouritesRingingToneContextId );
       
    55 	iEmbeddedLinkVideo = CEmbeddedLinkApp::NewL( KFavouritesVideoContextId );
       
    56 	iEmbeddedLinkAudio = CEmbeddedLinkApp::NewL( KFavouritesAudioContextId );
       
    57 	iEmbeddedLinkSkin = CEmbeddedLinkApp::NewL( KFavouritesSkinContextId );
       
    58 	iEmbeddedLinkGame = CEmbeddedLinkApp::NewL( KFavouritesGameDataContextId );
       
    59 	iEmbeddedLinkApplication = CEmbeddedLinkApp::NewL( KFavouritesApplicationContextId );
       
    60 	iEmbeddedLinkMusic = CEmbeddedLinkApp::NewL( KFavouritesMusicContextId );
       
    61 
       
    62 	User::LeaveIfError( iFavouritesSess.Connect() );
       
    63 }
       
    64 
       
    65 // ---------------------------------------------------------
       
    66 // CEmbeddedLinkHandler::~CEmbeddedLinkHandler
       
    67 //
       
    68 //
       
    69 // ---------------------------------------------------------
       
    70 CEmbeddedLinkHandler::~CEmbeddedLinkHandler()
       
    71 	{
       
    72 	delete iEmbeddedLinkImage;
       
    73 	delete iEmbeddedLinkRingtone;
       
    74 	delete iEmbeddedLinkVideo;
       
    75 	delete iEmbeddedLinkAudio;
       
    76 	delete iEmbeddedLinkSkin;
       
    77 	delete iEmbeddedLinkGame;
       
    78 	delete iEmbeddedLinkApplication;
       
    79 	delete iEmbeddedLinkMusic;
       
    80 
       
    81 	iFavouritesSess.Close();
       
    82 	}
       
    83 
       
    84 // ---------------------------------------------------------
       
    85 // CEmbeddedLinkHandler::SupportingApplicationsL
       
    86 //
       
    87 //
       
    88 // ---------------------------------------------------------
       
    89 void CEmbeddedLinkHandler::SupportingApplicationsL( RArray<TEmbeddedLinkAppName>& aArray )
       
    90 	{
       
    91 	TEmbeddedLinkAppName appName;
       
    92 	
       
    93 	appName.Zero();
       
    94 	appName.AppendNum( KFavouritesApplicationContextId, EHex );
       
    95 	aArray.Append( appName )	;
       
    96 
       
    97 	appName.Zero();
       
    98 	appName.AppendNum( KFavouritesImageContextId, EHex );
       
    99 	aArray.Append( appName )	;
       
   100 
       
   101 	appName.Zero();
       
   102 	appName.AppendNum( KFavouritesAudioContextId, EHex );
       
   103 	aArray.Append( appName );
       
   104 
       
   105 	appName.Zero();
       
   106 	appName.AppendNum( KFavouritesVideoContextId, EHex );
       
   107 	aArray.Append( appName );
       
   108 
       
   109 	appName.Zero();
       
   110 	appName.AppendNum( KFavouritesGameDataContextId, EHex );
       
   111 	aArray.Append( appName );
       
   112 	
       
   113 	appName.Zero();
       
   114 	appName.AppendNum( KFavouritesRingingToneContextId, EHex );
       
   115 	aArray.Append( appName );
       
   116 	
       
   117 	appName.Zero();
       
   118 	appName.AppendNum( KFavouritesSkinContextId, EHex );
       
   119 	aArray.Append( appName );	
       
   120 
       
   121 	appName.Zero();
       
   122 	appName.AppendNum( KFavouritesMusicContextId, EHex );
       
   123 	aArray.Append( appName );
       
   124 	}
       
   125 
       
   126 // ---------------------------------------------------------
       
   127 // CEmbeddedLinkHandler::GetLinkAppL
       
   128 //
       
   129 //
       
   130 // ---------------------------------------------------------
       
   131 TInt CEmbeddedLinkHandler::GetLinkAppL( TInt aLinkType, CEmbeddedLinkApp*& aLinkApp )
       
   132 	{
       
   133 	TInt err( KErrNone );
       
   134 	
       
   135 	switch( aLinkType )
       
   136 		{
       
   137 		//Lisää browseri! KFavouritesRootUid
       
   138 		
       
   139 		case KFavouritesImageContextId:
       
   140 		aLinkApp = iEmbeddedLinkImage;
       
   141 		break;
       
   142 		
       
   143 		case KFavouritesRingingToneContextId:
       
   144 		aLinkApp = iEmbeddedLinkRingtone;
       
   145 		break;
       
   146 		
       
   147 		case KFavouritesVideoContextId:
       
   148 		aLinkApp = iEmbeddedLinkVideo;
       
   149 		break;
       
   150 		
       
   151 		case KFavouritesAudioContextId:
       
   152 		aLinkApp = iEmbeddedLinkAudio;
       
   153 		break;
       
   154 		
       
   155 		case KFavouritesSkinContextId:
       
   156 		aLinkApp = iEmbeddedLinkSkin;
       
   157 		break;
       
   158 		
       
   159 		case KFavouritesGameDataContextId:
       
   160 		aLinkApp = iEmbeddedLinkGame;
       
   161 		break;
       
   162 		
       
   163 		case KFavouritesApplicationContextId:
       
   164 		aLinkApp = iEmbeddedLinkApplication;
       
   165 		break;
       
   166 
       
   167 		case KFavouritesMusicContextId:
       
   168 		aLinkApp = iEmbeddedLinkMusic;
       
   169 		break;
       
   170 		
       
   171 		default:
       
   172 		err = KErrNotFound;
       
   173 		break;
       
   174 		}	
       
   175 	
       
   176 	return err;
       
   177 	}
       
   178 
       
   179 
       
   180 TInt CEmbeddedLinkHandler::RemoveLinkL( TInt aLinkUid )
       
   181 	{
       
   182 	TInt ret = KErrNone;
       
   183 
       
   184   RFavouritesDb db;
       
   185   User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) );
       
   186   CleanupClosePushL<RFavouritesDb>( db );
       
   187 
       
   188 	ret=db.Delete( aLinkUid );
       
   189 	db.Close();
       
   190 
       
   191 
       
   192 	CleanupStack::PopAndDestroy(); //db
       
   193 	return ret;
       
   194 	}
       
   195 
       
   196 
       
   197 TInt CEmbeddedLinkHandler::UpdateLinkUrlL( TInt aLinkUid, const TDesC& aURL )
       
   198 	{
       
   199 	TInt err( KErrNone );
       
   200 
       
   201   RFavouritesDb db;
       
   202   User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) );
       
   203   CleanupClosePushL<RFavouritesDb>( db );
       
   204 
       
   205 	CFavouritesItem* favItem = CFavouritesItem::NewL();
       
   206 	CleanupStack::PushL( favItem );
       
   207 	
       
   208 	err = db.Get( aLinkUid, *favItem );
       
   209 	
       
   210 	if( err==KErrNone )
       
   211 		{
       
   212 		favItem->SetUrlL( aURL );
       
   213 		}
       
   214 
       
   215 	err = db.Update( *favItem, aLinkUid, ETrue );
       
   216 	db.Close();
       
   217 
       
   218 	CleanupStack::PopAndDestroy( 2 ); //db, favItem
       
   219 	
       
   220 	return err;
       
   221 	}
       
   222 
       
   223 
       
   224 TInt CEmbeddedLinkHandler::UpdateLinkNameL( TInt aLinkUid, const TDesC& aName )
       
   225 	{
       
   226 	TInt err( KErrNone );
       
   227 
       
   228   RFavouritesDb db;
       
   229   User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) );
       
   230   CleanupClosePushL<RFavouritesDb>( db );
       
   231 
       
   232 	CFavouritesItem* favItem = CFavouritesItem::NewL();
       
   233 	CleanupStack::PushL( favItem );
       
   234 
       
   235 	err = db.Get( aLinkUid, *favItem );
       
   236 	
       
   237 	if( err == KErrNone )
       
   238 		{
       
   239 		favItem->SetNameL( aName );
       
   240 		}
       
   241 
       
   242 	err=db.Update( *favItem, aLinkUid, ETrue );
       
   243 	db.Close();
       
   244 
       
   245 	CleanupStack::PopAndDestroy( 2 ); //db
       
   246 	
       
   247 	return err;
       
   248 	}
       
   249 
       
   250 
       
   251 TInt CEmbeddedLinkHandler::UpdateUserNameL( TInt aLinkUid, const TDesC& aUserName )
       
   252 	{
       
   253 	TInt err( KErrNone );
       
   254 
       
   255   RFavouritesDb db;
       
   256   User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) );
       
   257   CleanupClosePushL<RFavouritesDb>( db );
       
   258 
       
   259 	CFavouritesItem* favItem = CFavouritesItem::NewL();
       
   260 	CleanupStack::PushL( favItem );
       
   261 
       
   262 	err = db.Get( aLinkUid, *favItem );
       
   263 
       
   264 	if( err==KErrNone )
       
   265 		{
       
   266 		favItem->SetUserNameL( aUserName );
       
   267 		}
       
   268 
       
   269 	err = db.Update( *favItem, aLinkUid, ETrue );
       
   270 	db.Close();
       
   271 
       
   272 	CleanupStack::PopAndDestroy( 2 ); //db
       
   273 	
       
   274 	return err;
       
   275 	}
       
   276 
       
   277 
       
   278 TInt CEmbeddedLinkHandler::UpdatePasswordL( TInt aLinkUid, const TDesC& aPassword )
       
   279 	{
       
   280 	TInt err( KErrNone );
       
   281 
       
   282   RFavouritesDb db;
       
   283   User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) );
       
   284   CleanupClosePushL<RFavouritesDb>( db );
       
   285 
       
   286 	CFavouritesItem* favItem = CFavouritesItem::NewL();
       
   287 	CleanupStack::PushL( favItem );
       
   288 	
       
   289 	err = db.Get( aLinkUid, *favItem );
       
   290 
       
   291 	if ( err == KErrNone ) 
       
   292 		{
       
   293 		favItem->SetPasswordL( aPassword );
       
   294 		}
       
   295 
       
   296 	err = db.Update( *favItem, aLinkUid, ETrue );
       
   297 	db.Close();
       
   298 
       
   299 	CleanupStack::PopAndDestroy( 2 ); //db
       
   300 	
       
   301 	return err;
       
   302 	}
       
   303 
       
   304 TInt CEmbeddedLinkHandler::UpdateWapApL( TInt aLinkUid, const TDesC& aWapAp )
       
   305 	{
       
   306 	TInt err( KErrNone );
       
   307 
       
   308   RFavouritesDb db;
       
   309   User::LeaveIfError( db.Open( iFavouritesSess, KBrowserBookmarks ) );
       
   310   CleanupClosePushL<RFavouritesDb>( db );
       
   311 
       
   312 	CFavouritesItem* favItem = CFavouritesItem::NewL();
       
   313 	CleanupStack::PushL( favItem );
       
   314 	
       
   315 	err = db.Get( aLinkUid, *favItem );
       
   316 
       
   317 	if ( err == KErrNone ) 
       
   318 		{
       
   319         TFavouritesWapAp wapAp;
       
   320         wapAp.SetDefault();
       
   321         if (aWapAp.Length() > 0)
       
   322         	{
       
   323         	TUint value = 0;
       
   324 			TLex lex( aWapAp );
       
   325 			TInt lexErr = lex.Val( value );
       
   326 			if (lexErr == KErrNone)
       
   327 				{
       
   328 				wapAp.SetApId( value );
       
   329 				}
       
   330 			else
       
   331 				{
       
   332 				wapAp.SetNull();
       
   333 				}
       
   334         	}
       
   335 
       
   336 		favItem->SetWapAp( wapAp );	
       
   337 		}
       
   338 
       
   339 	err = db.Update( *favItem, aLinkUid, ETrue );
       
   340 	db.Close();
       
   341 
       
   342 	CleanupStack::PopAndDestroy( 2 ); //db
       
   343 	
       
   344 	return err;
       
   345 	}
       
   346