diff -r ad0f53516d84 -r b922b9936679 omads/omadsappui/AspSyncUtil/src/AspUtil.cpp --- a/omads/omadsappui/AspSyncUtil/src/AspUtil.cpp Fri Feb 19 22:40:37 2010 +0200 +++ b/omads/omadsappui/AspSyncUtil/src/AspUtil.cpp Fri Mar 12 15:41:30 2010 +0200 @@ -33,6 +33,7 @@ #include // HlpLauncher #include // for MsvUiServiceUtilities +#include // KCRUidOperatorDatasyncInternalKeys #include "AspUtil.h" @@ -345,7 +346,65 @@ return id; } +// ----------------------------------------------------------------------------- +// TUtil::ProviderIdFromAppId +// +// ----------------------------------------------------------------------------- +// +TInt TUtil::ProviderIdFromAppId(TInt aApplicationId, TBool aOperatorProfile) + { + TInt id=KErrNotFound; + if (aOperatorProfile) + { + id = OperatorProviderIdFromAppId( aApplicationId ); + } + else + { + id = ProviderIdFromAppId( aApplicationId ); + } + return id; + } + +// ----------------------------------------------------------------------------- +// TUtil::OperatorProviderIdFromAppId +// +// ----------------------------------------------------------------------------- +// +TInt TUtil::OperatorProviderIdFromAppId(TInt aApplicationId) + { + TInt id = KErrNotFound; + CRepository* repository = NULL; + + TInt err = KErrNotFound; + TRAP(err, repository = CRepository::NewL(KCRUidOperatorDatasyncInternalKeys)); + if (err == KErrNone) + { + switch (aApplicationId) + { + // Operator specific version of Contacts adapter is supported + case EApplicationIdContact: + { + err = repository->Get(KNsmlOpDsOperatorAdapterUid, id); + break; + } + default: + { + id = ProviderIdFromAppId(aApplicationId); + break; + } + } + delete repository; + } + + if ( (id == KErrNotFound) || (err != KErrNone) ) + { + // Use default adapter + id = ProviderIdFromAppId(aApplicationId); + } + return id; + } + // ----------------------------------------------------------------------------- // TUtil::AppIdFromProviderId // @@ -371,10 +430,38 @@ { id = EApplicationIdNote; } - + if (id == KErrNotFound) // Check if this operator specific adapter + { + id = AppIdFromOperatorSpecificProviderId( aAdapterId ); + } return id; } +// ----------------------------------------------------------------------------- +// TUtil::AppIdFromOperatorSpecificProviderId +// +// ----------------------------------------------------------------------------- +// +TInt TUtil::AppIdFromOperatorSpecificProviderId(TInt aAdapterId) + { + TInt id=KErrNotFound; + CRepository* repository = NULL; + + TRAPD(err, repository = CRepository::NewL(KCRUidOperatorDatasyncInternalKeys)); + if (err == KErrNone) + { + TInt operatorContactsProvider = KErrNotFound; + err = repository->Get(KNsmlOpDsOperatorAdapterUid, operatorContactsProvider); + + if ( err == KErrNone && aAdapterId == operatorContactsProvider ) + { + id = EApplicationIdContact; + } + delete repository; + } + return id; + } + // ----------------------------------------------------------------------------- // TUtil::IsToDay