--- /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 <FavouritesItemList.h>
+#include <msvuids.h>
+#include <SenduiMtmUids.h>
+#include <javaregistryentrytype.h>
+#include <featmgr.h>
+#include <aiscutplugindomaincrkeys.h>
+
+#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<TUint32> 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<TUint32> defaultThemeKeys;
+ CleanupClosePushL(defaultThemeKeys);
+
+ RArray<TUint32> 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<TUid> uids;
+ CleanupClosePushL(uids);
+ registry->GetRegistryEntryUidsL( uids );
+ //TBool duplicate = EFalse ;
+ for(TInt i =0; i <uids.Count();i++)
+ {
+ CJavaRegistryEntry* entry = registry->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 && aIndex<iFavList->Count())
+ 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 && aIndex<iFavList->Count())
+ 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 && aIndex<iFavList->Count())
+ 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
+}