iaupdate/IAD/engine/controller/src/iaupdatenodeimpl.cpp
branchRCL_3
changeset 11 3ba40be8e484
parent 0 ba25891c3a9e
child 25 7333d7932ef7
--- a/iaupdate/IAD/engine/controller/src/iaupdatenodeimpl.cpp	Fri Feb 19 22:57:02 2010 +0200
+++ b/iaupdate/IAD/engine/controller/src/iaupdatenodeimpl.cpp	Fri Mar 12 15:43:14 2010 +0200
@@ -20,6 +20,7 @@
 #include <ncdnodepurchase.h>
 #include <ncdnodedownload.h>
 #include <ncdnodeinstall.h>
+#include <ncdnodecontentinfo.h>
 
 #include "iaupdatenodeimpl.h"
 #include "iaupdatenodeobserver.h"
@@ -28,9 +29,11 @@
 #include "iaupdatecontrollerimpl.h"
 #include "iaupdateutils.h"
 #include "iaupdatecontentoperationmanager.h"
+#include "iaupdateprotocolconsts.h"
 #include "iaupdatedebug.h"
 
 
+
 // -----------------------------------------------------------------------------
 // CIAUpdateNode::NewLC
 // Two-phased constructor.
@@ -150,9 +153,18 @@
 //    
 MIAUpdateNode::TPackageType CIAUpdateNode::Type() const
     {
+    MIAUpdateNode::TPackageType packageType;
+    if ( Mime().Compare( IAUpdateProtocolConsts::KMimeWidget ) == 0 )
+        {
+        packageType = MIAUpdateNode::EPackageTypeWidget;
+        }
+    else
+        {
+        packageType = Details().ContentType();
+        }
     IAUPDATE_TRACE_1("[IAUPDATE] CIAUpdateNode::Type() = %d", 
-                     Details().ContentType());
-    return Details().ContentType();
+                             packageType );
+    return packageType;
     }
 
 
@@ -758,14 +770,26 @@
 void CIAUpdateNode::AddDependantL( CIAUpdateNode& aDependantNode ) 
     {
 	IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNode::AddDependantL() begin");
+	
 
 	for ( TInt i = 0; i < iDependants.Count(); ++i )
 	    {
 	    CIAUpdateNode* node( iDependants[ i ] );
-	    if ( node->Uid() == aDependantNode.Uid() )
+	    if ( node->Mime().Compare( IAUpdateProtocolConsts::KMimeWidget) == 0 )
 	        {
-	        // Corresponding node is already in the array.
-	        return;
+	        if ( node->Identifier() == aDependantNode.Identifier() )
+	            {
+	            // Corresponding node is already in the array.
+	            return;
+	            }
+	        }
+	    else 
+	        {
+	        if ( node->Uid() == aDependantNode.Uid() )
+	            {
+	            // Corresponding node is already in the array.
+	            return;
+	            }
 	        }
 	    }
 
@@ -898,7 +922,18 @@
     IAUPDATE_TRACE("[IAUPDATE] CIAUpdateNode::IsInstalledL() begin");
 
     TIAUpdateVersion installedVersion;
-    TBool installed( IAUpdateUtils::IsAppInstalledL( Uid(), installedVersion ) );
+
+    TBool installed = EFalse;
+        
+    if ( Mime().Compare( IAUpdateProtocolConsts::KMimeWidget ) == 0 )
+        {
+        installed = IAUpdateUtils::IsWidgetInstalledL( Identifier(), installedVersion );
+        }
+    else 
+        {
+        installed = IAUpdateUtils::IsAppInstalledL( Uid(), installedVersion );
+        }    
+		
     IAUPDATE_TRACE_3("CIAUpdateNode::IsInstalledL() Installed version  %d.%d.%d", 
             installedVersion.iMajor, 
             installedVersion.iMinor,