diff -r 000000000000 -r 3ce708148e4d customization/isadapter/src/UiSettingsUtil.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/customization/isadapter/src/UiSettingsUtil.cpp Thu Dec 17 08:40:12 2009 +0200 @@ -0,0 +1,847 @@ +/* +* Copyright (c) 2007 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: DM Idle SoftKey Adapter +* +*/ + + +// s60 +#include +#include +#include +#include +#include +#include + +#include "UiSettingsUtil.h" +#include "IsAdapterLiterals.h" + +#include "debug.h" + + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::NewL( ) +// ------------------------------------------------------------------------------------------------ +CUiSettingsUtil* CUiSettingsUtil::NewL( ) + { + RDEBUG( "CUiSettingsUtil::NewL() >" ); + CUiSettingsUtil* self = NewLC( ); + CleanupStack::Pop(); + RDEBUG( "CUiSettingsUtil::NewL() <" ); + return self; + } + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::NewLC( ) +// ------------------------------------------------------------------------------------------------ +CUiSettingsUtil* CUiSettingsUtil::NewLC( ) + { + RDEBUG( "CUiSettingsUtil::NewLC() >" ); + CUiSettingsUtil* self = new (ELeave) CUiSettingsUtil(); + CleanupStack::PushL(self); + self->ConstructL(); + RDEBUG( "CUiSettingsUtil::NewLC() <" ); + return self; + } + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil::CUiSettingsUtil() +// ------------------------------------------------------------------------------------------------ +CUiSettingsUtil::CUiSettingsUtil() + { + RDEBUG( "CUiSettingsUtil::CUiSettingsUtil()" ); + } + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil::ConstructL +// ------------------------------------------------------------------------------------------------ +void CUiSettingsUtil::ConstructL() + { + RDEBUG( "CUiSettingsUtil::ConstructL() >" ); + + FeatureManager::InitializeLibL(); + +/* ReadAppTargetsL(); + ReadJavaTargetsL(); + ReadMailBoxesL(); + ReadBookmarksL(); + ReadStaticAppTargetsL();*/ + + + RDEBUG( "CIsAdapter::ConstructL() <" ); + } + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil::~CUiSettingsUtil() +// ------------------------------------------------------------------------------------------------ +CUiSettingsUtil::~CUiSettingsUtil() + { + RDEBUG( "CUiSettingsUtil::~CUiSettingsUtil() >" ); + + if(iListItems.Count()) + iListItems.ResetAndDestroy(); + + if(iJaveUids.Count()) + iJaveUids.Reset(); + + if(iMailBoxes) + { + iMailBoxes->Reset(); + delete iMailBoxes; + } + + if(iStaticAppParam) + { + iStaticAppParam->Reset(); + delete iStaticAppParam; + } + + if(iStaticAppCaption) + { + iStaticAppCaption->Reset(); + delete iStaticAppCaption; + } + + if(iFavList) + { + delete iFavList; + } + + FeatureManager::UnInitializeLib(); + + RDEBUG( "CUiSettingsUtil::~CUiSettingsUtil() <" ); + } + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil::GetShortcutRtType +// ------------------------------------------------------------------------------------------------ + +void CUiSettingsUtil::GetShortcutRtTypeL(TInt aUid, TInt &aRtType) +{ + RDEBUG( "CUiSettingsUtil::GetShortcutRtTypeL() >" ); + aRtType = 1; + TBuf16<256> KeyValue; + GetKeyValueL(aUid, KeyValue); + TInt temp = KeyValue.FindF(KBookmarkText); + if(temp==KErrNotFound) + aRtType = 0; + RDEBUG( "CUiSettingsUtil::GetShortcutRtTypeL() <" ); +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetSoftkeyCountL( ) +// ------------------------------------------------------------------------------------------------ + +TInt CUiSettingsUtil::GetSoftkeyCountL() +{ + RDEBUG( "CUiSettingsUtil::GetSoftkeyCountL() >" ); + TInt count; + CRepository *cenRep = CRepository::NewL(KCRUidShortcutItems); + RArray defaultThemeKeys; + CleanupClosePushL(defaultThemeKeys); + cenRep->FindL(KScutCenRepKeyThemeDefault, KScutCenRepKeyMask, defaultThemeKeys); + count = defaultThemeKeys.Count(); + //default SoftKeys always return Active Idle softkeys + //total number of Softkeys = defalult + scroll (left,right,up,down,selection) + count = count + 5; + CleanupStack::PopAndDestroy(&defaultThemeKeys); + delete cenRep; + RDEBUG( "CUiSettingsUtil::GetSoftkeyCountL() <" ); + return count; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetKeyValueL( ) +// ------------------------------------------------------------------------------------------------ + +void CUiSettingsUtil::GetKeyValueL(TInt aUid, TDes16 &aKeyValue) +{ + RDEBUG( "CUiSettingsUtil::GetKeyValueL() >" ); + CRepository *cenRep = CRepository::NewL(KCRUidShortcutItems); + + RArray defaultThemeKeys; + CleanupClosePushL(defaultThemeKeys); + + RArray userDefinedKeys; + CleanupClosePushL(userDefinedKeys); + + cenRep->FindL(KScutCenRepKeyThemeDefault, KScutCenRepKeyMask, defaultThemeKeys); + cenRep->FindL(KScutCenRepKeyUserDefined, KScutCenRepKeyMask, userDefinedKeys); + + TUint keyUid = aUid; + keyUid = keyUid | 0x80000000 ; + TUint defaultThemeKey; + TUint userDefinedKey; + TInt countThemeKey; + TInt countUserKey; + TBool isUserDefinedKey = EFalse; + + countThemeKey = defaultThemeKeys.Count(); + countUserKey = userDefinedKeys.Count(); + TBuf16<256> KeyValue; + +//First retrive the UID of the softkey's application + for (TInt i = 0; i < countUserKey; i++) + { + userDefinedKey = userDefinedKeys[i]; + userDefinedKey = userDefinedKey | 0x80000000; + if (keyUid == userDefinedKey) + { + isUserDefinedKey = ETrue; + cenRep->Get(userDefinedKeys[i],KeyValue); + break; + } + } + + if (!isUserDefinedKey) + { + for (TInt i = 0; i < countThemeKey; i++) + { + defaultThemeKey = defaultThemeKeys[i]; + if (keyUid == defaultThemeKey) + { + cenRep->Get(defaultThemeKey,KeyValue); + break; + } + } + } + aKeyValue = KeyValue; + delete cenRep; + CleanupStack::PopAndDestroy(&userDefinedKeys); + CleanupStack::PopAndDestroy(&defaultThemeKeys); + RDEBUG( "CUiSettingsUtil::GetKeyValueL() <" ); +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil::GetShortcutTargetIndex() +// ------------------------------------------------------------------------------------------------ + +TInt CUiSettingsUtil::GetShortcutTargetIndexL(TInt aUid, TInt& aIndex) +{ + RDEBUG( "CUiSettingsUtil::GetShortcutTargetIndexL() >" ); + TInt index; + TBuf16<256> KeyValue; + GetKeyValueL(aUid, KeyValue); + if(GetStaticAppIndex(KeyValue, index)) + { + aIndex=index + iListItems.Count() + iJaveUids.Count() + iMailBoxes->Count(); + return KErrNone; + } + TInt FindBm = KeyValue.FindF(KBookmarkText); + if (FindBm==KErrNotFound) + { + TInt FindMB = KeyValue.FindF(KMailBoxText); + if (FindMB==KErrNotFound) + { + TInt FindApp = KeyValue.FindF(KAppText); + KeyValue.Delete(0, KAppText().Length()); + + TLex16 lex(KeyValue); + TInt64 value; + lex.Val(value, EHex); + + TUid ApplicationUid = { value }; + + if(GetAppIndexToUID(ApplicationUid, index)) + { + aIndex = index; + } + else + { + aIndex = -1; + return KErrArgument; + } + } + else + { + KeyValue.Delete(0, KMailBoxText().Length()); + if( GetMailBoxTargetIndex(KeyValue, index)) + { + aIndex = index + iListItems.Count() + iJaveUids.Count(); + } + else + { + aIndex = -1; + return KErrArgument; + } + } + } + else + { + KeyValue.Delete(0, KBookmarkText().Length()); + + TLex16 lex(KeyValue); + TInt64 value; + lex.Val(value, EHex); + + TInt WebUid = value ; + + if (GetWebTargetIndex( WebUid, index) == KErrNotFound) + { + aIndex = -1; + return KErrArgument; + } + else + aIndex = index; + } + RDEBUG( "CUiSettingsUtil::GetShortcutTargetIndexL() <" ); + return KErrNone; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil::GetAppTargetCaptionL() +// ------------------------------------------------------------------------------------------------ + +// Caption and description are the same. They are obtained from +// RApaLsSession API by passing the application UID +// ApplicationUID is obtained from the CentRep + +TInt CUiSettingsUtil::GetAppTargetCaptionL(TInt aIndex, TDes& aBufferCaption) +{ + RDEBUG( "CUiSettingsUtil::GetShortcutTargetCaptionL() >" ); + TInt NoOfTargetApps = iListItems.Count(); + TInt NoOfJavaApps = iJaveUids.Count(); + TInt NoOfMailBoxes = iMailBoxes->Count(); + TInt NoOfStaticApps = iStaticAppParam->Count(); + + if(aIndex < NoOfTargetApps) + { + TApaAppInfo appInfo; + GetAppInfoAtIndex(aIndex, appInfo); + aBufferCaption.Copy(appInfo.iCaption); + } + else if ((aIndex - NoOfTargetApps) < NoOfJavaApps ) + { + CJavaRegistry* registry = CJavaRegistry::NewLC(); + CJavaRegistryEntry* entry = + registry->RegistryEntryL( iJaveUids[aIndex - NoOfTargetApps] ); + CleanupStack::PushL(entry); + const TDesC& name = entry->Name(); + aBufferCaption.Copy(name); + CleanupStack::PopAndDestroy(entry); + CleanupStack::PopAndDestroy(registry); + } + else if((aIndex - NoOfTargetApps - NoOfJavaApps ) < NoOfMailBoxes) + { + TInt index = aIndex - NoOfTargetApps - NoOfJavaApps; + aBufferCaption = iMailBoxes->MdcaPoint(index); + } + else if((aIndex - NoOfTargetApps - NoOfJavaApps - NoOfMailBoxes) < NoOfStaticApps) + { + TInt index = aIndex - NoOfTargetApps - NoOfJavaApps - NoOfMailBoxes; + aBufferCaption = iStaticAppCaption->MdcaPoint(index); + } + else + { + return KErrArgument; + } + RDEBUG( "CUiSettingsUtil::GetShortcutTargetCaptionL() <" ); + return KErrNone; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil::SetShortcutTargetAppIndex() +// ------------------------------------------------------------------------------------------------ + +TInt CUiSettingsUtil::SetShortcutTargetAppIndexL( TInt aUid, TInt aIndex ) +{ + RDEBUG( "CUiSettingsUtil::SetShortcutTargetAppIndexL() >" ); + TUint softkeyID = aUid; + + TBuf16<256> SetKeyValue; + TBuf16<10> appUid ; + + TInt NoOfTargetApps = iListItems.Count(); + TInt NoOfJavaApps = iJaveUids.Count(); + TInt NoOfMailBoxes = iMailBoxes->Count(); + TInt NoOfStaticApps = iStaticAppParam->Count(); + + CRepository *cenRep = CRepository::NewL(KCRUidShortcutItems); + TBool found = EFalse; + if (aIndex < NoOfTargetApps) + { + TApaAppInfo appInfo; + found = GetAppInfoAtIndex(aIndex, appInfo); + appUid.Format(KFormat,appInfo.iUid); + SetKeyValue = KAppText; + SetKeyValue.Insert (SetKeyValue.Length(),appUid); + } + else if ((aIndex - NoOfTargetApps) < NoOfJavaApps) + { + CJavaRegistry* registry = CJavaRegistry::NewLC(); + CJavaRegistryEntry* entry = registry->RegistryEntryL( iJaveUids[aIndex - NoOfTargetApps] ); + CleanupStack::PushL(entry); + const TDesC& name = entry->Name(); + found = ETrue; + appUid.Format(KFormat,entry->Uid()); + CleanupStack::PopAndDestroy(entry); + CleanupStack::PopAndDestroy(registry); + SetKeyValue = KAppText; + SetKeyValue.Insert (SetKeyValue.Length(),appUid); + } + else if((aIndex - NoOfTargetApps - NoOfJavaApps) < NoOfMailBoxes) + { + TInt index = aIndex - NoOfTargetApps - NoOfJavaApps; + SetKeyValue = KMailBoxText; + SetKeyValue.Insert (SetKeyValue.Length(),iMailBoxes->MdcaPoint(index)); + found = ETrue; + } + else if((aIndex - NoOfTargetApps - NoOfJavaApps - NoOfMailBoxes) < NoOfStaticApps) + { + TInt index = aIndex - NoOfTargetApps - NoOfJavaApps - NoOfMailBoxes; + SetKeyValue.Insert (SetKeyValue.Length(),iStaticAppParam->MdcaPoint(index)); + found = ETrue; + } + else + { + delete cenRep; + return KErrArgument; + } + + if (found) + { + cenRep->Set(softkeyID,SetKeyValue); + } + delete cenRep; + RDEBUG( "CUiSettingsUtil::SetShortcutTargetAppIndexL() <" ); + return KErrNone; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetAppInfoAtIndex( ) +// ------------------------------------------------------------------------------------------------ + +TBool CUiSettingsUtil::GetAppInfoAtIndex(TInt aIndex, TApaAppInfo& aAppInfo ) +{ + RDEBUG( "CUiSettingsUtil::GetAppInfoAtIndex() >" ); + aAppInfo = *iListItems[aIndex]; + if(aIndex < iListItems.Count() ) + return ETrue; + else + return EFalse; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetAppIndexToUID( ) +// ------------------------------------------------------------------------------------------------ + +TBool CUiSettingsUtil::GetAppIndexToUID(TUid aUID, TInt& aIndex ) +{ + RDEBUG( "CUiSettingsUtil::GetAppIndexToUID() >" ); + TBool found = EFalse; + for (TInt i=0; i < iListItems.Count() ; i++) + { + if(iListItems[i]->iUid == aUID) + { + found = ETrue; + aIndex = i; + break; + } + } + if(!found) + { + for (TInt i=0; i < iJaveUids.Count() ; i++) + { + if(iJaveUids[i] == aUID) + { + found = ETrue; + aIndex = i + iListItems.Count(); + break; + } + } + } + RDEBUG( "CUiSettingsUtil::GetAppIndexToUID() <" ); + return found; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetMailBoxTargetIndex( ) +// ------------------------------------------------------------------------------------------------ + +TBool CUiSettingsUtil::GetMailBoxTargetIndex(const TDesC& aName, TInt& aIndex ) +{ + RDEBUG( "CUiSettingsUtil::GetMailBoxTargetIndex() >" ); + TBool found = EFalse; + for (TInt i=0; i < iMailBoxes->Count() ; i++) + { + if(aName.CompareF(iMailBoxes->MdcaPoint(i)) == 0 ) + { + found = ETrue; + aIndex = i; + break; + } + } + RDEBUG( "CUiSettingsUtil::GetMailBoxTargetIndex() <" ); + return found; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetStaticAppIndex( ) +// ------------------------------------------------------------------------------------------------ + +TBool CUiSettingsUtil::GetStaticAppIndex(const TDesC& aKeyValue, TInt& aIndex) +{ + RDEBUG( "CUiSettingsUtil::GetStaticAppIndex() >" ); + TBool found = EFalse; + for (TInt i=0; i < iStaticAppParam->Count() ; i++) + { + if(aKeyValue.CompareF(iStaticAppParam->MdcaPoint(i)) == 0 ) + { + found = ETrue; + aIndex = i; + break; + } + } + RDEBUG( "CUiSettingsUtil::GetStaticAppIndex() <" ); + return found; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::ReadTargetsL( ) +// ------------------------------------------------------------------------------------------------ + +void CUiSettingsUtil::ReadTargetsL() +{ + RDEBUG( "CUiSettingsUtil::ReadTargetsL() >" ); + ReadAppTargetsL(); + ReadJavaTargetsL(); + ReadMailBoxesL(); + ReadStaticAppTargetsL(); + RDEBUG( "CUiSettingsUtil::ReadTargetsL() <" ); +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::ReadAppTargetsL( ) +// ------------------------------------------------------------------------------------------------ + +void CUiSettingsUtil::ReadAppTargetsL() +{ + RDEBUG( "CUiSettingsUtil::ReadAppTargetsL() >" ); + RApaLsSession apaSession; + if ( apaSession.Handle() == KNullHandle ) + { + User::LeaveIfError( apaSession.Connect() ); + } + + TInt count_app =0 ; + if (apaSession.GetAllApps() == KErrNone) + { + TInt err = apaSession.AppCount(count_app); + } + iListItems.ReserveL(150); + for (TInt i=0; i < count_app ; i++) + { + TApaAppInfo* appInfo = new (ELeave) TApaAppInfo; + TInt err = apaSession.GetNextApp(*appInfo); + if (err == KErrNone) + { + TApaAppCapabilityBuf buf; + if (apaSession.GetAppCapability(buf, appInfo->iUid) == KErrNone && + !buf().iAppIsHidden && !IsNonNativeL(appInfo->iUid) ) + { + iListItems.Append(appInfo); + } + else + { + delete appInfo; + } + } + else + { + delete appInfo; + } + } + apaSession.Close(); + RDEBUG( "CUiSettingsUtil::ReadAppTargetsL() <" ); +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::ReadJavaTargetsL( ) +// ------------------------------------------------------------------------------------------------ + +void CUiSettingsUtil::ReadJavaTargetsL() +{ + RDEBUG( "CUiSettingsUtil::ReadJavaTargetsL() >" ); + CJavaRegistry* registry = CJavaRegistry::NewLC(); + + // get all uids stored in registry + RArray uids; + CleanupClosePushL(uids); + registry->GetRegistryEntryUidsL( uids ); + //TBool duplicate = EFalse ; + for(TInt i =0; i RegistryEntryL( uids[i] ); + CleanupStack::PushL(entry); + if(entry->Type() >= EGeneralApplication) + { + iJaveUids.Append(uids[i]); + } + CleanupStack::PopAndDestroy(entry); + } + CleanupStack::PopAndDestroy(&uids); + CleanupStack::PopAndDestroy(registry); + RDEBUG( "CUiSettingsUtil::ReadJavaTargetsL() <" ); +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::ReadMailBoxesL( ) +// ------------------------------------------------------------------------------------------------ + +void CUiSettingsUtil::ReadMailBoxesL() +{ + RDEBUG( "CUiSettingsUtil::ReadMailBoxesL() >" ); + CMsvSession* msvSession = CMsvSession::OpenAsObserverL(*this); + iMailBoxes = new (ELeave) CDesCArrayFlat(1); + + CMsvEntry* rootEntry = msvSession->GetEntryL(KMsvRootIndexEntryIdValue); + CleanupStack::PushL(rootEntry); + + for (TInt i = rootEntry->Count() - 1; i >= 0; --i) + { + const TMsvEntry& tentry = (*rootEntry)[i]; + + if (tentry.iMtm == KSenduiMtmImap4Uid || tentry.iMtm == KSenduiMtmPop3Uid) + { + iMailBoxes->AppendL(tentry.iDetails); + } + } + CleanupStack::PopAndDestroy(rootEntry); + delete msvSession; + RDEBUG( "CUiSettingsUtil::ReadMailBoxesL() <" ); +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::ReadStaticAppTargetsL( ) +// ------------------------------------------------------------------------------------------------ + +void CUiSettingsUtil::ReadStaticAppTargetsL() +{ + RDEBUG( "CUiSettingsUtil::ReadStaticAppTargetsL() >" ); + //add the code to read the static applications here + + iStaticAppParam = new (ELeave) CDesCArrayFlat(1); + iStaticAppCaption = new (ELeave) CDesCArrayFlat(1); + + iStaticAppParam->AppendL(KNewMsg()); + iStaticAppCaption->AppendL(KNewMsgCaption()); + + iStaticAppParam->AppendL(KNewEmail()); + iStaticAppCaption->AppendL(KNewEmailCaption()); + + #ifdef __SYNCML_DS_EMAIL + iStaticAppParam->AppendL(KNewSyncMLMail()); + iStaticAppCaption->AppendL(KNewSyncMLMailCaption()); + #endif + + if (FeatureManager::FeatureSupported(KFeatureIdMmsPostcard)) + { + // New Postcard item. + iStaticAppParam->AppendL(KNewMMS()); + iStaticAppCaption->AppendL(KNewMMSCaption()); + } + + if (FeatureManager::FeatureSupported(KFeatureIdAudioMessaging)) + { + // New Audio Messaging + iStaticAppParam->AppendL(KNewAudioMsg()); + iStaticAppCaption->AppendL(KNewAudioMsgCaption()); + } + + iStaticAppParam->AppendL(KNewMsgType()); + iStaticAppCaption->AppendL(KNewMsgTypeCaption()); + + iStaticAppParam->AppendL(KChangeTheme()); + iStaticAppCaption->AppendL(KChangeThemeCaption()); + RDEBUG( "CUiSettingsUtil::ReadStaticAppTargetsL() <" ); +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::IsNonNativeL( ) +// ------------------------------------------------------------------------------------------------ + +TBool CUiSettingsUtil::IsNonNativeL(const TUid& aUid) const +{ + RDEBUG( "CUiSettingsUtil::IsNonNativeL() >" ); + TBool ret = EFalse; + + const TUid KMidletAppType = { 0x10210E26 }; + TUid typeuid = KNullUid; + RApaLsSession apaSession; + if ( apaSession.Handle() == KNullHandle ) + { + User::LeaveIfError( apaSession.Connect() ); + } + if (KErrNone == apaSession.GetAppType(typeuid, aUid)) + { + if (typeuid == KMidletAppType) + { + ret = ETrue; + } + } + apaSession.Close(); + RDEBUG( "CUiSettingsUtil::IsNonNativeL() <" ); + return ret; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetNoOfTargetApps( ) +// ------------------------------------------------------------------------------------------------ + +TInt CUiSettingsUtil::GetNoOfTargetApps() +{ + RDEBUG( "CUiSettingsUtil::GetNoOfTargetApps() >" ); + return iListItems.Count() + iJaveUids.Count() + iMailBoxes->Count() + iStaticAppParam->Count(); +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::ReadBookmarksL( ) +// ------------------------------------------------------------------------------------------------ + +void CUiSettingsUtil::ReadBookmarksL() +{ + RDEBUG( "CUiSettingsUtil::ReadBookmarksL() >" ); + RFavouritesSession bmSess; + RFavouritesDb bmDb; + User::LeaveIfError(bmSess.Connect()); + User::LeaveIfError(bmDb.Open(bmSess, KBrowserBookmarks)); + if(iFavList) + { + delete iFavList; + iFavList = NULL; + } + iFavList = new (ELeave) CFavouritesItemList(); + TInt err = bmDb.GetAll(*iFavList, KFavouritesNullUid, CFavouritesItem::EItem); + bmDb.Close(); + bmSess.Close(); + RDEBUG( "CUiSettingsUtil::ReadBookmarksL() <" ); +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetWebTargetsCount( ) +// ------------------------------------------------------------------------------------------------ + +TInt CUiSettingsUtil::GetWebTargetsCount( TInt &aCount ) +{ + RDEBUG( "CUiSettingsUtil::GetWebTargetAppUid() >" ); + aCount = iFavList->Count(); + RDEBUG( "CUiSettingsUtil::GetWebTargetAppUid() <" ); + return KErrNone; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetWebTargetAppUid( ) +// ------------------------------------------------------------------------------------------------ + +TInt CUiSettingsUtil::GetWebTargetAppUid( TInt aIndex, TInt& aUid ) +{ + RDEBUG( "CUiSettingsUtil::GetWebTargetAppUid() >" ); + CFavouritesItem* item; + if(aIndex>=0 && aIndexCount()) + item = iFavList->At(aIndex); + else + return KErrArgument; + aUid = item->Uid(); + RDEBUG( "CUiSettingsUtil::GetWebTargetAppUid() <" ); + return KErrNone; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetWebTargetCaption( ) +// ------------------------------------------------------------------------------------------------ + +TInt CUiSettingsUtil::GetWebTargetCaption( TInt aIndex, TDes& aCaption ) +{ + RDEBUG( "CUiSettingsUtil::GetWebTargetCaption() >" ); + CFavouritesItem* item; + if(aIndex>=0 && aIndexCount()) + item = iFavList->At(aIndex); + else + return KErrArgument; + aCaption = item->Name(); + RDEBUG( "CUiSettingsUtil::GetWebTargetCaption() <" ); + return KErrNone; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::GetWebTargetIndex( ) +// ------------------------------------------------------------------------------------------------ + +TInt CUiSettingsUtil::GetWebTargetIndex( TInt& aUid, TInt& aIndex) +{ + RDEBUG( "CUiSettingsUtil::GetWebTargetIndex() >" ); + TBool found = EFalse; + TInt i; + for (i=0; i < iFavList->Count() ; i++) + { + CFavouritesItem* item = iFavList->At(i); + if(item->Uid() == aUid) + { + found = ETrue; + break; + } + } + if (found) + { + aIndex = i; + return KErrNone; + } + else + { + aIndex = -1; + return KErrNotFound; + } +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::SetShortcutTargetWebIndexL( ) +// ------------------------------------------------------------------------------------------------ + +TInt CUiSettingsUtil::SetShortcutTargetWebIndexL( TInt aUid, TInt aIndex ) +{ + RDEBUG( "CUiSettingsUtil::SetShortcutTargetWebIndexL() >" ); + TUint webTargetID = aUid; + CFavouritesItem* item; + CRepository *cenRep = CRepository::NewL(KCRUidShortcutItems); + if(aIndex>=0 && aIndexCount()) + item = iFavList->At(aIndex); + else + { + delete cenRep; + return KErrArgument; + } + + TBuf16<256> SetKeyValue; + TBuf16<10> appUid ; + appUid.Format(KFormat,item->Uid()); + SetKeyValue = KBookmarkText; + SetKeyValue.Insert (SetKeyValue.Length(),appUid); + cenRep->Set(webTargetID, SetKeyValue); + + delete cenRep; + RDEBUG( "CUiSettingsUtil::SetShortcutTargetWebIndexL() <" ); + return KErrNone; +} + +// ------------------------------------------------------------------------------------------------ +// CUiSettingsUtil* CUiSettingsUtil::HandleSessionEventL( ) +// ------------------------------------------------------------------------------------------------ + +void CUiSettingsUtil::HandleSessionEventL(TMsvSessionEvent /*aEvent*/, TAny* /*aArg1*/, TAny* /*aArg2*/, TAny* /*aArg3*/) +{ + // A null function + // since we are not registering for any observer + // but required since its a pure virtual function in + // the parent class +}