omads/omadsappui/AspSyncUtil/src/AspUtil.cpp
branchRCL_3
changeset 10 b922b9936679
parent 8 ad0f53516d84
child 14 2bbcc0756c6d
--- 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 <hlplch.h>    // HlpLauncher
 
 #include <MuiuMsvUiServiceUtilities.h> // for MsvUiServiceUtilities
+#include <NsmlOperatorDataCRKeys.h> // 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