installationservices/swi/source/swis/server/installmachine.cpp
changeset 33 8110bf1194d1
parent 25 98b66e4fb0be
child 42 d17dc5398051
--- a/installationservices/swi/source/swis/server/installmachine.cpp	Mon May 03 12:38:03 2010 +0300
+++ b/installationservices/swi/source/swis/server/installmachine.cpp	Fri May 14 15:58:48 2010 +0300
@@ -1,4 +1,4 @@
-/*
+	/*
 * Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
@@ -60,6 +60,7 @@
 #include "swi/sisversion.h"
 #include "swi/nativecomponentinfo.h"
 #include <usif/usifcommon.h>
+#include <usif/scr/appregentries.h>
 #include "scrdbconstants.h"
 #endif
 
@@ -70,6 +71,23 @@
 _LIT(KCertifiedSignedOID, "1.2.826.0.1.1796587.1.1.2.2"); 
 _LIT(KCertifiedSignedWithVerisignOID, "1.2.826.0.1.1796587.1.1.2.3"); 
 
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+
+void DeRegisterForceRegisteredAppsL()
+	{
+	// Deregister the force registered applications from AppArc
+	DEBUG_PRINTF(_L8("Deregistering the force registered applications with AppArc"));
+	RSisLauncherSession launcher;
+	CleanupClosePushL(launcher);
+	User::LeaveIfError(launcher.Connect());
+	RPointerArray<Usif::CApplicationRegistrationData> emptyAppRegDataArray;
+	launcher.NotifyNewAppsL(emptyAppRegDataArray);
+	CleanupStack::PopAndDestroy(&launcher);
+	}
+
+#endif
+
 //
 // TInstallState
 //
@@ -525,8 +543,13 @@
 
 	        TRAPD(err, (allowSelfSigned = secSettingsSession.SettingValueL(KUidInstallationRepository , KAllowSelfSignedInstallKey)));
 
-	        if( err == KErrNone || err == KErrSettingNotFound || err == KErrNotFound)
+	        if( err == KErrNone || err == KErrSettingNotFound || err == KErrNotFound || err == KErrCorrupt)
 				{
+                 if (err == KErrCorrupt)
+	                {
+                         DEBUG_PRINTF(_L8("Install Machine - CenRep file 2002cff6.txt is corrupt. Using Default Value to Install."));
+	                }
+				                  
 	             if (!allowSelfSigned || !SecurityAlertL(ETrue))
 					{
 	                 User::Leave(KErrCancel);
@@ -1213,6 +1236,11 @@
 void CInstallMachine::TIntegritySupportState::Cancel()
 	{
 	DEBUG_PRINTF(_L8("Install Machine - Cancelling Integrity Support State"));
+
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	DeRegisterForceRegisteredAppsL();
+#endif
+
 	if (iInstallMachine.iProcessor)
 		{
 		iInstallMachine.iProcessor->Cancel();
@@ -1400,7 +1428,11 @@
 			}
 		}
 	
-	iInstallMachine.CompleteSelf();
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	DeRegisterForceRegisteredAppsL();
+#endif
+
+    iInstallMachine.CompleteSelf();
 	iInstallMachine.SetActive();
 	}
     
@@ -1420,6 +1452,9 @@
 
 void CInstallMachine::TFinalState::Cancel()
 	{
+#ifdef SYMBIAN_UNIVERSAL_INSTALL_FRAMEWORK
+	DeRegisterForceRegisteredAppsL();
+#endif
 	}
 
 //